Exemple #1
0
JNIEXPORT void JNICALL
Java_org_gnome_gtk_GtkMenuBar_gtk_1menu_1bar_1set_1pack_1direction
(
	JNIEnv* env,
	jclass cls,
	jlong _self,
	jint _packDir
)
{
	GtkMenuBar* self;
	GtkPackDirection packDir;

	// convert parameter self
	self = (GtkMenuBar*) _self;

	// convert parameter packDir
	packDir = (GtkPackDirection) _packDir;

	// call function
	gtk_menu_bar_set_pack_direction(self, packDir);

	// cleanup parameter self

	// cleanup parameter packDir
}
Exemple #2
0
int
main(int argc, char* argv[]) {
	GtkWidget *win;
	GtkCssProvider *cssprovider;

	/* Disable global menus */
	g_unsetenv ("UBUNTU_MENUPROXY");
	gtk_init(&argc, &argv);
	win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	g_signal_connect(win, "realize", G_CALLBACK(on_realize), NULL);

	cssprovider = gtk_css_provider_new ();
	gtk_css_provider_load_from_data(cssprovider,
			"GtkMenuBar {\n"
			"    -GtkMenuBar-internal-padding: 0;\n"
			"    -GtkMenuBar-shadow-type: none;\n"
			"}\n"
			"GtkWidget {\n"
			"    -GtkWidget-focus-line-width: 0;\n"
			"    -GtkWidget-focus-padding: 0;\n"
			"}\n"
			".menuitem {\n"
			"    padding: 0px 0px 0px 0px;\n"
			"}\n", -1, NULL);

	gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
		GTK_STYLE_PROVIDER (cssprovider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);

	GtkWidget* menubar = gtk_menu_bar_new();
	gtk_menu_bar_set_pack_direction(GTK_MENU_BAR(menubar), GTK_PACK_DIRECTION_RTL);
	int i;
	for(i = 0; indicators[i]; i++) {
		if (!load_module(indicators[i], menubar)) {
			g_error("Unable to load module");
		}
	}
	GtkWidget* hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3);
	gtk_container_add(GTK_CONTAINER(win), hbox);
	gtk_box_pack_end(GTK_BOX(hbox), menubar, FALSE, FALSE, 0);
	g_signal_connect_after(menubar, "draw", G_CALLBACK(on_draw), NULL);
	g_signal_connect(win, "draw", G_CALLBACK(on_draw), NULL);
	gtk_widget_show_all(win);
	gdk_window_process_updates(gtk_widget_get_window(win), TRUE);
	gtk_widget_set_app_paintable(win, TRUE);
	gtk_main();
	return 0;
}
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);
}
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);
}