diff options
author | Łukasz 'sil2100' Zemczak <lukasz.zemczak@canonical.com> | 2013-08-20 10:53:01 +0200 |
---|---|---|
committer | Łukasz 'sil2100' Zemczak <lukasz.zemczak@canonical.com> | 2013-08-20 10:53:01 +0200 |
commit | 88b2fd89ff0bc4be81acd8f6d5751dba96e295f8 (patch) | |
tree | 2f231acd79d96f697709586effbabb4928477c89 /src/im-menu.c | |
parent | b25532c6a307381f523a78b4b5fbdeb73896bb3d (diff) | |
download | ayatana-indicator-messages-88b2fd89ff0bc4be81acd8f6d5751dba96e295f8.tar.gz ayatana-indicator-messages-88b2fd89ff0bc4be81acd8f6d5751dba96e295f8.tar.bz2 ayatana-indicator-messages-88b2fd89ff0bc4be81acd8f6d5751dba96e295f8.zip |
Revert rev 352 as it is causing a SIGTRAP on start
Diffstat (limited to 'src/im-menu.c')
-rw-r--r-- | src/im-menu.c | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/src/im-menu.c b/src/im-menu.c deleted file mode 100644 index ac23a29..0000000 --- a/src/im-menu.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright 2013 Canonical Ltd. - * - * This program is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 3, as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranties of - * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - * - * Authors: - * Lars Uebernickel <lars.uebernickel@canonical.com> - */ - -#include "im-menu.h" - -struct _ImMenuPrivate -{ - GMenu *toplevel_menu; - GMenu *menu; - ImApplicationList *applist; -}; - -G_DEFINE_TYPE_WITH_PRIVATE (ImMenu, im_menu, G_TYPE_OBJECT) - -enum -{ - PROP_0, - PROP_APPLICATION_LIST, - NUM_PROPERTIES -}; - -static void -im_menu_finalize (GObject *object) -{ - ImMenuPrivate *priv = im_menu_get_instance_private (IM_MENU (object)); - - g_object_unref (priv->toplevel_menu); - g_object_unref (priv->menu); - g_object_unref (priv->applist); - - G_OBJECT_CLASS (im_menu_parent_class)->finalize (object); -} - -static void -im_menu_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - ImMenuPrivate *priv = im_menu_get_instance_private (IM_MENU (object)); - - switch (property_id) - { - case PROP_APPLICATION_LIST: - g_value_set_object (value, priv->applist); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -im_menu_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - ImMenuPrivate *priv = im_menu_get_instance_private (IM_MENU (object)); - - switch (property_id) - { - case PROP_APPLICATION_LIST: /* construct only */ - priv->applist = g_value_dup_object (value); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -im_menu_class_init (ImMenuClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - - object_class->finalize = im_menu_finalize; - object_class->get_property = im_menu_get_property; - object_class->set_property = im_menu_set_property; - - g_object_class_install_property (object_class, PROP_APPLICATION_LIST, - g_param_spec_object ("application-list", "", "", - IM_TYPE_APPLICATION_LIST, - G_PARAM_CONSTRUCT_ONLY | - G_PARAM_READWRITE | - G_PARAM_STATIC_STRINGS)); -} - -static void -im_menu_init (ImMenu *menu) -{ - ImMenuPrivate *priv = im_menu_get_instance_private (menu); - GMenuItem *root; - - priv->toplevel_menu = g_menu_new (); - priv->menu = g_menu_new (); - - root = g_menu_item_new (NULL, "indicator.messages"); - g_menu_item_set_attribute (root, "x-canonical-type", "s", "com.canonical.indicator.root"); - g_menu_item_set_attribute (root, "action-namespace", "s", "indicator"); - g_menu_item_set_submenu (root, G_MENU_MODEL (priv->menu)); - g_menu_append_item (priv->toplevel_menu, root); - - g_object_unref (root); -} - -ImApplicationList * -im_menu_get_application_list (ImMenu *menu) -{ - ImMenuPrivate *priv; - - g_return_val_if_fail (IM_IS_MENU (menu), FALSE); - - priv = im_menu_get_instance_private (menu); - return priv->applist; -} - -gboolean -im_menu_export (ImMenu *menu, - GDBusConnection *connection, - const gchar *object_path, - GError **error) -{ - ImMenuPrivate *priv; - - g_return_val_if_fail (IM_IS_MENU (menu), FALSE); - - priv = im_menu_get_instance_private (menu); - return g_dbus_connection_export_menu_model (connection, - object_path, - G_MENU_MODEL (priv->toplevel_menu), - error) > 0; -} - -void -im_menu_append_section (ImMenu *menu, - GMenuModel *section) -{ - ImMenuPrivate *priv; - - g_return_if_fail (IM_IS_MENU (menu)); - g_return_if_fail (G_IS_MENU_MODEL (section)); - - priv = im_menu_get_instance_private (menu); - - g_menu_append_section (priv->menu, NULL, section); -} - -void -im_menu_insert_section (ImMenu *menu, - gint position, - const gchar *namespace, - GMenuModel *section) -{ - ImMenuPrivate *priv; - GMenuItem *item; - - g_return_if_fail (IM_IS_MENU (menu)); - g_return_if_fail (G_IS_MENU_MODEL (section)); - - priv = im_menu_get_instance_private (menu); - - /* count from the back if position is < 0 */ - if (position < 0) - position = g_menu_model_get_n_items (G_MENU_MODEL (priv->menu)) + position; - - item = g_menu_item_new_section (NULL, section); - - if (namespace) - g_menu_item_set_attribute (item, "action-namespace", "s", namespace); - - g_menu_insert_item (priv->menu, position, item); - - g_object_unref (item); -} |