Exemplo n.º 1
0
void termit_on_set_tab_name()
{
    GtkWidget *dlg = gtk_dialog_new_with_buttons(
        _("Tab name"), 
        GTK_WINDOW(termit.main_window), 
        GTK_DIALOG_MODAL, 
        GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
    gtk_dialog_set_default_response(GTK_DIALOG(dlg), GTK_RESPONSE_ACCEPT);
    gtk_window_set_modal(GTK_WINDOW(dlg), TRUE);

    gint page = gtk_notebook_get_current_page(GTK_NOTEBOOK(termit.notebook));
    TERMIT_GET_TAB_BY_INDEX(pTab, page);
    GtkWidget *label = gtk_label_new(_("Tab name"));
    GtkWidget *entry = gtk_entry_new();
    gtk_entry_set_text(
        GTK_ENTRY(entry), 
        gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(termit.notebook), pTab->hbox));
    
    GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
    gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, FALSE, 5);
    
    g_signal_connect(G_OBJECT(dlg), "key-press-event", G_CALLBACK(dlg_key_press), dlg);

    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dlg))), hbox, FALSE, FALSE, 10);
    gtk_widget_show_all(dlg);
    
    if (GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(dlg))) {
        termit_tab_set_title(pTab, gtk_entry_get_text(GTK_ENTRY(entry)));
        pTab->custom_tab_name = TRUE;
    }
    
    gtk_widget_destroy(dlg);
}
Exemplo n.º 2
0
static void get_path()
{
	if(first_run == 1) {
		for(gint i = 0; i < gtk_notebook_get_n_pages(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook)); i++) {
			GtkWidget *page;
			const gchar *page_name;

			page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), i);
			page_name = gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), page);
			if(page_name && strcmp(page_name, "Tree Browser") == 0) {
				treebrowser_entry = find_entry(GTK_CONTAINER(page));
				break;
			}
		}
	}
	
	if(treebrowser_entry == NULL) {
		GeanyProject *project = geany->app->project;
		if(project) {
			base_directory = project->base_path;
		}
		else {
			base_directory = geany->prefs->default_open_path;
		}	
	}
	else {
		base_directory = gtk_entry_get_text(GTK_ENTRY(treebrowser_entry));
	}
}
Exemplo n.º 3
0
void C4DevmodeDlg::SwitchPage(GtkWidget* widget)
{
	bool is_visible = gtk_widget_get_visible(GTK_WIDGET(window));

	// Remember window position
	if (window != NULL && is_visible)
		gtk_window_get_position(GTK_WINDOW(window), &x, &y);

	if (widget != NULL)
	{
		assert(window != NULL);

		// Show required page
		int page_num = gtk_notebook_page_num(GTK_NOTEBOOK(notebook), widget);
		assert(page_num != -1); // Make sure it is contained

		gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), page_num);
		gtk_window_set_title(GTK_WINDOW(window), gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(notebook), widget));

		// Show window if not visible
		if (!is_visible)
		{
			gtk_widget_show(window);
			if (x != -1 || y != -1)
				gtk_window_move(GTK_WINDOW(window), x, y);
		}
	}
	else
	{
		if (window != NULL && is_visible)
			gtk_widget_hide(window);
	}
}
Exemplo n.º 4
0
static GtkWidget *
gnc_prefs_find_page (GtkNotebook *notebook, const gchar *name)
{
    int n_pages, i;
    GtkWidget *child;
    const gchar *child_name;

    g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
    g_return_val_if_fail (name, NULL);

    ENTER("");

    n_pages = gtk_notebook_get_n_pages (notebook);

    for (i = 0; i < n_pages; i++)
    {
        child = gtk_notebook_get_nth_page (notebook, i);
        g_return_val_if_fail (child, NULL);

        child_name = gtk_notebook_get_tab_label_text (notebook, child);
        g_return_val_if_fail (child_name, NULL);

        if (g_utf8_collate (name, child_name) == 0)
        {
            LEAVE("found at index: %d", i);
            return child;
        }
    }

    LEAVE("not found");
    return NULL;
}
Exemplo n.º 5
0
static gint
luaH_notebook_get_title(lua_State *L)
{
    widget_t *w = luaH_checkudata(L, 1, &widget_class);
    widget_t *child = luaH_checkudata(L, 2, &widget_class);
    lua_pushstring(L, gtk_notebook_get_tab_label_text(
        GTK_NOTEBOOK(w->widget), child->widget));
    return 1;
}
Exemplo n.º 6
0
void on_radar_changed(GtkMenuItem *menu, AWeatherGui *self)
{
	city_t *city = g_object_get_data(G_OBJECT(menu), "city");
	grits_viewer_set_location(self->viewer,
			city->pos.lat, city->pos.lon, EARTH_R/35);
	/* Focus radar tab */
	GtkWidget *config = aweather_gui_get_widget(self, "main_tabs");
	gint       npages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(config));
	for (int i = 0; i < npages; i++) {
		GtkWidget   *child  = gtk_notebook_get_nth_page(GTK_NOTEBOOK(config), i);
		const gchar *plugin = gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(config), child);
		if (g_str_equal(plugin, "radar"))
			gtk_notebook_set_current_page(GTK_NOTEBOOK(config), i);
	}
}
Exemplo n.º 7
0
static void switch_page_cb      (GtkNotebook     *notebook,
                                 GtkNotebookPage *page,
                                 guint            page_num,
                                 gpointer         user_data)
{
    GtkWidget *pg;
    gchar *title;


    pg = gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbook), page_num);
    title = g_strdup_printf (_("GPREDICT: %s"),
                             gtk_notebook_get_tab_label_text (GTK_NOTEBOOK (nbook), pg));
    gtk_window_set_title (GTK_WINDOW (app), title);
    g_free (title);
}
Exemplo n.º 8
0
int
clip_GTK_NOTEBOOKGETTABLABELTEXT(ClipMachine * cm)
{
	C_widget     *cntb = _fetch_cw_arg(cm);
	C_widget   *cchild = _fetch_cwidget(cm,_clip_spar(cm,2));
        gchar        *text ;

	CHECKCWID(cntb,GTK_IS_NOTEBOOK);
	CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cchild,GTK_IS_WIDGET);
	text = (gchar *)gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(cntb->widget),
		GTK_WIDGET(cchild->widget));
	LOCALE_TO_UTF(text);
        _clip_retc(cm, text);
        FREE_TEXT(text);
	return 0;
