Add Tab Size to preferences dialog

This commit is contained in:
Christian Dywan 2007-12-19 02:49:23 +01:00
parent 118baa716e
commit 6994580e28
3 changed files with 28 additions and 5 deletions

View file

@ -1296,7 +1296,6 @@ CBrowser* browser_new(CBrowser* oldBrowser)
browser->webView_name = gtk_label_new(xbel_item_get_title(browser->sessionItem)); 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); 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: 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? // TODO: gtk's tab scrolling is weird?
gint w, h; gint w, h;
sokoke_widget_get_text_size(browser->webView_name, "M", &w, &h); sokoke_widget_get_text_size(browser->webView_name, "M", &w, &h);

View file

@ -28,7 +28,6 @@ typedef struct _CConfig
gboolean panelShow; gboolean panelShow;
guint panelActive; guint panelActive;
gchar* panelPageholder; gchar* panelPageholder;
// TODO: What about this? Support it or fix tab shrinking and drop it?
guint tabSize; // tab size in charcters guint tabSize; // tab size in charcters
gboolean tabClose; gboolean tabClose;
gboolean toolbarWebSearch; gboolean toolbarWebSearch;

View file

@ -99,7 +99,7 @@ static void on_prefs_toolbarSmall_toggled(GtkWidget* widget, CPrefs* prefs)
, config_to_toolbariconsize(config->toolbarSmall)); , 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)); config->tabClose = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
GList* items = browsers; GList* items = browsers;
@ -112,6 +112,22 @@ static void on_prefs_closeButtonsOnTabs_toggled(GtkWidget* widget, CPrefs* prefs
g_list_free(items); 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) static void on_prefs_toolbarWebSearch_toggled(GtkWidget* widget, CPrefs* prefs)
{ {
config->toolbarWebSearch = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); 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"); ("Show close _buttons on tabs");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->tabClose); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbutton), config->tabClose);
g_signal_connect(checkbutton, "toggled" g_signal_connect(checkbutton, "toggled"
, G_CALLBACK(on_prefs_closeButtonsOnTabs_toggled), prefs); , G_CALLBACK(on_prefs_tabClose_toggled), prefs);
SPANNED_ADD(checkbutton, 0, 2, 0, 1); 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); INDENTED_ADD(gtk_label_new_with_mnemonic("Tabbar _placement"), 0, 1, 1, 2);
combobox = gtk_combo_box_new_text(); combobox = gtk_combo_box_new_text();
sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox) sokoke_combo_box_add_strings(GTK_COMBO_BOX(combobox)