Adding a finger-checking code example. Do not allocate the color structure using...
authorMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Mon, 21 May 2007 07:58:56 +0000 (07:58 +0000)
committerMichael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
Mon, 21 May 2007 07:58:56 +0000 (07:58 +0000)
ChangeLog
examples/Makefile.am
examples/hildon-finger-example.c [new file with mode: 0644]
src/hildon-font-selection-dialog.c

index 70490bf..41548b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-05-21  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com> 
+
+       * examples/Makefile.am:
+       * examples/hildon-finger-example.c: Adding a finger-checking code
+       example. 
+
+       * src/hildon-font-selection-dialog.c: Do not allocate the color
+       structure using the g_new. Fixes NB#54061.
+
 2007-05-09  Michael Dominic Kostrzewa  <michael.kostrzewa@nokia.com> 
 
        * src/hildon-helper.c: Correcting tabs in file.
index dc0c578..0293ea1 100644 (file)
@@ -29,13 +29,19 @@ noinst_PROGRAMS                             = hildon-window-example                 \
                                          hildon-color-pop-example              \
                                          hildon-thumb-scrollbar-example        \
                                          hildon-date-editor-example            \
-                                         hildon-bread-crumb-trail-example
+                                         hildon-bread-crumb-trail-example      \
+                                         hildon-finger-example
 
-# HIldon window
+# Hildon window
 hildon_window_example_LDADD            = $(HILDON_OBJ_LIBS)
 hildon_window_example_CFLAGS           = $(HILDON_OBJ_CFLAGS)
 hildon_window_example_SOURCES          = hildon-window-example.c
 
+# Hildon finger
+hildon_finger_example_LDADD            = $(HILDON_OBJ_LIBS)
+hildon_finger_example_CFLAGS           = $(HILDON_OBJ_CFLAGS)
+hildon_finger_example_SOURCES          = hildon-finger-example.c
+
 # Hildon banner
 hildon_banner_example_LDADD            = $(HILDON_OBJ_LIBS)
 hildon_banner_example_CFLAGS           = $(HILDON_OBJ_CFLAGS)
diff --git a/examples/hildon-finger-example.c b/examples/hildon-finger-example.c
new file mode 100644 (file)
index 0000000..f32ca39
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * This file is a part of hildon examples
+ *
+ * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
+ *
+ * Author: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#include                                        <stdio.h>
+#include                                        <stdlib.h>
+#include                                        <glib.h>
+#include                                        <gtk/gtk.h>
+#include                                        "hildon/hildon.h"
+
+gboolean
+on_button_press                                 (GtkWidget *widget, 
+                                                 GdkEventButton *event);
+
+gboolean
+on_button_press                                 (GtkWidget *widget, 
+                                                 GdkEventButton *event)
+{
+    HildonNote *note;
+    if (hildon_helper_event_button_is_finger (event)) 
+        note = HILDON_NOTE (hildon_note_new_information (NULL, "You clicked with finger!"));
+    else
+        note = HILDON_NOTE (hildon_note_new_information (NULL, "You clicked with stylus!"));
+
+    gtk_dialog_run (GTK_DIALOG (note));
+    gtk_object_destroy (GTK_OBJECT (note));
+
+    return TRUE;
+}
+
+int
+main                                            (int argc, 
+                                                 char **args)
+{
+    gtk_init (&argc, &args);
+    
+    HildonProgram *program = hildon_program_get_instance ();
+    GtkDrawingArea *area = GTK_DRAWING_AREA (gtk_drawing_area_new ());
+    gtk_widget_set_size_request (GTK_WIDGET (area), 320, 240);
+
+    gtk_widget_set_events (GTK_WIDGET (area), 
+                           GDK_BUTTON_PRESS_MASK);
+
+    gtk_widget_set_extension_events (GTK_WIDGET (area), GDK_EXTENSION_EVENTS_ALL);
+    GtkWidget *window = hildon_window_new ();
+    hildon_program_add_window (program, HILDON_WINDOW (window));    
+
+    gtk_window_set_title (GTK_WINDOW (window), "world");
+    g_set_application_name ("hello");
+
+    gtk_container_set_border_width (GTK_CONTAINER (window), 6);
+    
+    g_signal_connect (G_OBJECT (window), "delete-event", G_CALLBACK (gtk_main_quit), NULL);
+    g_signal_connect (G_OBJECT (area), "button-press-event", G_CALLBACK (on_button_press), NULL);
+    gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (area));
+    gtk_widget_show_all (GTK_WIDGET (window));
+    
+    gtk_main ();
+    return 0;
+}
+
+
index 777662c..eb644f8 100644 (file)
@@ -211,7 +211,7 @@ hildon_font_selection_dialog_get_property       (GObject *object,
                                                  GParamSpec *pspec)
 {
     gint i;
-    GdkColor *color = NULL;
+    GdkColor color;
 
     HildonFontSelectionDialogPrivate *priv =
         HILDON_FONT_SELECTION_DIALOG_GET_PRIVATE(object);
@@ -255,12 +255,9 @@ hildon_font_selection_dialog_get_property       (GObject *object,
             break;
 
         case PROP_COLOR:
-            color = g_new (GdkColor, 1);
             hildon_color_button_get_color
-                (HILDON_COLOR_BUTTON (priv->font_color_button), color);
-            g_value_set_boxed (value, (gconstpointer) color);
-            if(color != NULL)
-                gdk_color_free (color);
+                (HILDON_COLOR_BUTTON (priv->font_color_button), &color);
+            g_value_set_boxed (value, (gconstpointer) &color);
             break;
 
         case PROP_COLOR_SET: