32
32
public class PositionManager : GLib.Object
34
public struct DockItemDrawValue
36
public Gdk.Rectangle hover_region;
37
public Gdk.Rectangle draw_region;
38
public Gdk.Rectangle background_region;
40
public DockItemDrawValue move_in (PositionType position, double damount)
43
var amount = (int) damount;
47
case PositionType.BOTTOM:
48
result.hover_region.y -= amount;
49
result.draw_region.y -= amount;
50
result.background_region.y -= amount;
52
case PositionType.TOP:
53
result.hover_region.y += amount;
54
result.draw_region.y += amount;
55
result.background_region.y += amount;
57
case PositionType.LEFT:
58
result.hover_region.x += amount;
59
result.draw_region.x += amount;
60
result.background_region.x += amount;
62
case PositionType.RIGHT:
63
result.hover_region.x -= amount;
64
result.draw_region.x -= amount;
65
result.background_region.x -= amount;
72
public DockItemDrawValue move_right (PositionType position, double damount)
75
var amount = (int) damount;
79
case PositionType.BOTTOM:
80
result.hover_region.x -= amount;
81
result.draw_region.x -= amount;
82
result.background_region.x -= amount;
84
case PositionType.TOP:
85
result.hover_region.x += amount;
86
result.draw_region.x += amount;
87
result.background_region.x += amount;
89
case PositionType.LEFT:
90
result.hover_region.y += amount;
91
result.draw_region.y += amount;
92
result.background_region.y += amount;
94
case PositionType.RIGHT:
95
result.hover_region.y -= amount;
96
result.draw_region.y -= amount;
97
result.background_region.y -= amount;
34
105
public DockController controller { private get; construct; }
36
107
Gdk.Rectangle static_dock_region;
108
HashMap<DockItem, DockItemDrawValue?> draw_values;
38
110
Gdk.Rectangle monitor_geo;
203
278
update_dock_position ();
282
* Resets all internal caches for the given item.
284
* @param item the dock item
286
public void reset_item_caches (DockItem item)
288
draw_values.unset (item);
206
291
void update_caches (DockTheme theme)
208
293
IconSize = int.min (MaxIconSize, controller.prefs.IconSize);
568
* The draw-value for a dock item.
570
* @param item the dock item to find the drawvalue for
571
* @return the region for the dock item
573
public DockItemDrawValue get_draw_value_for_item (DockItem item)
575
DockItemDrawValue? draw_value;
577
if ((draw_value = draw_values.get (item)) == null) {
578
var hover_rect = internal_item_hover_region (item);
579
var draw_rect = item_draw_region (hover_rect);
580
var background_rect = item_background_region (hover_rect);
582
draw_value = { hover_rect, draw_rect, background_rect };
583
draw_values.set (item, draw_value);
478
590
* The region for drawing a dock item.
480
592
* @param hover_rect the item's hover region
481
593
* @return the region for the dock item
483
public Gdk.Rectangle item_draw_region (Gdk.Rectangle hover_rect)
595
Gdk.Rectangle item_draw_region (Gdk.Rectangle hover_rect)
485
597
var item_padding = ItemPadding;
486
598
var top_padding = top_offset + TopPadding;
526
638
* @param rect the item's hover region
527
639
* @return the region for the dock item
529
public Gdk.Rectangle item_background_region (Gdk.Rectangle rect)
641
Gdk.Rectangle item_background_region (Gdk.Rectangle rect)
531
643
var top_padding = top_offset + TopPadding;
532
644
top_padding = (top_padding > 0 ? 0 : top_padding);
583
695
public Gdk.Rectangle item_hover_region (DockItem item)
697
return get_draw_value_for_item (item).hover_region;
700
Gdk.Rectangle internal_item_hover_region (DockItem item)
585
702
unowned DockPreferences prefs = controller.prefs;
587
704
var rect = Gdk.Rectangle ();