Skip to content
Permalink
Browse files

libpanel-applet: Add panel_applet_setup_menu_from_resource() API

Add API to be able to use the new GResource framework.

origin commit:
https://git.gnome.org/browse/gnome-panel/commit/?id=182cefd
  • Loading branch information...
vuntz authored and raveit65 committed Feb 2, 2012
1 parent 36a36dd commit 0b9863fb7c09681c4c62d6c12a199bb4ddffefd2
Showing with 44 additions and 0 deletions.
  1. +1 −0 configure.ac
  2. +40 −0 libmate-panel-applet/mate-panel-applet.c
  3. +3 −0 libmate-panel-applet/mate-panel-applet.h
@@ -30,6 +30,7 @@ AC_PROG_LIBTOOL
AM_PROG_CC_C_O

AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
AC_PATH_PROG([GDBUS_CODEGEN], [gdbus-codegen])

MATE_COMPILE_WARNINGS(maximum)
@@ -711,6 +711,46 @@ mate_panel_applet_setup_menu_from_file (MatePanelApplet *applet,
g_free (xml);
}

/**
* mate_panel_applet_setup_menu_from_resource:
* @applet: a #MatePanelApplet.
* @resource_path: a resource path
* @action_group: a #GtkActionGroup.
*
* Sets up the context menu of @applet. @filename is a resource path to a menu
* XML file, containing a #GtkUIManager UI definition that describes how to
* display the menu items. @action_group contains the various #GtkAction that
* are referenced in @xml.
*
* See also the <link linkend="getting-started.context-menu">Context
* Menu</link> section.
*
* Since: 1.20.1
**/
void
mate_panel_applet_setup_menu_from_resource (MatePanelApplet *applet,
const gchar *resource_path,
GtkActionGroup *action_group)
{
GBytes *bytes;
GError *error = NULL;

bytes = g_resources_lookup_data (resource_path,
G_RESOURCE_LOOKUP_FLAGS_NONE,
&error);

if (bytes) {
mate_panel_applet_setup_menu (applet,
g_bytes_get_data (bytes, NULL),
action_group);
} else {
g_warning ("%s", error->message);
g_error_free (error);
}

g_bytes_unref (bytes);
}

static void
mate_panel_applet_finalize (GObject *object)
{
@@ -111,6 +111,9 @@ void mate_panel_applet_request_focus(MatePanelApplet* applet, guint32 timestamp)

void mate_panel_applet_setup_menu(MatePanelApplet* applet, const gchar* xml, GtkActionGroup* action_group);
void mate_panel_applet_setup_menu_from_file(MatePanelApplet* applet, const gchar* filename, GtkActionGroup* action_group);
void mate_panel_applet_setup_menu_from_resource (MatePanelApplet *applet,
const gchar *resource_path,
GtkActionGroup *action_group);

int mate_panel_applet_factory_main(const gchar* factory_id,gboolean out_process, GType applet_type, MatePanelAppletFactoryCallback callback, gpointer data);

0 comments on commit 0b9863f

Please sign in to comment.
You can’t perform that action at this time.