static void mate_panel_applet_locked_change_notify (GSettings *settings, gchar *key, GtkWidget *applet) { gboolean locked; gboolean applet_locked; AppletInfo *info; PanelWidget *panel_widget; g_assert (applet != NULL); info = (AppletInfo *) g_object_get_data (G_OBJECT (applet), "applet_info"); if (info == NULL) return; locked = g_settings_get_boolean (settings, key); panel_widget = mate_panel_applet_get_panel_widget (info); applet_locked = panel_widget_get_applet_locked (panel_widget, info->widget); if ((locked && applet_locked) || !(locked || applet_locked)) return; mate_panel_applet_toggle_locked (info); if (info->type == PANEL_OBJECT_APPLET) mate_panel_applet_frame_sync_menu_state (MATE_PANEL_APPLET_FRAME (info->widget)); else mate_panel_applet_recreate_menu (info); }
void mate_panel_applet_add_callback (AppletInfo *info, const char *callback_name, const char *stock_item, const char *menuitem_text, CallbackEnabledFunc is_enabled_func) { AppletUserMenu *menu; g_return_if_fail (info != NULL); g_return_if_fail (mate_panel_applet_get_callback (info->user_menu, callback_name) == NULL); menu = g_new0 (AppletUserMenu, 1); menu->name = g_strdup (callback_name); menu->stock_item = g_strdup (stock_item); menu->text = g_strdup (menuitem_text); menu->is_enabled_func = is_enabled_func; menu->sensitive = TRUE; menu->info = info; menu->menuitem = NULL; menu->submenu = NULL; info->user_menu = g_list_append (info->user_menu, menu); mate_panel_applet_recreate_menu (info); }
static void mate_panel_applet_locked_change_notify (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, GtkWidget *applet) { MateConfValue *value; gboolean locked; gboolean applet_locked; AppletInfo *info; PanelWidget *panel_widget; g_assert (applet != NULL); info = (AppletInfo *) g_object_get_data (G_OBJECT (applet), "applet_info"); if (info == NULL) return; value = mateconf_entry_get_value (entry); if (value == NULL || value->type != MATECONF_VALUE_BOOL) return; locked = mateconf_value_get_bool (value); panel_widget = mate_panel_applet_get_panel_widget (info); applet_locked = panel_widget_get_applet_locked (panel_widget, info->widget); if ((locked && applet_locked) || !(locked || applet_locked)) return; mate_panel_applet_toggle_locked (info); if (info->type == PANEL_OBJECT_APPLET) mate_panel_applet_frame_sync_menu_state (MATE_PANEL_APPLET_FRAME (info->widget)); else mate_panel_applet_recreate_menu (info); }