r1785 - trunk/src/target/OM-2007/openmoko-libs/libmokoui

mickey at sita.openmoko.org mickey at sita.openmoko.org
Mon Apr 16 21:06:09 CEST 2007


Author: mickey
Date: 2007-04-16 21:06:08 +0200 (Mon, 16 Apr 2007)
New Revision: 1785

Modified:
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tree-view.c
Log:
libmokoui: remove some warnings


Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c	2007-04-16 18:47:17 UTC (rev 1784)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c	2007-04-16 19:06:08 UTC (rev 1785)
@@ -65,12 +65,12 @@
 moko_pixmap_button_class_init (MokoPixmapButtonClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
-    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
 
     /* register private data */
     g_type_class_add_private (klass, sizeof (MokoPixmapButtonPrivate));
 
     /* hook virtual methods */
+    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
     widget_class->size_request = moko_pixmap_button_size_request;
 
     /* install properties */
@@ -123,14 +123,14 @@
 moko_pixmap_button_init (MokoPixmapButton *self)
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
-    
+
     moko_debug( "moko_pixmap_button_init" );
     gtk_button_set_focus_on_click( GTK_BUTTON(self), FALSE ); //FIXME probably don't need this when focus is invisible
     GTK_WIDGET_UNSET_FLAGS( GTK_WIDGET(self), GTK_CAN_FOCUS); // The default value of can-focus is TRUE, So it is necessory
 
     priv->buttonvbox = gtk_vbox_new (FALSE, 0);
     gtk_container_add (GTK_CONTAINER (self), priv->buttonvbox);
-    
+
     g_signal_connect( G_OBJECT(self), "clicked", G_CALLBACK(cb_button_clicked), NULL );
 }
 
@@ -150,7 +150,7 @@
                           "focus-padding", &focus_pad,
                           "size-request", &size_request, // modified
                           NULL);
-    
+
     if ( size_request && size_request->left + size_request->right + size_request->top + size_request->bottom ) // new fixed thing
     {
         moko_debug( "moko_pixmap_button_size_request: style requested size = '%d x %d'", size_request->right, size_request->bottom );
@@ -162,7 +162,7 @@
             GtkRequisition child_requisition;
             gtk_widget_size_request (GTK_BIN (button)->child, &child_requisition);
         }
-        
+
     }
     else // old dynamic routine
     {
@@ -213,18 +213,18 @@
 moko_pixmap_button_set_action_btn_upper_stock (MokoPixmapButton* self, const gchar *stock_name)
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
-	  
+
     if ( priv->actionbtnstockimage )
         return;
-	  
+
     GtkWidget *upperalignment = gtk_alignment_new (0.5, 0.5, 1, 1);
     gtk_box_pack_start (GTK_BOX (priv->buttonvbox), upperalignment, TRUE, TRUE, 0);
-    
+
     priv->actionbtnstockimage = gtk_image_new_from_stock (stock_name, GTK_ICON_SIZE_BUTTON);
     gtk_container_add (GTK_CONTAINER (upperalignment), priv->actionbtnstockimage);
-	  
+
     gtk_misc_set_alignment (GTK_MISC (priv->actionbtnstockimage), 0.5, 0.0);
-    
+
     gtk_widget_show_all (GTK_WIDGET (priv->buttonvbox));
 }
 
@@ -235,26 +235,26 @@
 
     if ( priv->actionbtnlowerlabel )
         return;
-    
+
     GtkWidget *loweralignment = gtk_alignment_new (0.5, 0.5, 1, 1);
     gtk_box_pack_start (GTK_BOX (priv->buttonvbox), loweralignment, TRUE, TRUE, 0);
-    
+
     priv->actionbtnlowerlabel = gtk_label_new (label);
-    
+
     gtk_container_add (GTK_CONTAINER (loweralignment), priv->actionbtnlowerlabel);
-    
+
     gtk_widget_set_size_request (priv->actionbtnlowerlabel, 38, 23);  //FIXME get size from style
     gtk_misc_set_alignment (GTK_MISC (priv->actionbtnlowerlabel), 0.5, 0.0);
-    
+
     gtk_widget_show_all (GTK_WIDGET (priv->buttonvbox));
-    
+
 }
 
 void
 moko_pixmap_button_set_center_stock (MokoPixmapButton* self, const gchar *stock_name)
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
-	  
+
     if ( priv->centerimage )
         return;
 
@@ -263,7 +263,7 @@
 
     priv->centerimage = gtk_image_new_from_stock (stock_name, GTK_ICON_SIZE_DND);
     gtk_container_add (GTK_CONTAINER (loweralignment), priv->centerimage);
-	  
+
     gtk_widget_show_all (GTK_WIDGET (priv->buttonvbox));
 }
 
@@ -272,7 +272,7 @@
 moko_pixmap_button_set_center_image (MokoPixmapButton* self, GtkWidget* image)
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
-	  
+
     if ( priv->centerimage )
         return;
 
@@ -281,7 +281,7 @@
 
     priv->centerimage = image;
     gtk_container_add (GTK_CONTAINER (loweralignment), priv->centerimage);
-	  
+
     gtk_widget_show_all (GTK_WIDGET (priv->buttonvbox));
 }
 