err:
	return 1;
}
Exemplo n.º 9
0
void OnButtonAddRule(GtkWidget *pButton, gpointer data){
  GtkWidget *pDialog;
  GtkWidget *pChild;
  gint iPageNum;
  const gchar *sTabLabel;

  /* Recuperation de la page active */
  //iPageNum = gtk_notebook_get_current_page(GTK_NOTEBOOK(data));
  iPageNum = gtk_notebook_get_current_page(dw->pNotebook);

  //si on est deja sur la page rule, on ne fait rien
  if(iPageNum != 1){
    gchar *sDialogText;
    /* Recuperation du widget enfant */
    pChild = gtk_notebook_get_nth_page(dw->pNotebook, iPageNum);
    
    /* Recuperation du label de l'onglet */
    sTabLabel = gtk_notebook_get_tab_label_text(dw->pNotebook, pChild);
    
    /* Creation du label de la boite de dialogue */
    sDialogText = g_strdup_printf("C'est la page %d\n"
				  "Le label de l'onglet est \"%s\"\n",
				  iPageNum,
				  sTabLabel);
    
    pDialog = gtk_message_dialog_new (NULL,
				      GTK_DIALOG_MODAL,
				      GTK_MESSAGE_INFO,
				      GTK_BUTTONS_OK,
				      sDialogText);
    
    gtk_dialog_run(GTK_DIALOG(pDialog));
    
    gtk_widget_destroy(pDialog);
    
    gtk_notebook_set_current_page (dw->pNotebook, (gint)0);
    
    g_free(sDialogText);
  }
}
/* Creates the title of the dialog taking into account the current 
 * page of the notebook. */
