[maemo-commits] [maemo-commits] r13092 - in projects/haf/trunk/hildon-desktop: . libhildondesktop
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Aug 10 10:11:25 EEST 2007
- Previous message: [maemo-commits] r13091 - projects/haf/tags/hildon-thumbnail/0.12/debian
- Next message: [maemo-commits] r13093 - in projects/haf/tags/hildon-thumbnail/0.12: . thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: jobi Date: 2007-08-10 10:11:23 +0300 (Fri, 10 Aug 2007) New Revision: 13092 Modified: projects/haf/trunk/hildon-desktop/ChangeLog projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.h Log: 2007-08-09 Johan Bilien <johan.bilien at nokia.com> * libhildondesktop/hildon-desktop-home-item.[ch]: - API documentation Modified: projects/haf/trunk/hildon-desktop/ChangeLog =================================================================== --- projects/haf/trunk/hildon-desktop/ChangeLog 2007-08-10 06:56:22 UTC (rev 13091) +++ projects/haf/trunk/hildon-desktop/ChangeLog 2007-08-10 07:11:23 UTC (rev 13092) @@ -1,3 +1,8 @@ +2007-08-09 Johan Bilien <johan.bilien at nokia.com> + + * libhildondesktop/hildon-desktop-home-item.[ch]: + - API documentation + 2007-08-09 Lucas Rocha <lucas.rocha at nokia.com> * libhildonwm/hd-wm.c (hd_wm_process_x_client_list): notify stack Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c =================================================================== --- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c 2007-08-10 06:56:22 UTC (rev 13091) +++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.c 2007-08-10 07:11:23 UTC (rev 13092) @@ -22,6 +22,19 @@ * */ +/** + * SECTION:hildon-desktop-home-item + * @short_description: A widget to be used as base class for the #HildonHomeArea children + * + * The HildonDesktopHomeItem is the base class implemented by Home plugin + * writers. It implements the dragging and resizing of the item. + * + * It also provides commodities for the plugin writer to know whether + * the item is in foreground or background, and allows providing + * a @GtkMenuItem, which when activated can open a "settings" dialog for + * the item. + */ + #ifdef HAVE_CONFIG_H #include <config.h> #endif @@ -197,6 +210,7 @@ HildonDesktopHomeItemState state, GdkEventButton *button); + GType hildon_desktop_home_item_resize_type_get_type (void) { @@ -286,6 +300,14 @@ parent_class = g_type_class_peek_parent (applet_class); + /** + * HildonDesktopHomeItem::background: + * @widget: the widget that received the signal + * + * The ::background signal is emitted when the Home View has + * gone in the background. The widget should reduce its activity + * to save energy, for instance stop animations. + **/ g_signal_new ("background", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, @@ -296,6 +318,13 @@ G_TYPE_NONE, 0); + /** + * HildonDesktopHomeItem::foreground: + * @widget: the widget that received the signal + * + * The ::foreground signal is emitted when the Home View has + * comes back in the foreground. + **/ g_signal_new ("foreground", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, @@ -306,6 +335,16 @@ G_TYPE_NONE, 0); + /** + * HildonDesktopHomeItem::settings: + * @widget: the widget that received the signal + * @returns: A GtkMenuItem, or NULL. + * + * The ::settings signal is emitted when the desktop requests + * the item for a "Settings" menu item. The item can provide + * such a menu item, which when activated shows a settings + * dialog. + **/ g_signal_new ("settings", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, @@ -317,6 +356,11 @@ 1, GTK_TYPE_WIDGET); + /** + * HildonDesktopHomeItem::resize-type + * + * Defines how the item can be resized. + **/ pspec = g_param_spec_enum ("resize-type", "Type of resizability", "Whether the applet can be resized " @@ -333,6 +377,11 @@ HILDON_DESKTOP_HOME_ITEM_PROPERTY_LAYOUT_MODE_SUCKS, pspec); + /** + * HildonDesktopHomeItem::minimum-width + * + * Defines the minimum width which this item accepts. + **/ pspec = g_param_spec_int ("minimum-width", "Minimum width", "Minimum width for this applet", @@ -345,6 +394,11 @@ HILDON_DESKTOP_HOME_ITEM_PROPERTY_MINIMUM_WIDTH, pspec); + /** + * HildonDesktopHomeItem::minimum-height + * + * Defines the minimum height which this item accepts. + **/ pspec = g_param_spec_int ("minimum-height", "Minimum height", "Minimum height for this applet", @@ -357,6 +411,12 @@ HILDON_DESKTOP_HOME_ITEM_PROPERTY_MINIMUM_HEIGHT, pspec); + /** + * HildonDesktopHomeItem::state + * + * Current state of the item, whether it is being moved, resized, + * or left to rest. + **/ pspec = g_param_spec_int ("state", "state", "state of the applet", @@ -369,14 +429,6 @@ HILDON_DESKTOP_HOME_ITEM_PROPERTY_STATE, pspec); - pspec = g_param_spec_string ("background", - "Background", - "Background file, may include alpha channel", - "", - G_PARAM_READABLE); - - gtk_widget_class_install_style_property (widget_class, pspec); - pspec = g_param_spec_boxed ("background-borders", "Background borders", "Background border, which shall not be stretched", @@ -1523,6 +1575,12 @@ /* public functions */ /********************/ +/** + * hildon_desktop_home_item_new: + * @returns: A new HildonDesktopHomeItem. + * + * Creates a new HildonDesktopHomeItem. + **/ GtkWidget * hildon_desktop_home_item_new (void) { @@ -1532,31 +1590,49 @@ return GTK_WIDGET(newapplet); } +/** + * hildon_desktop_home_item_get_resize_type: + * @item: A #HildonDesktopHomeItem. + * @returns: The resize type for the item. + * + * Returns whether the item is set to be resized horizontally, + * vertically, both, or if it cannot be resized. + **/ HildonDesktopHomeItemResizeType -hildon_desktop_home_item_get_resize_type (HildonDesktopHomeItem *applet) +hildon_desktop_home_item_get_resize_type (HildonDesktopHomeItem *item) { HildonDesktopHomeItemPriv *priv; - g_return_val_if_fail (applet, FALSE); + g_return_val_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (item), + HILDON_DESKTOP_HOME_ITEM_RESIZE_NONE); - priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (applet); + priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (item); return priv->resize_type; } +/** + * hildon_desktop_home_item_set_resize_type: + * @item: A #HildonDesktopHomeItem. + * @resize_type: A #HildonDesktopHomeItemResizeType + * + * Sets whether the item can be resized horizontally, + * vertically, both, or if it cannot be resized. + **/ void -hildon_desktop_home_item_set_resize_type (HildonDesktopHomeItem *applet, +hildon_desktop_home_item_set_resize_type (HildonDesktopHomeItem *item, HildonDesktopHomeItemResizeType resize_type) { HildonDesktopHomeItemPriv *priv; GtkWidget *widget; - g_return_if_fail (applet); - priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (applet); - widget = GTK_WIDGET (applet); + g_return_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (item)); + priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (item); + widget = GTK_WIDGET (item); + if (priv->resize_type != resize_type) { - g_object_notify (G_OBJECT (applet), "resize-type"); + g_object_notify (G_OBJECT (item), "resize-type"); priv->resize_type = resize_type; if (GTK_WIDGET_REALIZED (widget) && @@ -1593,7 +1669,7 @@ priv->resize_handle_window = hildon_desktop_home_item_create_icon_window - (applet, + (item, priv->resize_handle, widget->allocation.width - icon_width, widget->allocation.height - icon_height, @@ -1605,42 +1681,66 @@ } } +/** + * hildon_desktop_home_item_get_settings_menu_item: + * @item: A #HildonDesktopHomeItem. + * @returns: A #GtkMenuItem to use for settings, or NULL + * + * Returns a menu item which can be used to show a dialog + * with settings related to this item. If the item has no settings, + * the function returns NULL. + **/ GtkWidget * -hildon_desktop_home_item_get_settings_menu_item (HildonDesktopHomeItem *applet) +hildon_desktop_home_item_get_settings_menu_item (HildonDesktopHomeItem *item) { HildonDesktopHomeItemPriv *priv; GtkWidget *top_level; - GtkWidget *item = NULL; + GtkWidget *menu_item = NULL; - g_return_val_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (applet), NULL); + g_return_val_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (item), NULL); - priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (applet); + priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (item); - top_level = gtk_widget_get_toplevel (GTK_WIDGET (applet)); + top_level = gtk_widget_get_toplevel (GTK_WIDGET (item)); - g_signal_emit_by_name (applet, + g_signal_emit_by_name (item, "settings", GTK_IS_WINDOW (top_level)?top_level:NULL, - &item); + &menu_item); - return item; + return menu_item; } +/** + * hildon_desktop_home_item_set_is_background: + * @item: A #HildonDesktopHomeItem. + * @is_background: Whether or not the item is in the background + * + * Sets whether or not the item is currently in the background. If + * in the background, the item is expected to reduce its activity, + * for instance by stopping animations. + **/ void -hildon_desktop_home_item_set_is_background (HildonDesktopHomeItem *applet, +hildon_desktop_home_item_set_is_background (HildonDesktopHomeItem *item, gboolean is_background) { HildonDesktopHomeItemPriv *priv; - g_return_if_fail (applet); + g_return_if_fail (HILDON_DESKTOP_IS_HOME_ITEM (item)); - priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (applet); + priv = HILDON_DESKTOP_HOME_ITEM_GET_PRIVATE (item); if (is_background) - g_signal_emit_by_name (applet, "background"); + g_signal_emit_by_name (item, "background"); else - g_signal_emit_by_name (applet, "foreground"); + g_signal_emit_by_name (item, "foreground"); } +/** + * hildon_desktop_home_item_raise: + * @item: A #HildonDesktopHomeItem. + * + * Raises the item above all its siblings. + **/ void hildon_desktop_home_item_raise (HildonDesktopHomeItem *item) { @@ -1658,6 +1758,12 @@ } +/** + * hildon_desktop_home_item_lower: + * @item: A #HildonDesktopHomeItem. + * + * Lowers the item above all its siblings. + **/ void hildon_desktop_home_item_lower (HildonDesktopHomeItem *item) { Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.h =================================================================== --- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.h 2007-08-10 06:56:22 UTC (rev 13091) +++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-home-item.h 2007-08-10 07:11:23 UTC (rev 13092) @@ -64,6 +64,16 @@ #define HH_APPLET_KEY_MINHEIGHT "X-home-applet-minheight" #define HH_APPLET_KEY_RESIZABLE "X-home-applet-resizable" +/** + * HildonDesktopHomeItemResizeType: + * @HILDON_DESKTOP_HOME_ITEM_RESIZE_NONE: cannot be resized. + * @HILDON_DESKTOP_HOME_ITEM_RESIZE_HORIZONTAL: can only be resized horizontally + * @HILDON_DESKTOP_HOME_ITEM_RESIZE_VERTICAL: can only be resized vertically + * @HILDON_DESKTOP_HOME_ITEM_RESIZE_BOTH: can be resized both horizontally and vertically + * + * Enum values used to specify how a HildonDesktopHomeItem can be resized. + * + **/ typedef enum { HILDON_DESKTOP_HOME_ITEM_RESIZE_NONE, @@ -98,27 +108,20 @@ GType hildon_desktop_home_item_get_type (void); -/** - * hildon_desktop_home_item_new: - * - * Use this function to create a new application view. - * - * Return value: A @HildonDesktopHomeItem. - **/ GtkWidget *hildon_desktop_home_item_new (void); void hildon_desktop_home_item_set_resize_type - (HildonDesktopHomeItem *applet, - HildonDesktopHomeItemResizeType rt); + (HildonDesktopHomeItem *item, + HildonDesktopHomeItemResizeType resize_type); HildonDesktopHomeItemResizeType -hildon_desktop_home_item_get_resize_type (HildonDesktopHomeItem *applet); +hildon_desktop_home_item_get_resize_type (HildonDesktopHomeItem *item); GtkWidget * -hildon_desktop_home_item_get_settings_menu_item (HildonDesktopHomeItem *applet); +hildon_desktop_home_item_get_settings_menu_item (HildonDesktopHomeItem *item); void hildon_desktop_home_item_set_is_background - (HildonDesktopHomeItem *applet, + (HildonDesktopHomeItem *item, gboolean is_background); void hildon_desktop_home_item_raise (HildonDesktopHomeItem *item); void hildon_desktop_home_item_lower (HildonDesktopHomeItem *item);
- Previous message: [maemo-commits] r13091 - projects/haf/tags/hildon-thumbnail/0.12/debian
- Next message: [maemo-commits] r13093 - in projects/haf/tags/hildon-thumbnail/0.12: . thumbs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]