Esempio n. 1
0
JNIEXPORT jint JNICALL
Java_org_gnome_gtk_GtkToolbar_gtk_1toolbar_1get_1n_1items
(
	JNIEnv* env,
	jclass cls,
	jlong _self
)
{
	gint result;
	jint _result;
	GtkToolbar* self;

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

	// call function
	result = gtk_toolbar_get_n_items(self);

	// cleanup parameter self

	// translate return value to JNI type
	_result = (jint) result;

	// and finally
	return _result;
}
Esempio n. 2
0
static GtkWidget*
create_toolbar (GtkWidget *window)
{
    /* Create toolbar */
     GtkToolbar *toolbar = GTK_TOOLBAR (gtk_toolbar_new ());
     gtk_toolbar_set_icon_size (toolbar, GTK_ICON_SIZE_LARGE_TOOLBAR);

     GtkToolItem *quit;


     toolbar_add_button (toolbar,
			 gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_FIRST),
			 FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_LEFT));

     toolbar_add_button (toolbar,
			 gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_LAST),
			 FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_RIGHT));

     toolbar_add_button (toolbar,
			 gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_TOP),
			 FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_TOP));


     toolbar_add_button (toolbar,
			 gtk_menu_tool_button_new_from_stock (GTK_STOCK_GOTO_BOTTOM),
			 FOLDING_TAB_PANE_GET_FROM_WINDOW (window, FOLDING_TAB_PANE_BOTTOM));


     gtk_toolbar_insert (GTK_TOOLBAR (toolbar), gtk_separator_tool_item_new(), 
			 gtk_toolbar_get_n_items (toolbar));
     
     quit = gtk_tool_button_new_from_stock (GTK_STOCK_QUIT);

     
     gtk_toolbar_insert (toolbar, quit, 
			 gtk_toolbar_get_n_items (toolbar));


     g_signal_connect (G_OBJECT (quit), "clicked",
		       G_CALLBACK (application_shutdown), toolbar);

     return GTK_WIDGET (toolbar);

}
Esempio n. 3
0
static void
toolbar_add_button (GtkToolbar *toolbar,
		    GtkToolItem *button,
		    FoldingTabPane *pane_to_handle)
{

     gtk_toolbar_insert (toolbar, gtk_separator_tool_item_new(), 
			 gtk_toolbar_get_n_items (toolbar));

     gtk_toolbar_insert (toolbar, button,
			 gtk_toolbar_get_n_items (toolbar));

     gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON (button), 
				    create_toolbar_button_menu ());

     g_signal_connect (G_OBJECT (button), "clicked",
		       G_CALLBACK (toolbar_button_clicked), pane_to_handle);

     
}
static void
set_edit_mode (EggEditableToolbar *etoolbar,
	       gboolean mode)
{
  EggEditableToolbarPrivate *priv = etoolbar->priv;
  int i, l, n_items;

  i = priv->edit_mode;
  if (mode)
    {
      priv->edit_mode++;
    }
  else
    {
      g_return_if_fail (priv->edit_mode > 0);
      priv->edit_mode--;
    }
  i *= priv->edit_mode;

  if (i == 0)
    {
      for (i = get_n_toolbars (etoolbar)-1; i >= 0; i--)
        {
          GtkWidget *toolbar;

          toolbar = get_toolbar_nth (etoolbar, i);
          n_items = gtk_toolbar_get_n_items (GTK_TOOLBAR (toolbar));

          if (n_items == 0 && priv->edit_mode == 0)
            {
              egg_toolbars_model_remove_toolbar (priv->model, i);
            }
          else
            {
              for (l = 0; l < n_items; l++)
                {
                  GtkToolItem *item;

                  item = gtk_toolbar_get_nth_item (GTK_TOOLBAR (toolbar), l);

                  configure_item_cursor (item, etoolbar);
                  configure_item_sensitivity (item, etoolbar);
                }
            }
        }
    }
}
Esempio n. 5
0
/** Show the accelerators in the toolbar */
static void gui_toolbar_show_accelerators(gboolean show_accelerators)
{
	GtkToolbar *tb;
	gint n, i;

	toolbar_show_accelerators = show_accelerators;

	tb = GTK_TOOLBAR(toolbar);

	n = gtk_toolbar_get_n_items(tb);
	for (i = 0; i < n; i++) {
		GtkToolItem *ti;
		GtkToolButton *tbtn;
		gchar *text;
		gint j;

		ti = gtk_toolbar_get_nth_item(tb, i);
		tbtn = GTK_TOOL_BUTTON(ti);
		g_assert(tbtn != NULL);
		if (gtk_major_version == 2 && gtk_minor_version == 10) {
			/* Work around a gtk+ 2.10 bug (#434261) that
			 * mishandles strings like (Fn) in labels.
			 */
			/** @todo BW 2007-04-29 Remove this when gtk 2.10
			 * is no longer supported. */
			gtk_tool_button_set_use_underline(tbtn, FALSE);
		}
		text = g_strdup(gtk_tool_button_get_label(tbtn));
		if (strchr(text, '\n'))
			*strchr(text, '\n') = '\0';
		/* Find the matching entry */
		for (j = 0; j < G_N_ELEMENTS(entries); j++) {
			if (strcmp(text, _(entries[j].label)) == 0) {
				if (show_accelerators) {
					gchar *label;

					if (entries[j].accelerator == NULL
					    ||
					    strlen(entries[j].accelerator)
					    == 0)
						label =
						    g_strdup_printf("%s\n",
								    text);
					else {
						gchar *accelerator_text;
						guint accelerator_key;
						GdkModifierType
						    accelerator_mods;
						gtk_accelerator_parse
						    (entries
						     [j].accelerator,
						     &accelerator_key,
						     &accelerator_mods);
						accelerator_text =
						    gtk_accelerator_get_label
						    (accelerator_key,
						     accelerator_mods);
						label =
						    g_strdup_printf
						    ("%s\n(%s)", text,
						     accelerator_text);
						g_free(accelerator_text);
					}
					gtk_tool_button_set_label(tbtn,
								  label);
					g_free(label);
				} else {
					gtk_tool_button_set_label(tbtn,
								  _(entries
								    [j].
								    label));
				}
				break;
			}
		}
		g_free(text);
	}
	config_set_int("settings/toolbar_show_accelerators",
		       toolbar_show_accelerators);
}
Esempio n. 6
0
static VALUE
rg_n_items(VALUE self)
{
    return INT2NUM(gtk_toolbar_get_n_items(_SELF(self)));
}
Esempio n. 7
0
static void fm_main_win_init(FmMainWin *self)
{
    GtkWidget *vbox, *menubar, *toolitem, *next_btn, *scroll;
    GtkUIManager* ui;
    GtkActionGroup* act_grp;
    GtkAction* act;
    GtkAccelGroup* accel_grp;

    ++n_wins;

    vbox = gtk_vbox_new(FALSE, 0);

    self->hpaned = gtk_hpaned_new();
    gtk_paned_set_position(GTK_PANED(self->hpaned), 150);

    /* places left pane */
    self->places_view = fm_places_view_new();
    scroll = gtk_scrolled_window_new(NULL, NULL);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
    gtk_container_add(GTK_CONTAINER(scroll), self->places_view);
    gtk_paned_add1(GTK_PANED(self->hpaned), scroll);

    /* folder view */
    self->folder_view = fm_folder_view_new( FM_FV_ICON_VIEW );
    fm_folder_view_set_show_hidden(FM_FOLDER_VIEW(self->folder_view), FALSE);
    fm_folder_view_sort(FM_FOLDER_VIEW(self->folder_view), GTK_SORT_DESCENDING, COL_FILE_NAME);
    fm_folder_view_set_selection_mode(FM_FOLDER_VIEW(self->folder_view), GTK_SELECTION_MULTIPLE);
    g_signal_connect(self->folder_view, "clicked", on_file_clicked, self);
    g_signal_connect(self->folder_view, "status", on_status, self);
    g_signal_connect(self->folder_view, "sel-changed", on_sel_changed, self);

    gtk_paned_add2(GTK_PANED(self->hpaned), self->folder_view);

    /* link places view with folder view. */
    g_signal_connect_swapped(self->places_view, "chdir", G_CALLBACK(fm_main_win_chdir), self);

    /* create menu bar and toolbar */
    ui = gtk_ui_manager_new();
    act_grp = gtk_action_group_new("Main");
    gtk_action_group_add_actions(act_grp, main_win_actions, G_N_ELEMENTS(main_win_actions), self);
    gtk_action_group_add_toggle_actions(act_grp, main_win_toggle_actions, G_N_ELEMENTS(main_win_toggle_actions), self);
    gtk_action_group_add_radio_actions(act_grp, main_win_mode_actions, G_N_ELEMENTS(main_win_mode_actions), FM_FV_ICON_VIEW, on_change_mode, self);
    gtk_action_group_add_radio_actions(act_grp, main_win_sort_type_actions, G_N_ELEMENTS(main_win_sort_type_actions), GTK_SORT_ASCENDING, on_sort_type, self);
    gtk_action_group_add_radio_actions(act_grp, main_win_sort_by_actions, G_N_ELEMENTS(main_win_sort_by_actions), 0, on_sort_by, self);

    accel_grp = gtk_ui_manager_get_accel_group(ui);
    gtk_window_add_accel_group(GTK_WINDOW(self), accel_grp);

    gtk_ui_manager_insert_action_group(ui, act_grp, 0);
    gtk_ui_manager_add_ui_from_string(ui, main_menu_xml, -1, NULL);

    menubar = gtk_ui_manager_get_widget(ui, "/menubar");

    self->toolbar = gtk_ui_manager_get_widget(ui, "/toolbar");
    /* FIXME: should make these optional */
    gtk_toolbar_set_icon_size(GTK_TOOLBAR(self->toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);
    gtk_toolbar_set_style(GTK_TOOLBAR(self->toolbar), GTK_TOOLBAR_ICONS);

    /* create 'Next' button manually and add a popup menu to it */
    toolitem = g_object_new(GTK_TYPE_MENU_TOOL_BUTTON, NULL);
    gtk_toolbar_insert(GTK_TOOLBAR(self->toolbar), toolitem, 2);
    gtk_widget_show(GTK_WIDGET(toolitem));
    act = gtk_ui_manager_get_action(ui, "/menubar/GoMenu/Next");
    gtk_activatable_set_related_action(GTK_ACTIVATABLE(toolitem), act);

    /* set up history menu */
    self->nav_history = fm_nav_history_new();
    self->history_menu = gtk_menu_new();
    gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(toolitem), self->history_menu);
    g_signal_connect(toolitem, "show-menu", G_CALLBACK(on_show_history_menu), self);

    self->popup = gtk_ui_manager_get_widget(ui, "/popup");

    gtk_box_pack_start( (GtkBox*)vbox, menubar, FALSE, TRUE, 0 );
    gtk_box_pack_start( (GtkBox*)vbox, self->toolbar, FALSE, TRUE, 0 );

    /* load bookmarks menu */
    load_bookmarks(self, ui);

    /* the location bar */
    self->location = fm_path_entry_new();
    g_signal_connect(self->location, "activate", on_entry_activate, self);
    g_signal_connect(self->folder_view, "loaded", G_CALLBACK(on_view_loaded), (gpointer) self);

    toolitem = gtk_tool_item_new();
    gtk_container_add( GTK_CONTAINER(toolitem), self->location );
    gtk_tool_item_set_expand(GTK_TOOL_ITEM(toolitem), TRUE);
    gtk_toolbar_insert((GtkToolbar*)self->toolbar, toolitem, gtk_toolbar_get_n_items(GTK_TOOLBAR(self->toolbar)) - 1 );

    gtk_box_pack_start( (GtkBox*)vbox, self->hpaned, TRUE, TRUE, 0 );

    /* status bar */
    self->statusbar = gtk_statusbar_new();
    gtk_box_pack_start( (GtkBox*)vbox, self->statusbar, FALSE, TRUE, 0 );
    self->statusbar_ctx = gtk_statusbar_get_context_id(GTK_STATUSBAR(self->statusbar), "status");
    self->statusbar_ctx2 = gtk_statusbar_get_context_id(GTK_STATUSBAR(self->statusbar), "status2");

    g_object_unref(act_grp);
    self->ui = ui;

    gtk_container_add( (GtkContainer*)self, vbox );
    gtk_widget_show_all(vbox);

    fm_folder_view_set_show_hidden(FM_FOLDER_VIEW(self->folder_view), FALSE);
    fm_main_win_chdir(self, fm_path_get_home());

    gtk_widget_grab_focus(self->folder_view);
}