r311 - trunk/src/target/OM-2007/openmoko-libs/libmokoui
ken_zhao at gta01.hmw-consulting.de
ken_zhao at gta01.hmw-consulting.de
Wed Dec 6 07:22:54 CET 2006
Author: ken_zhao
Date: 2006-12-06 06:22:48 +0000 (Wed, 06 Dec 2006)
New Revision: 311
Modified:
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.h
Log:
mokoui:add tow methods to set toolbox action button image and label
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 2006-12-05 19:05:27 UTC (rev 310)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c 2006-12-06 06:22:48 UTC (rev 311)
@@ -36,6 +36,7 @@
typedef struct _MokoPixmapButtonPrivate
{
GtkMenu *menu;
+ GtkWidget *buttonvbox;
} MokoPixmapButtonPrivate;
static void
@@ -101,28 +102,33 @@
static void
cb_button_clicked(MokoPixmapButton* self, gpointer data)
{
- MokoPixmapButtonPrivate *priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+ MokoPixmapButtonPrivate *priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
- if (!priv->menu)
- return;
+ if (!priv->menu)
+ return;
- if (!GTK_WIDGET_VISIBLE(priv->menu))
+ if (!GTK_WIDGET_VISIBLE(priv->menu))
{
- /* we get here only when the menu is activated by a key
- * press, so that we can select the first menu item */
- gtk_menu_popup (priv->menu, NULL, NULL,
- (GtkMenuPositionFunc) cb_menu_position_func,
- self, 0, gtk_get_current_event_time ());
+ /* we get here only when the menu is activated by a key
+ * press, so that we can select the first menu item */
+ gtk_menu_popup (priv->menu, NULL, NULL,
+ (GtkMenuPositionFunc) cb_menu_position_func,
+ self, 0, gtk_get_current_event_time ());
+ }
}
-}
static void
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
g_object_set_property( G_OBJECT(self), "can-focus", FALSE ); //FIXME probably don't need this when focus is invisible
+ 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 );
}
@@ -142,7 +148,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 );
@@ -197,3 +203,37 @@
g_assert( !priv->menu ); //FIXME what's canon for these things? a) Error out or b) just don't do it or c) free the old menu and set the new one?
priv->menu = menu;
}
+
+
+void
+moko_pixmap_button_set_action_btn_upper_stock (MokoPixmapButton* self, const gchar *stock_name)
+{
+ MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+
+ GtkWidget *upperalignment = gtk_alignment_new (1, 0.5, 0, 0);
+ gtk_box_pack_start (GTK_BOX (priv->buttonvbox), upperalignment, TRUE, TRUE, 0);
+
+ GtkWidget *stock_image = gtk_image_new_from_stock (stock_name, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (upperalignment), stock_image);
+
+ gtk_misc_set_alignment (GTK_MISC (stock_image), 1, 0.2);
+}
+
+void
+moko_pixmap_button_set_action_btn_lower_label (MokoPixmapButton* self, const gchar *label)
+{
+
+ MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+
+ GtkWidget *loweralignment = gtk_alignment_new (1, 0.5, 0, 0);
+ gtk_box_pack_start (GTK_BOX (priv->buttonvbox), loweralignment, TRUE, TRUE, 0);
+
+ GtkWidget *lowerlabel = gtk_label_new (label);
+ gtk_container_add (GTK_CONTAINER (loweralignment), lowerlabel);
+
+ gtk_misc_set_alignment (GTK_MISC (lowerlabel), 0.5, 0);
+
+}
+
+
+
Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.h
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.h 2006-12-05 19:05:27 UTC (rev 310)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.h 2006-12-06 06:22:48 UTC (rev 311)
@@ -21,6 +21,7 @@
#include <gtk/gtkbutton.h>
#include <gtk/gtkmenu.h>
+#include <gtk/gtkvbox.h>
#include <glib-object.h>
@@ -46,6 +47,9 @@
GtkWidget* moko_pixmap_button_new(void);
void moko_pixmap_button_set_menu(MokoPixmapButton* self, GtkMenu* menu);
+void moko_pixmap_button_set_action_btn_upper_stock (MokoPixmapButton* self, const gchar *stock_name);
+void moko_pixmap_button_set_action_btn_lower_label (MokoPixmapButton* self, const gchar *label);
+
G_END_DECLS
#endif // _MOKO_PIXMAP_BUTTON_H_
More information about the commitlog
mailing list