[maemo-commits] [maemo-commits] r9346 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jan 25 15:41:19 EET 2007
- Previous message: [maemo-commits] r9345 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9347 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-01-25 15:41:18 +0200 (Thu, 25 Jan 2007)
New Revision: 9346
Modified:
projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
Log:
* libhildondesktop/hildon-desktop-panel-expandable.c:
- Fixed positioning in extended panel (GtkTable).
- Fixed positioning in extended window.
- Added scalability on-the-fly.
* ChangeLog updated.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-01-25 13:09:51 UTC (rev 9345)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-01-25 13:41:18 UTC (rev 9346)
@@ -1,5 +1,12 @@
2007-01-24 Moises Martinez <moises.martinez at nokia.com>
+ * libhildondesktop/hildon-desktop-panel-expandable.c:
+ - Fixed positioning in extended panel (GtkTable).
+ - Fixed positioning in extended window.
+ - Added scalability on-the-fly.
+
+2007-01-24 Moises Martinez <moises.martinez at nokia.com>
+
* libhildondesktop/hildon-desktop-panel-expandable.c:
- Fixed few wrong behaviors
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c 2007-01-25 13:09:51 UTC (rev 9345)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c 2007-01-25 13:41:18 UTC (rev 9346)
@@ -87,6 +87,8 @@
static void hildon_desktop_panel_expandable_arrow_toggled (GtkToggleButton *button, gpointer _panel);
+static void hildon_desktop_panel_expandable_resize_notify (HildonDesktopPanelExpandable *panel);
+
static void
hildon_desktop_panel_expandable_class_init (HildonDesktopPanelExpandableClass *panel_class)
{
@@ -124,8 +126,8 @@
{
panel->priv = HILDON_DESKTOP_PANEL_EXPANDABLE_GET_PRIVATE (panel);
+ panel->priv->items_p_row = 0;
panel->priv->n_items = 0;
-
panel->priv->items = NULL;
panel->priv->extension_opened = FALSE;
@@ -153,12 +155,17 @@
gtk_window_set_decorated (panel->priv->extension_window, FALSE);
- panel->priv->extension_table = GTK_TABLE (gtk_table_new (1,panel->priv->items_p_row,FALSE));
+ panel->priv->extension_table = GTK_TABLE (gtk_table_new (1,panel->priv->items_p_row,TRUE));
gtk_container_add (GTK_CONTAINER (panel->priv->extension_window),
GTK_WIDGET (panel->priv->extension_table));
gtk_widget_show (GTK_WIDGET (panel->priv->extension_table));
+
+ g_signal_connect (object,
+ "notify::items_row",
+ G_CALLBACK (hildon_desktop_panel_expandable_resize_notify),
+ NULL);
return object;
}
@@ -212,6 +219,7 @@
GParamSpec *pspec)
{
HildonDesktopPanelExpandable *panel;
+ guint new_items_p_row;
g_assert (object && HILDON_DESKTOP_IS_PANEL_EXPANDABLE (object));
@@ -220,7 +228,12 @@
switch (prop_id)
{
case PROP_ITEMS_P_ROW:
- panel->priv->items_p_row = g_value_get_uint (value);
+ new_items_p_row = g_value_get_uint (value);
+
+ if (panel->priv->items_p_row != 0 && panel->priv->items_p_row != new_items_p_row)
+ g_object_notify (object,"items_row");
+
+ panel->priv->items_p_row = new_items_p_row;
break;
default:
@@ -245,7 +258,7 @@
(gpointer)ex_panel);
}
- if ((ex_panel->priv->n_items+1) >= ex_panel->priv->items_p_row)
+ if ((ex_panel->priv->n_items+1) > ex_panel->priv->items_p_row)
{
GtkWidget *arrow = hildon_desktop_panel_expandable_add_arrow (ex_panel);
@@ -278,8 +291,8 @@
g_debug ("Adding button in expandable extension");
- n_rows = ((panel->priv->n_items+1)/panel->priv->items_p_row) +
- ((((panel->priv->n_items+1) % panel->priv->items_p_row) > 0) ? 1 : 0);
+ n_rows = (((panel->priv->n_items+1)/panel->priv->items_p_row) +
+ ((((panel->priv->n_items+1) % panel->priv->items_p_row) > 0) ? 1 : 0)) - 1;
g_object_get (panel->priv->extension_table, "n-rows", &table_rows, NULL);
@@ -293,14 +306,20 @@
top_attach = n_rows-1;
bottom_attach = n_rows;
- left_attach = ((panel->priv->n_items+1) % panel->priv->items_p_row) - 1;
- right_attach = left_attach + 2;
+ if ((panel->priv->n_items % panel->priv->items_p_row) == 0)
+ left_attach = 0;
+ else
+ left_attach = (((panel->priv->n_items+1) % panel->priv->items_p_row)+1);
- gtk_table_attach_defaults (panel->priv->extension_table,
- GTK_WIDGET (item),
- left_attach, right_attach,
- top_attach, bottom_attach);
+ right_attach = left_attach + 1;
+ gtk_table_attach (panel->priv->extension_table,
+ GTK_WIDGET (item),
+ left_attach, right_attach,
+ top_attach, bottom_attach,
+ GTK_SHRINK, GTK_SHRINK,
+ 0,0);
+
panel->priv->n_items++;
}
@@ -368,6 +387,7 @@
{
gtk_image_set_from_pixbuf (GTK_IMAGE(arrow_image), arrow_pixbuf);
gdk_pixbuf_unref (arrow_pixbuf);
+ g_debug ("%s: %d, setting pixbuf for arrow",__FILE__,__LINE__);
}
else
if (error)
@@ -391,13 +411,40 @@
static void
hildon_desktop_panel_expandable_arrow_toggled (GtkToggleButton *button, gpointer _panel)
{
- /*gint p_width, p_height;*/
+ gint p_width, p_height, p_x, p_y;
+ guint _offset = 1;
+ GdkWindow *window;
HildonDesktopPanelExpandable *panel = HILDON_DESKTOP_PANEL_EXPANDABLE (_panel);
panel->priv->extension_opened = !panel->priv->extension_opened;
if (panel->priv->extension_opened)
{
+ window = gtk_widget_get_parent_window (GTK_WIDGET (panel));
+
+ gdk_window_get_geometry (window,
+ &p_x, &p_y,
+ &p_width, &p_height,
+ NULL);
+
+ gtk_window_set_default_size (panel->priv->extension_window,
+ p_width,p_height);
+
+ if (HILDON_DESKTOP_PANEL (panel)->orient == GTK_ORIENTATION_VERTICAL)
+ {
+ if (p_x != 0)
+ _offset *= -1;
+
+ gtk_window_move (panel->priv->extension_window, p_x + p_width*_offset,p_y);
+ }
+ else
+ {
+ if (p_y != 0)
+ _offset *= -1;
+
+ gtk_window_move (panel->priv->extension_window, p_x, p_y + p_height*_offset);
+ }
+
gtk_widget_show (GTK_WIDGET (panel->priv->extension_window));
/*TODO: Positioning and sizing of the window */
@@ -408,3 +455,16 @@
}
}
+static void
+hildon_desktop_panel_expandable_resize_notify (HildonDesktopPanelExpandable *panel)
+{
+ guint n_rows;
+
+ g_object_get (panel->priv->extension_table, "n-rows", &n_rows, NULL);
+
+ gtk_table_resize (panel->priv->extension_table,
+ n_rows,
+ panel->priv->items_p_row);
+
+ hildon_desktop_panel_expandable_arrange_items (panel);
+}
- Previous message: [maemo-commits] r9345 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9347 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