@@ -300,22 +300,22 @@
 moko_pixmap_button_set_finger_toolbox_btn_center_image_pixbuf (MokoPixmapButton* self, GdkPixbuf* pixbuf)
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
-	  
+
     GdkPixbuf *dest_pixbuf = gdk_pixbuf_scale_simple (pixbuf, 35, 35, GDK_INTERP_NEAREST);
 
     if ( priv->fingertoolboxbtnimage == NULL )
     {
         priv->fingertoolboxbtnloweralignment = gtk_alignment_new (0.45, 0.28, 0, 0);
         gtk_box_pack_start (GTK_BOX (priv->buttonvbox), priv->fingertoolboxbtnloweralignment, TRUE, TRUE, 0);
-    
+
     }
     else
     {
         gtk_container_remove (GTK_CONTAINER (priv->fingertoolboxbtnloweralignment), priv->fingertoolboxbtnimage);
     }
-	  
+
     priv->fingertoolboxbtnimage = gtk_image_new_from_pixbuf (dest_pixbuf);
     gtk_container_add (GTK_CONTAINER (priv->fingertoolboxbtnloweralignment), priv->fingertoolboxbtnimage);
-    
+
     gtk_widget_show_all (GTK_WIDGET (priv->buttonvbox));
 }

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tree-view.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tree-view.c	2007-04-16 18:47:17 UTC (rev 1784)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-tree-view.c	2007-04-16 19:06:08 UTC (rev 1785)
@@ -18,16 +18,27 @@
 
 #include "moko-tree-view.h"
 
-G_DEFINE_TYPE (MokoTreeView, moko_tree_view, GTK_TYPE_TREE_VIEW);
+#undef DEBUG_THIS_FILE
+#ifdef DEBUG_THIS_FILE
+#define moko_debug(fmt,...) g_debug(fmt,##__VA_ARGS__)
+#define moko_debug_minder(predicate) moko_debug( __FUNCTION__ ); g_return_if_fail(predicate)
+#else
+#define moko_debug(fmt,...)
+#endif
 
+G_DEFINE_TYPE (MokoTreeView, moko_tree_view, GTK_TYPE_TREE_VIEW)
+
 #define TREE_VIEW_PRIVATE(o)     (G_TYPE_INSTANCE_GET_PRIVATE ((o), MOKO_TYPE_TREE_VIEW, MokoTreeViewPrivate))
 
 typedef struct _MokoTreeViewPrivate
 {
 } MokoTreeViewPrivate;
 
+/* parent class pointer */
+GObjectClass* parent_class = NULL;
+
 /* forward declarations */
-/* ... */
+void moko_tree_view_size_request(GtkWidget* widget, GtkRequisition* requisition);
 
 static void
 moko_tree_view_dispose (GObject *object)
@@ -45,13 +56,16 @@
 static void
 moko_tree_view_class_init (MokoTreeViewClass *klass)
 {
-    GObjectClass *object_class = G_OBJECT_CLASS (klass);
+    /* hook parent */
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+    parent_class = g_type_class_peek_parent( klass );
 
     /* register private data */
-    g_type_class_add_private (klass, sizeof (MokoTreeViewPrivate));
+    g_type_class_add_private( klass, sizeof (MokoTreeViewPrivate) );
 
     /* hook virtual methods */
-    /* ... */
+    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
+    widget_class->size_request = moko_tree_view_size_request;
 
     /* install properties */
     /* ... */
@@ -79,6 +93,30 @@
     return GTK_WIDGET(g_object_new(moko_tree_view_get_type(), "model", model, NULL));
 }
 
+/* reimplemented to enforce entry-height granularity */
+void moko_tree_view_size_request(GtkWidget* widget, GtkRequisition* requisition)
+{
+    moko_debug( "moko_tree_view_size_request" );
+    MokoTreeView* self = MOKO_TREE_VIEW(widget);
+    GTK_WIDGET_CLASS(parent_class)->size_request( widget, requisition );
+#if 0 /* it doesn't work with size_request... should we try overwriting size_alloc? */
+    moko_debug( "-- [old] requesting %d, %d", requisition->width, requisition->height );
+
+    // compute height as a whole-number factor of the cell height
+    GtkTreeViewColumn* first_column = gtk_tree_view_get_column( GTK_TREE_VIEW(self), 0 );
+    g_assert( first_column ); // fail here if no columns added yet
+    gint cr_x_offset;
+    gint cr_y_offset;
+    gint cr_width;
+    gint cr_height;
+    gtk_tree_view_column_cell_get_size( first_column, NULL, &cr_x_offset, &cr_y_offset, &cr_width, &cr_height );
+
+    // prevent half cells to be visible
+    requisition->height -= requisition->height % (cr_height+2);
+    moko_debug( "-- [old] requesting %d, %d", requisition->width, requisition->height );
+#endif
+}
+
 void moko_tree_view_append_column(MokoTreeView* self, GtkTreeViewColumn* column)
 {
     gtk_tree_view_column_set_alignment( column, 0.5 );
@@ -90,13 +128,13 @@
 
     g_object_set( G_OBJECT(column),
                   "resizable", TRUE,
-                  "reorderable", TRUE,
+                  "reorderable", FALSE,
                   "sort-indicator", TRUE,
                   NULL );
 
 }
 
-_moko_tree_view_adjustment_changed(GtkAdjustment* adj, MokoTreeView* self)
+void _moko_tree_view_adjustment_changed(GtkAdjustment* adj, MokoTreeView* self)
 {
     // compute value for vadjustment
     gtk_tree_view_set_fixed_height_mode( GTK_TREE_VIEW(self), TRUE );





More information about the commitlog mailing list