+2007-02-16 Michael Dominic Kostrzewa <michael.kostrzewa@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@nokia.com>
* src/hildon-color-chooser-dialog.h:
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 \
INCLUDES = $(GTK_CFLAGS) -I$(top_srcdir)
-GTKDOC_LIBS = $(GTK_LIBS) ../src/libhildon_@PACKAGE_VERSION_MAJOR@.la
-
-MKDB_OPTIONS =--sgml-mode
+MKDB_OPTIONS =--sgml-mode --output-format=xml
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 =
<chapter>
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
- <xi:include href="visual_index.xml"/>
</chapter>
<chapter>
<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>
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;
}
GtkWidget *layout;
guint timeout_id;
gboolean is_timed;
+ guint timeout;
GtkWindow *parent;
};
/* default timeout */
-#define HILDON_BANNER_TIMEOUT 3000
+#define HILDON_BANNER_DEFAULT_TIMEOUT 3000
/* default icons */
{
PROP_0,
PROP_PARENT_WINDOW,
- PROP_IS_TIMED
+ PROP_IS_TIMED,
+ PROP_TIMEOUT
};
static GtkWidget* global_timed_banner = NULL;
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);
}
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);
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;
"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
* 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);
/* Show the banner, since caller cannot do that */
gtk_widget_show_all (GTK_WIDGET (banner));
+
+ return (GtkWidget *) banner;
}
/**
* 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;
}
/**
* 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);
/* Show the banner, since caller cannot do that */
gtk_widget_show_all (GTK_WIDGET (banner));
+
+ return (GtkWidget *) banner;
}
/**
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);
+ }
+}
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);
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__ */