* actually peform actions the developer must provide callbacks for
* them.
*
+ * To add a #HildonEditToolbar to a window use
+ * hildon_window_set_edit_toolbar().
+ *
* <example>
* <title>HildonEditToolbar example</title>
* <programlisting>
* GtkWidget *window;
- * GtkWidget *vbox;
* GtkWidget *toolbar;
* // Declare more widgets here ...
* <!-- -->
* window = hildon_stackable_window_new ();
- * vbox = gtk_vbox_new (FALSE, 10);
* toolbar = hildon_edit_toolbar_new_with_text ("Choose items to delete", "Delete");
* // Create more widgets here ...
* <!-- -->
- * gtk_container_add (GTK_CONTAINER (window), vbox);
- * gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0);
- * // Pack more widgets here ...
+ * // Add toolbar to window
+ * hildon_window_set_edit_toolbar (HILDON_WINDOW (window), HILDON_EDIT_TOOLBAR (toolbar));
+ * <!-- -->
+ * // Add other widgets ...
* <!-- -->
* g_signal_connect (toolbar, "button-clicked", G_CALLBACK (delete_button_clicked), someparameter);
* g_signal_connect_swapped (toolbar, "arrow-clicked", G_CALLBACK (gtk_widget_destroy), window);
G_DEFINE_TYPE (HildonEditToolbar, hildon_edit_toolbar, GTK_TYPE_HBOX);
+#define TOOLBAR_LEFT_PADDING 8
+#define TOOLBAR_RIGHT_PADDING 8
+
#define HILDON_EDIT_TOOLBAR_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
HILDON_TYPE_EDIT_TOOLBAR, HildonEditToolbarPrivate));
hildon_edit_toolbar_init (HildonEditToolbar *self)
{
HildonEditToolbarPrivate *priv = HILDON_EDIT_TOOLBAR_GET_PRIVATE (self);
+ GtkWidget *separator;
+ GtkAlignment *align;
GtkBox *hbox = GTK_BOX (self);
+ GtkBox *hbox2;
+ hbox2 = GTK_BOX (gtk_hbox_new (FALSE, 0));
+ align = GTK_ALIGNMENT (gtk_alignment_new (0, 0.5, 1, 1));
priv->label = GTK_LABEL (gtk_label_new (NULL));
- priv->button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_AUTO_WIDTH | HILDON_SIZE_FINGER_HEIGHT));
+ priv->button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_AUTO));
+ separator = gtk_vseparator_new ();
priv->arrow = GTK_BUTTON (gtk_button_new ());
- gtk_button_set_image (priv->arrow, gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_LARGE_TOOLBAR));
- gtk_button_set_relief (priv->arrow, GTK_RELIEF_NONE);
gtk_button_set_focus_on_click (priv->arrow, FALSE);
g_signal_connect (priv->button, "clicked", G_CALLBACK (button_clicked_cb), self);
g_signal_connect (priv->arrow, "clicked", G_CALLBACK (arrow_clicked_cb), self);
- gtk_box_set_spacing (hbox, 10);
+ gtk_box_set_spacing (hbox, 0);
+ gtk_alignment_set_padding (align, 0, 0, TOOLBAR_LEFT_PADDING, TOOLBAR_RIGHT_PADDING);
+ gtk_widget_set_name (GTK_WIDGET (self), "toolbar-edit-mode");
gtk_widget_set_name (GTK_WIDGET (priv->arrow), "hildon-edit-toolbar-arrow");
- gtk_box_pack_start (hbox, GTK_WIDGET (priv->label), TRUE, TRUE, 0);
- gtk_box_pack_start (hbox, GTK_WIDGET (priv->button), FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (hbox2));
+ gtk_box_pack_start (hbox2, GTK_WIDGET (priv->label), TRUE, TRUE, 0);
+ gtk_box_pack_start (hbox2, GTK_WIDGET (priv->button), FALSE, FALSE, 0);
+
+ gtk_box_pack_start (hbox, GTK_WIDGET (align), TRUE, TRUE, 0);
+ gtk_box_pack_start (hbox, separator, FALSE, FALSE, 0);
gtk_box_pack_start (hbox, GTK_WIDGET (priv->arrow), FALSE, FALSE, 0);
gtk_misc_set_alignment (GTK_MISC (priv->label), 0, 0.5);
- gtk_widget_show (GTK_WIDGET (priv->label));
- gtk_widget_show (GTK_WIDGET (priv->button));
- gtk_widget_show (GTK_WIDGET (priv->arrow));
+ gtk_widget_show_all (GTK_WIDGET (align));
+ gtk_widget_show_all (separator);
+ gtk_widget_show_all (GTK_WIDGET (priv->arrow));
}
/**