Add GMenu

This commit is contained in:
Matthias Clasen 2011-11-26 22:48:24 -05:00 committed by Ryan Lortie
parent 12a39a05d3
commit 13f5977735
8 changed files with 1245 additions and 0 deletions

View File

@ -201,6 +201,7 @@
<xi:include href="xml/gactiongroupexporter.xml"/>
<xi:include href="xml/gdbusactiongroup.xml"/>
<xi:include href="xml/gmenumodel.xml"/>
<xi:include href="xml/gmenu.xml"/>
</chapter>
<chapter id="extending">
<title>Extending GIO</title>

View File

@ -3541,6 +3541,68 @@ G_IS_NETWORK_MONITOR
G_NETWORK_MONITOR_GET_INTERFACE
</SECTION>
<SECTION>
<FILE>gmenu</FILE>
GMenu
g_menu_new
g_menu_freeze
<SUBSECTION>
g_menu_insert
g_menu_prepend
g_menu_append
<SUBSECTION>
g_menu_insert_item
g_menu_append_item
g_menu_prepend_item
<SUBSECTION>
g_menu_insert_section
g_menu_prepend_section
g_menu_append_section
<SUBSECTION>
g_menu_append_submenu
g_menu_insert_submenu
g_menu_prepend_submenu
<SUBSECTION>
g_menu_remove
<SUBSECTION>
GMenuItem
g_menu_item_new
g_menu_item_new_section
g_menu_item_new_submenu
<SUBSECTION>
g_menu_item_set_label
g_menu_item_set_action_and_target_value
g_menu_item_set_action_and_target
g_menu_item_set_detailed_action
g_menu_item_set_section
g_menu_item_set_submenu
<SUBSECTION>
g_menu_item_set_attribute_value
g_menu_item_set_attribute
g_menu_item_set_link
<SUBSECTION Private>
g_menu_item_get_type
g_menu_get_type
<SUBSECTION Standard>
G_TYPE_MENU
G_MENU
G_IS_MENU
G_TYPE_MENU_ITEM
G_MENU_ITEM
G_IS_MENU_ITEM
</SECTION>
<SECTION>
<FILE>gmenumodel</FILE>
GMenuModel

View File

@ -47,6 +47,7 @@ g_local_file_monitor_get_type
g_memory_input_stream_get_type
g_memory_output_stream_get_type
g_menu_attribute_iter_get_type
g_menu_get_type
g_menu_link_iter_get_type
g_menu_model_get_type
g_mount_get_type

View File

@ -134,6 +134,7 @@ application_headers = \
gapplicationcommandline.h \
gapplication.h \
gmenumodel.h \
gmenu.h \
$(NULL)
application_sources = \
@ -148,6 +149,7 @@ application_sources = \
gapplicationimpl-dbus.c \
gapplication.c \
gmenumodel.c \
gmenu.c \
$(NULL)
local_sources = \

View File

@ -147,6 +147,7 @@
#include <gio/gdbusobjectmanagerserver.h>
#include <gio/gdbusactiongroup.h>
#include <gio/gmenumodel.h>
#include <gio/gmenu.h>
#undef __GIO_GIO_H_INSIDE__

View File

@ -1603,12 +1603,35 @@ g_network_monitor_base_add_network
g_network_monitor_base_get_type
g_network_monitor_base_remove_network
g_network_monitor_base_set_networks
g_menu_append
g_menu_append_item
g_menu_append_section
g_menu_append_submenu
g_menu_attribute_hash_iter_get_type
g_menu_attribute_iter_get_name
g_menu_attribute_iter_get_next
g_menu_attribute_iter_get_type
g_menu_attribute_iter_get_value
g_menu_attribute_iter_next
g_menu_freeze
g_menu_get_type
g_menu_insert
g_menu_insert_item
g_menu_insert_section
g_menu_insert_submenu
g_menu_item_get_type
g_menu_item_new
g_menu_item_new_section
g_menu_item_new_submenu
g_menu_item_set_action_and_target
g_menu_item_set_action_and_target_value
g_menu_item_set_attribute
g_menu_item_set_attribute_value
g_menu_item_set_detailed_action
g_menu_item_set_label
g_menu_item_set_link
g_menu_item_set_section
g_menu_item_set_submenu
g_menu_link_hash_iter_get_type
g_menu_link_iter_get_name
g_menu_link_iter_get_next
@ -1625,3 +1648,9 @@ g_menu_model_items_changed
g_menu_model_items_changed_signal
g_menu_model_iterate_item_attributes
g_menu_model_iterate_item_links
g_menu_new
g_menu_prepend
g_menu_prepend_item
g_menu_prepend_section
g_menu_prepend_submenu
g_menu_remove

