Skip to content

Instantly share code, notes, and snippets.

@SpikedPaladin
Last active July 2, 2023 08:03
Show Gist options
  • Save SpikedPaladin/6c926bb90a7f194b29623bd8d2025802 to your computer and use it in GitHub Desktop.
Save SpikedPaladin/6c926bb90a7f194b29623bd8d2025802 to your computer and use it in GitHub Desktop.
State flags to string (GTK, VALA)

Convert Gtk.StateFlags to string

public string flags_to_string(Gtk.StateFlags flags) {
  var str = "";
  if (Gtk.StateFlags.NORMAL in flags)
      str += "NORMAL, ";

  if (Gtk.StateFlags.ACTIVE in flags)
      str += "ACTIVE, ";

  if (Gtk.StateFlags.PRELIGHT in flags)
      str += "PRELIGHT, ";

  if (Gtk.StateFlags.SELECTED in flags)
      str += "SELECTED, ";

  if (Gtk.StateFlags.INSENSITIVE in flags)
      str += "ISENSITIVE, ";

  if (Gtk.StateFlags.INCONSISTENT in flags)
      str += "INCONSISTENT, ";

  if (Gtk.StateFlags.FOCUSED in flags)
      str += "FOCUSED, ";

  if (Gtk.StateFlags.BACKDROP in flags)
      str += "BACKDROP, ";

  if (Gtk.StateFlags.DIR_LTR in flags)
      str += "DIR_LTR, ";

  if (Gtk.StateFlags.DIR_RTL in flags)
      str += "DIR_RTL, ";

  if (Gtk.StateFlags.LINK in flags)
      str += "LINK, ";

  if (Gtk.StateFlags.VISITED in flags)
      str += "VISITED, ";

  if (Gtk.StateFlags.CHECKED in flags)
      str += "CHECKED, ";

  if (Gtk.StateFlags.DROP_ACTIVE in flags)
      str += "DROP_ACTIVE, ";

  if (Gtk.StateFlags.FOCUS_VISIBLE in flags)
      str += "FOCUS_VISIBLE, ";

  if (Gtk.StateFlags.FOCUS_WITHIN in flags)
      str += "FOCUS_WITHIN, ";

  return str.substring(0, str.length - 2);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment