[maemo-commits] [maemo-commits] r12861 - projects/haf/trunk/hildon-fm/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jul 26 21:53:21 EEST 2007
- Previous message: [maemo-commits] r12860 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r12862 - projects/haf/trunk/hildon-fm/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll
Date: 2007-07-26 21:53:20 +0300 (Thu, 26 Jul 2007)
New Revision: 12861
Modified:
projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c
Log:
(hildon_file_selection_init): view_selector is a GtkHBox now.
Using a GtkNotebook would use the space required by the invisible
tabs to calculate the minimum size of the content pane. Changed
all users.
Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c
===================================================================
--- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c 2007-07-26 17:24:36 UTC (rev 12860)
+++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c 2007-07-26 18:53:20 UTC (rev 12861)
@@ -138,6 +138,7 @@
GtkWidget *scroll_thumb;
GtkWidget *dir_tree;
GtkWidget *view[4]; /* List, thumbnail, empty, repair */
+ int cur_view;
GtkWidget *hpaned;
GtkTreeModel *main_model;
@@ -148,7 +149,7 @@
GtkTreeModel *view_filter;
GtkTreeRowReference *current_folder;
- GtkNotebook *view_selector;
+ GtkWidget *view_selector;
GtkFileFilter *filter;
HildonFileSelectionMode mode; /* User requested mode. Actual
@@ -270,13 +271,13 @@
hildon_file_selection_content_pane_visible(HildonFileSelectionPrivate *
priv)
{
- return GTK_WIDGET_VISIBLE(GTK_WIDGET(priv->view_selector));
+ return GTK_WIDGET_VISIBLE(priv->view_selector);
}
static GtkWidget *get_current_view(HildonFileSelectionPrivate * priv)
{
if (hildon_file_selection_content_pane_visible(priv))
- return priv->view[gtk_notebook_get_current_page(priv->view_selector)];
+ return priv->view[priv->cur_view];
return NULL;
}
@@ -318,7 +319,7 @@
if (is_drive)
result = 3;
else if (!ready)
- result = gtk_notebook_get_current_page(priv->view_selector);
+ result = priv->cur_view;
else
result = 2;
}
@@ -401,6 +402,19 @@
return result;
}
+static GtkWidget *
+view_widget (HildonFileSelectionPrivate *priv, int view)
+{
+ /* Horrible...
+ */
+ if (view == 0)
+ return priv->scroll_list;
+ else if (view == 1)
+ return priv->scroll_thumb;
+ else
+ return priv->view[view];
+}
+
static void
hildon_file_selection_inspect_view(HildonFileSelectionPrivate *priv)
{
@@ -411,16 +425,20 @@
if (!hildon_file_selection_content_pane_visible(priv))
return;
- current_page = gtk_notebook_get_current_page(priv->view_selector);
+ current_page = priv->cur_view;
target_page = get_view_to_be_displayed(priv);
- view = get_current_view(priv);
+ view = get_current_view (priv);
if (current_page != target_page)
{
content_focused = GTK_WIDGET_HAS_FOCUS(view) ||
priv->force_content_pane || priv->content_pane_last_used;
- gtk_notebook_set_current_page(priv->view_selector, target_page);
+ gtk_widget_hide (view_widget (priv, current_page));
+ gtk_widget_show (view_widget (priv, target_page));
+ priv->cur_view = target_page;
+ fprintf (stderr, "SHOWING %d -> %d\n", current_page, target_page);
+
if (current_page == HILDON_FILE_SELECTION_MODE_THUMBNAILS &&
target_page == HILDON_FILE_SELECTION_MODE_LIST)
hildon_file_selection_sync_selections(priv, priv->view[1],
@@ -1442,7 +1460,7 @@
hildon_file_selection_set_current_folder_iter(self, &main_iter);
/* Keep the focus in right side if possible */
- activate_view(gtk_notebook_get_current_page(priv->view_selector) == 2 ?
+ activate_view(priv->cur_view == 2 ?
priv->dir_tree : get_current_view(priv));
/* We have to return TRUE, because cancel removes the handler now */
@@ -1763,7 +1781,7 @@
grab_widget = gtk_grab_get_current();
if (grab_widget && GTK_IS_SCROLLBAR(grab_widget) &&
- gtk_widget_is_ancestor(grab_widget, GTK_WIDGET(priv->view_selector)))
+ gtk_widget_is_ancestor(grab_widget, priv->view_selector))
{
ULOG_INFO("User scrolled the window, cancelling autoscrolling");
priv->user_scrolled = TRUE;
@@ -2306,7 +2324,7 @@
gtk_tree_view_column_set_title(col, _("sfil_li_header_name"));
/* Setting sizing to fixed with no "fixed-width" set makes column
to truncate nicely, but still take all available space. */
- /* gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED);*/
+ /* gtk_tree_view_column_set_sizing(col, GTK_TREE_VIEW_COLUMN_FIXED); */
gtk_tree_view_column_set_expand(col, TRUE);
gtk_tree_view_column_set_sort_column_id(col, HILDON_FILE_SELECTION_SORT_NAME);
gtk_tree_view_column_set_clickable(col, TRUE);
@@ -2942,7 +2960,7 @@
self->priv->scroll_dir = gtk_scrolled_window_new(NULL, NULL);
self->priv->scroll_list = gtk_scrolled_window_new(NULL, NULL);
self->priv->scroll_thumb = gtk_scrolled_window_new(NULL, NULL);
- self->priv->view_selector = GTK_NOTEBOOK(gtk_notebook_new());
+ self->priv->view_selector = gtk_hbox_new (FALSE, 0);
self->priv->hpaned = gtk_hpaned_new();
gtk_container_set_border_width(GTK_CONTAINER(self->priv->scroll_dir),
@@ -2950,9 +2968,6 @@
gtk_container_set_border_width(GTK_CONTAINER(self->priv->view_selector),
HILDON_MARGIN_DEFAULT);
- gtk_notebook_set_show_tabs(self->priv->view_selector, FALSE);
- gtk_notebook_set_show_border(self->priv->view_selector, FALSE);
-
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW
(self->priv->scroll_dir),
GTK_POLICY_AUTOMATIC,
@@ -2986,7 +3001,8 @@
/* This needs to exist before set properties are called */
self->priv->view[2] = gtk_label_new(_("hfil_li_no_files_folders_to_show"));
gtk_misc_set_alignment(GTK_MISC(self->priv->view[2]), 0.5f, 0.0f);
- gtk_notebook_append_page(self->priv->view_selector, self->priv->view[2], NULL);
+ gtk_box_pack_start (GTK_BOX (self->priv->view_selector),
+ self->priv->view[2], TRUE, TRUE, 0);
{
GtkWidget *vbox, *label, *button;
@@ -3005,8 +3021,8 @@
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 10);
self->priv->view[3] = vbox;
- gtk_notebook_append_page(self->priv->view_selector,
- self->priv->view[3], NULL);
+ gtk_box_pack_start (GTK_BOX (self->priv->view_selector),
+ self->priv->view[3], TRUE, TRUE, 0);
}
g_signal_connect(self, "grab-notify",
@@ -3056,13 +3072,18 @@
gtk_container_add(GTK_CONTAINER(priv->scroll_list), priv->view[0]);
gtk_container_add(GTK_CONTAINER(priv->scroll_thumb), priv->view[1]);
- gtk_notebook_prepend_page(priv->view_selector, priv->scroll_thumb,
- NULL);
- gtk_notebook_prepend_page(priv->view_selector, priv->scroll_list,
- NULL);
+ gtk_box_pack_start (GTK_BOX (self->priv->view_selector),
+ self->priv->scroll_list, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (self->priv->view_selector),
+ self->priv->scroll_thumb, TRUE, TRUE, 0);
- gtk_widget_show_all(priv->hpaned);
+ gtk_widget_show_all (priv->hpaned);
+ priv->cur_view = 0;
+ gtk_widget_hide (priv->scroll_thumb);
+ gtk_widget_hide (priv->view[2]);
+ gtk_widget_hide (priv->view[3]);
+
/* Also the views of the navigation pane are trees (and this is
needed). Let's deny expanding */
g_signal_connect(priv->view[0], "test-expand-row",
@@ -3841,7 +3862,7 @@
void hildon_file_selection_hide_content_pane(HildonFileSelection * self)
{
g_return_if_fail(HILDON_IS_FILE_SELECTION(self));
- gtk_widget_hide(GTK_WIDGET(self->priv->view_selector));
+ gtk_widget_hide(self->priv->view_selector);
}
/**
@@ -3855,7 +3876,7 @@
void hildon_file_selection_show_content_pane(HildonFileSelection * self)
{
g_return_if_fail(HILDON_IS_FILE_SELECTION(self));
- gtk_widget_show(GTK_WIDGET(self->priv->view_selector));
+ gtk_widget_show (self->priv->view_selector);
hildon_file_selection_selection_changed
(gtk_tree_view_get_selection(GTK_TREE_VIEW(self->priv->dir_tree)),
self); /* Update content pane */
- Previous message: [maemo-commits] r12860 - projects/haf/trunk/hildon-fm/hildon-fm
- Next message: [maemo-commits] r12862 - projects/haf/trunk/hildon-fm/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
