/*
* Copyright 2012 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
* Authors: Ryan Lortie
* William Hua
*/
#ifndef __UNITY_GTK_MENU_ITEM_PRIVATE_H__
#define __UNITY_GTK_MENU_ITEM_PRIVATE_H__
#include
G_BEGIN_DECLS
typedef struct _UnityGtkMenuItem UnityGtkMenuItem;
typedef GObjectClass UnityGtkMenuItemClass;
#define UNITY_GTK_TYPE_MENU_ITEM (unity_gtk_menu_item_get_type ())
#define UNITY_GTK_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_GTK_TYPE_MENU_ITEM, UnityGtkMenuItem))
#define UNITY_GTK_IS_MENU_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_GTK_TYPE_MENU_ITEM))
#define UNITY_GTK_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_GTK_TYPE_MENU_ITEM, UnityGtkMenuItemClass))
#define UNITY_GTK_IS_MENU_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_GTK_TYPE_MENU_ITEM))
#define UNITY_GTK_MENU_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_GTK_TYPE_MENU_ITEM, UnityGtkMenuItemClass))
G_END_DECLS
#include "unity-gtk-menu-shell-private.h"
#include "unity-gtk-action-private.h"
G_BEGIN_DECLS
struct _UnityGtkMenuItem
{
GObject parent_instance;
/*< private >*/
GtkMenuItem *menu_item;
UnityGtkMenuShell *parent_shell;
UnityGtkMenuShell *child_shell;
guchar child_shell_valid : 1;
guint item_index;
UnityGtkAction *action;
gchar *label;
};
GType unity_gtk_menu_item_get_type (void) G_GNUC_INTERNAL;
UnityGtkMenuItem * unity_gtk_menu_item_new (GtkMenuItem *menu_item,
UnityGtkMenuShell *parent_shell,
guint item_index) G_GNUC_INTERNAL;
UnityGtkMenuShell * unity_gtk_menu_item_get_child_shell (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
void unity_gtk_menu_item_set_action (UnityGtkMenuItem *item,
UnityGtkAction *action) G_GNUC_INTERNAL;
const gchar * unity_gtk_menu_item_get_label (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
GIcon * unity_gtk_menu_item_get_icon (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_visible (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_sensitive (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_active (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_separator (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_check (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_is_radio (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
gboolean unity_gtk_menu_item_get_draw_as_radio (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
void unity_gtk_menu_item_activate (UnityGtkMenuItem *item) G_GNUC_INTERNAL;
void unity_gtk_menu_item_print (UnityGtkMenuItem *item,
guint indent) G_GNUC_INTERNAL;
const gchar * gtk_menu_item_get_nth_label_label (GtkMenuItem *menu_item,
guint index) G_GNUC_INTERNAL;
G_END_DECLS
#endif /* __UNITY_GTK_MENU_ITEM_PRIVATE_H__ */