Version 5.4.3.2, tag libreoffice-5.4.3.2
[LibreOffice.git] / vcl / inc / unx / gtk / glomenu.h
blob5586aa4edce1c078f53844b28e616a3bc7f796ff
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 /*
4 * This file is part of the LibreOffice project.
6 * This Source Code Form is subject to the terms of the Mozilla Public
7 * License, v. 2.0. If a copy of the MPL was not distributed with this
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 */
11 #ifndef INCLUDED_VCL_INC_UNX_GTK_GLOMENU_H
12 #define INCLUDED_VCL_INC_UNX_GTK_GLOMENU_H
14 #include <gio/gio.h>
16 #define G_LO_MENU_ATTRIBUTE_ACCELERATOR "accel"
17 #define G_LO_MENU_ATTRIBUTE_COMMAND "command"
18 #define G_LO_MENU_ATTRIBUTE_SUBMENU_ACTION "submenu-action"
20 G_BEGIN_DECLS
22 #define G_TYPE_LO_MENU (g_lo_menu_get_type ())
23 #define G_LO_MENU(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
24 G_TYPE_LO_MENU, GLOMenu))
25 #define G_IS_LO_MENU(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
26 G_TYPE_LO_MENU))
28 struct GLOMenu;
30 class GtkSalMenuItem;
32 GLIB_AVAILABLE_IN_2_32
33 GType g_lo_menu_get_type (void) G_GNUC_CONST;
34 GLIB_AVAILABLE_IN_2_32
35 GLOMenu * g_lo_menu_new (void);
37 gint g_lo_menu_get_n_items_from_section (GLOMenu *menu,
38 gint section);
40 void g_lo_menu_insert (GLOMenu *menu,
41 gint position,
42 const char *label);
44 void g_lo_menu_insert_in_section (GLOMenu *menu,
45 gint section,
46 gint position,
47 const gchar *label);
49 void g_lo_menu_new_section (GLOMenu *menu,
50 gint position,
51 const gchar *label);
53 void g_lo_menu_insert_section (GLOMenu *menu,
54 gint position,
55 const gchar *label,
56 GMenuModel *section);
58 GLOMenu * g_lo_menu_get_section (GLOMenu *menu,
59 gint section);
61 void g_lo_menu_remove (GLOMenu *menu,
62 gint position);
64 void g_lo_menu_remove_from_section (GLOMenu *menu,
65 gint section,
66 gint position);
68 void g_lo_menu_set_label (GLOMenu *menu,
69 gint position,
70 const gchar *label);
72 void g_lo_menu_set_icon (GLOMenu *menu,
73 gint position,
74 const GIcon *icon);
77 void g_lo_menu_set_label_to_item_in_section (GLOMenu *menu,
78 gint section,
79 gint position,
80 const gchar *label);
82 void g_lo_menu_set_icon_to_item_in_section (GLOMenu *menu,
83 gint section,
84 gint position,
85 const GIcon *icon);
87 gchar * g_lo_menu_get_label_from_item_in_section (GLOMenu *menu,
88 gint section,
89 gint position);
91 void g_lo_menu_set_action_and_target_value (GLOMenu *menu,
92 gint position,
93 const gchar *command,
94 GVariant *target_value);
96 void g_lo_menu_set_action_and_target_value_to_item_in_section (GLOMenu *menu,
97 gint section,
98 gint position,
99 const gchar *command,
100 GVariant *target_value);
102 void g_lo_menu_set_command_to_item_in_section (GLOMenu *menu,
103 gint section,
104 gint position,
105 const gchar *command);
107 gchar * g_lo_menu_get_command_from_item_in_section (GLOMenu *menu,
108 gint section,
109 gint position);
111 void g_lo_menu_set_accelerator_to_item_in_section (GLOMenu *menu,
112 gint section,
113 gint position,
114 const gchar *accelerator);
116 gchar * g_lo_menu_get_accelerator_from_item_in_section (GLOMenu *menu,
117 gint section,
118 gint position);
120 void g_lo_menu_new_submenu_in_item_in_section (GLOMenu *menu,
121 gint section,
122 gint position);
124 GLOMenu * g_lo_menu_get_submenu_from_item_in_section (GLOMenu *menu,
125 gint section,
126 gint position);
128 void g_lo_menu_set_submenu_action_to_item_in_section (GLOMenu *menu,
129 gint section,
130 gint position,
131 const gchar *action);
133 G_END_DECLS
135 #endif // INCLUDED_VCL_INC_UNX_GTK_GLOMENU_H
137 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */