Exemplo n.º 1
0
static void panel_menu_bar_update_orientation(PanelMenuBar* menubar)
{
	GtkPackDirection pack_direction;
	double text_angle;
	float text_xalign;
	float text_yalign;

	pack_direction = GTK_PACK_DIRECTION_LTR;
	text_angle = 0.0;
	text_xalign = 0.0;
	text_yalign = 0.5;

	switch (menubar->priv->orientation)
	{
		case PANEL_ORIENTATION_TOP:
		case PANEL_ORIENTATION_BOTTOM:
			break;
		case PANEL_ORIENTATION_LEFT:
			pack_direction = GTK_PACK_DIRECTION_BTT;
			text_angle = 90.0;
			text_xalign = 0.5;
			text_yalign = 0.0;
			break;
		case PANEL_ORIENTATION_RIGHT:
			pack_direction = GTK_PACK_DIRECTION_TTB;
			text_angle = 270.0;
			text_xalign = 0.5;
			text_yalign = 0.0;
			break;
		default:
			g_assert_not_reached();
			break;
	}

	gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), pack_direction);
	gtk_menu_bar_set_child_pack_direction(GTK_MENU_BAR(menubar), pack_direction);

	set_item_text_angle_and_alignment(menubar->priv->applications_item, text_angle, text_xalign, text_yalign);
	set_item_text_angle_and_alignment(menubar->priv->places_item, text_angle, text_xalign, text_yalign);
	set_item_text_angle_and_alignment(menubar->priv->desktop_item, text_angle, text_xalign, text_yalign);
}
static void
panel_menu_bar_object_update_orientation (PanelMenuBarObject *menubar)
{
    GtkPackDirection pack_direction;
    double           text_angle;
    float            text_xalign;
    float            text_yalign;
    GList           *children, *l;

    pack_direction = GTK_PACK_DIRECTION_LTR;
    text_angle = 0.0;
    text_xalign = 0.0;
    text_yalign = 0.5;

    switch (menubar->priv->orientation) {
    case PANEL_ORIENTATION_TOP:
    case PANEL_ORIENTATION_BOTTOM:
        break;
    case PANEL_ORIENTATION_LEFT:
        pack_direction = GTK_PACK_DIRECTION_BTT;
        text_angle = 90.0;
        text_xalign = 0.5;
        text_yalign = 0.0;
        break;
    case PANEL_ORIENTATION_RIGHT:
        pack_direction = GTK_PACK_DIRECTION_TTB;
        text_angle = 270.0;
        text_xalign = 0.5;
        text_yalign = 0.0;
        break;
    default:
        g_assert_not_reached ();
        break;
    }

    gtk_menu_bar_set_pack_direction (GTK_MENU_BAR (menubar), pack_direction);
    gtk_menu_bar_set_child_pack_direction (GTK_MENU_BAR (menubar), pack_direction);

    children = gtk_container_get_children (GTK_CONTAINER (menubar));
    for (l = children; l != NULL; l = l->next)
        set_item_text_angle_and_alignment (GTK_WIDGET (l->data),
                                           text_angle,
                                           text_xalign,
                                           text_yalign);
    g_list_free (children);
}