[maemo-commits] [maemo-commits] r9938 - in projects/haf/branches/hildon-libs/hildon-1: . doc examples src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Feb 16 13:57:06 EET 2007
Author: mdk
Date: 2007-02-16 13:57:04 +0200 (Fri, 16 Feb 2007)
New Revision: 9938

Modified:
   projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2
   projects/haf/branches/hildon-libs/hildon-1/doc/Makefile.am
   projects/haf/branches/hildon-libs/hildon-1/doc/hildon-docs.sgml
   projects/haf/branches/hildon-libs/hildon-1/doc/visual_index.xml
   projects/haf/branches/hildon-libs/hildon-1/examples/hildon-banner-example.c
   projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner-private.h
   projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.c
   projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.h
Log:
Adding Lucas patch to enable settable timeout on the banners and settable icon.


Modified: projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/ChangeLog.2	2007-02-16 11:57:04 UTC (rev 9938)
@@ -1,3 +1,16 @@
+2007-02-16  Michael Dominic Kostrzewa  <michael.kostrzewa at nokia.com> 
+
+	* doc/Makefile.am:
+	* doc/hildon-docs.sgml:
+	* doc/visual_index.xml: Documentation fixes.
+	
+	* src/hildon-banner-private.h:
+	* src/hildon-banner.c:
+	* src/hildon-banner.h: Adding Lucas patch to enable settable timeout
+	on the banners and settable icon.
+	
+	* examples/hildon-banner-example.c: Set timeout manually.
+
 2007-02-15  Michael Dominic Kostrzewa  <michael.kostrzewa at nokia.com> 
 
 	* src/hildon-color-chooser-dialog.h:

Modified: projects/haf/branches/hildon-libs/hildon-1/doc/Makefile.am
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/doc/Makefile.am	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/doc/Makefile.am	2007-02-16 11:57:04 UTC (rev 9938)
@@ -11,12 +11,14 @@
 
 SCANOBJ_OPTIONS					=--type-init-func="gtk_type_init(0)"
 
-DOC_SOURCE_DIR					=../src
+DOC_SOURCE_DIR					= $(top_srcdir)/src
+DOC_BUILD_DIR 					= $(top_builddir)/src
 
