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

mickey at gta01.hmw-consulting.de mickey at gta01.hmw-consulting.de
Thu Jan 4 16:13:01 CET 2007


Author: mickey
Date: 2007-01-04 16:13:00 +0100 (Thu, 04 Jan 2007)
New Revision: 504

Modified:
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h
Log:
mokoui/MokoPanelApplet: add API for setting size and offset, fix positioning non-menu popups


Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c	2007-01-04 15:07:15 UTC (rev 503)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.c	2007-01-04 15:13:00 UTC (rev 504)
@@ -272,16 +272,16 @@
     mb_tray_app_get_absolute_coords( self->mb_applet, &x_abs, &y_abs );
     moko_debug( "-- abs position = %d, %d", x_abs, y_abs );
 
-    x = x_abs;
-    y = y_abs + mb_tray_app_height( self->mb_applet ) + 4;
+    *x = x_abs;
+    *y = y_abs + mb_tray_app_height( self->mb_applet ) + 4;
 
-    if ( x + win_w > DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
-            x = DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_w - 2;
+    if ( *x + win_w > DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
+            *x = DisplayWidth( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_w - 2;
 
-    if ( y + win_h > DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
-            y = DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_h - mb_tray_app_height( self->mb_applet ) - 2;
+    if ( *y + win_h > DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) )
+            *y = DisplayHeight( mb_tray_app_xdisplay( self->mb_applet ), mb_tray_app_xscreen( self->mb_applet ) ) - win_h - mb_tray_app_height( self->mb_applet ) - 2;
 
-    moko_debug( "-- final position = %d, %d", x, y );
+    moko_debug( "-- final position = %d, %d", *x, *y );
 }
 
 void moko_panel_applet_signal_clicked(MokoPanelApplet* self)
@@ -348,13 +348,13 @@
         gtk_container_add( GTK_CONTAINER(self->window), self->popup[type] );
         g_signal_connect( G_OBJECT(self->window), "button-press-event", G_CALLBACK(_moko_panel_applet_window_clicked), self );
         gtk_widget_add_events( self->window, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK );
-        //gtk_widget_realize( self->window );
-
+        gtk_widget_realize( self->window );
+        gtk_widget_show_all( self->window );
         int x = 0;
         int y = 0;
         moko_panel_applet_get_positioning_hint( self, self->popup, &x, &y );
         gtk_window_move( self->window, x, y );
-        gtk_widget_show_all( self->window );
+        //gtk_widget_set_uposition( self->window, x, y );
         gdk_pointer_grab( GTK_WIDGET(self->window)->window, TRUE, GDK_BUTTON_PRESS_MASK, NULL, NULL, CurrentTime );
     }
 
@@ -378,3 +378,13 @@
         self->window = 0L;
     }
 }
+
+void moko_panel_applet_request_size(MokoPanelApplet* self, int x, int y)
+{
+    mb_tray_app_request_size( self->mb_applet, x, y );
+}
+
+void moko_panel_applet_request_offset(MokoPanelApplet* self, int offset)
+{
+    mb_tray_app_request_offset( self->mb_applet, offset );
+}

Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h	2007-01-04 15:07:15 UTC (rev 503)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-panel-applet.h	2007-01-04 15:13:00 UTC (rev 504)
@@ -70,12 +70,17 @@
 GType moko_panel_applet_get_type();
 MokoPanelApplet* moko_panel_applet_new();
 
+/* simple interface */
 void moko_panel_applet_set_icon(MokoPanelApplet* self, const gchar* filename);
 void moko_panel_applet_get_positioning_hint(MokoPanelApplet* self, GtkWidget* popup, int* x, int* y);
 void moko_panel_applet_set_popup(MokoPanelApplet* self, GtkWidget* popup, MokoPanelAppletPopupType type);
 void moko_panel_applet_open_popup(MokoPanelApplet* self, MokoPanelAppletPopupType type);
 void moko_panel_applet_close_popup(MokoPanelApplet* self);
 
+/* advanced interface */
+void moko_panel_applet_request_size(MokoPanelApplet* self, int x, int y);
+void moko_panel_applet_request_offset(MokoPanelApplet* self, int offset);
+
 G_END_DECLS
 
 #endif // _MOKO_PANEL_APPLET_H_





More information about the commitlog mailing list