static PanelToplevel *
create_drawer_toplevel (const char *drawer_id)
{
	PanelToplevel *toplevel;
	GConfClient   *client;
	const char    *key;
	char          *toplevel_id;

	client  = panel_gconf_get_client ();

	toplevel_id = panel_profile_find_new_id (PANEL_GCONF_TOPLEVELS);
	
	toplevel = panel_profile_load_toplevel (client, PANEL_CONFIG_DIR,
						PANEL_GCONF_TOPLEVELS, toplevel_id);

	if (!toplevel) {
		g_free (toplevel_id);
		return NULL;
	}

	key = panel_gconf_full_key (PANEL_GCONF_OBJECTS, drawer_id, "attached_toplevel_id");
	gconf_client_set_string (client, key, toplevel_id, NULL);
	g_free (toplevel_id);

	panel_profile_set_toplevel_enable_buttons (toplevel, TRUE);
	panel_profile_set_toplevel_enable_arrows (toplevel, TRUE);

	return toplevel;
}
void
drawer_load_from_gconf (PanelWidget *panel_widget,
			gboolean     locked,
			gint         position,
			const char  *id)
{
	GConfClient *client;
	const char  *key;
	gboolean     use_custom_icon;
	char        *toplevel_id;
	char        *custom_icon;
	char        *tooltip;

	g_return_if_fail (panel_widget != NULL);
	g_return_if_fail (id != NULL);

	client  = panel_gconf_get_client ();

	key = panel_gconf_full_key (PANEL_GCONF_OBJECTS, id, "attached_toplevel_id");
	toplevel_id = gconf_client_get_string (client, key, NULL);

	panel_profile_load_toplevel (client, PANEL_CONFIG_DIR, PANEL_GCONF_TOPLEVELS, toplevel_id);

	key = panel_gconf_full_key (PANEL_GCONF_OBJECTS, id, "use_custom_icon");
	use_custom_icon = gconf_client_get_bool (client, key, NULL);
	
	key = panel_gconf_full_key (PANEL_GCONF_OBJECTS, id, "custom_icon");
	custom_icon = gconf_client_get_string (client, key, NULL);

	key = panel_gconf_full_key (PANEL_GCONF_OBJECTS, id, "tooltip");
	tooltip = gconf_client_get_string (client, key, NULL);

	load_drawer_applet (toplevel_id,
			    custom_icon,
			    use_custom_icon,
			    tooltip,
			    panel_widget->toplevel,
			    locked,
			    position,
			    TRUE,
			    id);

	g_free (toplevel_id);
	g_free (custom_icon);
	g_free (tooltip);
}
Example #3
0
void
drawer_load_from_gsettings (PanelWidget *panel_widget,
                            gboolean     locked,
                            gint         position,
                            const char  *id)
{
    gboolean     use_custom_icon;
    char        *toplevel_id;
    char        *custom_icon;
    char        *tooltip;
    gchar       *path;
    GSettings   *settings;

    g_return_if_fail (panel_widget != NULL);
    g_return_if_fail (id != NULL);

    path = g_strdup_printf ("%s%s/", PANEL_OBJECT_PATH, id);
    settings = g_settings_new_with_path (PANEL_OBJECT_SCHEMA, path);
    g_free (path);

    toplevel_id = g_settings_get_string (settings, PANEL_OBJECT_ATTACHED_TOPLEVEL_ID_KEY);

    panel_profile_load_toplevel (toplevel_id);

    use_custom_icon = g_settings_get_boolean (settings, PANEL_OBJECT_USE_CUSTOM_ICON_KEY);
    custom_icon = g_settings_get_string (settings, PANEL_OBJECT_CUSTOM_ICON_KEY);

    tooltip = g_settings_get_string (settings, PANEL_OBJECT_TOOLTIP_KEY);

    load_drawer_applet (toplevel_id,
                        settings,
                        custom_icon,
                        use_custom_icon,
                        tooltip,
                        panel_widget->toplevel,
                        locked,
                        position,
                        TRUE,
                        id);

    g_free (toplevel_id);
    g_free (custom_icon);
    g_free (tooltip);
}
Example #4
0
static PanelToplevel *
create_drawer_toplevel (const char *drawer_id, GSettings *settings)
{
	PanelToplevel *toplevel;
	char          *toplevel_id;

	toplevel_id = panel_profile_find_new_id (PANEL_GSETTINGS_TOPLEVELS);
	toplevel = panel_profile_load_toplevel (toplevel_id);

	if (!toplevel) {
		g_free (toplevel_id);
		return NULL;
	}

	g_settings_set_string (settings, PANEL_OBJECT_ATTACHED_TOPLEVEL_ID_KEY, toplevel_id);
	g_free (toplevel_id);

	panel_profile_set_toplevel_enable_buttons (toplevel, TRUE);
	panel_profile_set_toplevel_enable_arrows (toplevel, TRUE);

	return toplevel;
}