-HFILE_GLOB					=$(top_srcdir)/src/*.h
 
-CFILE_GLOB					=$(top_srcdir)/src/*.c
+HFILE_GLOB					= $(top_srcdir)/src/*.h
 
+CFILE_GLOB					= $(top_srcdir)/src/*.c
+
 IGNORE_HFILES 					= hildon-banner-private.h 		\
 						  hildon-calendar-popup-private.h	\
 						  hildon-caption-private.h 		\
@@ -48,19 +50,23 @@
 
 INCLUDES 					= $(GTK_CFLAGS) -I$(top_srcdir)
 
-GTKDOC_LIBS 					= $(GTK_LIBS) ../src/libhildon_ at PACKAGE_VERSION_MAJOR@.la 
+MKDB_OPTIONS					=--sgml-mode --output-format=xml
 
-MKDB_OPTIONS					=--sgml-mode
-
 content_files					= version.xml \
 						  visual_index.xml
 
+GTKDOC_CFLAGS 					= $(HILDON_OBJ_CFLAGS)
+
+GTKDOC_LIBS 					= $(HILDON_OBJ_LIBS)
+
 version.xml: ../configure.ac
 	@echo $(VERSION) > version.xml
 
 html: html-build.stamp
 
-HTML_IMAGES 					= $(srcdir)/images/calendar-popup.png
+HTML_IMAGES 					= $(srcdir)/images/calendar-popup.png	\
+						  $(srcdir)/images/caption.png		\
+						  $(srcdir)/images/code-dialog.png
 
 FIXXREF_OPTIONS					=
 

Modified: projects/haf/branches/hildon-libs/hildon-1/doc/hildon-docs.sgml
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/doc/hildon-docs.sgml	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/doc/hildon-docs.sgml	2007-02-16 11:57:04 UTC (rev 9938)
@@ -12,7 +12,6 @@
   <chapter>
     <title>Object Hierarchy</title>
     <xi:include href="xml/tree_index.sgml"/>
-    <xi:include href="visual_index.xml"/>
   </chapter>
 
   <chapter>

Modified: projects/haf/branches/hildon-libs/hildon-1/doc/visual_index.xml
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/doc/visual_index.xml	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/doc/visual_index.xml	2007-02-16 11:57:04 UTC (rev 9938)
@@ -1,68 +1,68 @@
 <para role="gallery">
   <link linkend="HildonCalendarPopup">
-          <inlinegraphic fileref="images/calendar-popup.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/calendar-popup.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonCaption">
-          <inlinegraphic fileref="images/caption.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/caption.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonCodeDialog">
-          <inlinegraphic fileref="images/code-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/code-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonColorButton">
-          <inlinegraphic fileref="images/color-button.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/color-button.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonColorChooserDialog">
-          <inlinegraphic fileref="images/color-chooser-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/color-chooser-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonCalorChooser">
-          <inlinegraphic fileref="images/color-chooser.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/color-chooser.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonCantrolbar">
-          <inlinegraphic fileref="images/controlbar.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/controlbar.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonDateEditor">
-          <inlinegraphic fileref="images/date-editor.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/date-editor.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonFontSelectionDialog">
-          <inlinegraphic fileref="images/font-selection-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/font-selection-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonGetPasswordDialog">
-          <inlinegraphic fileref="images/get-password-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/get-password-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonHVolumebar">
-          <inlinegraphic fileref="images/hvolumebar.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/hvolumebar.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonDialog">
-          <inlinegraphic fileref="images/login-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/login-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonNote">
-          <inlinegraphic fileref="images/note.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/note.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonNumberEditor">
-          <inlinegraphic fileref="images/number-editor.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/number-editor.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonRangeEditor">
-          <inlinegraphic fileref="images/range-editor.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/range-editor.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonSeekbar">
-          <inlinegraphic fileref="images/seekbar.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/seekbar.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonSetPasswordDialog">
-          <inlinegraphic fileref="images/set-password-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/set-password-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonSortDialog">
-          <inlinegraphic fileref="images/sort-dialog.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/sort-dialog.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonTimeEditor">
-          <inlinegraphic fileref="images/time-editor.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/time-editor.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonTimePicker">
-          <inlinegraphic fileref="images/time-picker.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/time-picker.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonVVolumebar">
-          <inlinegraphic fileref="images/vvolumebar.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/vvolumebar.png" format="PNG"></inlinegraphic>
   </link> 
   <link linkend="HildonWeekdayPicker">
-          <inlinegraphic fileref="images/weekday-picker.png" format="PNG"></inlinegraphic>
+          <inlinegraphic fileref="html/weekday-picker.png" format="PNG"></inlinegraphic>
   </link> 
 </para>

Modified: projects/haf/branches/hildon-libs/hildon-1/examples/hildon-banner-example.c
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/examples/hildon-banner-example.c	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/examples/hildon-banner-example.c	2007-02-16 11:57:04 UTC (rev 9938)
@@ -45,7 +45,8 @@
 static gboolean
 on_information_clicked                          (GtkWidget *widget)
 {
-    hildon_banner_show_information (widget, NULL, "Information banner"); 
+    GtkWidget* banner = hildon_banner_show_information (widget, NULL, "Information banner"); 
+    hildon_banner_set_timeout (HILDON_BANNER (banner), 9000);
     return TRUE;
 }
 

Modified: projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner-private.h
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner-private.h	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner-private.h	2007-02-16 11:57:04 UTC (rev 9938)
@@ -40,6 +40,7 @@
     GtkWidget *layout;
     guint timeout_id;
     gboolean is_timed;
+    guint    timeout;
     GtkWindow *parent;
 };
 

Modified: projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.c
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.c	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.c	2007-02-16 11:57:04 UTC (rev 9938)
@@ -66,7 +66,7 @@
 
 /* default timeout */
 
-#define                                         HILDON_BANNER_TIMEOUT 3000
+#define                                         HILDON_BANNER_DEFAULT_TIMEOUT 3000
 
 /* default icons */
 
@@ -78,7 +78,8 @@
 {
     PROP_0,
     PROP_PARENT_WINDOW, 
-    PROP_IS_TIMED
+    PROP_IS_TIMED,
+    PROP_TIMEOUT
 };
 
 static GtkWidget*                               global_timed_banner = NULL;
@@ -356,8 +357,8 @@
     HildonBannerPrivate *priv = HILDON_BANNER_GET_PRIVATE (self);
     g_assert (priv);
 
-    if (priv->timeout_id == 0 && priv->is_timed)
-        priv->timeout_id = g_timeout_add (HILDON_BANNER_TIMEOUT, 
+    if (priv->timeout_id == 0 && priv->is_timed && priv->timeout > 0)
+        priv->timeout_id = g_timeout_add (priv->timeout, 
                 hildon_banner_timeout, self);
 }
 
