]> spindle.queued.net Git - midori/commitdiff
Add Tab Size to preferences dialog
authorChristian Dywan <christian@twotoasts.de>
Wed, 19 Dec 2007 01:49:23 +0000 (02:49 +0100)
committerChristian Dywan <christian@twotoasts.de>
Wed, 19 Dec 2007 10:56:51 +0000 (11:56 +0100)
src/browser.c
src/conf.h
src/prefs.c

index 2f2fec3d7d9708779758a9714a71c8e70167ea45..b71ab37848f00fc4e27f2ad125a1d3851d6dea6a 100644 (file)
@@ -1296,7 +1296,6 @@ CBrowser* browser_new(CBrowser* oldBrowser)
     browser->webView_name = gtk_label_new(xbel_item_get_title(browser->sessionItem));
     gtk_misc_set_alignment(GTK_MISC(browser->webView_name), 0.0, 0.5);
     // TODO: make the tab initially look "unvisited" until it's focused
-    // TODO: tabs should shrink when there is not enough space
     // TODO: gtk's tab scrolling is weird?
     gint w, h;
     sokoke_widget_get_text_size(browser->webView_name, "M", &w, &h);
index 059695be7fe8ee330b8fcdf048ceb0588eadec10..ef414991424d7f0b169d206cd16041cf2b6aae34 100644 (file)
@@ -28,7 +28,6 @@ typedef struct _CConfig
     gboolean panelShow;
     guint    panelActive;
     gchar*   panelPageholder;
-    // TODO: What about this? Support it or fix tab shrinking and drop it?
     guint    tabSize; // tab size in charcters
     gboolean tabClose;
     gboolean toolbarWebSearch;
index c2b1a5eb03308f2a9c397c338d982010f05561f9..ce557c903d63730893cfb0e05197264e93edf06a 100644 (file)
@@ -99,7 +99,7 @@ static void on_prefs_toolbarSmall_toggled(GtkWidget* widget, CPrefs* prefs)
      , config_to_toolbariconsize(config->toolbarSmall));
 }
 
-static void on_prefs_closeButtonsOnTabs_toggled(GtkWidget* widget, CPrefs* prefs)
+static void on_prefs_tabClose_toggled(GtkWidget* widget, CPrefs* prefs)
 {
     config->tabClose = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
     GList* items = browsers;
@@ -112,6 +112,22 @@ static void on_prefs_closeButtonsOnTabs_toggled(GtkWidget* widget, CPrefs* prefs
     g_list_free(items);
 }
 
+static void on_prefs_tabSize_changed(GtkWidget* widget, CPrefs* prefs)
+{
+    config->tabSize = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widget));
+    gint w, h;
+    sokoke_widget_get_text_size(prefs->browser->webView_name, "M", &w, &h);
+    GList* items = browsers;
+    do
+    {
+        CBrowser* browser = (CBrowser*)items->data;
+        gtk_widget_set_size_request(GTK_WIDGET(browser->webView_name)
+         , w * config->tabSize, -1);
+    }
+    while((items = g_list_next(items)));
+    g_list_free(items);
+}
+
 static void on_prefs_toolbarWebSearch_toggled(GtkWidget* widget, CPrefs* prefs)
 {
     config->toolbarWebSearch = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
@@ -487,8 +503,17 @@ GtkWidget* prefs_preferences_dialog_new(CBrowser* browser)
      ("Show close _buttons on tabs");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->tabClose);
     g_signal_connect(checkbutton, "toggled"
-     , G_CALLBACK(on_prefs_closeButtonsOnTabs_toggled), prefs);
-    SPANNED_ADD(checkbutton, 0, 2, 0, 1);
+     , G_CALLBACK(on_prefs_tabClose_toggled), prefs);
+    SPANNED_ADD(checkbutton, 0, 1, 0, 1);
+    hbox = gtk_hbox_new(FALSE, 4);
+    gtk_box_pack_start(GTK_BOX(hbox)
+     , gtk_label_new_with_mnemonic("Tab Si_ze"), FALSE, FALSE, 0);
+    spinbutton = gtk_spin_button_new_with_range(0, 36, 1);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbutton), config->tabSize);
+    g_signal_connect(spinbutton, "changed"
+     , G_CALLBACK(on_prefs_tabSize_changed), prefs);
+    gtk_box_pack_start(GTK_BOX(hbox), spinbutton, FALSE, FALSE, 0);
+    FILLED_ADD(hbox, 1, 2, 0, 1);
     INDENTED_ADD(gtk_label_new_with_mnemonic("Tabbar _placement"), 0, 1, 1, 2);
     combobox = gtk_combo_box_new_text();
     sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox)