*/
#include <gtk/gtk.h>
-#include <hildon.h>
+#include <hildon/hildon.h>
+
+HildonEntry *mainentry;
+
+static void
+set_text_button_clicked (GtkButton *button,
+ HildonEntry *entry)
+{
+ hildon_entry_set_text (mainentry, hildon_entry_get_text (entry));
+}
static void
-reset_entry (HildonEntry *entry)
+set_placeholder_button_clicked (GtkButton *button,
+ HildonEntry *entry)
{
- hildon_entry_set_placeholder (entry, "Placeholder text");
+ hildon_entry_set_placeholder (mainentry, hildon_entry_get_text (entry));
}
static void
{
GtkWidget *win;
GtkWidget *label;
- GtkWidget *entry;
- GtkWidget *button;
- GtkWidget *label3;
- GtkWidget *label2;
+ GtkWidget *textentry, *textbutton, *texthbox;
+ GtkWidget *placeholderentry, *placeholderbutton, *placeholderhbox;
GtkBox *vbox;
- gtk_init (&argc, &argv);
-
- gtk_rc_parse_string ("style \"placeholder\" {\n"
- "text[NORMAL] = \"#C03030\""
- "}\n"
- "widget \"*.hildon-entry-placeholder\" style \"placeholder\"\n");
+ hildon_gtk_init (&argc, &argv);
+ /* Window and vbox to pack everything */
win = hildon_stackable_window_new ();
vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
- label = gtk_label_new ("HildonEntry example");
- entry = hildon_entry_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
- button = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
- label2 = gtk_label_new ("Contents of the entry:");
- label3 = gtk_label_new (NULL);
+ /* Entry to modify the text of the main HildonEntry */
+ textentry = hildon_entry_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
+ textbutton = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
+ gtk_button_set_label (GTK_BUTTON (textbutton), "Set entry text");
+ texthbox = gtk_hbox_new (FALSE, 10);
- gtk_button_set_label (GTK_BUTTON (button), "Reset entry");
- reset_entry (HILDON_ENTRY (entry));
- text_changed (HILDON_ENTRY (entry), NULL, GTK_LABEL (label3));
+ /* Entry to modify the placeholder of the main HildonEntry */
+ placeholderentry = hildon_entry_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
+ placeholderbutton = hildon_gtk_button_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH);
+ gtk_button_set_label (GTK_BUTTON (placeholderbutton), "Set entry placeholder");
+ placeholderhbox = gtk_hbox_new (FALSE, 10);
+ /* Main HildonEntry - this is the one showcased in this example */
+ mainentry = HILDON_ENTRY (hildon_entry_new (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH));
+ hildon_entry_set_placeholder (mainentry, "This is a placeholder - change using the buttons above");
+
+ /* This label is used to show the contents -not the placeholder- of the HildonEntry */
+ label = gtk_label_new (NULL);
+
+ /* Pack all widgets */
+ gtk_box_pack_start (GTK_BOX (texthbox), textentry, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (texthbox), textbutton, FALSE, FALSE, 0);
+
+ gtk_box_pack_start (GTK_BOX (placeholderhbox), placeholderentry, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (placeholderhbox), placeholderbutton, FALSE, FALSE, 0);
+
+ gtk_box_pack_start (vbox, texthbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (vbox, placeholderhbox, FALSE, FALSE, 0);
+ gtk_box_pack_start (vbox, GTK_WIDGET (mainentry), FALSE, FALSE, 0);
+ gtk_box_pack_start (vbox, gtk_label_new ("Contents of the entry:"), TRUE, TRUE, 0);
gtk_box_pack_start (vbox, label, TRUE, TRUE, 0);
- gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
- gtk_box_pack_start (vbox, entry, FALSE, FALSE, 0);
- gtk_box_pack_start (vbox, label2, TRUE, TRUE, 0);
- gtk_box_pack_start (vbox, label3, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (win), 20);
gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));
+ /* Connect signals */
g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
- g_signal_connect (entry, "notify::text", G_CALLBACK (text_changed), label3);
- g_signal_connect_swapped (button, "clicked", G_CALLBACK (reset_entry), entry);
+ g_signal_connect (mainentry, "notify::text", G_CALLBACK (text_changed), label);
+ g_signal_connect (textbutton, "clicked",
+ G_CALLBACK (set_text_button_clicked), textentry);
+ g_signal_connect (placeholderbutton, "clicked",
+ G_CALLBACK (set_placeholder_button_clicked), placeholderentry);
- gtk_widget_show_all (win);
+ /* Set the initial state of the label */
+ text_changed (mainentry, NULL, GTK_LABEL (label));
+ /* Run example */
+ gtk_widget_show_all (win);
gtk_main ();
return 0;