1019
gio/gmenu.c Normal file

File diff suppressed because it is too large Load Diff

130
gio/gmenu.h Normal file
View File

@ -0,0 +1,130 @@
/*
* Copyright © 2011 Canonical Ltd.
*
* This library 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; either version 2 of the
* licence, or (at your option) any later version.
*
* This library 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 library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
#ifndef __G_MENU_H__
#define __G_MENU_H__
#include <gio/gmenumodel.h>
G_BEGIN_DECLS
#define G_TYPE_MENU (g_menu_get_type ())
#define G_MENU(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
G_TYPE_MENU, GMenu))
#define G_IS_MENU(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
G_TYPE_MENU))
#define G_TYPE_MENU_ITEM (g_menu_item_get_type ())
#define G_MENU_ITEM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
G_TYPE_MENU_ITEM, GMenuItem))
#define G_IS_MENU_ITEM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
G_TYPE_MENU_ITEM))
typedef struct _GMenuItem GMenuItem;
typedef struct _GMenu GMenu;
GType g_menu_get_type (void) G_GNUC_CONST;
GMenu * g_menu_new (void);
void g_menu_freeze (GMenu *menu);
void g_menu_insert_item (GMenu *menu,
gint position,
GMenuItem *item);
void g_menu_prepend_item (GMenu *menu,
GMenuItem *item);
void g_menu_append_item (GMenu *menu,
GMenuItem *item);
void g_menu_remove (GMenu *menu,
gint position);
void g_menu_insert (GMenu *menu,
gint position,
const gchar *label,
const gchar *detailed_action);
void g_menu_prepend (GMenu *menu,
const gchar *label,
const gchar *detailed_action);
void g_menu_append (GMenu *menu,
const gchar *label,
const gchar *detailed_action);
void g_menu_insert_section (GMenu *menu,
gint position,
const gchar *label,
GMenuModel *section);
void g_menu_prepend_section (GMenu *menu,
const gchar *label,
GMenuModel *section);
void g_menu_append_section (GMenu *menu,
const gchar *label,
GMenuModel *section);
void g_menu_insert_submenu (GMenu *menu,
gint position,
const gchar *label,
GMenuModel *submenu);
void g_menu_prepend_submenu (GMenu *menu,
const gchar *label,
GMenuModel *submenu);
void g_menu_append_submenu (GMenu *menu,
const gchar *label,
GMenuModel *submenu);
GType g_menu_item_get_type (void) G_GNUC_CONST;
GMenuItem * g_menu_item_new (const gchar *label,
const gchar *detailed_action);
GMenuItem * g_menu_item_new_submenu (const gchar *label,
GMenuModel *submenu);
GMenuItem * g_menu_item_new_section (const gchar *label,
GMenuModel *section);
void g_menu_item_set_attribute_value (GMenuItem *menu_item,
const char *attribute,
GVariant *value);
void g_menu_item_set_attribute (GMenuItem *menu_item,
const char *attribute,
const gchar *format_string,
...);
void g_menu_item_set_link (GMenuItem *menu_item,
const char *link,
GMenuModel *model);
void g_menu_item_set_label (GMenuItem *menu_item,
const gchar *label);
void g_menu_item_set_submenu (GMenuItem *menu_item,
GMenuModel *submenu);
void g_menu_item_set_section (GMenuItem *menu_item,
GMenuModel *section);
void g_menu_item_set_action_and_target_value (GMenuItem *menu_item,
const gchar *action,
GVariant *target_value);
void g_menu_item_set_action_and_target (GMenuItem *menu_item,
const gchar *action,
const gchar *format_string,
...);
void g_menu_item_set_detailed_action (GMenuItem *menu_item,
const gchar *detailed_action);
G_END_DECLS
#endif /* __G_MENU_H__ */