[gnome-applets/wip/segeiger/window-picker-in-process: 2/2] Need to think about this
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-applets/wip/segeiger/window-picker-in-process: 2/2] Need to think about this
- Date: Wed, 10 Jun 2015 22:53:34 +0000 (UTC)
commit 6a075e88f037f7a99340ca7b115e19d828d7f800
Author: Sebastian Geiger <sbastig gmx net>
Date: Thu Jun 11 00:51:02 2015 +0200
Need to think about this
windowpicker/src/applet.c | 4 ++
windowpicker/src/task-item.c | 71 +++++++++++++++++++++++++++++++----------
2 files changed, 57 insertions(+), 18 deletions(-)
---
diff --git a/windowpicker/src/applet.c b/windowpicker/src/applet.c
index 17a3016..bf6ad7f 100644
--- a/windowpicker/src/applet.c
+++ b/windowpicker/src/applet.c
@@ -153,15 +153,19 @@ load_window_picker (PanelApplet *applet) {
= panel_applet_settings_new(applet, SETTINGS_SCHEMA);
GtkWidget *outer_box = priv->outer_box = gtk_box_new (panel_applet_get_gtk_orientation (applet), 0);
+ gtk_widget_set_hexpand (priv->outer_box, TRUE);
+ gtk_widget_set_vexpand (priv->outer_box, TRUE);
gtk_container_add (GTK_CONTAINER (applet), outer_box);
gtk_container_set_border_width (GTK_CONTAINER (applet), 0);
gtk_container_set_border_width (GTK_CONTAINER (outer_box), 0);
priv->tasks = task_list_new (windowPickerApplet);
gtk_widget_set_vexpand (priv->tasks, TRUE);
+ gtk_widget_set_hexpand (priv->tasks, TRUE);
gtk_box_pack_start (GTK_BOX (outer_box), priv->tasks, TRUE, TRUE, 0);
priv->title = task_title_new (windowPickerApplet);
+ gtk_widget_set_vexpand (priv->title, TRUE);
gtk_widget_set_hexpand (priv->title, TRUE);
gtk_box_pack_start (GTK_BOX (outer_box), priv->title, TRUE, TRUE, 0);
diff --git a/windowpicker/src/task-item.c b/windowpicker/src/task-item.c
index b2579c5..3069c2d 100644
--- a/windowpicker/src/task-item.c
+++ b/windowpicker/src/task-item.c
@@ -188,9 +188,8 @@ task_item_get_preferred_width (GtkWidget *widget,
gint *minimal_width,
gint *natural_width)
{
- GtkRequisition requisition;
- requisition.width = DEFAULT_TASK_ITEM_WIDTH;
- *minimal_width = *natural_width = requisition.width;
+ g_message ("Setting preferred_width to: %d", DEFAULT_TASK_ITEM_WIDTH + 10);
+ *minimal_width = *natural_width = 46; //DEFAULT_TASK_ITEM_WIDTH + 16;
}
static void
@@ -198,9 +197,52 @@ task_item_get_preferred_height (GtkWidget *widget,
gint *minimal_height,
gint *natural_height)
{
- GtkRequisition requisition;
- requisition.height = DEFAULT_TASK_ITEM_HEIGHT;
- *minimal_height = *natural_height = requisition.height;
+ /* This sets the MINIMUM height of the item. The actual height will be determined by
+ * task_item_get_preferred_height_for_width. */
+ g_message ("Setting preferred_height to: %d", DEFAULT_TASK_ITEM_HEIGHT + 10);
+ *minimal_height = *natural_height = 40; //DEFAULT_TASK_ITEM_HEIGHT + 10;
+}
+
+static GtkSizeRequestMode
+task_item_get_request_mode (GtkWidget* widget)
+{
+ WindowPickerApplet *applet = TASK_ITEM (widget)->priv->windowPickerApplet;
+ GtkOrientation orientation = panel_applet_get_gtk_orientation (applet);
+
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ return GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT;
+ else
+ return GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH;
+}
+
+static void
+task_item_get_preferred_height_for_width (GtkWidget *widget,
+ gint width,
+ gint *minimum_height,
+ gint *natural_height)
+{
+ WindowPickerApplet *applet = TASK_ITEM (widget)->priv->windowPickerApplet;
+ GtkOrientation orientation = panel_applet_get_gtk_orientation (applet);
+
+ if (orientation == GTK_ORIENTATION_VERTICAL) {
+ g_message("Setting preferred minimum_height=natural_height=%d for width: %d", width + 6, width);
+ *minimum_height = *natural_height = width + 6;
+ }
+}
+
+static void
+task_item_get_preferred_width_for_height (GtkWidget *widget,
+ gint height,
+ gint *minimum_width,
+ gint *natural_width)
+{
+ WindowPickerApplet *applet = TASK_ITEM (widget)->priv->windowPickerApplet;
+ GtkOrientation orientation = panel_applet_get_gtk_orientation (applet);
+
+ if (orientation == GTK_ORIENTATION_HORIZONTAL) {
+ g_message("Setting preferred minimum_width=natural_width=%d for height: %d", height + 6, height);
+ *minimum_width = *natural_width = height + 6;
+ }
}
static GdkPixbuf *task_item_sized_pixbuf_for_window (
@@ -357,22 +399,12 @@ static void on_size_allocate (
{
g_return_if_fail (TASK_IS_ITEM (widget));
TaskItem *item = TASK_ITEM (widget);
- TaskItemPrivate *priv;
- PanelAppletOrient orientation = panel_applet_get_orient (PANEL_APPLET (applet));
-
- if (orientation == PANEL_APPLET_ORIENT_RIGHT || orientation == PANEL_APPLET_ORIENT_LEFT) {
- if (allocation->height != allocation->width + 6)
- gtk_widget_set_size_request (widget, -1, allocation->width + 6);
- } else {
- if (allocation->width != allocation->height + 6)
- gtk_widget_set_size_request (widget, allocation->height + 6, -1);
- }
-
- priv = item->priv;
+ TaskItemPrivate *priv = item->priv;
priv->area.x = allocation->x;
priv->area.y = allocation->y;
priv->area.width = allocation->width;
priv->area.height = allocation->height;
+ g_message ("New size for draw function: area.width: %d, area.height: %d", priv->area.width,
priv->area.height);
update_hints (item);
}
@@ -765,6 +797,9 @@ static void task_item_class_init (TaskItemClass *klass) {
obj_class->finalize = task_item_finalize;
widget_class->get_preferred_width = task_item_get_preferred_width;
widget_class->get_preferred_height = task_item_get_preferred_height;
+ widget_class->get_request_mode = task_item_get_request_mode;
+ widget_class->get_preferred_height_for_width = task_item_get_preferred_height_for_width;
+ widget_class->get_preferred_width_for_height = task_item_get_preferred_width_for_height;
g_type_class_add_private (obj_class, sizeof (TaskItemPrivate));
task_item_signals [TASK_ITEM_CLOSED_SIGNAL] =
g_signal_new ("task-item-closed",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]