void panel_menu_bar_load_from_gsettings (PanelWidget* panel, gboolean locked, int position, gboolean exactpos, const char* id) { panel_menu_bar_load(panel, locked, position, exactpos, id); }
static gboolean panel_object_loader_idle_handler (gpointer dummy) { PanelObjectToLoad *object = NULL; PanelToplevel *toplevel = NULL; PanelWidget *panel_widget; GSList *l; char *iid = NULL; PanelObjectType object_type; char *object_type_detail = NULL; gboolean ret; if (!panel_objects_to_load) { panel_object_loader_have_idle = FALSE; return FALSE; } for (l = panel_objects_to_load; l; l = l->next) { object = l->data; toplevel = panel_toplevel_get_by_id (object->toplevel_id); if (toplevel) break; } if (!l) { /* All the remaining objects don't have a panel */ for (l = panel_objects_to_load; l; l = l->next) free_object_to_load (l->data); g_slist_free (panel_objects_to_load); panel_objects_to_load = NULL; panel_object_loader_have_idle = FALSE; if (panel_objects_loading == NULL) { /* unhide any potential initially hidden toplevel */ panel_object_loader_queue_initial_unhide_toplevels (NULL); } return FALSE; } panel_objects_to_load = g_slist_delete_link (panel_objects_to_load, l); panel_objects_loading = g_slist_append (panel_objects_loading, object); panel_widget = panel_toplevel_get_panel_widget (toplevel); iid = g_settings_get_string (object->settings, PANEL_OBJECT_IID_KEY); ret = panel_object_iid_to_type (iid, &object_type, &object_type_detail); if (!ret) { g_printerr ("Object '%s' has an invalid iid ('%s')\n", object->id, iid); panel_object_loader_stop_loading (object->id); g_free (iid); return TRUE; } g_free (iid); switch (object_type) { case PANEL_OBJECT_APPLET: panel_applet_frame_load (panel_widget, object->id, object->settings); break; case PANEL_OBJECT_MENU: panel_menu_button_load (panel_widget, object->id, object->settings); break; case PANEL_OBJECT_LAUNCHER: launcher_load (panel_widget, object->id, object->settings); break; case PANEL_OBJECT_ACTION: panel_action_button_load (panel_widget, object->id, object->settings, object_type_detail); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_load (panel_widget, object->id, object->settings); break; case PANEL_OBJECT_SEPARATOR: panel_separator_load (panel_widget, object->id, object->settings); break; case PANEL_OBJECT_USER_MENU: panel_user_menu_load (panel_widget, object->id, object->settings); break; default: g_assert_not_reached (); break; } /* We load applets asynchronously, so we specifically don't call * panel_object_loader_stop_loading() for this type. */ if (object_type != PANEL_OBJECT_APPLET) panel_object_loader_stop_loading (object->id); return TRUE; }