@@ -374,6 +375,10 @@
 
     switch (prop_id) {
 
+        case PROP_TIMEOUT:
+             priv->timeout = g_value_get_uint (value);
+             break;
+ 
         case PROP_IS_TIMED:
             priv->is_timed = g_value_get_boolean (value);
 
@@ -417,6 +422,10 @@
 
     switch (prop_id)
     {
+        case PROP_TIMEOUT:
+             g_value_set_uint (value, priv->timeout);
+             break;
+ 
         case PROP_IS_TIMED:
             g_value_set_boolean (value, priv->is_timed);
             break;
@@ -674,6 +683,22 @@
                 "Whether or not the notification goes away automatically "
                 "after the specified time has passed",
                 FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+    /**
+     * HildonBanner:timeout:
+     *
+     * The time before making the banner banner go away. This needs 
+     * to be adjusted before the banner is mapped to the screen.
+     *                      
+     */
+    g_object_class_install_property (object_class, PROP_TIMEOUT,
+            g_param_spec_uint ("timeout",
+                "Timeout",
+                "The time before making the banner banner go away",
+                0,
+                10000,
+                HILDON_BANNER_DEFAULT_TIMEOUT,
+                G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 }
 
 static void 
@@ -763,16 +788,18 @@
  * spawn a new banner before the earlier one has timed out, the
  * previous one will be replaced.
  *
+ * Returns: The newly created banner
+ *
  */
-void 
+GtkWidget*
 hildon_banner_show_information                  (GtkWidget *widget, 
                                                  const gchar *icon_name,
                                                  const gchar *text)
 {
     HildonBanner *banner;
 
-    g_return_if_fail (icon_name == NULL || icon_name[0] != 0);
-    g_return_if_fail (text != NULL);
+    g_return_val_if_fail (icon_name == NULL || icon_name[0] != 0, NULL);
+    g_return_val_if_fail (text != NULL, NULL);
 
     /* Prepare banner */
     banner = hildon_banner_get_instance_for_widget (widget, TRUE);
@@ -787,6 +814,8 @@
 
     /* Show the banner, since caller cannot do that */
     gtk_widget_show_all (GTK_WIDGET (banner));
+
+    return (GtkWidget *) banner;
 }
 
 /**
@@ -799,25 +828,29 @@
  * A helper function for #hildon_banner_show_information with
  * string formatting.
  *
+ * Returns: the newly created banner
  */
-void       
+GtkWidget* 
 hildon_banner_show_informationf                 (GtkWidget *widget, 
                                                  const gchar *icon_name,
                                                  const gchar *format, 
                                                  ...)
 {
-    g_return_if_fail (format != NULL);
+    g_return_val_if_fail (format != NULL, NULL);
 
     gchar *message;
     va_list args;
+    GtkWidget *banner;
 
     va_start (args, format);
     message = g_strdup_vprintf (format, args);
     va_end (args);
 
-    hildon_banner_show_information (widget, icon_name, message);
+    banner = hildon_banner_show_information (widget, icon_name, message);
 
     g_free (message);
+
+    return banner;
 }
 
 /**
@@ -832,16 +865,18 @@
  * spawn a new banner before the earlier one has timed out, the
  * previous one will be replaced.
  *
+ * Returns: the newly created banner
+ *
  */
-void 
+GtkWidget*
 hildon_banner_show_information_with_markup      (GtkWidget *widget, 
                                                  const gchar *icon_name, 
                                                  const gchar *markup)
 {
     HildonBanner *banner;
 
-    g_return_if_fail (icon_name == NULL || icon_name[0] != 0);
-    g_return_if_fail (markup != NULL);
+    g_return_val_if_fail (icon_name == NULL || icon_name[0] != 0, NULL);
+    g_return_val_if_fail (markup != NULL, NULL);
 
     /* Prepare banner */
     banner = hildon_banner_get_instance_for_widget (widget, TRUE);
@@ -857,6 +892,8 @@
 
     /* Show the banner, since caller cannot do that */
     gtk_widget_show_all (GTK_WIDGET (banner));
+
+    return (GtkWidget *) banner;
 }
 
 /**
@@ -1051,3 +1088,84 @@
     gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->main_item), fraction);
 }
 
+/**
+ * hildon_banner_set_timeout:
+ * @self: a #HildonBanner widget
+ * @timeout: timeout to set in miliseconds.
+ *
+ * Sets the timeout on the banner. After the given amount of miliseconds
+ * has elapsed the banner will go away. Note that settings this only makes
+ * sense on the banners that are timed and that have not been yet displayed
+ * on the screen.
+ *
+ */
+void
+hildon_banner_set_timeout                       (HildonBanner *self,
+                                                 guint timeout)
+{
+    HildonBannerPrivate *priv;
+
+    g_return_if_fail (HILDON_IS_BANNER (self));
+    priv = HILDON_BANNER_GET_PRIVATE (self);
+    g_assert (priv);
+
+    priv->timeout = timeout;
+}
+
+/**
+ * hildon_banner_set_icon:
+ * @self: a #HildonBanner widget
+ * @icon_name: the name of icon to use. Can be %NULL for default icon
+ *
+ * Sets the icon to be used in the banner.
+ *
+ */
+void 
+hildon_banner_set_icon                          (HildonBanner *self, 
+                                                 const gchar  *icon_name)
+{
+    HildonBannerPrivate *priv;
+
+    g_return_if_fail (HILDON_IS_BANNER (self));
+    priv = HILDON_BANNER_GET_PRIVATE (self);
+    g_assert (priv);
+
+    hildon_banner_ensure_child (self, NULL, 0, GTK_TYPE_IMAGE, 
+            "pixel-size", HILDON_ICON_PIXEL_SIZE_NOTE, 
+            "icon-name", icon_name ? icon_name : HILDON_BANNER_DEFAULT_ICON,
+            "yalign", 0.0, 
+            NULL);
+}
+
+/**
+ * hildon_banner_set_icon_from_file:
+ * @self: a #HildonBanner widget
+ * @icon_file: the filename of icon to use. Can be %NULL for default icon
+ *
+ * Sets the icon from its filename to be used in the banner.
+ *
+ */
+void 
+hildon_banner_set_icon_from_file                (HildonBanner *self, 
+                                                 const gchar  *icon_file)
+{
+    HildonBannerPrivate *priv;
+
+    g_return_if_fail (HILDON_IS_BANNER (self));
+    priv = HILDON_BANNER_GET_PRIVATE (self);
+    g_assert (priv);
+
+    if (icon_file != NULL) {
+        hildon_banner_ensure_child (self, NULL, 0, GTK_TYPE_IMAGE, 
+                "pixel-size", HILDON_ICON_PIXEL_SIZE_NOTE, 
+                "file", icon_file,
+                "yalign", 0.0, 
+                NULL);
+    } else {
+        hildon_banner_ensure_child (self, NULL, 0, GTK_TYPE_IMAGE, 
+                "pixel-size", HILDON_ICON_PIXEL_SIZE_NOTE, 
+                "icon-name", HILDON_BANNER_DEFAULT_ICON,
+                "yalign", 0.0, 
+                NULL);
+    }
+}

Modified: projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.h
===================================================================
--- projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.h	2007-02-16 10:18:40 UTC (rev 9937)
+++ projects/haf/branches/hildon-libs/hildon-1/src/hildon-banner.h	2007-02-16 11:57:04 UTC (rev 9938)
@@ -60,18 +60,18 @@
 GType G_GNUC_CONST
 hildon_banner_get_type                          (void);
 
-void       
+GtkWidget* 
 hildon_banner_show_information                  (GtkWidget *widget, 
                                                  const gchar *icon_name,
                                                  const gchar *text);
 
-void 
+GtkWidget*
 hildon_banner_show_informationf                 (GtkWidget *widget, 
                                                  const gchar *icon_name,
                                                  const gchar *format, 
                                                  ...);
 
-void       
+GtkWidget*       
 hildon_banner_show_information_with_markup      (GtkWidget *widget, 
                                                  const gchar *icon_name,
                                                  const gchar *markup);
@@ -98,6 +98,18 @@
 hildon_banner_set_fraction                      (HildonBanner *self,
                                                  gdouble fraction);
 
+void     
+hildon_banner_set_icon                          (HildonBanner *self,
+                                                 const gchar *icon_name);
+
+void     
+hildon_banner_set_icon_from_file                (HildonBanner *self,
+                                                 const gchar *icon_file);
+
+void
+hildon_banner_set_timeout                       (HildonBanner *self,
+                                                 guint timeout);
+
 G_END_DECLS
 
 #endif                                          /* __HILDON_BANNER_H__ */


More information about the maemo-commits mailing list