diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2012-08-20 21:32:33 +0200 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2012-08-20 21:32:33 +0200 |
commit | 004314963a36bb48473ae58eccc9f5532225ab9b (patch) | |
tree | 9747d0a1af2ef75805654c393f2d241caee75bcf /src/im-app-menu-item.h | |
parent | 8be3201de7ac246e759f74bfe35e53f742908800 (diff) | |
download | ayatana-indicator-messages-004314963a36bb48473ae58eccc9f5532225ab9b.tar.gz ayatana-indicator-messages-004314963a36bb48473ae58eccc9f5532225ab9b.tar.bz2 ayatana-indicator-messages-004314963a36bb48473ae58eccc9f5532225ab9b.zip |
Use a custom menu item for application items
This introduces ImAppMenuItem: a menu item which shows a small triangle next to
an application's name if the associated app is running.
The running state is communicated to the menu by giving the "launch" action a
boolean state.
This depends on a patch to gtk which creates custom menu items from
gtk_menu_new_from_model when the x-canonical-type attribute is set on a menu
item in the model.
Diffstat (limited to 'src/im-app-menu-item.h')
-rw-r--r-- | src/im-app-menu-item.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/im-app-menu-item.h b/src/im-app-menu-item.h new file mode 100644 index 0000000..519de8d --- /dev/null +++ b/src/im-app-menu-item.h @@ -0,0 +1,54 @@ +/* + * Copyright 2012 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Authors: + * Lars Uebernickel <lars.uebernickel@canonical.com> + */ + +#ifndef __IM_APP_MENU_ITEM_H__ +#define __IM_APP_MENU_ITEM_H__ + +#include <gtk/gtk.h> + +#define IM_TYPE_APP_MENU_ITEM (im_app_menu_item_get_type ()) +#define IM_APP_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), IM_TYPE_APP_MENU_ITEM, ImAppMenuItem)) +#define IM_APP_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), IM_TYPE_APP_MENU_ITEM, ImAppMenuItemClass)) +#define IS_IM_APP_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IM_TYPE_APP_MENU_ITEM)) +#define IS_IM_APP_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), IM_TYPE_APP_MENU_ITEM)) +#define IM_APP_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), IM_TYPE_APP_MENU_ITEM, ImAppMenuItemClass)) + +typedef struct _ImAppMenuItem ImAppMenuItem; +typedef struct _ImAppMenuItemClass ImAppMenuItemClass; +typedef struct _ImAppMenuItemPrivate ImAppMenuItemPrivate; + +struct _ImAppMenuItemClass +{ + GtkMenuItemClass parent_class; +}; + +struct _ImAppMenuItem +{ + GtkMenuItem parent; + ImAppMenuItemPrivate *priv; +}; + +GType im_app_menu_item_get_type (void); + +void im_app_menu_item_set_menu_item (ImAppMenuItem *item, + GMenuItem *menuitem); +void im_app_menu_item_set_action_group (ImAppMenuItem *self, + GActionGroup *action_group); + +#endif |