[gnome-games] Remove extraneous widget packing



commit 14a53aa8f49c72db7847477d1338998a643410dd
Author: Christian Persch <chpe gnome org>
Date:   Wed Apr 22 14:27:04 2009 +0200

    Remove extraneous widget packing
    
    Make GamesControlsList a GtkScrolledWindow directly, instead of a vbox
    containing a scrolled window containing the listview.
---
 libgames-support/games-controls.c |   46 ++++++++++++++++++++++++-------------
 libgames-support/games-controls.h |    4 +-
 2 files changed, 32 insertions(+), 18 deletions(-)

diff --git a/libgames-support/games-controls.c b/libgames-support/games-controls.c
index 9967bbb..12f475a 100644
--- a/libgames-support/games-controls.c
+++ b/libgames-support/games-controls.c
@@ -153,16 +153,31 @@ conf_value_changed_cb (GamesConf *conf,
 
 /* Class implementation */
 
-G_DEFINE_TYPE (GamesControlsList, games_controls_list, GTK_TYPE_VBOX)
+G_DEFINE_TYPE (GamesControlsList, games_controls_list, GTK_TYPE_SCROLLED_WINDOW)
 
 static void
-games_controls_list_init (GamesControlsList * list)
+games_controls_list_init (GamesControlsList *list)
 {
+}
+
+static GObject *
+games_controls_list_constructor (GType type,
+                                 guint n_construct_properties,
+                                 GObjectConstructParam *construct_params)
+{
+  GObject *object;
+  GamesControlsList *list;
+  GtkScrolledWindow *scrolled_window;
   GtkTreeViewColumn *column;
   GtkCellRenderer *label_renderer, *key_renderer;
-  GtkWidget *scroll;
   GtkListStore *store;
 
+  object = G_OBJECT_CLASS (games_controls_list_parent_class)->constructor
+             (type, n_construct_properties, construct_params);
+
+  list = GAMES_CONTROLS_LIST (object);
+  scrolled_window = GTK_SCROLLED_WINDOW (object);
+
   store = gtk_list_store_new (N_COLUMNS,
                               G_TYPE_STRING,
                               G_TYPE_STRING,
@@ -205,20 +220,14 @@ games_controls_list_init (GamesControlsList * list)
 						     NULL);
   gtk_tree_view_append_column (GTK_TREE_VIEW (list->view), column);
 
-  scroll = gtk_scrolled_window_new (NULL, NULL);
-  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
-				  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll),
-				       GTK_SHADOW_IN);
-
-  gtk_container_add (GTK_CONTAINER (scroll), list->view);
-
-  gtk_box_pack_start (GTK_BOX (list), scroll, TRUE, TRUE, 0);
+  gtk_container_add (GTK_CONTAINER (scrolled_window), list->view);
 
   list->notify_handler_id = g_signal_connect (games_conf_get_default (),
                                               "value-changed",
                                               G_CALLBACK (conf_value_changed_cb),
                                               list);
+
+  return object;
 }
 
 static void
@@ -235,11 +244,12 @@ games_controls_list_finalize (GObject *object)
 }
 
 static void
-games_controls_list_class_init (GamesControlsListClass * class)
+games_controls_list_class_init (GamesControlsListClass *klass)
 {
-  GObjectClass *oclass = G_OBJECT_CLASS (class);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  oclass->finalize = games_controls_list_finalize;
+  gobject_class->constructor = games_controls_list_constructor;
+  gobject_class->finalize = games_controls_list_finalize;
 }
 
 /* Public API */
@@ -249,7 +259,11 @@ games_controls_list_new (const char *conf_group)
 {
   GamesControlsList *list;
 
-  list = g_object_new (GAMES_TYPE_CONTROLS_LIST, NULL);
+  list = g_object_new (GAMES_TYPE_CONTROLS_LIST,
+                       "hscrollbar-policy", GTK_POLICY_NEVER,
+                       "vscrollbar-policy", GTK_POLICY_AUTOMATIC,
+                       "shadow-type", GTK_SHADOW_IN,
+                       NULL);
 
   list->conf_group = g_strdup (conf_group);
 
diff --git a/libgames-support/games-controls.h b/libgames-support/games-controls.h
index b301ed7..e28bb17 100644
--- a/libgames-support/games-controls.h
+++ b/libgames-support/games-controls.h
@@ -23,7 +23,7 @@ typedef struct _GamesControlsList       GamesControlsList;
 typedef struct _GamesControlsListClass  GamesControlsListClass;
 
 struct _GamesControlsList {
-  GtkVBox vbox;
+  GtkScrolledWindow parent_instance;
 
   GtkTreeModel *model;
   GtkListStore *store;
@@ -34,7 +34,7 @@ struct _GamesControlsList {
 };
 
 struct _GamesControlsListClass {
-  GtkVBoxClass parent_class;
+  GtkScrolledWindowClass parent_class;
 };
 
 GType games_controls_list_get_type (void);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]