/* bamf.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Bamf", lower_case_cprefix = "bamf_")]
namespace Bamf {
	[CCode (type_check_function = "BAMF_IS_APPLICATION", cheader_filename = "libbamf/libbamf.h")]
	public class Application : Bamf.View {
		[CCode (has_construct_function = false)]
		protected Application ();
		public unowned string get_application_type ();
		public unowned string get_desktop_file ();
		public bool get_show_menu_stubs ();
		public unowned GLib.List get_windows ();
		public unowned GLib.Array get_xids ();
		public virtual signal void window_added (Bamf.View p0);
		public virtual signal void window_removed (Bamf.View p0);
	}
	[CCode (type_check_function = "BAMF_IS_CONTROL", cheader_filename = "libbamf/libbamf.h")]
	public class Control : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Control ();
		public static unowned Bamf.Control get_default ();
		public void insert_desktop_file (string desktop_file);
		public void register_application_for_pid (string application, int32 pid);
		public void register_tab_provider (string path);
		public void set_approver_behavior (int32 behavior);
	}
	[CCode (type_check_function = "BAMF_IS_INDICATOR", cheader_filename = "libbamf/libbamf.h")]
	public class Indicator : Bamf.View {
		[CCode (has_construct_function = false)]
		protected Indicator ();
		public unowned string get_dbus_menu_path ();
		public unowned string get_remote_address ();
		public unowned string get_remote_path ();
	}
	[CCode (type_check_function = "BAMF_IS_MATCHER", cheader_filename = "libbamf/libbamf.h")]
	public class Matcher : GLib.Object {
		[CCode (has_construct_function = false)]
		protected Matcher ();
		public bool application_is_running (string application);
		public unowned Bamf.Application get_active_application ();
		public unowned Bamf.Window get_active_window ();
		public unowned Bamf.Application get_application_for_window (Bamf.Window window);
		public unowned Bamf.Application get_application_for_xid (uint32 xid);
		public unowned GLib.List get_applications ();
		public static unowned Bamf.Matcher get_default ();
		public unowned GLib.List get_running_applications ();
		public unowned GLib.List get_tabs ();
		public unowned GLib.List get_windows ();
		public unowned GLib.Array get_xids_for_application (string application);
		public void register_favorites ([CCode (array_length = false)] string[] favorites);
		public virtual signal void active_application_changed (GLib.Object p0, GLib.Object p1);
		public virtual signal void active_window_changed (GLib.Object p0, GLib.Object p1);
		public virtual signal void view_closed (GLib.Object p0);
		public virtual signal void view_opened (GLib.Object p0);
	}
	[CCode (type_check_function = "BAMF_IS_TAB_SOURCE", cheader_filename = "libbamf/libbamf.h")]
	public class TabSource : GLib.Object {
		[CCode (has_construct_function = false)]
		protected TabSource ();
		public unowned string get_tab_ids ();
		public unowned GLib.Array get_tab_preview (string tab_id);
		public unowned string get_tab_uri (string tab_id);
		public uint32 get_tab_xid (string tab_id);
		public virtual void show_tab (Bamf.TabSource source, string tab_id, GLib.Error error);
		public virtual unowned string tab_ids ();
		public virtual unowned GLib.Array tab_preview (string tab_id);
		public virtual unowned string tab_uri (string tab_id);
		public virtual uint32 tab_xid (string tab_id);
		public string id { get; set construct; }
		public virtual signal void tab_closed (string p0);
		public virtual signal void tab_opened (string p0);
		public virtual signal void tab_uri_changed (string p0, string p1, string p2);
	}
	[CCode (type_check_function = "BAMF_IS_VIEW", cheader_filename = "libbamf/libbamf.h")]
	public class View : GLib.Object {
		[CCode (has_construct_function = false)]
		protected View ();
		public virtual unowned GLib.List get_children ();
		public virtual unowned string get_icon ();
		public virtual unowned string get_name ();
		public unowned string get_view_type ();
		public virtual bool is_active ();
		public virtual bool is_running ();
		public virtual bool is_urgent ();
		public virtual bool is_closed ();
		public bool user_visible ();
		public virtual unowned string view_type ();
		public string path { get; set construct; }
		public virtual signal void active_changed (bool active);
		public virtual signal void child_added (Bamf.View child);
		public virtual signal void child_removed (Bamf.View child);
		public virtual signal void closed ();
		public virtual signal void running_changed (bool running);
		public virtual signal void urgent_changed (bool urgent);
		public virtual signal void user_visible_changed (bool user_visible);
	}
	[CCode (type_check_function = "BAMF_IS_WINDOW", cheader_filename = "libbamf/libbamf.h")]
	public class Window : Bamf.View {
		[CCode (has_construct_function = false)]
		protected Window ();
		public unowned Bamf.Window get_transient ();
		public Bamf.WindowType get_window_type ();
		public uint32 get_xid ();
		public ulong last_active ();
	}
	[CCode (cprefix = "BAMF_WINDOW_", has_type_id = false, cheader_filename = "libbamf/libbamf.h")]
	public enum WindowType {
		NORMAL,
		DESKTOP,
		DOCK,
		DIALOG,
		TOOLBAR,
		MENU,
		UTILITY,
		SPLASHSCREEN
	}
}