static void
create_title                                    (HildonWizardDialog *wizard_dialog)
{
    gint pages, current;
    gchar *str = NULL;
    HildonWizardDialogPrivate *priv = HILDON_WIZARD_DIALOG_GET_PRIVATE (wizard_dialog);
    GtkNotebook *notebook;

    g_assert (priv);
    notebook = priv->notebook;

    if (! notebook)
        return;

    /* Get page information, we'll need that when creating title */
    pages = gtk_notebook_get_n_pages (notebook);
    current = gtk_notebook_get_current_page (priv->notebook);
    if (current < 0)
        current = 0;

    /* the welcome title on the initial page */
    if (current == 0) {
        str = g_strdup_printf (_("ecdg_ti_wizard_welcome"),
                priv->wizard_name);
    } else {
        const gchar *steps = gtk_notebook_get_tab_label_text (notebook,
                gtk_notebook_get_nth_page (notebook, current));

        if (steps) {
          str = g_strdup_printf ("%s%s %s", priv->wizard_name, _("ecdg_ti_caption_separator"), steps);
        } else {
          str = g_strdup (priv->wizard_name);
        }
    }

    /* Update the dialog to display the generated title */
    gtk_window_set_title (GTK_WINDOW (wizard_dialog), str);
    g_free (str);
}
Exemplo n.º 11
0
static void
update_window_title ()
{
    gint pgn,num;
    GtkWidget *pg;
    gchar *title;


    /* get number of pages */
    num = gtk_notebook_get_n_pages (GTK_NOTEBOOK (nbook));

    if (num == 0) {
        gtk_window_set_title (GTK_WINDOW (app), _("GPREDICT: (none)"));
    }
    else {
        pgn = gtk_notebook_get_current_page (GTK_NOTEBOOK (nbook));
        pg = gtk_notebook_get_nth_page (GTK_NOTEBOOK (nbook), pgn);
        title = g_strdup_printf (_("GPREDICT: %s"),
                                 gtk_notebook_get_tab_label_text (GTK_NOTEBOOK (nbook), pg));
        gtk_window_set_title (GTK_WINDOW (app), title);
        g_free (title);
    }
}
Exemplo n.º 12
0
static bool current_tab_is(GtkNotebook *nb, GtkWidget *w, const char *str) {
  const char *name = gtk_notebook_get_tab_label_text(nb, w);

  return (strcmp(name, _(str)) == 0);
}
Exemplo n.º 13
0
void
dlg_preferences (GthBrowser *browser)
{
	DialogData       *data;
	GtkWidget        *notebook;
	GList            *children;
	GList            *scan;
	int               page_num;
	GtkWidget        *list_box;
	GtkTreeSelection *selection;

	if (gth_browser_get_dialog (browser, "preferences") != NULL) {
		gtk_window_present (GTK_WINDOW (gth_browser_get_dialog (browser, "preferences")));
		return;
	}

	data = g_new0 (DialogData, 1);
	data->browser = browser;
	data->builder = _gtk_builder_new_from_file ("preferences.ui", NULL);
	data->dialog = GET_WIDGET ("preferences_dialog");

	gtk_container_set_border_width (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), 0);
	gth_browser_set_dialog (browser, "preferences", data->dialog);
	gth_hook_invoke ("dlg-preferences-construct", data->dialog, data->browser, data->builder);

	/* widgets */

	list_box = GET_WIDGET ("tabs_listbox");
	notebook = GET_WIDGET ("notebook");
	children = gtk_container_get_children (GTK_CONTAINER (notebook));
	page_num = 0;
	for (scan = children; scan; scan = scan->next) {
		GtkWidget   *child = scan->data;
		const char  *name;
		GtkWidget   *row;
		GtkWidget   *box;
		GtkWidget   *label;

		name = gtk_notebook_get_tab_label_text (GTK_NOTEBOOK (notebook), child);
		if (name == NULL)
			continue;

		if (scan != children)
			_gtk_list_box_add_separator (GTK_LIST_BOX (list_box));

		row = gtk_list_box_row_new ();
		g_object_set_data (G_OBJECT (row), "gth.page_num", GINT_TO_POINTER (page_num));
		gtk_widget_show (row);
		gtk_container_add (GTK_CONTAINER (list_box), row);

		box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
		gtk_container_set_border_width (GTK_CONTAINER (box), 10);
		gtk_widget_show (box);
		gtk_container_add (GTK_CONTAINER (row), box);

		label = gtk_label_new (name);
		gtk_label_set_ellipsize (GTK_LABEL(label), PANGO_ELLIPSIZE_END);
		gtk_widget_show (label);
		gtk_container_add (GTK_CONTAINER (box), label);

		page_num += 1;
	}

	/* Set the signals handlers. */

	g_signal_connect (data->dialog,
			  "destroy",
			  G_CALLBACK (destroy_cb),
			  data);
	g_signal_connect (list_box,
			  "row-activated",
			  G_CALLBACK (list_box_row_activated_cb),
			  data);

	/* run dialog. */

	gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (browser));
	gtk_widget_show (data->dialog);
}
Exemplo n.º 14
0
/* "delete-event" handler for
 * windowstatic gboolean can_read_to_text_view;
 */
