1 /* vi:set et ai sw=2 sts=2 ts=2: */
2 /*-
3  * Copyright (c) 2013 Nick Schermer <nick@xfce.org>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General
16  * Public License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  */
20 
21 #if !defined(GARCON_INSIDE_GARCON_GTK_H) && !defined(GARCON_COMPILATION)
22 #error "Only <garcon-gtk/garcon-gtk.h> can be included directly. This file may disappear or change contents."
23 #endif
24 
25 #ifndef __GARCON_GTK_MENU_H__
26 #define __GARCON_GTK_MENU_H__
27 
28 #include <gtk/gtk.h>
29 #include <garcon/garcon.h>
30 
31 G_BEGIN_DECLS
32 
33 #define GARCON_GTK_TYPE_MENU            (garcon_gtk_menu_get_type ())
34 #define GARCON_GTK_MENU(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GARCON_GTK_TYPE_MENU, GarconGtkMenu))
35 #define GARCON_GTK_MENU_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GARCON_GTK_TYPE_MENU, GarcontkMenuClass))
36 #define GARCON_GTK_IS_MENU(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GARCON_GTK_TYPE_MENU))
37 #define GARCON_GTK_IS_MENU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GARCON_GTK_TYPE_MENU))
38 #define GARCON_GTK_MENU_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GARCON_GTK_TYPE_MENU, GarcontkMenuClass))
39 
40 typedef struct _GarconGtkMenuPrivate GarconGtkMenuPrivate;
41 typedef struct _GarconGtkMenuClass   GarconGtkMenuClass;
42 typedef struct _GarconGtkMenu        GarconGtkMenu;
43 
44 struct _GarconGtkMenuClass
45 {
46   GtkMenuClass __parent__;
47 };
48 
49 struct _GarconGtkMenu
50 {
51   GtkMenu              __parent__;
52 
53   /* < private > */
54   GarconGtkMenuPrivate *priv;
55 };
56 
57 GType                garcon_gtk_menu_get_type                 (void) G_GNUC_CONST;
58 
59 GtkWidget           *garcon_gtk_menu_new                      (GarconMenu    *garcon_menu) G_GNUC_MALLOC G_GNUC_WARN_UNUSED_RESULT;
60 
61 void                 garcon_gtk_menu_set_menu                 (GarconGtkMenu *menu,
62                                                                GarconMenu    *garcon_menu);
63 
64 GarconMenu          *garcon_gtk_menu_get_menu                 (GarconGtkMenu *menu);
65 
66 void                 garcon_gtk_menu_set_show_generic_names   (GarconGtkMenu *menu,
67                                                                gboolean       show_generic_names);
68 gboolean             garcon_gtk_menu_get_show_generic_names   (GarconGtkMenu *menu);
69 
70 void                 garcon_gtk_menu_set_show_menu_icons      (GarconGtkMenu *menu,
71                                                                gboolean       show_menu_icons);
72 gboolean             garcon_gtk_menu_get_show_menu_icons      (GarconGtkMenu *menu);
73 
74 void                 garcon_gtk_menu_set_show_tooltips        (GarconGtkMenu *menu,
75                                                                gboolean       show_tooltips);
76 gboolean             garcon_gtk_menu_get_show_tooltips        (GarconGtkMenu *menu);
77 
78 void                 garcon_gtk_menu_set_show_desktop_actions (GarconGtkMenu *menu,
79                                                                gboolean       show_desktop_actions);
80 gboolean             garcon_gtk_menu_get_show_desktop_actions (GarconGtkMenu *menu);
81 
82 GtkMenu             *garcon_gtk_menu_get_desktop_actions_menu (GarconMenuItem *item);
83 
84 void                 garcon_gtk_menu_set_right_click_edits    (GarconGtkMenu *menu,
85                                                                gboolean       enable_right_click_edits);
86 gboolean             garcon_gtk_menu_get_right_click_edits    (GarconGtkMenu *menu);
87 
88 G_END_DECLS
89 
90 #endif /* !__GARCON_GTK_MENU_H__ */
91