window: Use g_object_class_install_properties

This commit is contained in:
Jasper St. Pierre 2014-06-24 16:18:26 -04:00
parent 692acbd986
commit 4e4a6eb5d7

View File

@ -158,9 +158,13 @@ enum {
PROP_GTK_WINDOW_OBJECT_PATH,
PROP_GTK_APP_MENU_OBJECT_PATH,
PROP_GTK_MENUBAR_OBJECT_PATH,
PROP_ON_ALL_WORKSPACES
PROP_ON_ALL_WORKSPACES,
LAST_PROP,
};
static GParamSpec *obj_props[LAST_PROP];
enum
{
WORKSPACE_CHANGED,
@ -393,205 +397,161 @@ meta_window_class_init (MetaWindowClass *klass)
klass->update_struts = meta_window_real_update_struts;
klass->get_default_skip_hints = meta_window_real_get_default_skip_hints;
g_object_class_install_property (object_class,
PROP_TITLE,
g_param_spec_string ("title",
"Title",
"The title of the window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_ICON,
g_param_spec_object ("icon",
"Icon",
"96 pixel sized icon",
GDK_TYPE_PIXBUF,
G_PARAM_READABLE));
obj_props[PROP_TITLE] =
g_param_spec_string ("title",
"Title",
"The title of the window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_ICON] =
g_param_spec_object ("icon",
"Icon",
"96 pixel sized icon",
GDK_TYPE_PIXBUF,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_MINI_ICON] =
g_param_spec_object ("mini-icon",
"Mini Icon",
"16 pixel sized icon",
GDK_TYPE_PIXBUF,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_DECORATED] =
g_param_spec_boolean ("decorated",
"Decorated",
"Whether window is decorated",
TRUE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_FULLSCREEN] =
g_param_spec_boolean ("fullscreen",
"Fullscreen",
"Whether window is fullscreened",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_MAXIMIZED_HORIZONTALLY] =
g_param_spec_boolean ("maximized-horizontally",
"Maximized horizontally",
"Whether window is maximized horizontally",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_MAXIMIZED_VERTICALLY] =
g_param_spec_boolean ("maximized-vertically",
"Maximizing vertically",
"Whether window is maximized vertically",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_MINIMIZED] =
g_param_spec_boolean ("minimized",
"Minimizing",
"Whether window is minimized",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_WINDOW_TYPE] =
g_param_spec_enum ("window-type",
"Window Type",
"The type of the window",
META_TYPE_WINDOW_TYPE,
META_WINDOW_NORMAL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_USER_TIME] =
g_param_spec_uint ("user-time",
"User time",
"Timestamp of last user interaction",
0,
G_MAXUINT,
0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_DEMANDS_ATTENTION] =
g_param_spec_boolean ("demands-attention",
"Demands Attention",
"Whether the window has _NET_WM_STATE_DEMANDS_ATTENTION set",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_URGENT] =
g_param_spec_boolean ("urgent",
"Urgent",
"Whether the urgent flag of WM_HINTS is set",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_SKIP_TASKBAR] =
g_param_spec_boolean ("skip-taskbar",
"Skip taskbar",
"Whether the skip-taskbar flag of WM_HINTS is set",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_MUTTER_HINTS] =
g_param_spec_string ("mutter-hints",
"_MUTTER_HINTS",
"Contents of the _MUTTER_HINTS property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_APPEARS_FOCUSED] =
g_param_spec_boolean ("appears-focused",
"Appears focused",
"Whether the window is drawn as being focused",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_RESIZEABLE] =
g_param_spec_boolean ("resizeable",
"Resizeable",
"Whether the window can be resized",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_ABOVE] =
g_param_spec_boolean ("above",
"Above",
"Whether the window is shown as always-on-top",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_WM_CLASS] =
g_param_spec_string ("wm-class",
"WM_CLASS",
"Contents of the WM_CLASS property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_APPLICATION_ID] =
g_param_spec_string ("gtk-application-id",
"_GTK_APPLICATION_ID",
"Contents of the _GTK_APPLICATION_ID property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_UNIQUE_BUS_NAME] =
g_param_spec_string ("gtk-unique-bus-name",
"_GTK_UNIQUE_BUS_NAME",
"Contents of the _GTK_UNIQUE_BUS_NAME property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_APPLICATION_OBJECT_PATH] =
g_param_spec_string ("gtk-application-object-path",
"_GTK_APPLICATION_OBJECT_PATH",
"Contents of the _GTK_APPLICATION_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_WINDOW_OBJECT_PATH] =
g_param_spec_string ("gtk-window-object-path",
"_GTK_WINDOW_OBJECT_PATH",
"Contents of the _GTK_WINDOW_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_APP_MENU_OBJECT_PATH] =
g_param_spec_string ("gtk-app-menu-object-path",
"_GTK_APP_MENU_OBJECT_PATH",
"Contents of the _GTK_APP_MENU_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_GTK_MENUBAR_OBJECT_PATH] =
g_param_spec_string ("gtk-menubar-object-path",
"_GTK_MENUBAR_OBJECT_PATH",
"Contents of the _GTK_MENUBAR_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
obj_props[PROP_ON_ALL_WORKSPACES] =
g_param_spec_boolean ("on-all-workspaces",
"On all workspaces",
"Whether the window is set to appear on all workspaces",
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_property (object_class,
PROP_MINI_ICON,
g_param_spec_object ("mini-icon",
"Mini Icon",
"16 pixel sized icon",
GDK_TYPE_PIXBUF,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_DECORATED,
g_param_spec_boolean ("decorated",
"Decorated",
"Whether window is decorated",
TRUE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_FULLSCREEN,
g_param_spec_boolean ("fullscreen",
"Fullscreen",
"Whether window is fullscreened",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_MAXIMIZED_HORIZONTALLY,
g_param_spec_boolean ("maximized-horizontally",
"Maximized horizontally",
"Whether window is maximized horizontally",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_MAXIMIZED_VERTICALLY,
g_param_spec_boolean ("maximized-vertically",
"Maximizing vertically",
"Whether window is maximized vertically",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_MINIMIZED,
g_param_spec_boolean ("minimized",
"Minimizing",
"Whether window is minimized",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_WINDOW_TYPE,
g_param_spec_enum ("window-type",
"Window Type",
"The type of the window",
META_TYPE_WINDOW_TYPE,
META_WINDOW_NORMAL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_USER_TIME,
g_param_spec_uint ("user-time",
"User time",
"Timestamp of last user interaction",
0,
G_MAXUINT,
0,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_DEMANDS_ATTENTION,
g_param_spec_boolean ("demands-attention",
"Demands Attention",
"Whether the window has _NET_WM_STATE_DEMANDS_ATTENTION set",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_URGENT,
g_param_spec_boolean ("urgent",
"Urgent",
"Whether the urgent flag of WM_HINTS is set",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_SKIP_TASKBAR,
g_param_spec_boolean ("skip-taskbar",
"Skip taskbar",
"Whether the skip-taskbar flag of WM_HINTS is set",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_MUTTER_HINTS,
g_param_spec_string ("mutter-hints",
"_MUTTER_HINTS",
"Contents of the _MUTTER_HINTS property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_APPEARS_FOCUSED,
g_param_spec_boolean ("appears-focused",
"Appears focused",
"Whether the window is drawn as being focused",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_RESIZEABLE,
g_param_spec_boolean ("resizeable",
"Resizeable",
"Whether the window can be resized",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_ABOVE,
g_param_spec_boolean ("above",
"Above",
"Whether the window is shown as always-on-top",
FALSE,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_WM_CLASS,
g_param_spec_string ("wm-class",
"WM_CLASS",
"Contents of the WM_CLASS property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_APPLICATION_ID,
g_param_spec_string ("gtk-application-id",
"_GTK_APPLICATION_ID",
"Contents of the _GTK_APPLICATION_ID property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_UNIQUE_BUS_NAME,
g_param_spec_string ("gtk-unique-bus-name",
"_GTK_UNIQUE_BUS_NAME",
"Contents of the _GTK_UNIQUE_BUS_NAME property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_APPLICATION_OBJECT_PATH,
g_param_spec_string ("gtk-application-object-path",
"_GTK_APPLICATION_OBJECT_PATH",
"Contents of the _GTK_APPLICATION_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_WINDOW_OBJECT_PATH,
g_param_spec_string ("gtk-window-object-path",
"_GTK_WINDOW_OBJECT_PATH",
"Contents of the _GTK_WINDOW_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_APP_MENU_OBJECT_PATH,
g_param_spec_string ("gtk-app-menu-object-path",
"_GTK_APP_MENU_OBJECT_PATH",
"Contents of the _GTK_APP_MENU_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_GTK_MENUBAR_OBJECT_PATH,
g_param_spec_string ("gtk-menubar-object-path",
"_GTK_MENUBAR_OBJECT_PATH",
"Contents of the _GTK_MENUBAR_OBJECT_PATH property of this window",
NULL,
G_PARAM_READABLE));
g_object_class_install_property (object_class,
PROP_ON_ALL_WORKSPACES,
g_param_spec_boolean ("on-all-workspaces",
"On all workspaces",
"Whether the window is set to appear on all workspaces",
FALSE,
G_PARAM_READABLE));
g_object_class_install_properties (object_class, LAST_PROP, obj_props);
window_signals[WORKSPACE_CHANGED] =
g_signal_new ("workspace-changed",