static gboolean
delete_event (GtkWidget *widget, GdkEvent *event)
{
    int *not_saved_tabs_array = NULL;
    int not_saved_tabs_array_size = 0;
    int i;
    
    /* Checking which files has been modified */
    for (i = 0; i < code_widget_array_size; i++)
    {
        if (is_file_modified (i))
        {
            not_saved_tabs_array = g_realloc (not_saved_tabs_array,
                                             (not_saved_tabs_array_size + 1)*sizeof (int));
            not_saved_tabs_array [not_saved_tabs_array_size] = i;
            not_saved_tabs_array_size ++;
        }
    }

    if (not_saved_tabs_array_size == 0)
    {
        GtkBuilder *dialog_builder = gtk_builder_new ();
        gtk_builder_add_from_file (dialog_builder, "./ui/closing_dialog.glade", NULL);
        GObject *dialog = gtk_builder_get_object (dialog_builder, "dialog");
        int response = gtk_dialog_run (GTK_DIALOG (dialog));
        gtk_widget_destroy (GTK_WIDGET (dialog));
        if (response == 0)
            return TRUE;
        else
            return FALSE;
    }
    
    /* Creating confirmation dialog */
    GtkWidget *dialog = gtk_dialog_new_with_buttons ("gIDLE",
                                                    GTK_WINDOW (window),
                                                    GTK_DIALOG_DESTROY_WITH_PARENT,
                                                    "Close without saving", 2, 
                                                    "Save", 1, "Cancel", 0, NULL);
    
    GtkWidget *not_saved_chk_array [not_saved_tabs_array_size];
    GtkWidget *dialog_content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));

    for (i = 0; i < not_saved_tabs_array_size; i++)
    {
        const gchar *label;
        label = gtk_notebook_get_tab_label_text (GTK_NOTEBOOK (notebook),
                                                code_widget_array [i]->vbox);

        not_saved_chk_array [i] = gtk_check_button_new_with_label (label);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (not_saved_chk_array [i]), TRUE);
        gtk_box_pack_start (GTK_BOX (dialog_content_area),
                           not_saved_chk_array [i], FALSE, FALSE, 2);
    }
    
    gtk_widget_show_all (dialog);

    int run = gtk_dialog_run (GTK_DIALOG (dialog));
    if (run == 0)
    {
        /* If "Cancel" was clicked */
        g_free (not_saved_tabs_array);
        gtk_widget_destroy (dialog);
        return TRUE;
    }

    if (run == 1)
    {
        /* If "Save" was clicked */
        for (i = 0; i < not_saved_tabs_array_size; i++)
        {
            if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (not_saved_chk_array [i])))
            {
                gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), not_saved_tabs_array [i]);
                file_save_activate (NULL);
            }
        }
        
        return FALSE;
    }
    
    if (run == 2)
    {
        /* If "Close without saving" was clicked */
        g_free (not_saved_tabs_array);
        gtk_widget_destroy (dialog);
        return FALSE;
    }
}
Exemplo n.º 15
0
static gint
tab_cmp (GtkWidget *page_a, GtkWidget *page_b, GtkNotebook *notebook)
{
    return g_utf8_collate (gtk_notebook_get_tab_label_text (notebook, page_a),
                           gtk_notebook_get_tab_label_text (notebook, page_b));
}
Exemplo n.º 16
0
/*!
  \brief shows the tabe visibility chooser window
  \param widget is the widget clicked to get this to come up
  \param data is unused
  \return TRUE on success
  */
