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