diff -Nru plank-0.2.0~bzr397+repack/debian/changelog plank-0.2.0~bzr398/debian/changelog --- plank-0.2.0~bzr397+repack/debian/changelog 2011-07-10 14:22:31.000000000 +0000 +++ plank-0.2.0~bzr398/debian/changelog 2011-07-17 17:43:31.000000000 +0000 @@ -1,8 +1,8 @@ -plank (0.2.0~bzr397+repack-0ubuntu1~11.04~ricotz1) natty; urgency=low +plank (0.2.0~bzr398-0ubuntu1~11.04~ricotz1) natty; urgency=low - * New development release of lp:plank bzr397 + * New development release of lp:plank bzr398 - -- Rico Tzschichholz Sun, 10 Jul 2011 16:22:31 +0200 + -- Rico Tzschichholz Sun, 17 Jul 2011 19:43:31 +0200 plank (0.2.0-1) UNRELEASED; urgency=low diff -Nru plank-0.2.0~bzr397+repack/lib/DockRenderer.c plank-0.2.0~bzr398/lib/DockRenderer.c --- plank-0.2.0~bzr397+repack/lib/DockRenderer.c 2011-07-10 14:21:49.000000000 +0000 +++ plank-0.2.0~bzr398/lib/DockRenderer.c 2011-07-17 17:42:48.000000000 +0000 @@ -21,11 +21,11 @@ #include #include #include +#include +#include #include #include #include -#include -#include #include #include #include @@ -74,16 +74,6 @@ typedef struct _PlankWidgetsDockWindow PlankWidgetsDockWindow; typedef struct _PlankWidgetsDockWindowClass PlankWidgetsDockWindowClass; -#define PLANK_DRAWING_TYPE_DOCK_SURFACE (plank_drawing_dock_surface_get_type ()) -#define PLANK_DRAWING_DOCK_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurface)) -#define PLANK_DRAWING_DOCK_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurfaceClass)) -#define PLANK_DRAWING_IS_DOCK_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE)) -#define PLANK_DRAWING_IS_DOCK_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_DRAWING_TYPE_DOCK_SURFACE)) -#define PLANK_DRAWING_DOCK_SURFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurfaceClass)) - -typedef struct _PlankDrawingDockSurface PlankDrawingDockSurface; -typedef struct _PlankDrawingDockSurfaceClass PlankDrawingDockSurfaceClass; - #define PLANK_SERVICES_TYPE_PREFERENCES (plank_services_preferences_get_type ()) #define PLANK_SERVICES_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_SERVICES_TYPE_PREFERENCES, PlankServicesPreferences)) #define PLANK_SERVICES_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_SERVICES_TYPE_PREFERENCES, PlankServicesPreferencesClass)) @@ -114,6 +104,26 @@ typedef struct _PlankDrawingDockThemeRenderer PlankDrawingDockThemeRenderer; typedef struct _PlankDrawingDockThemeRendererClass PlankDrawingDockThemeRendererClass; +#define PLANK_DRAWING_TYPE_DOCK_SURFACE (plank_drawing_dock_surface_get_type ()) +#define PLANK_DRAWING_DOCK_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurface)) +#define PLANK_DRAWING_DOCK_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurfaceClass)) +#define PLANK_DRAWING_IS_DOCK_SURFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE)) +#define PLANK_DRAWING_IS_DOCK_SURFACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_DRAWING_TYPE_DOCK_SURFACE)) +#define PLANK_DRAWING_DOCK_SURFACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_DRAWING_TYPE_DOCK_SURFACE, PlankDrawingDockSurfaceClass)) + +typedef struct _PlankDrawingDockSurface PlankDrawingDockSurface; +typedef struct _PlankDrawingDockSurfaceClass PlankDrawingDockSurfaceClass; + +#define PLANK_TYPE_DOCK_PREFERENCES (plank_dock_preferences_get_type ()) +#define PLANK_DOCK_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferences)) +#define PLANK_DOCK_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferencesClass)) +#define PLANK_IS_DOCK_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_TYPE_DOCK_PREFERENCES)) +#define PLANK_IS_DOCK_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_TYPE_DOCK_PREFERENCES)) +#define PLANK_DOCK_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferencesClass)) + +typedef struct _PlankDockPreferences PlankDockPreferences; +typedef struct _PlankDockPreferencesClass PlankDockPreferencesClass; + #define PLANK_TYPE_DOCK_ITEMS (plank_dock_items_get_type ()) #define PLANK_DOCK_ITEMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_DOCK_ITEMS, PlankDockItems)) #define PLANK_DOCK_ITEMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_DOCK_ITEMS, PlankDockItemsClass)) @@ -135,16 +145,6 @@ typedef struct _PlankItemsDockItem PlankItemsDockItem; typedef struct _PlankItemsDockItemClass PlankItemsDockItemClass; - -#define PLANK_TYPE_DOCK_PREFERENCES (plank_dock_preferences_get_type ()) -#define PLANK_DOCK_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferences)) -#define PLANK_DOCK_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferencesClass)) -#define PLANK_IS_DOCK_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PLANK_TYPE_DOCK_PREFERENCES)) -#define PLANK_IS_DOCK_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PLANK_TYPE_DOCK_PREFERENCES)) -#define PLANK_DOCK_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PLANK_TYPE_DOCK_PREFERENCES, PlankDockPreferencesClass)) - -typedef struct _PlankDockPreferences PlankDockPreferences; -typedef struct _PlankDockPreferencesClass PlankDockPreferencesClass; typedef struct _PlankDockItemsPrivate PlankDockItemsPrivate; #define PLANK_ITEMS_TYPE_ITEM_STATE (plank_items_item_state_get_type ()) @@ -196,15 +196,23 @@ struct _PlankDockRendererPrivate { PlankWidgetsDockWindow* window; + PlankDrawingDockThemeRenderer* theme; PlankDrawingDockSurface* background_buffer; PlankDrawingDockSurface* main_buffer; PlankDrawingDockSurface* indicator_buffer; PlankDrawingDockSurface* urgent_indicator_buffer; PlankDrawingDockSurface* urgent_glow_buffer; - gboolean _Hidden; GDateTime* last_hide; GDateTime* last_fade; - PlankDrawingDockThemeRenderer* theme; + gboolean _Hidden; + gint _IndicatorSize; + gint _HorizPadding; + gint _TopPadding; + gint _BottomPadding; + gint _ItemPadding; + gint _VisibleDockHeight; + gint _DockHeight; + gint _DockBackgroundHeight; }; struct _PlankDockItems { @@ -262,20 +270,24 @@ GType plank_dock_renderer_get_type (void) G_GNUC_CONST; GType plank_widgets_composited_window_get_type (void) G_GNUC_CONST; GType plank_widgets_dock_window_get_type (void) G_GNUC_CONST; -GType plank_drawing_dock_surface_get_type (void) G_GNUC_CONST; GType plank_services_preferences_get_type (void) G_GNUC_CONST; GType plank_drawing_theme_renderer_get_type (void) G_GNUC_CONST; GType plank_drawing_dock_theme_renderer_get_type (void) G_GNUC_CONST; +GType plank_drawing_dock_surface_get_type (void) G_GNUC_CONST; #define PLANK_DOCK_RENDERER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PLANK_TYPE_DOCK_RENDERER, PlankDockRendererPrivate)) enum { PLANK_DOCK_RENDERER_DUMMY_PROPERTY, PLANK_DOCK_RENDERER_HIDDEN, PLANK_DOCK_RENDERER_HIDE_OFFSET, PLANK_DOCK_RENDERER_VISIBLE_DOCK_WIDTH, - PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT, PLANK_DOCK_RENDERER_DOCK_WIDTH, + PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT, PLANK_DOCK_RENDERER_DOCK_HEIGHT }; +GType plank_dock_preferences_get_type (void) G_GNUC_CONST; +static PlankDockPreferences* plank_dock_renderer_get_Prefs (PlankDockRenderer* self); +static void plank_dock_renderer_icon_size_changed (PlankDockRenderer* self); +static void _plank_dock_renderer_icon_size_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); static void plank_dock_renderer_theme_changed (PlankDockRenderer* self); static void _plank_dock_renderer_theme_changed_plank_services_preferences_changed (PlankServicesPreferences* _sender, gpointer self); void plank_animated_renderer_animated_draw (PlankAnimatedRenderer* self); @@ -285,6 +297,28 @@ static void _plank_animated_renderer_animated_draw_plank_dock_items_item_state_changed (PlankDockItems* _sender, gpointer self); static void plank_dock_renderer_hidden_changed (PlankDockRenderer* self); static void _plank_dock_renderer_hidden_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self); +static void plank_dock_renderer_reset_caches (PlankDockRenderer* self); +gint plank_dock_preferences_get_IconSize (PlankDockPreferences* self); +gdouble plank_drawing_dock_theme_renderer_get_IndicatorSize (PlankDrawingDockThemeRenderer* self); +static void plank_dock_renderer_set_IndicatorSize (PlankDockRenderer* self, gint value); +gdouble plank_drawing_dock_theme_renderer_get_HorizPadding (PlankDrawingDockThemeRenderer* self); +static void plank_dock_renderer_set_HorizPadding (PlankDockRenderer* self, gint value); +gdouble plank_drawing_dock_theme_renderer_get_TopPadding (PlankDrawingDockThemeRenderer* self); +static void plank_dock_renderer_set_TopPadding (PlankDockRenderer* self, gint value); +gdouble plank_drawing_dock_theme_renderer_get_BottomPadding (PlankDrawingDockThemeRenderer* self); +static void plank_dock_renderer_set_BottomPadding (PlankDockRenderer* self, gint value); +gdouble plank_drawing_dock_theme_renderer_get_ItemPadding (PlankDrawingDockThemeRenderer* self); +static void plank_dock_renderer_set_ItemPadding (PlankDockRenderer* self, gint value); +gint plank_drawing_theme_renderer_get_top_offset (PlankDrawingThemeRenderer* self); +gint plank_drawing_theme_renderer_get_bottom_offset (PlankDrawingThemeRenderer* self); +static gint plank_dock_renderer_get_TopPadding (PlankDockRenderer* self); +static gint plank_dock_renderer_get_BottomPadding (PlankDockRenderer* self); +void plank_dock_renderer_set_VisibleDockHeight (PlankDockRenderer* self, gint value); +gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self); +gdouble plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (PlankDrawingDockThemeRenderer* self); +void plank_dock_renderer_set_DockHeight (PlankDockRenderer* self, gint value); +static void plank_dock_renderer_set_DockBackgroundHeight (PlankDockRenderer* self, gint value); +static gint plank_dock_renderer_get_DockBackgroundHeight (PlankDockRenderer* self); PlankDockRenderer* plank_dock_renderer_new (PlankWidgetsDockWindow* window); PlankDockRenderer* plank_dock_renderer_construct (GType object_type, PlankWidgetsDockWindow* window); PlankAnimatedRenderer* plank_animated_renderer_construct (GType object_type, GtkWidget* widget); @@ -293,6 +327,7 @@ void plank_drawing_theme_renderer_set_TopRoundness (PlankDrawingThemeRenderer* self, gint value); void plank_drawing_theme_renderer_set_BottomRoundness (PlankDrawingThemeRenderer* self, gint value); void plank_drawing_theme_renderer_load (PlankDrawingThemeRenderer* self, const gchar* type); +void plank_widgets_dock_window_set_size (PlankWidgetsDockWindow* self); void plank_dock_renderer_show (PlankDockRenderer* self); gboolean plank_dock_renderer_get_Hidden (PlankDockRenderer* self); void plank_dock_renderer_set_Hidden (PlankDockRenderer* self, gboolean value); @@ -301,7 +336,6 @@ void plank_dock_renderer_cursor_region (PlankDockRenderer* self, GdkRectangle* result); gint plank_dock_renderer_get_VisibleDockWidth (PlankDockRenderer* self); gdouble plank_dock_renderer_get_HideOffset (PlankDockRenderer* self); -gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self); void plank_dock_renderer_static_dock_region (PlankDockRenderer* self, GdkRectangle* result); GType plank_items_dock_item_get_type (void) G_GNUC_CONST; void plank_dock_renderer_item_hover_region (PlankDockRenderer* self, PlankItemsDockItem* item, GdkRectangle* result); @@ -310,9 +344,6 @@ gint plank_drawing_theme_renderer_get_LineWidth (PlankDrawingThemeRenderer* self); gint plank_items_dock_item_get_Position (PlankItemsDockItem* self); static gint plank_dock_renderer_get_ItemPadding (PlankDockRenderer* self); -GType plank_dock_preferences_get_type (void) G_GNUC_CONST; -static PlankDockPreferences* plank_dock_renderer_get_Prefs (PlankDockRenderer* self); -gint plank_dock_preferences_get_IconSize (PlankDockPreferences* self); gint plank_dock_renderer_get_DockHeight (PlankDockRenderer* self); void plank_dock_renderer_draw_dock (PlankDockRenderer* self, cairo_t* cr); gint plank_drawing_dock_surface_get_Width (PlankDrawingDockSurface* self); @@ -331,14 +362,11 @@ gint plank_drawing_dock_theme_renderer_get_GlowTime (PlankDrawingDockThemeRenderer* self); gint plank_drawing_dock_theme_renderer_get_GlowPulseTime (PlankDrawingDockThemeRenderer* self); static gint plank_dock_renderer_get_DockBackgroundWidth (PlankDockRenderer* self); -static gint plank_dock_renderer_get_DockBackgroundHeight (PlankDockRenderer* self); PlankDrawingDockSurface* plank_drawing_dock_surface_new_with_dock_surface (gint width, gint height, PlankDrawingDockSurface* model); PlankDrawingDockSurface* plank_drawing_dock_surface_construct_with_dock_surface (GType object_type, gint width, gint height, PlankDrawingDockSurface* model); void plank_drawing_theme_renderer_draw_background (PlankDrawingThemeRenderer* self, PlankDrawingDockSurface* surface); cairo_t* plank_drawing_dock_surface_get_Context (PlankDrawingDockSurface* self); PlankDrawingDockSurface* plank_items_dock_item_get_surface (PlankItemsDockItem* self, PlankDrawingDockSurface* surface); -static gint plank_dock_renderer_get_TopPadding (PlankDockRenderer* self); -gint plank_drawing_theme_renderer_get_top_offset (PlankDrawingThemeRenderer* self); GType plank_items_click_animation_get_type (void) G_GNUC_CONST; PlankItemsClickAnimation plank_items_dock_item_get_ClickedAnimation (PlankItemsDockItem* self); gint plank_drawing_dock_theme_renderer_get_LaunchBounceTime (PlankDrawingDockThemeRenderer* self); @@ -350,7 +378,6 @@ const gchar* plank_items_dock_item_get_BadgeText (PlankItemsDockItem* self); void plank_dock_renderer_draw_badge (PlankDockRenderer* self, PlankDrawingDockSurface* surface, const gchar* badge_text); gint plank_drawing_dock_theme_renderer_get_UrgentBounceTime (PlankDrawingDockThemeRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (PlankDrawingDockThemeRenderer* self); GDateTime* plank_items_dock_item_get_LastActive (PlankItemsDockItem* self); gint plank_drawing_dock_theme_renderer_get_ActiveTime (PlankDrawingDockThemeRenderer* self); GType plank_drawing_color_get_type (void) G_GNUC_CONST; @@ -360,7 +387,6 @@ PlankItemsIndicatorState plank_items_dock_item_get_Indicator (PlankItemsDockItem* self); static void plank_dock_renderer_create_normal_indicator (PlankDockRenderer* self); static void plank_dock_renderer_create_urgent_indicator (PlankDockRenderer* self); -gint plank_drawing_theme_renderer_get_bottom_offset (PlankDrawingThemeRenderer* self); static gint plank_dock_renderer_get_IndicatorSize (PlankDockRenderer* self); static PlankDrawingColor* plank_dock_renderer_get_styled_color (PlankDockRenderer* self); PlankDrawingColor* plank_drawing_color_new_from_gdk (GdkColor* color); @@ -374,23 +400,21 @@ gint plank_drawing_dock_theme_renderer_get_GlowSize (PlankDrawingDockThemeRenderer* self); GType plank_services_prefs_serializable_get_type (void) G_GNUC_CONST; PlankDrawingColor* plank_drawing_color_set_val (PlankDrawingColor* self, gdouble val); -void plank_widgets_dock_window_set_size (PlankWidgetsDockWindow* self); gint plank_drawing_dock_theme_renderer_get_HideTime (PlankDrawingDockThemeRenderer* self); static gboolean plank_dock_renderer_real_animation_needed (PlankAnimatedRenderer* base, GDateTime* render_time); gint plank_drawing_dock_theme_renderer_get_FadeTime (PlankDrawingDockThemeRenderer* self); -static gint plank_dock_renderer_get_BottomPadding (PlankDockRenderer* self); -gint plank_dock_renderer_get_DockWidth (PlankDockRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_IndicatorSize (PlankDrawingDockThemeRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_HorizPadding (PlankDrawingDockThemeRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_TopPadding (PlankDrawingDockThemeRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_BottomPadding (PlankDrawingDockThemeRenderer* self); -gdouble plank_drawing_dock_theme_renderer_get_ItemPadding (PlankDrawingDockThemeRenderer* self); PlankDockPreferences* plank_widgets_dock_window_get_Prefs (PlankWidgetsDockWindow* self); +gint plank_dock_renderer_get_DockWidth (PlankDockRenderer* self); static void plank_dock_renderer_finalize (GObject* obj); static void _vala_plank_dock_renderer_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); static void _vala_plank_dock_renderer_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); +static void _plank_dock_renderer_icon_size_changed_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) { + plank_dock_renderer_icon_size_changed (self); +} + + static void _plank_dock_renderer_theme_changed_plank_services_preferences_changed (PlankServicesPreferences* _sender, gpointer self) { plank_dock_renderer_theme_changed (self); } @@ -411,6 +435,52 @@ } +static void plank_dock_renderer_reset_caches (PlankDockRenderer* self) { + PlankDockPreferences* _tmp0_ = NULL; + gint _tmp1_; + gint icon_size; + gdouble _tmp2_; + gdouble _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble _tmp6_; + gint _tmp7_; + gint _tmp8_; + gint tmp; + gdouble _tmp9_; + g_return_if_fail (self != NULL); + _tmp0_ = plank_dock_renderer_get_Prefs (self); + _tmp1_ = plank_dock_preferences_get_IconSize (_tmp0_); + icon_size = _tmp1_; + _tmp2_ = plank_drawing_dock_theme_renderer_get_IndicatorSize (self->priv->theme); + plank_dock_renderer_set_IndicatorSize (self, (gint) ((_tmp2_ / 10.0) * icon_size)); + _tmp3_ = plank_drawing_dock_theme_renderer_get_HorizPadding (self->priv->theme); + plank_dock_renderer_set_HorizPadding (self, (gint) ((_tmp3_ / 10.0) * icon_size)); + _tmp4_ = plank_drawing_dock_theme_renderer_get_TopPadding (self->priv->theme); + plank_dock_renderer_set_TopPadding (self, (gint) ((_tmp4_ / 10.0) * icon_size)); + _tmp5_ = plank_drawing_dock_theme_renderer_get_BottomPadding (self->priv->theme); + plank_dock_renderer_set_BottomPadding (self, (gint) ((_tmp5_ / 10.0) * icon_size)); + _tmp6_ = plank_drawing_dock_theme_renderer_get_ItemPadding (self->priv->theme); + plank_dock_renderer_set_ItemPadding (self, (gint) ((_tmp6_ / 10.0) * icon_size)); + _tmp7_ = plank_drawing_theme_renderer_get_top_offset ((PlankDrawingThemeRenderer*) self->priv->theme); + _tmp8_ = plank_drawing_theme_renderer_get_bottom_offset ((PlankDrawingThemeRenderer*) self->priv->theme); + tmp = icon_size + (2 * (_tmp7_ + _tmp8_)); + if (self->priv->_TopPadding > 0) { + tmp = tmp + self->priv->_TopPadding; + } + if (self->priv->_BottomPadding > 0) { + tmp = tmp + self->priv->_BottomPadding; + } + plank_dock_renderer_set_VisibleDockHeight (self, tmp); + _tmp9_ = plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (self->priv->theme); + plank_dock_renderer_set_DockHeight (self, self->priv->_VisibleDockHeight + ((gint) (icon_size * _tmp9_))); + plank_dock_renderer_set_DockBackgroundHeight (self, self->priv->_VisibleDockHeight); + if (self->priv->_TopPadding < 0) { + plank_dock_renderer_set_DockBackgroundHeight (self, self->priv->_DockBackgroundHeight + self->priv->_TopPadding); + } +} + + static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } @@ -420,7 +490,8 @@ PlankDockRenderer * self = NULL; PlankWidgetsDockWindow* _tmp0_; PlankDrawingDockThemeRenderer* _tmp1_ = NULL; - PlankDockItems* _tmp2_ = NULL; + PlankDockPreferences* _tmp2_ = NULL; + PlankDockItems* _tmp3_ = NULL; g_return_val_if_fail (window != NULL, NULL); self = (PlankDockRenderer*) plank_animated_renderer_construct (object_type, (GtkWidget*) window); _tmp0_ = _g_object_ref0 (window); @@ -432,10 +503,13 @@ plank_drawing_theme_renderer_set_TopRoundness ((PlankDrawingThemeRenderer*) self->priv->theme, 4); plank_drawing_theme_renderer_set_BottomRoundness ((PlankDrawingThemeRenderer*) self->priv->theme, 0); plank_drawing_theme_renderer_load ((PlankDrawingThemeRenderer*) self->priv->theme, "dock"); + _tmp2_ = plank_dock_renderer_get_Prefs (self); + g_signal_connect_object ((GObject*) _tmp2_, "notify::IconSize", (GCallback) _plank_dock_renderer_icon_size_changed_g_object_notify, self, 0); g_signal_connect_object ((PlankServicesPreferences*) self->priv->theme, "changed", (GCallback) _plank_dock_renderer_theme_changed_plank_services_preferences_changed, self, 0); + plank_dock_renderer_reset_caches (self); g_signal_connect_object ((GObject*) window, "notify::HoveredItem", (GCallback) _plank_animated_renderer_animated_draw_g_object_notify, (PlankAnimatedRenderer*) self, 0); - _tmp2_ = plank_widgets_dock_window_get_Items (window); - g_signal_connect_object (_tmp2_, "item-state-changed", (GCallback) _plank_animated_renderer_animated_draw_plank_dock_items_item_state_changed, (PlankAnimatedRenderer*) self, 0); + _tmp3_ = plank_widgets_dock_window_get_Items (window); + g_signal_connect_object (_tmp3_, "item-state-changed", (GCallback) _plank_animated_renderer_animated_draw_plank_dock_items_item_state_changed, (PlankAnimatedRenderer*) self, 0); g_signal_connect_object ((GObject*) self, "notify::Hidden", (GCallback) _plank_dock_renderer_hidden_changed_g_object_notify, self, 0); return self; } @@ -446,6 +520,19 @@ } +static void plank_dock_renderer_icon_size_changed (PlankDockRenderer* self) { + g_return_if_fail (self != NULL); + plank_dock_renderer_reset_caches (self); +} + + +static void plank_dock_renderer_theme_changed (PlankDockRenderer* self) { + g_return_if_fail (self != NULL); + plank_dock_renderer_reset_caches (self); + plank_widgets_dock_window_set_size (self->priv->window); +} + + void plank_dock_renderer_show (PlankDockRenderer* self) { g_return_if_fail (self != NULL); if (!self->priv->_Hidden) { @@ -485,21 +572,19 @@ gint _tmp0_; gdouble _tmp1_; gint _tmp2_; - gdouble _tmp3_; + gint _tmp3_; gint _tmp4_; - gint _tmp5_; g_return_if_fail (self != NULL); memset (&rect, 0, sizeof (GdkRectangle)); _tmp0_ = plank_dock_renderer_get_VisibleDockWidth (self); rect.width = _tmp0_; _tmp1_ = plank_dock_renderer_get_HideOffset (self); - _tmp2_ = plank_dock_renderer_get_VisibleDockHeight (self); - _tmp3_ = MAX ((gdouble) 1, (1 - _tmp1_) * _tmp2_); - rect.height = (gint) _tmp3_; - g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp4_, NULL); - rect.x = (_tmp4_ - rect.width) / 2; - g_object_get ((GtkWidget*) self->priv->window, "height-request", &_tmp5_, NULL); - rect.y = _tmp5_ - rect.height; + _tmp2_ = MAX (1, (gint) ((1 - _tmp1_) * self->priv->_VisibleDockHeight)); + rect.height = _tmp2_; + g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp3_, NULL); + rect.x = (_tmp3_ - rect.width) / 2; + g_object_get ((GtkWidget*) self->priv->window, "height-request", &_tmp4_, NULL); + rect.y = _tmp4_ - rect.height; *result = rect; return; } @@ -510,17 +595,15 @@ gint _tmp0_; gint _tmp1_; gint _tmp2_; - gint _tmp3_; g_return_if_fail (self != NULL); memset (&rect, 0, sizeof (GdkRectangle)); _tmp0_ = plank_dock_renderer_get_VisibleDockWidth (self); rect.width = _tmp0_; - _tmp1_ = plank_dock_renderer_get_VisibleDockHeight (self); - rect.height = _tmp1_; - g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp2_, NULL); - rect.x = (_tmp2_ - rect.width) / 2; - g_object_get ((GtkWidget*) self->priv->window, "height-request", &_tmp3_, NULL); - rect.y = _tmp3_ - rect.height; + rect.height = self->priv->_VisibleDockHeight; + g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp1_, NULL); + rect.x = (_tmp1_ - rect.width) / 2; + g_object_get ((GtkWidget*) self->priv->window, "height-request", &_tmp2_, NULL); + rect.y = _tmp2_ - rect.height; *result = rect; return; } @@ -549,43 +632,29 @@ GdkRectangle rect = {0}; gint _tmp0_ = 0; gint _tmp1_; - gint _tmp3_; + gint _tmp2_; + PlankDockPreferences* _tmp3_ = NULL; gint _tmp4_; - gint _tmp5_; - PlankDockPreferences* _tmp6_ = NULL; - gint _tmp7_; - gint _tmp8_; - gint _tmp9_; - PlankDockPreferences* _tmp10_ = NULL; - gint _tmp11_; - gint _tmp12_; - gint _tmp13_; + PlankDockPreferences* _tmp5_ = NULL; + gint _tmp6_; g_return_if_fail (self != NULL); g_return_if_fail (item != NULL); memset (&rect, 0, sizeof (GdkRectangle)); - _tmp1_ = plank_dock_renderer_get_HorizPadding (self); - if (_tmp1_ > 0) { - gint _tmp2_; - _tmp2_ = plank_dock_renderer_get_HorizPadding (self); - _tmp0_ = _tmp2_; + if (self->priv->_HorizPadding > 0) { + _tmp0_ = self->priv->_HorizPadding; } else { _tmp0_ = 0; } - _tmp3_ = plank_drawing_theme_renderer_get_LineWidth ((PlankDrawingThemeRenderer*) self->priv->theme); - _tmp4_ = plank_items_dock_item_get_Position (item); - _tmp5_ = plank_dock_renderer_get_ItemPadding (self); - _tmp6_ = plank_dock_renderer_get_Prefs (self); - _tmp7_ = plank_dock_preferences_get_IconSize (_tmp6_); - rect.x = ((2 * _tmp3_) + _tmp0_) + (_tmp4_ * (_tmp5_ + _tmp7_)); - _tmp8_ = plank_dock_renderer_get_DockHeight (self); - _tmp9_ = plank_dock_renderer_get_VisibleDockHeight (self); - rect.y = _tmp8_ - _tmp9_; - _tmp10_ = plank_dock_renderer_get_Prefs (self); - _tmp11_ = plank_dock_preferences_get_IconSize (_tmp10_); - _tmp12_ = plank_dock_renderer_get_ItemPadding (self); - rect.width = _tmp11_ + _tmp12_; - _tmp13_ = plank_dock_renderer_get_VisibleDockHeight (self); - rect.height = _tmp13_; + _tmp1_ = plank_drawing_theme_renderer_get_LineWidth ((PlankDrawingThemeRenderer*) self->priv->theme); + _tmp2_ = plank_items_dock_item_get_Position (item); + _tmp3_ = plank_dock_renderer_get_Prefs (self); + _tmp4_ = plank_dock_preferences_get_IconSize (_tmp3_); + rect.x = ((2 * _tmp1_) + _tmp0_) + (_tmp2_ * (self->priv->_ItemPadding + _tmp4_)); + rect.y = self->priv->_DockHeight - self->priv->_VisibleDockHeight; + _tmp5_ = plank_dock_renderer_get_Prefs (self); + _tmp6_ = plank_dock_preferences_get_IconSize (_tmp5_); + rect.width = _tmp6_ + self->priv->_ItemPadding; + rect.height = self->priv->_VisibleDockHeight; *result = rect; return; } @@ -593,14 +662,13 @@ void plank_dock_renderer_draw_dock (PlankDockRenderer* self, cairo_t* cr) { gboolean _tmp0_ = FALSE; - gint _tmp14_; - gint _tmp15_; + gint _tmp12_; + gint _tmp13_; gint x_offset; - cairo_surface_t* _tmp16_ = NULL; - gint _tmp17_; + cairo_surface_t* _tmp14_ = NULL; + gdouble _tmp15_; + gdouble _tmp16_; gdouble _tmp18_; - gdouble _tmp19_; - gdouble _tmp21_; g_return_if_fail (self != NULL); g_return_if_fail (cr != NULL); if (self->priv->main_buffer != NULL) { @@ -613,10 +681,8 @@ _tmp1_ = TRUE; } else { gint _tmp4_; - gint _tmp5_; _tmp4_ = plank_drawing_dock_surface_get_Height (self->priv->main_buffer); - _tmp5_ = plank_dock_renderer_get_DockHeight (self); - _tmp1_ = _tmp4_ != _tmp5_; + _tmp1_ = _tmp4_ != self->priv->_DockHeight; } _tmp0_ = _tmp1_; } else { @@ -626,134 +692,129 @@ plank_dock_renderer_reset_buffers (self); } if (self->priv->main_buffer == NULL) { - gint _tmp6_; - gint _tmp7_; - cairo_surface_t* _tmp8_ = NULL; - PlankDrawingDockSurface* _tmp9_ = NULL; - _tmp6_ = plank_dock_renderer_get_VisibleDockWidth (self); - _tmp7_ = plank_dock_renderer_get_DockHeight (self); - _tmp8_ = cairo_get_target (cr); - _tmp9_ = plank_drawing_dock_surface_new_with_surface (_tmp6_, _tmp7_, _tmp8_); + gint _tmp5_; + cairo_surface_t* _tmp6_ = NULL; + PlankDrawingDockSurface* _tmp7_ = NULL; + _tmp5_ = plank_dock_renderer_get_VisibleDockWidth (self); + _tmp6_ = cairo_get_target (cr); + _tmp7_ = plank_drawing_dock_surface_new_with_surface (_tmp5_, self->priv->_DockHeight, _tmp6_); _g_object_unref0 (self->priv->main_buffer); - self->priv->main_buffer = _tmp9_; + self->priv->main_buffer = _tmp7_; } plank_drawing_dock_surface_clear (self->priv->main_buffer); plank_dock_renderer_draw_dock_background (self, self->priv->main_buffer); { - PlankDockItems* _tmp10_ = NULL; - GeeArrayList* _tmp11_; + PlankDockItems* _tmp8_ = NULL; + GeeArrayList* _tmp9_; GeeArrayList* _item_list; - gint _tmp12_; + gint _tmp10_; gint _item_size; gint _item_index; - _tmp10_ = plank_widgets_dock_window_get_Items (self->priv->window); - _tmp11_ = _g_object_ref0 (_tmp10_->Items); - _item_list = _tmp11_; - _tmp12_ = gee_collection_get_size ((GeeCollection*) _item_list); - _item_size = _tmp12_; + _tmp8_ = plank_widgets_dock_window_get_Items (self->priv->window); + _tmp9_ = _g_object_ref0 (_tmp8_->Items); + _item_list = _tmp9_; + _tmp10_ = gee_collection_get_size ((GeeCollection*) _item_list); + _item_size = _tmp10_; _item_index = -1; while (TRUE) { - gpointer _tmp13_ = NULL; + gpointer _tmp11_ = NULL; PlankItemsDockItem* item; _item_index = _item_index + 1; if (!(_item_index < _item_size)) { break; } - _tmp13_ = gee_abstract_list_get ((GeeAbstractList*) _item_list, _item_index); - item = (PlankItemsDockItem*) _tmp13_; + _tmp11_ = gee_abstract_list_get ((GeeAbstractList*) _item_list, _item_index); + item = (PlankItemsDockItem*) _tmp11_; plank_dock_renderer_draw_item (self, self->priv->main_buffer, item); _g_object_unref0 (item); } _g_object_unref0 (_item_list); } - g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp14_, NULL); - _tmp15_ = plank_drawing_dock_surface_get_Width (self->priv->main_buffer); - x_offset = (_tmp14_ - _tmp15_) / 2; + g_object_get ((GtkWidget*) self->priv->window, "width-request", &_tmp12_, NULL); + _tmp13_ = plank_drawing_dock_surface_get_Width (self->priv->main_buffer); + x_offset = (_tmp12_ - _tmp13_) / 2; cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); - _tmp16_ = plank_drawing_dock_surface_get_Internal (self->priv->main_buffer); - _tmp17_ = plank_dock_renderer_get_VisibleDockHeight (self); - _tmp18_ = plank_dock_renderer_get_HideOffset (self); - cairo_set_source_surface (cr, _tmp16_, (gdouble) x_offset, _tmp17_ * _tmp18_); + _tmp14_ = plank_drawing_dock_surface_get_Internal (self->priv->main_buffer); + _tmp15_ = plank_dock_renderer_get_HideOffset (self); + cairo_set_source_surface (cr, _tmp14_, (gdouble) x_offset, self->priv->_VisibleDockHeight * _tmp15_); cairo_paint (cr); - _tmp19_ = plank_dock_renderer_get_Opacity (self); - if (_tmp19_ < 1.0) { - gdouble _tmp20_; + _tmp16_ = plank_dock_renderer_get_Opacity (self); + if (_tmp16_ < 1.0) { + gdouble _tmp17_; cairo_set_source_rgba (cr, (gdouble) 0, (gdouble) 0, (gdouble) 0, (gdouble) 0); - _tmp20_ = plank_dock_renderer_get_Opacity (self); - cairo_paint_with_alpha (cr, _tmp20_); + _tmp17_ = plank_dock_renderer_get_Opacity (self); + cairo_paint_with_alpha (cr, _tmp17_); } - _tmp21_ = plank_dock_renderer_get_HideOffset (self); - if (_tmp21_ == 1) { + _tmp18_ = plank_dock_renderer_get_HideOffset (self); + if (_tmp18_ == 1) { if (self->priv->urgent_glow_buffer == NULL) { plank_dock_renderer_create_urgent_glow (self, self->priv->background_buffer); } { - PlankDockItems* _tmp22_ = NULL; - GeeArrayList* _tmp23_; + PlankDockItems* _tmp19_ = NULL; + GeeArrayList* _tmp20_; GeeArrayList* _item_list; - gint _tmp24_; + gint _tmp21_; gint _item_size; gint _item_index; - _tmp22_ = plank_widgets_dock_window_get_Items (self->priv->window); - _tmp23_ = _g_object_ref0 (_tmp22_->Items); - _item_list = _tmp23_; - _tmp24_ = gee_collection_get_size ((GeeCollection*) _item_list); - _item_size = _tmp24_; + _tmp19_ = plank_widgets_dock_window_get_Items (self->priv->window); + _tmp20_ = _g_object_ref0 (_tmp19_->Items); + _item_list = _tmp20_; + _tmp21_ = gee_collection_get_size ((GeeCollection*) _item_list); + _item_size = _tmp21_; _item_index = -1; while (TRUE) { - gpointer _tmp25_ = NULL; + gpointer _tmp22_ = NULL; PlankItemsDockItem* item; - GDateTime* _tmp26_ = NULL; - GDateTime* _tmp27_; - GDateTime* _tmp28_ = NULL; - GTimeSpan _tmp29_; - GTimeSpan _tmp30_; + GDateTime* _tmp23_ = NULL; + GDateTime* _tmp24_; + GDateTime* _tmp25_ = NULL; + GTimeSpan _tmp26_; + GTimeSpan _tmp27_; GTimeSpan diff; - gboolean _tmp31_ = FALSE; - PlankItemsItemState _tmp32_; + gboolean _tmp28_ = FALSE; + PlankItemsItemState _tmp29_; _item_index = _item_index + 1; if (!(_item_index < _item_size)) { break; } - _tmp25_ = gee_abstract_list_get ((GeeAbstractList*) _item_list, _item_index); - item = (PlankItemsDockItem*) _tmp25_; - _tmp26_ = g_date_time_new_now_utc (); + _tmp22_ = gee_abstract_list_get ((GeeAbstractList*) _item_list, _item_index); + item = (PlankItemsDockItem*) _tmp22_; + _tmp23_ = g_date_time_new_now_utc (); + _tmp24_ = _tmp23_; + _tmp25_ = plank_items_dock_item_get_LastUrgent (item); + _tmp26_ = g_date_time_difference (_tmp24_, _tmp25_); _tmp27_ = _tmp26_; - _tmp28_ = plank_items_dock_item_get_LastUrgent (item); - _tmp29_ = g_date_time_difference (_tmp27_, _tmp28_); - _tmp30_ = _tmp29_; - _g_date_time_unref0 (_tmp27_); - diff = _tmp30_; - _tmp32_ = plank_items_dock_item_get_State (item); - if ((_tmp32_ & PLANK_ITEMS_ITEM_STATE_URGENT) == PLANK_ITEMS_ITEM_STATE_URGENT) { - gint _tmp33_; - _tmp33_ = plank_drawing_dock_theme_renderer_get_GlowTime (self->priv->theme); - _tmp31_ = diff < (_tmp33_ * 1000); + _g_date_time_unref0 (_tmp24_); + diff = _tmp27_; + _tmp29_ = plank_items_dock_item_get_State (item); + if ((_tmp29_ & PLANK_ITEMS_ITEM_STATE_URGENT) == PLANK_ITEMS_ITEM_STATE_URGENT) { + gint _tmp30_; + _tmp30_ = plank_drawing_dock_theme_renderer_get_GlowTime (self->priv->theme); + _tmp28_ = diff < (_tmp30_ * 1000); } else { - _tmp31_ = FALSE; + _tmp28_ = FALSE; } - if (_tmp31_) { - GdkRectangle _tmp34_ = {0}; - GdkRectangle _tmp35_ = {0}; + if (_tmp28_) { + GdkRectangle _tmp31_ = {0}; + GdkRectangle _tmp32_ = {0}; GdkRectangle rect; - cairo_surface_t* _tmp36_ = NULL; - gint _tmp37_; - gint _tmp38_; - gint _tmp39_; - gint _tmp40_; - gdouble _tmp41_; + cairo_surface_t* _tmp33_ = NULL; + gint _tmp34_; + gint _tmp35_; + gint _tmp36_; + gdouble _tmp37_; gdouble opacity; - plank_dock_renderer_item_draw_region (self, item, &_tmp34_); - _tmp35_ = _tmp34_; - rect = _tmp35_; - _tmp36_ = plank_drawing_dock_surface_get_Internal (self->priv->urgent_glow_buffer); - _tmp37_ = plank_drawing_dock_surface_get_Width (self->priv->urgent_glow_buffer); - _tmp38_ = plank_dock_renderer_get_DockHeight (self); - _tmp39_ = plank_drawing_dock_surface_get_Height (self->priv->urgent_glow_buffer); - cairo_set_source_surface (cr, _tmp36_, ((x_offset + rect.x) + (rect.width / 2.0)) - (_tmp37_ / 2.0), _tmp38_ - (_tmp39_ / 2.0)); - _tmp40_ = plank_drawing_dock_theme_renderer_get_GlowPulseTime (self->priv->theme); - _tmp41_ = sin (((diff / ((gdouble) (_tmp40_ * 1000))) * 2) * G_PI); - opacity = 0.2 + ((0.75 * (_tmp41_ + 1)) / 2); + plank_dock_renderer_item_draw_region (self, item, &_tmp31_); + _tmp32_ = _tmp31_; + rect = _tmp32_; + _tmp33_ = plank_drawing_dock_surface_get_Internal (self->priv->urgent_glow_buffer); + _tmp34_ = plank_drawing_dock_surface_get_Width (self->priv->urgent_glow_buffer); + _tmp35_ = plank_drawing_dock_surface_get_Height (self->priv->urgent_glow_buffer); + cairo_set_source_surface (cr, _tmp33_, ((x_offset + rect.x) + (rect.width / 2.0)) - (_tmp34_ / 2.0), self->priv->_DockHeight - (_tmp35_ / 2.0)); + _tmp36_ = plank_drawing_dock_theme_renderer_get_GlowPulseTime (self->priv->theme); + _tmp37_ = sin (((diff / ((gdouble) (_tmp36_ * 1000))) * 2) * G_PI); + opacity = 0.2 + ((0.75 * (_tmp37_ + 1)) / 2); cairo_paint_with_alpha (cr, opacity); } _g_object_unref0 (item); @@ -767,13 +828,13 @@ static void plank_dock_renderer_draw_dock_background (PlankDockRenderer* self, PlankDrawingDockSurface* surface) { gboolean _tmp0_ = FALSE; gboolean _tmp1_ = FALSE; - cairo_t* _tmp9_ = NULL; - cairo_surface_t* _tmp10_ = NULL; + cairo_t* _tmp7_ = NULL; + cairo_surface_t* _tmp8_ = NULL; + gint _tmp9_; + gint _tmp10_; gint _tmp11_; gint _tmp12_; - gint _tmp13_; - gint _tmp14_; - cairo_t* _tmp15_ = NULL; + cairo_t* _tmp13_ = NULL; g_return_if_fail (self != NULL); g_return_if_fail (surface != NULL); if (self->priv->background_buffer == NULL) { @@ -789,31 +850,27 @@ _tmp0_ = TRUE; } else { gint _tmp4_; - gint _tmp5_; _tmp4_ = plank_drawing_dock_surface_get_Height (self->priv->background_buffer); - _tmp5_ = plank_dock_renderer_get_DockBackgroundHeight (self); - _tmp0_ = _tmp4_ != _tmp5_; + _tmp0_ = _tmp4_ != self->priv->_DockBackgroundHeight; } if (_tmp0_) { - gint _tmp6_; - gint _tmp7_; - PlankDrawingDockSurface* _tmp8_ = NULL; - _tmp6_ = plank_dock_renderer_get_DockBackgroundWidth (self); - _tmp7_ = plank_dock_renderer_get_DockBackgroundHeight (self); - _tmp8_ = plank_drawing_dock_surface_new_with_dock_surface (_tmp6_, _tmp7_, surface); + gint _tmp5_; + PlankDrawingDockSurface* _tmp6_ = NULL; + _tmp5_ = plank_dock_renderer_get_DockBackgroundWidth (self); + _tmp6_ = plank_drawing_dock_surface_new_with_dock_surface (_tmp5_, self->priv->_DockBackgroundHeight, surface); _g_object_unref0 (self->priv->background_buffer); - self->priv->background_buffer = _tmp8_; + self->priv->background_buffer = _tmp6_; plank_drawing_theme_renderer_draw_background ((PlankDrawingThemeRenderer*) self->priv->theme, self->priv->background_buffer); } - _tmp9_ = plank_drawing_dock_surface_get_Context (surface); - _tmp10_ = plank_drawing_dock_surface_get_Internal (self->priv->background_buffer); - _tmp11_ = plank_drawing_dock_surface_get_Width (surface); - _tmp12_ = plank_drawing_dock_surface_get_Width (self->priv->background_buffer); - _tmp13_ = plank_drawing_dock_surface_get_Height (surface); - _tmp14_ = plank_drawing_dock_surface_get_Height (self->priv->background_buffer); - cairo_set_source_surface (_tmp9_, _tmp10_, (_tmp11_ - _tmp12_) / 2.0, (gdouble) (_tmp13_ - _tmp14_)); - _tmp15_ = plank_drawing_dock_surface_get_Context (surface); - cairo_paint (_tmp15_); + _tmp7_ = plank_drawing_dock_surface_get_Context (surface); + _tmp8_ = plank_drawing_dock_surface_get_Internal (self->priv->background_buffer); + _tmp9_ = plank_drawing_dock_surface_get_Width (surface); + _tmp10_ = plank_drawing_dock_surface_get_Width (self->priv->background_buffer); + _tmp11_ = plank_drawing_dock_surface_get_Height (surface); + _tmp12_ = plank_drawing_dock_surface_get_Height (self->priv->background_buffer); + cairo_set_source_surface (_tmp7_, _tmp8_, (_tmp9_ - _tmp10_) / 2.0, (gdouble) (_tmp11_ - _tmp12_)); + _tmp13_ = plank_drawing_dock_surface_get_Context (surface); + cairo_paint (_tmp13_); } @@ -833,52 +890,48 @@ GdkRectangle _tmp10_ = {0}; GdkRectangle draw_rect; GdkRectangle hover_rect; - gint _tmp11_; - gint _tmp12_ = 0; - gint _tmp13_; - gint _tmp15_; - gint _tmp16_; + gint _tmp11_ = 0; + gint _tmp12_; gdouble lighten; gdouble darken; - gint _tmp17_ = 0; - PlankItemsClickAnimation _tmp18_; + gint _tmp13_ = 0; + PlankItemsClickAnimation _tmp14_; gint max_click_time; - GDateTime* _tmp21_ = NULL; - GDateTime* _tmp22_; - GDateTime* _tmp23_ = NULL; - GTimeSpan _tmp24_; - GTimeSpan _tmp25_; + GDateTime* _tmp17_ = NULL; + GDateTime* _tmp18_; + GDateTime* _tmp19_ = NULL; + GTimeSpan _tmp20_; + GTimeSpan _tmp21_; GTimeSpan click_time; - PlankItemsDockItem* _tmp38_ = NULL; - gboolean _tmp39_ = FALSE; - PlankItemsDockItem* _tmp40_ = NULL; - const gchar* _tmp45_ = NULL; - GDateTime* _tmp54_ = NULL; - GDateTime* _tmp55_; - GDateTime* _tmp56_ = NULL; - GTimeSpan _tmp57_; - GTimeSpan _tmp58_; + PlankItemsDockItem* _tmp34_ = NULL; + gboolean _tmp35_ = FALSE; + PlankItemsDockItem* _tmp36_ = NULL; + const gchar* _tmp41_ = NULL; + GDateTime* _tmp50_ = NULL; + GDateTime* _tmp51_; + GDateTime* _tmp52_ = NULL; + GTimeSpan _tmp53_; + GTimeSpan _tmp54_; GTimeSpan urgent_time; - gboolean _tmp59_ = FALSE; - gboolean _tmp60_ = FALSE; - GdkScreen* _tmp61_ = NULL; - gboolean _tmp62_; - GDateTime* _tmp71_ = NULL; - GDateTime* _tmp72_; - GDateTime* _tmp73_ = NULL; - GTimeSpan _tmp74_; - GTimeSpan _tmp75_; + gboolean _tmp55_ = FALSE; + gboolean _tmp56_ = FALSE; + GdkScreen* _tmp57_ = NULL; + gboolean _tmp58_; + GDateTime* _tmp67_ = NULL; + GDateTime* _tmp68_; + GDateTime* _tmp69_ = NULL; + GTimeSpan _tmp70_; + GTimeSpan _tmp71_; GTimeSpan active_time; - gint _tmp76_; - gdouble _tmp77_; + gint _tmp72_; + gdouble _tmp73_; gdouble opacity; - PlankItemsItemState _tmp78_; - gint _tmp79_; - PlankDrawingColor* _tmp80_ = NULL; - cairo_t* _tmp81_ = NULL; - cairo_surface_t* _tmp82_ = NULL; - cairo_t* _tmp83_ = NULL; - PlankItemsIndicatorState _tmp84_; + PlankItemsItemState _tmp74_; + PlankDrawingColor* _tmp75_ = NULL; + cairo_t* _tmp76_ = NULL; + cairo_surface_t* _tmp77_ = NULL; + cairo_t* _tmp78_ = NULL; + PlankItemsIndicatorState _tmp79_; g_return_if_fail (self != NULL); g_return_if_fail (surface != NULL); g_return_if_fail (item != NULL); @@ -899,272 +952,263 @@ _tmp10_ = _tmp9_; draw_rect = _tmp10_; hover_rect = draw_rect; - _tmp11_ = plank_dock_renderer_get_ItemPadding (self); - draw_rect.x = draw_rect.x + (_tmp11_ / 2); - _tmp13_ = plank_dock_renderer_get_TopPadding (self); - if (_tmp13_ > 0) { - gint _tmp14_; - _tmp14_ = plank_dock_renderer_get_TopPadding (self); - _tmp12_ = _tmp14_; + draw_rect.x = draw_rect.x + (self->priv->_ItemPadding / 2); + if (self->priv->_TopPadding > 0) { + _tmp11_ = self->priv->_TopPadding; } else { - _tmp12_ = 0; + _tmp11_ = 0; } - _tmp15_ = plank_drawing_theme_renderer_get_top_offset ((PlankDrawingThemeRenderer*) self->priv->theme); - draw_rect.y = draw_rect.y + ((2 * _tmp15_) + _tmp12_); - _tmp16_ = plank_dock_renderer_get_TopPadding (self); - draw_rect.height = draw_rect.height - _tmp16_; + _tmp12_ = plank_drawing_theme_renderer_get_top_offset ((PlankDrawingThemeRenderer*) self->priv->theme); + draw_rect.y = draw_rect.y + ((2 * _tmp12_) + _tmp11_); + draw_rect.height = draw_rect.height - self->priv->_TopPadding; lighten = 0.0; darken = 0.0; - _tmp18_ = plank_items_dock_item_get_ClickedAnimation (item); - if (_tmp18_ == PLANK_ITEMS_CLICK_ANIMATION_BOUNCE) { - gint _tmp19_; - _tmp19_ = plank_drawing_dock_theme_renderer_get_LaunchBounceTime (self->priv->theme); - _tmp17_ = _tmp19_; + _tmp14_ = plank_items_dock_item_get_ClickedAnimation (item); + if (_tmp14_ == PLANK_ITEMS_CLICK_ANIMATION_BOUNCE) { + gint _tmp15_; + _tmp15_ = plank_drawing_dock_theme_renderer_get_LaunchBounceTime (self->priv->theme); + _tmp13_ = _tmp15_; } else { - gint _tmp20_; - _tmp20_ = plank_drawing_dock_theme_renderer_get_ClickTime (self->priv->theme); - _tmp17_ = _tmp20_; - } - max_click_time = _tmp17_; - _tmp21_ = g_date_time_new_now_utc (); - _tmp22_ = _tmp21_; - _tmp23_ = plank_items_dock_item_get_LastClicked (item); - _tmp24_ = g_date_time_difference (_tmp22_, _tmp23_); - _tmp25_ = _tmp24_; - _g_date_time_unref0 (_tmp22_); - click_time = _tmp25_; - if (click_time < (max_click_time * 1000)) { + gint _tmp16_; + _tmp16_ = plank_drawing_dock_theme_renderer_get_ClickTime (self->priv->theme); + _tmp13_ = _tmp16_; + } + max_click_time = _tmp13_; + max_click_time = max_click_time * 1000; + _tmp17_ = g_date_time_new_now_utc (); + _tmp18_ = _tmp17_; + _tmp19_ = plank_items_dock_item_get_LastClicked (item); + _tmp20_ = g_date_time_difference (_tmp18_, _tmp19_); + _tmp21_ = _tmp20_; + _g_date_time_unref0 (_tmp18_); + click_time = _tmp21_; + if (click_time < max_click_time) { gdouble clickAnimationProgress; - PlankItemsClickAnimation _tmp26_; - clickAnimationProgress = click_time / ((gdouble) (max_click_time * 1000)); - _tmp26_ = plank_items_dock_item_get_ClickedAnimation (item); - switch (_tmp26_) { + PlankItemsClickAnimation _tmp22_; + clickAnimationProgress = click_time / ((gdouble) max_click_time); + _tmp22_ = plank_items_dock_item_get_ClickedAnimation (item); + switch (_tmp22_) { case PLANK_ITEMS_CLICK_ANIMATION_BOUNCE: { - GdkScreen* _tmp27_ = NULL; - gboolean _tmp28_; - _tmp27_ = gdk_screen_get_default (); - _tmp28_ = gdk_screen_is_composited (_tmp27_); - if (_tmp28_) { - gdouble _tmp29_; - PlankDockPreferences* _tmp30_ = NULL; - gint _tmp31_; - gdouble _tmp32_; - gint _tmp33_; - _tmp29_ = sin ((2 * G_PI) * clickAnimationProgress); - _tmp30_ = plank_dock_renderer_get_Prefs (self); - _tmp31_ = plank_dock_preferences_get_IconSize (_tmp30_); - _tmp32_ = plank_drawing_dock_theme_renderer_get_LaunchBounceHeight (self->priv->theme); - _tmp33_ = abs ((gint) ((_tmp29_ * _tmp31_) * _tmp32_)); - draw_rect.y = draw_rect.y - _tmp33_; + GdkScreen* _tmp23_ = NULL; + gboolean _tmp24_; + _tmp23_ = gdk_screen_get_default (); + _tmp24_ = gdk_screen_is_composited (_tmp23_); + if (_tmp24_) { + gdouble _tmp25_; + PlankDockPreferences* _tmp26_ = NULL; + gint _tmp27_; + gdouble _tmp28_; + gint _tmp29_; + _tmp25_ = sin ((2 * G_PI) * clickAnimationProgress); + _tmp26_ = plank_dock_renderer_get_Prefs (self); + _tmp27_ = plank_dock_preferences_get_IconSize (_tmp26_); + _tmp28_ = plank_drawing_dock_theme_renderer_get_LaunchBounceHeight (self->priv->theme); + _tmp29_ = abs ((gint) ((_tmp25_ * _tmp27_) * _tmp28_)); + draw_rect.y = draw_rect.y - _tmp29_; } break; } case PLANK_ITEMS_CLICK_ANIMATION_DARKEN: { - gdouble _tmp34_; - gdouble _tmp35_; - _tmp34_ = sin (G_PI * clickAnimationProgress); - _tmp35_ = MAX ((gdouble) 0, _tmp34_); - darken = _tmp35_ * 0.5; + gdouble _tmp30_; + gdouble _tmp31_; + _tmp30_ = sin (G_PI * clickAnimationProgress); + _tmp31_ = MAX ((gdouble) 0, _tmp30_); + darken = _tmp31_ * 0.5; break; } case PLANK_ITEMS_CLICK_ANIMATION_LIGHTEN: { - gdouble _tmp36_; - gdouble _tmp37_; - _tmp36_ = sin (G_PI * clickAnimationProgress); - _tmp37_ = MAX ((gdouble) 0, _tmp36_); - lighten = _tmp37_ * 0.5; + gdouble _tmp32_; + gdouble _tmp33_; + _tmp32_ = sin (G_PI * clickAnimationProgress); + _tmp33_ = MAX ((gdouble) 0, _tmp32_); + lighten = _tmp33_ * 0.5; break; } default: break; } } - _tmp38_ = plank_widgets_dock_window_get_HoveredItem (self->priv->window); - if (_tmp38_ == item) { + _tmp34_ = plank_widgets_dock_window_get_HoveredItem (self->priv->window); + if (_tmp34_ == item) { lighten = 0.2; } - _tmp40_ = plank_widgets_dock_window_get_HoveredItem (self->priv->window); - if (_tmp40_ == item) { - gboolean _tmp41_; - _tmp41_ = plank_widgets_dock_window_menu_is_visible (self->priv->window); - _tmp39_ = _tmp41_; + _tmp36_ = plank_widgets_dock_window_get_HoveredItem (self->priv->window); + if (_tmp36_ == item) { + gboolean _tmp37_; + _tmp37_ = plank_widgets_dock_window_menu_is_visible (self->priv->window); + _tmp35_ = _tmp37_; } else { - _tmp39_ = FALSE; + _tmp35_ = FALSE; } - if (_tmp39_) { + if (_tmp35_) { darken = darken + 0.4; } if (lighten > 0) { - cairo_t* _tmp42_ = NULL; - cairo_t* _tmp43_ = NULL; - cairo_t* _tmp44_ = NULL; - _tmp42_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_set_operator (_tmp42_, CAIRO_OPERATOR_ADD); - _tmp43_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_paint_with_alpha (_tmp43_, lighten); - _tmp44_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_set_operator (_tmp44_, CAIRO_OPERATOR_OVER); - } - _tmp45_ = plank_items_dock_item_get_BadgeText (item); - if (g_strcmp0 (_tmp45_, "") != 0) { - const gchar* _tmp46_ = NULL; - _tmp46_ = plank_items_dock_item_get_BadgeText (item); - plank_dock_renderer_draw_badge (self, icon_surface, _tmp46_); + cairo_t* _tmp38_ = NULL; + cairo_t* _tmp39_ = NULL; + cairo_t* _tmp40_ = NULL; + _tmp38_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_set_operator (_tmp38_, CAIRO_OPERATOR_ADD); + _tmp39_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_paint_with_alpha (_tmp39_, lighten); + _tmp40_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_set_operator (_tmp40_, CAIRO_OPERATOR_OVER); + } + _tmp41_ = plank_items_dock_item_get_BadgeText (item); + if (g_strcmp0 (_tmp41_, "") != 0) { + const gchar* _tmp42_ = NULL; + _tmp42_ = plank_items_dock_item_get_BadgeText (item); + plank_dock_renderer_draw_badge (self, icon_surface, _tmp42_); } if (darken > 0) { + cairo_t* _tmp43_ = NULL; + gint _tmp44_; + gint _tmp45_; + cairo_t* _tmp46_ = NULL; cairo_t* _tmp47_ = NULL; - gint _tmp48_; - gint _tmp49_; - cairo_t* _tmp50_ = NULL; - cairo_t* _tmp51_ = NULL; - cairo_t* _tmp52_ = NULL; - cairo_t* _tmp53_ = NULL; + cairo_t* _tmp48_ = NULL; + cairo_t* _tmp49_ = NULL; + _tmp43_ = plank_drawing_dock_surface_get_Context (icon_surface); + _tmp44_ = plank_drawing_dock_surface_get_Width (icon_surface); + _tmp45_ = plank_drawing_dock_surface_get_Height (icon_surface); + cairo_rectangle (_tmp43_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp44_, (gdouble) _tmp45_); + _tmp46_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_set_source_rgba (_tmp46_, (gdouble) 0, (gdouble) 0, (gdouble) 0, darken); _tmp47_ = plank_drawing_dock_surface_get_Context (icon_surface); - _tmp48_ = plank_drawing_dock_surface_get_Width (icon_surface); - _tmp49_ = plank_drawing_dock_surface_get_Height (icon_surface); - cairo_rectangle (_tmp47_, (gdouble) 0, (gdouble) 0, (gdouble) _tmp48_, (gdouble) _tmp49_); - _tmp50_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_set_source_rgba (_tmp50_, (gdouble) 0, (gdouble) 0, (gdouble) 0, darken); - _tmp51_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_set_operator (_tmp51_, CAIRO_OPERATOR_ATOP); - _tmp52_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_fill (_tmp52_); - _tmp53_ = plank_drawing_dock_surface_get_Context (icon_surface); - cairo_set_operator (_tmp53_, CAIRO_OPERATOR_OVER); - } - _tmp54_ = g_date_time_new_now_utc (); - _tmp55_ = _tmp54_; - _tmp56_ = plank_items_dock_item_get_LastUrgent (item); - _tmp57_ = g_date_time_difference (_tmp55_, _tmp56_); - _tmp58_ = _tmp57_; - _g_date_time_unref0 (_tmp55_); - urgent_time = _tmp58_; - _tmp61_ = gdk_screen_get_default (); - _tmp62_ = gdk_screen_is_composited (_tmp61_); - if (_tmp62_) { - PlankItemsItemState _tmp63_; - _tmp63_ = plank_items_dock_item_get_State (item); - _tmp60_ = (_tmp63_ & PLANK_ITEMS_ITEM_STATE_URGENT) != 0; + cairo_set_operator (_tmp47_, CAIRO_OPERATOR_ATOP); + _tmp48_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_fill (_tmp48_); + _tmp49_ = plank_drawing_dock_surface_get_Context (icon_surface); + cairo_set_operator (_tmp49_, CAIRO_OPERATOR_OVER); + } + _tmp50_ = g_date_time_new_now_utc (); + _tmp51_ = _tmp50_; + _tmp52_ = plank_items_dock_item_get_LastUrgent (item); + _tmp53_ = g_date_time_difference (_tmp51_, _tmp52_); + _tmp54_ = _tmp53_; + _g_date_time_unref0 (_tmp51_); + urgent_time = _tmp54_; + _tmp57_ = gdk_screen_get_default (); + _tmp58_ = gdk_screen_is_composited (_tmp57_); + if (_tmp58_) { + PlankItemsItemState _tmp59_; + _tmp59_ = plank_items_dock_item_get_State (item); + _tmp56_ = (_tmp59_ & PLANK_ITEMS_ITEM_STATE_URGENT) != 0; } else { - _tmp60_ = FALSE; + _tmp56_ = FALSE; } - if (_tmp60_) { - gint _tmp64_; - _tmp64_ = plank_drawing_dock_theme_renderer_get_UrgentBounceTime (self->priv->theme); - _tmp59_ = urgent_time < (_tmp64_ * 1000); + if (_tmp56_) { + gint _tmp60_; + _tmp60_ = plank_drawing_dock_theme_renderer_get_UrgentBounceTime (self->priv->theme); + _tmp55_ = urgent_time < (_tmp60_ * 1000); } else { - _tmp59_ = FALSE; + _tmp55_ = FALSE; } - if (_tmp59_) { - gint _tmp65_; + if (_tmp55_) { + gint _tmp61_; + gdouble _tmp62_; + PlankDockPreferences* _tmp63_ = NULL; + gint _tmp64_; + gdouble _tmp65_; gdouble _tmp66_; - PlankDockPreferences* _tmp67_ = NULL; - gint _tmp68_; - gdouble _tmp69_; - gdouble _tmp70_; - _tmp65_ = plank_drawing_dock_theme_renderer_get_UrgentBounceTime (self->priv->theme); - _tmp66_ = sin ((G_PI * urgent_time) / ((gdouble) (_tmp65_ * 1000))); - _tmp67_ = plank_dock_renderer_get_Prefs (self); - _tmp68_ = plank_dock_preferences_get_IconSize (_tmp67_); - _tmp69_ = plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (self->priv->theme); - _tmp70_ = fabs ((_tmp66_ * _tmp68_) * _tmp69_); - draw_rect.y = draw_rect.y - ((gint) _tmp70_); - } - _tmp71_ = g_date_time_new_now_utc (); - _tmp72_ = _tmp71_; - _tmp73_ = plank_items_dock_item_get_LastActive (item); - _tmp74_ = g_date_time_difference (_tmp72_, _tmp73_); - _tmp75_ = _tmp74_; - _g_date_time_unref0 (_tmp72_); - active_time = _tmp75_; - _tmp76_ = plank_drawing_dock_theme_renderer_get_ActiveTime (self->priv->theme); - _tmp77_ = MIN ((gdouble) 1, active_time / ((gdouble) (_tmp76_ * 1000))); - opacity = _tmp77_; - _tmp78_ = plank_items_dock_item_get_State (item); - if ((_tmp78_ & PLANK_ITEMS_ITEM_STATE_ACTIVE) == 0) { + _tmp61_ = plank_drawing_dock_theme_renderer_get_UrgentBounceTime (self->priv->theme); + _tmp62_ = sin ((G_PI * urgent_time) / ((gdouble) (_tmp61_ * 1000))); + _tmp63_ = plank_dock_renderer_get_Prefs (self); + _tmp64_ = plank_dock_preferences_get_IconSize (_tmp63_); + _tmp65_ = plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (self->priv->theme); + _tmp66_ = fabs ((_tmp62_ * _tmp64_) * _tmp65_); + draw_rect.y = draw_rect.y - ((gint) _tmp66_); + } + _tmp67_ = g_date_time_new_now_utc (); + _tmp68_ = _tmp67_; + _tmp69_ = plank_items_dock_item_get_LastActive (item); + _tmp70_ = g_date_time_difference (_tmp68_, _tmp69_); + _tmp71_ = _tmp70_; + _g_date_time_unref0 (_tmp68_); + active_time = _tmp71_; + _tmp72_ = plank_drawing_dock_theme_renderer_get_ActiveTime (self->priv->theme); + _tmp73_ = MIN ((gdouble) 1, active_time / ((gdouble) (_tmp72_ * 1000))); + opacity = _tmp73_; + _tmp74_ = plank_items_dock_item_get_State (item); + if ((_tmp74_ & PLANK_ITEMS_ITEM_STATE_ACTIVE) == 0) { opacity = 1 - opacity; } - _tmp79_ = plank_dock_renderer_get_HorizPadding (self); - _tmp80_ = plank_items_dock_item_get_AverageIconColor (item); - plank_drawing_dock_theme_renderer_draw_active_glow (self->priv->theme, surface, _tmp79_, self->priv->background_buffer, &hover_rect, _tmp80_, opacity); - _tmp81_ = plank_drawing_dock_surface_get_Context (surface); - _tmp82_ = plank_drawing_dock_surface_get_Internal (icon_surface); - cairo_set_source_surface (_tmp81_, _tmp82_, (gdouble) draw_rect.x, (gdouble) draw_rect.y); - _tmp83_ = plank_drawing_dock_surface_get_Context (surface); - cairo_paint (_tmp83_); - _tmp84_ = plank_items_dock_item_get_Indicator (item); - if (_tmp84_ != PLANK_ITEMS_INDICATOR_STATE_NONE) { - PlankDrawingDockSurface* _tmp85_ = NULL; - PlankItemsItemState _tmp86_; - PlankDrawingDockSurface* _tmp87_; + _tmp75_ = plank_items_dock_item_get_AverageIconColor (item); + plank_drawing_dock_theme_renderer_draw_active_glow (self->priv->theme, surface, self->priv->_HorizPadding, self->priv->background_buffer, &hover_rect, _tmp75_, opacity); + _tmp76_ = plank_drawing_dock_surface_get_Context (surface); + _tmp77_ = plank_drawing_dock_surface_get_Internal (icon_surface); + cairo_set_source_surface (_tmp76_, _tmp77_, (gdouble) draw_rect.x, (gdouble) draw_rect.y); + _tmp78_ = plank_drawing_dock_surface_get_Context (surface); + cairo_paint (_tmp78_); + _tmp79_ = plank_items_dock_item_get_Indicator (item); + if (_tmp79_ != PLANK_ITEMS_INDICATOR_STATE_NONE) { + PlankDrawingDockSurface* _tmp80_ = NULL; + PlankItemsItemState _tmp81_; + PlankDrawingDockSurface* _tmp82_; PlankDrawingDockSurface* indicator; - gint _tmp88_; + gint _tmp83_; gint x; - gint _tmp89_; - gint _tmp90_; - gint _tmp91_; - gint _tmp92_; + gint _tmp84_; + gint _tmp85_; gdouble y; - PlankItemsIndicatorState _tmp93_; + PlankItemsIndicatorState _tmp86_; if (self->priv->indicator_buffer == NULL) { plank_dock_renderer_create_normal_indicator (self); } if (self->priv->urgent_indicator_buffer == NULL) { plank_dock_renderer_create_urgent_indicator (self); } - _tmp86_ = plank_items_dock_item_get_State (item); - if ((_tmp86_ & PLANK_ITEMS_ITEM_STATE_URGENT) != 0) { - _tmp85_ = self->priv->urgent_indicator_buffer; + _tmp81_ = plank_items_dock_item_get_State (item); + if ((_tmp81_ & PLANK_ITEMS_ITEM_STATE_URGENT) != 0) { + _tmp80_ = self->priv->urgent_indicator_buffer; } else { - _tmp85_ = self->priv->indicator_buffer; + _tmp80_ = self->priv->indicator_buffer; } - _tmp87_ = _g_object_ref0 (_tmp85_); - indicator = _tmp87_; - _tmp88_ = plank_drawing_dock_surface_get_Width (indicator); - x = (hover_rect.x + (hover_rect.width / 2)) - (_tmp88_ / 2); - _tmp89_ = plank_dock_renderer_get_DockHeight (self); - _tmp90_ = plank_drawing_dock_surface_get_Height (indicator); - _tmp91_ = plank_drawing_theme_renderer_get_bottom_offset ((PlankDrawingThemeRenderer*) self->priv->theme); - _tmp92_ = plank_dock_renderer_get_IndicatorSize (self); - y = ((_tmp89_ - (_tmp90_ / 2)) - (2 * ((gint) _tmp91_))) - (_tmp92_ / 24.0); - _tmp93_ = plank_items_dock_item_get_Indicator (item); - if (_tmp93_ == PLANK_ITEMS_INDICATOR_STATE_SINGLE) { + _tmp82_ = _g_object_ref0 (_tmp80_); + indicator = _tmp82_; + _tmp83_ = plank_drawing_dock_surface_get_Width (indicator); + x = (hover_rect.x + (hover_rect.width / 2)) - (_tmp83_ / 2); + _tmp84_ = plank_drawing_dock_surface_get_Height (indicator); + _tmp85_ = plank_drawing_theme_renderer_get_bottom_offset ((PlankDrawingThemeRenderer*) self->priv->theme); + y = ((self->priv->_DockHeight - (_tmp84_ / 2)) - (2 * ((gint) _tmp85_))) - (self->priv->_IndicatorSize / 24.0); + _tmp86_ = plank_items_dock_item_get_Indicator (item); + if (_tmp86_ == PLANK_ITEMS_INDICATOR_STATE_SINGLE) { + cairo_t* _tmp87_ = NULL; + cairo_surface_t* _tmp88_ = NULL; + cairo_t* _tmp89_ = NULL; + _tmp87_ = plank_drawing_dock_surface_get_Context (surface); + _tmp88_ = plank_drawing_dock_surface_get_Internal (indicator); + cairo_set_source_surface (_tmp87_, _tmp88_, (gdouble) x, y); + _tmp89_ = plank_drawing_dock_surface_get_Context (surface); + cairo_paint (_tmp89_); + } else { + cairo_t* _tmp90_ = NULL; + cairo_surface_t* _tmp91_ = NULL; + PlankDockPreferences* _tmp92_ = NULL; + gint _tmp93_; cairo_t* _tmp94_ = NULL; - cairo_surface_t* _tmp95_ = NULL; - cairo_t* _tmp96_ = NULL; + cairo_t* _tmp95_ = NULL; + cairo_surface_t* _tmp96_ = NULL; + PlankDockPreferences* _tmp97_ = NULL; + gint _tmp98_; + cairo_t* _tmp99_ = NULL; + _tmp90_ = plank_drawing_dock_surface_get_Context (surface); + _tmp91_ = plank_drawing_dock_surface_get_Internal (indicator); + _tmp92_ = plank_dock_renderer_get_Prefs (self); + _tmp93_ = plank_dock_preferences_get_IconSize (_tmp92_); + cairo_set_source_surface (_tmp90_, _tmp91_, x - (_tmp93_ / 16.0), y); _tmp94_ = plank_drawing_dock_surface_get_Context (surface); - _tmp95_ = plank_drawing_dock_surface_get_Internal (indicator); - cairo_set_source_surface (_tmp94_, _tmp95_, (gdouble) x, y); - _tmp96_ = plank_drawing_dock_surface_get_Context (surface); - cairo_paint (_tmp96_); - } else { - cairo_t* _tmp97_ = NULL; - cairo_surface_t* _tmp98_ = NULL; - PlankDockPreferences* _tmp99_ = NULL; - gint _tmp100_; - cairo_t* _tmp101_ = NULL; - cairo_t* _tmp102_ = NULL; - cairo_surface_t* _tmp103_ = NULL; - PlankDockPreferences* _tmp104_ = NULL; - gint _tmp105_; - cairo_t* _tmp106_ = NULL; - _tmp97_ = plank_drawing_dock_surface_get_Context (surface); - _tmp98_ = plank_drawing_dock_surface_get_Internal (indicator); - _tmp99_ = plank_dock_renderer_get_Prefs (self); - _tmp100_ = plank_dock_preferences_get_IconSize (_tmp99_); - cairo_set_source_surface (_tmp97_, _tmp98_, x - (_tmp100_ / 16.0), y); - _tmp101_ = plank_drawing_dock_surface_get_Context (surface); - cairo_paint (_tmp101_); - _tmp102_ = plank_drawing_dock_surface_get_Context (surface); - _tmp103_ = plank_drawing_dock_surface_get_Internal (indicator); - _tmp104_ = plank_dock_renderer_get_Prefs (self); - _tmp105_ = plank_dock_preferences_get_IconSize (_tmp104_); - cairo_set_source_surface (_tmp102_, _tmp103_, x + (_tmp105_ / 16.0), y); - _tmp106_ = plank_drawing_dock_surface_get_Context (surface); - cairo_paint (_tmp106_); + cairo_paint (_tmp94_); + _tmp95_ = plank_drawing_dock_surface_get_Context (surface); + _tmp96_ = plank_drawing_dock_surface_get_Internal (indicator); + _tmp97_ = plank_dock_renderer_get_Prefs (self); + _tmp98_ = plank_dock_preferences_get_IconSize (_tmp97_); + cairo_set_source_surface (_tmp95_, _tmp96_, x + (_tmp98_ / 16.0), y); + _tmp99_ = plank_drawing_dock_surface_get_Context (surface); + cairo_paint (_tmp99_); } _g_object_unref0 (indicator); } @@ -1195,51 +1239,47 @@ static void plank_dock_renderer_create_normal_indicator (PlankDockRenderer* self) { - gint _tmp0_; - PlankDrawingColor* _tmp1_ = NULL; - PlankDrawingColor* _tmp2_; - PlankDrawingColor* _tmp3_ = NULL; - PlankDrawingColor* _tmp4_; - PlankDrawingDockSurface* _tmp5_ = NULL; + PlankDrawingColor* _tmp0_ = NULL; + PlankDrawingColor* _tmp1_; + PlankDrawingColor* _tmp2_ = NULL; + PlankDrawingColor* _tmp3_; + PlankDrawingDockSurface* _tmp4_ = NULL; g_return_if_fail (self != NULL); - _tmp0_ = plank_dock_renderer_get_IndicatorSize (self); - _tmp1_ = plank_dock_renderer_get_styled_color (self); - _tmp2_ = _tmp1_; - _tmp3_ = plank_drawing_color_set_min_sat (_tmp2_, 0.4); - _tmp4_ = _tmp3_; - _tmp5_ = plank_drawing_dock_theme_renderer_create_indicator (self->priv->theme, self->priv->background_buffer, _tmp0_, _tmp4_); + _tmp0_ = plank_dock_renderer_get_styled_color (self); + _tmp1_ = _tmp0_; + _tmp2_ = plank_drawing_color_set_min_sat (_tmp1_, 0.4); + _tmp3_ = _tmp2_; + _tmp4_ = plank_drawing_dock_theme_renderer_create_indicator (self->priv->theme, self->priv->background_buffer, self->priv->_IndicatorSize, _tmp3_); _g_object_unref0 (self->priv->indicator_buffer); - self->priv->indicator_buffer = _tmp5_; - _g_object_unref0 (_tmp4_); - _g_object_unref0 (_tmp2_); + self->priv->indicator_buffer = _tmp4_; + _g_object_unref0 (_tmp3_); + _g_object_unref0 (_tmp1_); } static void plank_dock_renderer_create_urgent_indicator (PlankDockRenderer* self) { - gint _tmp0_; - PlankDrawingColor* _tmp1_ = NULL; - PlankDrawingColor* _tmp2_; - gint _tmp3_; - PlankDrawingColor* _tmp4_ = NULL; - PlankDrawingColor* _tmp5_; - PlankDrawingColor* _tmp6_ = NULL; - PlankDrawingColor* _tmp7_; - PlankDrawingDockSurface* _tmp8_ = NULL; - g_return_if_fail (self != NULL); - _tmp0_ = plank_dock_renderer_get_IndicatorSize (self); - _tmp1_ = plank_dock_renderer_get_styled_color (self); - _tmp2_ = _tmp1_; - _tmp3_ = plank_dock_renderer_get_UrgentHueShift (self); - _tmp4_ = plank_drawing_color_add_hue (_tmp2_, (gdouble) _tmp3_); - _tmp5_ = _tmp4_; - _tmp6_ = plank_drawing_color_set_sat (_tmp5_, (gdouble) 1); - _tmp7_ = _tmp6_; - _tmp8_ = plank_drawing_dock_theme_renderer_create_indicator (self->priv->theme, self->priv->background_buffer, _tmp0_, _tmp7_); + PlankDrawingColor* _tmp0_ = NULL; + PlankDrawingColor* _tmp1_; + gint _tmp2_; + PlankDrawingColor* _tmp3_ = NULL; + PlankDrawingColor* _tmp4_; + PlankDrawingColor* _tmp5_ = NULL; + PlankDrawingColor* _tmp6_; + PlankDrawingDockSurface* _tmp7_ = NULL; + g_return_if_fail (self != NULL); + _tmp0_ = plank_dock_renderer_get_styled_color (self); + _tmp1_ = _tmp0_; + _tmp2_ = plank_dock_renderer_get_UrgentHueShift (self); + _tmp3_ = plank_drawing_color_add_hue (_tmp1_, (gdouble) _tmp2_); + _tmp4_ = _tmp3_; + _tmp5_ = plank_drawing_color_set_sat (_tmp4_, (gdouble) 1); + _tmp6_ = _tmp5_; + _tmp7_ = plank_drawing_dock_theme_renderer_create_indicator (self->priv->theme, self->priv->background_buffer, self->priv->_IndicatorSize, _tmp6_); _g_object_unref0 (self->priv->urgent_indicator_buffer); - self->priv->urgent_indicator_buffer = _tmp8_; - _g_object_unref0 (_tmp7_); - _g_object_unref0 (_tmp5_); - _g_object_unref0 (_tmp2_); + self->priv->urgent_indicator_buffer = _tmp7_; + _g_object_unref0 (_tmp6_); + _g_object_unref0 (_tmp4_); + _g_object_unref0 (_tmp1_); } @@ -1524,12 +1564,6 @@ } -static void plank_dock_renderer_theme_changed (PlankDockRenderer* self) { - g_return_if_fail (self != NULL); - plank_widgets_dock_window_set_size (self->priv->window); -} - - static void plank_dock_renderer_hidden_changed (PlankDockRenderer* self) { GDateTime* _tmp0_ = NULL; GDateTime* now; @@ -1668,6 +1702,24 @@ } +static PlankDockPreferences* plank_dock_renderer_get_Prefs (PlankDockRenderer* self) { + PlankDockPreferences* result; + PlankDockPreferences* _tmp0_ = NULL; + g_return_val_if_fail (self != NULL, NULL); + _tmp0_ = plank_widgets_dock_window_get_Prefs (self->priv->window); + result = _tmp0_; + return result; +} + + +static gint plank_dock_renderer_get_UrgentHueShift (PlankDockRenderer* self) { + gint result; + g_return_val_if_fail (self != NULL, 0); + result = 150; + return result; +} + + gboolean plank_dock_renderer_get_Hidden (PlankDockRenderer* self) { gboolean result; g_return_val_if_fail (self != NULL, FALSE); @@ -1712,60 +1764,49 @@ } -gint plank_dock_renderer_get_VisibleDockWidth (PlankDockRenderer* self) { - gint result; - gint _tmp0_ = 0; - gint _tmp1_; - g_return_val_if_fail (self != NULL, 0); - _tmp1_ = plank_dock_renderer_get_HorizPadding (self); - if (_tmp1_ < 0) { - gint _tmp2_; - gint _tmp3_; - _tmp2_ = plank_dock_renderer_get_DockBackgroundWidth (self); - _tmp3_ = plank_dock_renderer_get_HorizPadding (self); - _tmp0_ = _tmp2_ - (2 * _tmp3_); +static gdouble plank_dock_renderer_get_Opacity (PlankDockRenderer* self) { + gdouble result; + GDateTime* _tmp0_ = NULL; + GDateTime* _tmp1_; + GTimeSpan _tmp2_; + gint _tmp3_; + gdouble _tmp4_; + gdouble _tmp5_; + gdouble diff; + gdouble _tmp6_ = 0.0; + g_return_val_if_fail (self != NULL, 0.0); + _tmp0_ = g_date_time_new_now_utc (); + _tmp1_ = _tmp0_; + _tmp2_ = g_date_time_difference (_tmp1_, self->priv->last_fade); + _tmp3_ = plank_drawing_dock_theme_renderer_get_FadeTime (self->priv->theme); + _tmp4_ = MIN ((gdouble) 1, _tmp2_ / ((gdouble) (_tmp3_ * 1000))); + _tmp5_ = _tmp4_; + _g_date_time_unref0 (_tmp1_); + diff = _tmp5_; + if (self->priv->_Hidden) { + _tmp6_ = diff; } else { - gint _tmp4_; - _tmp4_ = plank_dock_renderer_get_DockBackgroundWidth (self); - _tmp0_ = _tmp4_; + _tmp6_ = 1 - diff; } - result = _tmp0_; + result = _tmp6_; return result; } -gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self) { +gint plank_dock_renderer_get_VisibleDockWidth (PlankDockRenderer* self) { gint result; gint _tmp0_ = 0; - gint _tmp1_; - gint _tmp3_ = 0; - gint _tmp4_; - gint _tmp6_; - PlankDockPreferences* _tmp7_ = NULL; - gint _tmp8_; - gint _tmp9_; g_return_val_if_fail (self != NULL, 0); - _tmp1_ = plank_dock_renderer_get_TopPadding (self); - if (_tmp1_ > 0) { + if (self->priv->_HorizPadding < 0) { + gint _tmp1_; + _tmp1_ = plank_dock_renderer_get_DockBackgroundWidth (self); + _tmp0_ = _tmp1_ - (2 * self->priv->_HorizPadding); + } else { gint _tmp2_; - _tmp2_ = plank_dock_renderer_get_TopPadding (self); + _tmp2_ = plank_dock_renderer_get_DockBackgroundWidth (self); _tmp0_ = _tmp2_; - } else { - _tmp0_ = 0; - } - _tmp4_ = plank_dock_renderer_get_BottomPadding (self); - if (_tmp4_ > 0) { - gint _tmp5_; - _tmp5_ = plank_dock_renderer_get_BottomPadding (self); - _tmp3_ = _tmp5_; - } else { - _tmp3_ = 0; } - _tmp6_ = plank_drawing_theme_renderer_get_top_offset ((PlankDrawingThemeRenderer*) self->priv->theme); - _tmp7_ = plank_dock_renderer_get_Prefs (self); - _tmp8_ = plank_dock_preferences_get_IconSize (_tmp7_); - _tmp9_ = plank_drawing_theme_renderer_get_bottom_offset ((PlankDrawingThemeRenderer*) self->priv->theme); - result = ((((2 * _tmp6_) + _tmp0_) + _tmp3_) + _tmp8_) + (2 * _tmp9_); + result = _tmp0_; return result; } @@ -1775,29 +1816,11 @@ gint _tmp0_; PlankDockPreferences* _tmp1_ = NULL; gint _tmp2_; - gint _tmp3_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = plank_dock_renderer_get_VisibleDockWidth (self); _tmp1_ = plank_dock_renderer_get_Prefs (self); _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - _tmp3_ = plank_dock_renderer_get_ItemPadding (self); - result = (_tmp0_ + _tmp2_) + _tmp3_; - return result; -} - - -gint plank_dock_renderer_get_DockHeight (PlankDockRenderer* self) { - gint result; - gint _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; - gdouble _tmp3_; - g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_dock_renderer_get_VisibleDockHeight (self); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - _tmp3_ = plank_drawing_dock_theme_renderer_get_UrgentBounceHeight (self->priv->theme); - result = _tmp0_ + ((gint) (_tmp2_ * _tmp3_)); + result = (_tmp0_ + _tmp2_) + self->priv->_ItemPadding; return result; } @@ -1806,161 +1829,134 @@ gint result; PlankDockItems* _tmp0_ = NULL; gint _tmp1_; - gint _tmp2_; - PlankDockPreferences* _tmp3_ = NULL; + PlankDockPreferences* _tmp2_ = NULL; + gint _tmp3_; gint _tmp4_; - gint _tmp5_; - gint _tmp6_; g_return_val_if_fail (self != NULL, 0); _tmp0_ = plank_widgets_dock_window_get_Items (self->priv->window); _tmp1_ = gee_collection_get_size ((GeeCollection*) _tmp0_->Items); - _tmp2_ = plank_dock_renderer_get_ItemPadding (self); - _tmp3_ = plank_dock_renderer_get_Prefs (self); - _tmp4_ = plank_dock_preferences_get_IconSize (_tmp3_); - _tmp5_ = plank_dock_renderer_get_HorizPadding (self); - _tmp6_ = plank_drawing_theme_renderer_get_LineWidth ((PlankDrawingThemeRenderer*) self->priv->theme); - result = ((((gint) _tmp1_) * (_tmp2_ + _tmp4_)) + (2 * _tmp5_)) + (4 * _tmp6_); + _tmp2_ = plank_dock_renderer_get_Prefs (self); + _tmp3_ = plank_dock_preferences_get_IconSize (_tmp2_); + _tmp4_ = plank_drawing_theme_renderer_get_LineWidth ((PlankDrawingThemeRenderer*) self->priv->theme); + result = ((((gint) _tmp1_) * (self->priv->_ItemPadding + _tmp3_)) + (2 * self->priv->_HorizPadding)) + (4 * _tmp4_); return result; } -static gint plank_dock_renderer_get_DockBackgroundHeight (PlankDockRenderer* self) { +static gint plank_dock_renderer_get_IndicatorSize (PlankDockRenderer* self) { gint result; - gint _tmp0_ = 0; - gint _tmp1_; - gint _tmp3_; g_return_val_if_fail (self != NULL, 0); - _tmp1_ = plank_dock_renderer_get_TopPadding (self); - if (_tmp1_ < 0) { - gint _tmp2_; - _tmp2_ = plank_dock_renderer_get_TopPadding (self); - _tmp0_ = _tmp2_; - } else { - _tmp0_ = 0; - } - _tmp3_ = plank_dock_renderer_get_VisibleDockHeight (self); - result = _tmp3_ + _tmp0_; + result = self->priv->_IndicatorSize; return result; } -static gint plank_dock_renderer_get_IndicatorSize (PlankDockRenderer* self) { - gint result; - gdouble _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; - g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_drawing_dock_theme_renderer_get_IndicatorSize (self->priv->theme); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - result = (gint) ((_tmp0_ / 10.0) * _tmp2_); - return result; +static void plank_dock_renderer_set_IndicatorSize (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_IndicatorSize = value; } static gint plank_dock_renderer_get_HorizPadding (PlankDockRenderer* self) { gint result; - gdouble _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_drawing_dock_theme_renderer_get_HorizPadding (self->priv->theme); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - result = (gint) ((_tmp0_ / 10.0) * _tmp2_); + result = self->priv->_HorizPadding; return result; } +static void plank_dock_renderer_set_HorizPadding (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_HorizPadding = value; +} + + static gint plank_dock_renderer_get_TopPadding (PlankDockRenderer* self) { gint result; - gdouble _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_drawing_dock_theme_renderer_get_TopPadding (self->priv->theme); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - result = (gint) ((_tmp0_ / 10.0) * _tmp2_); + result = self->priv->_TopPadding; return result; } +static void plank_dock_renderer_set_TopPadding (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_TopPadding = value; +} + + static gint plank_dock_renderer_get_BottomPadding (PlankDockRenderer* self) { gint result; - gdouble _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_drawing_dock_theme_renderer_get_BottomPadding (self->priv->theme); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - result = (gint) ((_tmp0_ / 10.0) * _tmp2_); + result = self->priv->_BottomPadding; return result; } +static void plank_dock_renderer_set_BottomPadding (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_BottomPadding = value; +} + + static gint plank_dock_renderer_get_ItemPadding (PlankDockRenderer* self) { gint result; - gdouble _tmp0_; - PlankDockPreferences* _tmp1_ = NULL; - gint _tmp2_; g_return_val_if_fail (self != NULL, 0); - _tmp0_ = plank_drawing_dock_theme_renderer_get_ItemPadding (self->priv->theme); - _tmp1_ = plank_dock_renderer_get_Prefs (self); - _tmp2_ = plank_dock_preferences_get_IconSize (_tmp1_); - result = (gint) ((_tmp0_ / 10.0) * _tmp2_); + result = self->priv->_ItemPadding; return result; } -static gint plank_dock_renderer_get_UrgentHueShift (PlankDockRenderer* self) { +static void plank_dock_renderer_set_ItemPadding (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_ItemPadding = value; +} + + +gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self) { gint result; g_return_val_if_fail (self != NULL, 0); - result = 150; + result = self->priv->_VisibleDockHeight; return result; } -static gdouble plank_dock_renderer_get_Opacity (PlankDockRenderer* self) { - gdouble result; - GDateTime* _tmp0_ = NULL; - GDateTime* _tmp1_; - GTimeSpan _tmp2_; - gint _tmp3_; - gdouble _tmp4_; - gdouble _tmp5_; - gdouble diff; - gdouble _tmp6_ = 0.0; - g_return_val_if_fail (self != NULL, 0.0); - _tmp0_ = g_date_time_new_now_utc (); - _tmp1_ = _tmp0_; - _tmp2_ = g_date_time_difference (_tmp1_, self->priv->last_fade); - _tmp3_ = plank_drawing_dock_theme_renderer_get_FadeTime (self->priv->theme); - _tmp4_ = MIN ((gdouble) 1, _tmp2_ / ((gdouble) (_tmp3_ * 1000))); - _tmp5_ = _tmp4_; - _g_date_time_unref0 (_tmp1_); - diff = _tmp5_; - if (self->priv->_Hidden) { - _tmp6_ = diff; - } else { - _tmp6_ = 1 - diff; - } - result = _tmp6_; +void plank_dock_renderer_set_VisibleDockHeight (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_VisibleDockHeight = value; + g_object_notify ((GObject *) self, "VisibleDockHeight"); +} + + +gint plank_dock_renderer_get_DockHeight (PlankDockRenderer* self) { + gint result; + g_return_val_if_fail (self != NULL, 0); + result = self->priv->_DockHeight; return result; } -static PlankDockPreferences* plank_dock_renderer_get_Prefs (PlankDockRenderer* self) { - PlankDockPreferences* result; - PlankDockPreferences* _tmp0_ = NULL; - g_return_val_if_fail (self != NULL, NULL); - _tmp0_ = plank_widgets_dock_window_get_Prefs (self->priv->window); - result = _tmp0_; +void plank_dock_renderer_set_DockHeight (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_DockHeight = value; + g_object_notify ((GObject *) self, "DockHeight"); +} + + +static gint plank_dock_renderer_get_DockBackgroundHeight (PlankDockRenderer* self) { + gint result; + g_return_val_if_fail (self != NULL, 0); + result = self->priv->_DockBackgroundHeight; return result; } +static void plank_dock_renderer_set_DockBackgroundHeight (PlankDockRenderer* self, gint value) { + g_return_if_fail (self != NULL); + self->priv->_DockBackgroundHeight = value; +} + + static void plank_dock_renderer_class_init (PlankDockRendererClass * klass) { plank_dock_renderer_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (PlankDockRendererPrivate)); @@ -1971,9 +1967,9 @@ g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_HIDDEN, g_param_spec_boolean ("Hidden", "Hidden", "Hidden", TRUE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_HIDE_OFFSET, g_param_spec_double ("HideOffset", "HideOffset", "HideOffset", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_VISIBLE_DOCK_WIDTH, g_param_spec_int ("VisibleDockWidth", "VisibleDockWidth", "VisibleDockWidth", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT, g_param_spec_int ("VisibleDockHeight", "VisibleDockHeight", "VisibleDockHeight", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_DOCK_WIDTH, g_param_spec_int ("DockWidth", "DockWidth", "DockWidth", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_DOCK_HEIGHT, g_param_spec_int ("DockHeight", "DockHeight", "DockHeight", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT, g_param_spec_int ("VisibleDockHeight", "VisibleDockHeight", "VisibleDockHeight", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PLANK_DOCK_RENDERER_DOCK_HEIGHT, g_param_spec_int ("DockHeight", "DockHeight", "DockHeight", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); } @@ -1981,34 +1977,41 @@ GDateTime* _tmp0_ = NULL; GDateTime* _tmp1_ = NULL; self->priv = PLANK_DOCK_RENDERER_GET_PRIVATE (self); - self->priv->_Hidden = TRUE; _tmp0_ = g_date_time_new_from_unix_utc ((gint64) 0); self->priv->last_hide = _tmp0_; _tmp1_ = g_date_time_new_from_unix_utc ((gint64) 0); self->priv->last_fade = _tmp1_; + self->priv->_Hidden = TRUE; } static void plank_dock_renderer_finalize (GObject* obj) { PlankDockRenderer * self; - guint _tmp0_; + PlankDockPreferences* _tmp0_ = NULL; guint _tmp1_; GQuark _tmp2_; - PlankDockItems* _tmp3_ = NULL; + guint _tmp3_; guint _tmp4_; - guint _tmp5_; - GQuark _tmp6_; + GQuark _tmp5_; + PlankDockItems* _tmp6_ = NULL; + guint _tmp7_; + guint _tmp8_; + GQuark _tmp9_; self = PLANK_DOCK_RENDERER (obj); - g_signal_parse_name ("changed", PLANK_SERVICES_TYPE_PREFERENCES, &_tmp0_, NULL, FALSE); - g_signal_handlers_disconnect_matched ((PlankServicesPreferences*) self->priv->theme, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) _plank_dock_renderer_theme_changed_plank_services_preferences_changed, self); - g_signal_parse_name ("notify::HoveredItem", G_TYPE_OBJECT, &_tmp1_, &_tmp2_, TRUE); - g_signal_handlers_disconnect_matched ((GObject*) self->priv->window, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, _tmp2_, NULL, (GCallback) _plank_animated_renderer_animated_draw_g_object_notify, (PlankAnimatedRenderer*) self); - _tmp3_ = plank_widgets_dock_window_get_Items (self->priv->window); - g_signal_parse_name ("item-state-changed", PLANK_TYPE_DOCK_ITEMS, &_tmp4_, NULL, FALSE); - g_signal_handlers_disconnect_matched (_tmp3_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, 0, NULL, (GCallback) _plank_animated_renderer_animated_draw_plank_dock_items_item_state_changed, (PlankAnimatedRenderer*) self); - g_signal_parse_name ("notify::Hidden", G_TYPE_OBJECT, &_tmp5_, &_tmp6_, TRUE); - g_signal_handlers_disconnect_matched ((GObject*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, _tmp6_, NULL, (GCallback) _plank_dock_renderer_hidden_changed_g_object_notify, self); + _tmp0_ = plank_dock_renderer_get_Prefs (self); + g_signal_parse_name ("notify::IconSize", G_TYPE_OBJECT, &_tmp1_, &_tmp2_, TRUE); + g_signal_handlers_disconnect_matched ((GObject*) _tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, _tmp2_, NULL, (GCallback) _plank_dock_renderer_icon_size_changed_g_object_notify, self); + g_signal_parse_name ("changed", PLANK_SERVICES_TYPE_PREFERENCES, &_tmp3_, NULL, FALSE); + g_signal_handlers_disconnect_matched ((PlankServicesPreferences*) self->priv->theme, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _plank_dock_renderer_theme_changed_plank_services_preferences_changed, self); + g_signal_parse_name ("notify::HoveredItem", G_TYPE_OBJECT, &_tmp4_, &_tmp5_, TRUE); + g_signal_handlers_disconnect_matched ((GObject*) self->priv->window, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp4_, _tmp5_, NULL, (GCallback) _plank_animated_renderer_animated_draw_g_object_notify, (PlankAnimatedRenderer*) self); + _tmp6_ = plank_widgets_dock_window_get_Items (self->priv->window); + g_signal_parse_name ("item-state-changed", PLANK_TYPE_DOCK_ITEMS, &_tmp7_, NULL, FALSE); + g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _plank_animated_renderer_animated_draw_plank_dock_items_item_state_changed, (PlankAnimatedRenderer*) self); + g_signal_parse_name ("notify::Hidden", G_TYPE_OBJECT, &_tmp8_, &_tmp9_, TRUE); + g_signal_handlers_disconnect_matched ((GObject*) self, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DETAIL | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp8_, _tmp9_, NULL, (GCallback) _plank_dock_renderer_hidden_changed_g_object_notify, self); _g_object_unref0 (self->priv->window); + _g_object_unref0 (self->priv->theme); _g_object_unref0 (self->priv->background_buffer); _g_object_unref0 (self->priv->main_buffer); _g_object_unref0 (self->priv->indicator_buffer); @@ -2016,7 +2019,6 @@ _g_object_unref0 (self->priv->urgent_glow_buffer); _g_date_time_unref0 (self->priv->last_hide); _g_date_time_unref0 (self->priv->last_fade); - _g_object_unref0 (self->priv->theme); G_OBJECT_CLASS (plank_dock_renderer_parent_class)->finalize (obj); } @@ -2046,12 +2048,12 @@ case PLANK_DOCK_RENDERER_VISIBLE_DOCK_WIDTH: g_value_set_int (value, plank_dock_renderer_get_VisibleDockWidth (self)); break; - case PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT: - g_value_set_int (value, plank_dock_renderer_get_VisibleDockHeight (self)); - break; case PLANK_DOCK_RENDERER_DOCK_WIDTH: g_value_set_int (value, plank_dock_renderer_get_DockWidth (self)); break; + case PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT: + g_value_set_int (value, plank_dock_renderer_get_VisibleDockHeight (self)); + break; case PLANK_DOCK_RENDERER_DOCK_HEIGHT: g_value_set_int (value, plank_dock_renderer_get_DockHeight (self)); break; @@ -2069,6 +2071,12 @@ case PLANK_DOCK_RENDERER_HIDDEN: plank_dock_renderer_set_Hidden (self, g_value_get_boolean (value)); break; + case PLANK_DOCK_RENDERER_VISIBLE_DOCK_HEIGHT: + plank_dock_renderer_set_VisibleDockHeight (self, g_value_get_int (value)); + break; + case PLANK_DOCK_RENDERER_DOCK_HEIGHT: + plank_dock_renderer_set_DockHeight (self, g_value_get_int (value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; diff -Nru plank-0.2.0~bzr397+repack/lib/DockRenderer.vala plank-0.2.0~bzr398/lib/DockRenderer.vala --- plank-0.2.0~bzr397+repack/lib/DockRenderer.vala 2011-07-10 14:21:34.000000000 +0000 +++ plank-0.2.0~bzr398/lib/DockRenderer.vala 2011-07-17 17:42:25.000000000 +0000 @@ -29,12 +29,25 @@ { DockWindow window; + DockPreferences Prefs { + get { return window.Prefs; } + } + + DockThemeRenderer theme; + DockSurface background_buffer; DockSurface main_buffer; DockSurface indicator_buffer; DockSurface urgent_indicator_buffer; DockSurface urgent_glow_buffer; + DateTime last_hide = new DateTime.from_unix_utc (0); + DateTime last_fade = new DateTime.from_unix_utc (0); + + int UrgentHueShift { + get { return 150; } + } + public bool Hidden { get; protected set; default = true; } public double HideOffset { @@ -44,74 +57,68 @@ } } - // width+height of the visible (cursor) rect of the dock - public int VisibleDockWidth { - get { return HorizPadding < 0 ? DockBackgroundWidth - 2 * HorizPadding : DockBackgroundWidth; } + double Opacity { + get { + var diff = double.min (1, new DateTime.now_utc ().difference (last_fade) / (double) (theme.FadeTime * 1000)); + return Hidden ? diff : 1 - diff; + } } - public int VisibleDockHeight { - get { return 2 * theme.get_top_offset () + (TopPadding > 0 ? TopPadding : 0) + (BottomPadding > 0 ? BottomPadding : 0) + Prefs.IconSize + 2 * theme.get_bottom_offset (); } + // width of the visible (cursor) rect of the dock + public int VisibleDockWidth { + get { return HorizPadding < 0 ? DockBackgroundWidth - 2 * HorizPadding : DockBackgroundWidth; } } - // width+height of the dock window + // width of the dock window public int DockWidth { get { return VisibleDockWidth + Prefs.IconSize + ItemPadding; } } - public int DockHeight { - // FIXME zoom disabled - get { return VisibleDockHeight + (int) (Prefs.IconSize * theme.UrgentBounceHeight) /*+ (int) ((Prefs.Zoom - 1) * Prefs.IconSize)*/; } - } - - // width+height of the dock background image, as drawn + // width of the dock background image, as drawn int DockBackgroundWidth { get { return (int) window.Items.Items.size * (ItemPadding + Prefs.IconSize) + 2 * HorizPadding + 4 * theme.LineWidth; } } - int DockBackgroundHeight { - get { return VisibleDockHeight + (TopPadding < 0 ? TopPadding : 0); } - } - - int IndicatorSize { - get { return (int) (theme.IndicatorSize / 10.0 * Prefs.IconSize); } - } - - int HorizPadding { - get { return (int) (theme.HorizPadding / 10.0 * Prefs.IconSize); } - } - - int TopPadding { - get { return (int) (theme.TopPadding / 10.0 * Prefs.IconSize); } - } - - int BottomPadding { - get { return (int) (theme.BottomPadding / 10.0 * Prefs.IconSize); } - } - - int ItemPadding { - get { return (int) (theme.ItemPadding / 10.0 * Prefs.IconSize); } - } - - int UrgentHueShift { - get { return 150; } - } - - double Opacity { - get { - var diff = double.min (1, new DateTime.now_utc ().difference (last_fade) / (double) (theme.FadeTime * 1000)); - return Hidden ? diff : 1 - diff; - } - } - - DateTime last_hide = new DateTime.from_unix_utc (0); - DateTime last_fade = new DateTime.from_unix_utc (0); - - DockPreferences Prefs { - get { return window.Prefs; } + // used to cache various sizes calculated from the theme and preferences + int IndicatorSize { get; set; } + int HorizPadding { get; set; } + int TopPadding { get; set; } + int BottomPadding { get; set; } + int ItemPadding { get; set; } + + public int VisibleDockHeight { get; protected set; } + public int DockHeight { get; protected set; } + int DockBackgroundHeight { get; set; } + + void reset_caches () + { + var icon_size = Prefs.IconSize; + + IndicatorSize = (int) (theme.IndicatorSize / 10.0 * icon_size); + HorizPadding = (int) (theme.HorizPadding / 10.0 * icon_size); + TopPadding = (int) (theme.TopPadding / 10.0 * icon_size); + BottomPadding = (int) (theme.BottomPadding / 10.0 * icon_size); + ItemPadding = (int) (theme.ItemPadding / 10.0 * icon_size); + + // height of the visible (cursor) rect of the dock + // use a temporary to avoid (possibly) doing more than 1 notify signal + var tmp = icon_size + 2 * (theme.get_top_offset () + theme.get_bottom_offset ()); + if (TopPadding > 0) + tmp += TopPadding; + if (BottomPadding > 0) + tmp += BottomPadding; + VisibleDockHeight = tmp; + + // height of the dock window + // FIXME zoom disabled + DockHeight = VisibleDockHeight + (int) (icon_size * theme.UrgentBounceHeight) /*+ (int) ((Prefs.Zoom - 1) * icon_size)*/; + + // height of the dock background image, as drawn + DockBackgroundHeight = VisibleDockHeight; + if (TopPadding < 0) + DockBackgroundHeight += TopPadding; } - DockThemeRenderer theme; - public DockRenderer (DockWindow window) { base (window); @@ -121,7 +128,10 @@ theme.TopRoundness = 4; theme.BottomRoundness = 0; theme.load ("dock"); + + Prefs.notify["IconSize"].connect (icon_size_changed); theme.changed.connect (theme_changed); + reset_caches (); window.notify["HoveredItem"].connect (animated_draw); window.Items.item_state_changed.connect (animated_draw); @@ -131,6 +141,7 @@ ~DockRenderer () { + Prefs.notify["IconSize"].disconnect (icon_size_changed); theme.changed.disconnect (theme_changed); window.notify["HoveredItem"].disconnect (animated_draw); @@ -139,6 +150,17 @@ notify["Hidden"].disconnect (hidden_changed); } + void icon_size_changed () + { + reset_caches (); + } + + void theme_changed () + { + reset_caches (); + window.set_size (); + } + public void show () { if (!Hidden) @@ -169,7 +191,7 @@ var rect = Gdk.Rectangle (); rect.width = VisibleDockWidth; - rect.height = (int) double.max (1, (1 - HideOffset) * VisibleDockHeight); + rect.height = int.max (1, (int) ((1 - HideOffset) * VisibleDockHeight)); rect.x = (window.width_request - rect.width) / 2; rect.y = window.height_request - rect.height; @@ -285,9 +307,10 @@ var darken = 0.0; var max_click_time = item.ClickedAnimation == ClickAnimation.BOUNCE ? theme.LaunchBounceTime : theme.ClickTime; + max_click_time *= 1000; var click_time = new DateTime.now_utc ().difference (item.LastClicked); - if (click_time < max_click_time * 1000) { - var clickAnimationProgress = click_time / (double) (max_click_time * 1000); + if (click_time < max_click_time) { + var clickAnimationProgress = click_time / (double) max_click_time; switch (item.ClickedAnimation) { case ClickAnimation.BOUNCE: @@ -496,11 +519,6 @@ surface.Context.restore (); } - void theme_changed () - { - window.set_size (); - } - void hidden_changed () { var now = new DateTime.now_utc (); diff -Nru plank-0.2.0~bzr397+repack/lib/plank.h plank-0.2.0~bzr398/lib/plank.h --- plank-0.2.0~bzr397+repack/lib/plank.h 2011-07-10 14:21:49.000000000 +0000 +++ plank-0.2.0~bzr398/lib/plank.h 2011-07-17 17:42:49.000000000 +0000 @@ -816,9 +816,11 @@ void plank_dock_renderer_set_Hidden (PlankDockRenderer* self, gboolean value); gdouble plank_dock_renderer_get_HideOffset (PlankDockRenderer* self); gint plank_dock_renderer_get_VisibleDockWidth (PlankDockRenderer* self); -gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self); gint plank_dock_renderer_get_DockWidth (PlankDockRenderer* self); +gint plank_dock_renderer_get_VisibleDockHeight (PlankDockRenderer* self); +void plank_dock_renderer_set_VisibleDockHeight (PlankDockRenderer* self, gint value); gint plank_dock_renderer_get_DockHeight (PlankDockRenderer* self); +void plank_dock_renderer_set_DockHeight (PlankDockRenderer* self, gint value); GType plank_hide_manager_get_type (void) G_GNUC_CONST; PlankHideManager* plank_hide_manager_new (PlankWidgetsDockWindow* window); PlankHideManager* plank_hide_manager_construct (GType object_type, PlankWidgetsDockWindow* window); diff -Nru plank-0.2.0~bzr397+repack/lib/plank.vapi plank-0.2.0~bzr398/lib/plank.vapi --- plank-0.2.0~bzr397+repack/lib/plank.vapi 2011-07-10 14:21:49.000000000 +0000 +++ plank-0.2.0~bzr398/lib/plank.vapi 2011-07-17 17:42:49.000000000 +0000 @@ -505,11 +505,11 @@ public void reset_buffers (); public void show (); public Gdk.Rectangle static_dock_region (); - public int DockHeight { get; } + public int DockHeight { get; protected set; } public int DockWidth { get; } public bool Hidden { get; protected set; } public double HideOffset { get; } - public int VisibleDockHeight { get; } + public int VisibleDockHeight { get; protected set; } public int VisibleDockWidth { get; } } [CCode (cheader_filename = "plank.h")]