G_MODULE_EXPORT gboolean show_tab_visibility_window(GtkWidget * widget, gpointer data)
{
	GladeXML *main_xml = NULL;
	GladeXML *xml = NULL;
	GtkWidget *vbox = NULL;
	GtkWidget *notebook = NULL;
	GtkWidget *table = NULL;
	GtkWidget *child = NULL;
	GtkWidget *label = NULL;
	GtkWidget *button = NULL;
	gboolean *hidden_list = NULL;

	if (!(GTK_IS_WIDGET(vis_window)))
	{
		main_xml = (GladeXML *)DATA_GET(global_data,"main_xml");
		if (!main_xml)
			return FALSE;

		notebook = glade_xml_get_widget(main_xml,"toplevel_notebook");
		hidden_list = (gboolean *)DATA_GET(global_data,"hidden_list");

		xml = glade_xml_new(main_xml->filename,"tab_visibility_top_vbox",NULL);

		vis_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
		gtk_window_set_transient_for(GTK_WINDOW(vis_window),GTK_WINDOW(lookup_widget("main_window")));
		gtk_window_set_title(GTK_WINDOW(vis_window),_("Tab Visibility"));
		gtk_window_set_default_size(GTK_WINDOW(vis_window),200,300);
		g_signal_connect(G_OBJECT(vis_window),"delete_event",
				G_CALLBACK(gtk_widget_hide),vis_window);

		vbox = glade_xml_get_widget(xml,"tab_visibility_top_vbox");
		if (GTK_IS_WIDGET(vbox))
			gtk_container_add(GTK_CONTAINER(vis_window),vbox);
		else
			printf(_("ERROR, glade element not found!\n"));

		gint rows = gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook));
		DATA_SET(global_data,"notebook_rows",GINT_TO_POINTER(rows));
		table = glade_xml_get_widget(xml,"tab_visibility_table");
		gtk_table_resize(GTK_TABLE(table),rows,2);

		for (gint i=0;i<rows;i++)
		{
			child = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook),i);
			button = gtk_check_button_new();
			gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button),hidden_list[i]);
			g_signal_connect(G_OBJECT(button),"toggled",
					G_CALLBACK(hide_tab),
					GINT_TO_POINTER(i));
			gtk_table_attach_defaults(GTK_TABLE(table),button,
					0,1,i+1,i+2);
			label = gtk_label_new(gtk_notebook_get_tab_label_text(GTK_NOTEBOOK(notebook),child));
			gtk_table_attach_defaults(GTK_TABLE(table),label,
					1,2,i+1,i+2);

		}
	}

	gtk_widget_show_all(vis_window);
	return TRUE;
}
Exemplo n.º 17
0
static VALUE
rg_get_tab_label_text(VALUE self, VALUE child)
{
    return CSTR2RVAL(gtk_notebook_get_tab_label_text(_SELF(self), 
                                                     RVAL2WIDGET(child)));
}
Exemplo n.º 18
0
static void
textures_switch_page (GtkNotebook *notebook, GtkWidget *page, guint page_num, const gchar *texture_path)
{
  if (page_num == 0 || g_array_index (textures_timestamps, time_t, page_num) > 0)
    return;

  // fix gtk2
  page = gtk_notebook_get_nth_page (notebook, page_num);

  gtk_container_set_border_width (GTK_CONTAINER (page), 0);
  gtk_widget_set_size_request (page, -1, 480);

  const gchar *category = gtk_notebook_get_tab_label_text(notebook, page);

  /* scrolled window */
  GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
  gtk_box_pack_start (GTK_BOX (page), scrolled_window, TRUE, TRUE, 0);
  gtk_widget_show (scrolled_window);

  /* table */
  gint rows = 5;
  gint cols = 3;
  GtkWidget *table = gtk_table_new (rows, cols, FALSE);
  gtk_table_set_col_spacings (GTK_TABLE (table), 6);
  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
  gtk_container_set_border_width (GTK_CONTAINER (table), 10);
  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), table);
  gtk_widget_show (table);

  gint row = 1;
  gint col = 1;

  const gchar *gimp_dir = gimp_directory ();
  const gchar *texture_dir = g_build_filename (gimp_dir, texture_path, NULL);
  const gchar *path = g_build_filename (texture_dir, category, NULL);

  GDir *dir = g_dir_open (path, 0, NULL);
  if (dir)
  {
    const gchar *dir_ent;
    while (dir_ent = g_dir_read_name (dir))
    {
      if (is_hidden (dir_ent))
        continue;

      gchar *filename = g_build_filename (path, dir_ent, NULL);
      GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
      pixbuf = gdk_pixbuf_scale_simple (pixbuf, THUMBNAIL_SIZE, THUMBNAIL_SIZE, GDK_INTERP_BILINEAR);
      GtkWidget *image = gtk_image_new_from_pixbuf (pixbuf);
      GtkWidget *event_box = gtk_event_box_new ();
      gtk_container_add (GTK_CONTAINER (event_box), image);
      gtk_widget_show (image);
      gtk_table_attach_defaults (GTK_TABLE (table), event_box, col - 1, col, row - 1, row);
      gtk_widget_show (event_box);

      col++;
      if (col > cols)
      {
        row++;
        col = 1;
      }

      g_signal_connect (event_box, "button_press_event", G_CALLBACK (custom_texture_press), filename);
    }
  }

  g_array_index (textures_timestamps, time_t, page_num) = time (NULL);
}