Merge lp:~3v1n0/unity/switcher-hidpi into lp:unity

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Andrea Azzarone
Approved revision: no longer in the source branch.
Merged at revision: 3813
Proposed branch: lp:~3v1n0/unity/switcher-hidpi
Merge into: lp:unity
Prerequisite: lp:~3v1n0/unity/shutdown-hidpi-fixes
Diff against target: 153 lines (+35/-21)
3 files modified
launcher/SwitcherView.cpp (+35/-19)
launcher/SwitcherView.h (+0/-1)
tests/test_switcher_view.cpp (+0/-1)
To merge this branch: bzr merge lp:~3v1n0/unity/switcher-hidpi
Reviewer Review Type Date Requested Status
Andrea Azzarone (community) Approve
PS Jenkins bot (community) continuous-integration Needs Fixing
Review via email: mp+218735@code.launchpad.net

Commit message

SwitcherView: use RawPixel's for the size values and convert them to match current scaling

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Andrea Azzarone (azzar1) wrote :

Works fine here!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'launcher/SwitcherView.cpp'
2--- launcher/SwitcherView.cpp 2014-05-08 04:22:49 +0000
3+++ launcher/SwitcherView.cpp 2014-05-08 04:22:49 +0000
4@@ -38,24 +38,32 @@
5 namespace
6 {
7 RawPixel const VERTICAL_PADDING = 45_em;
8- unsigned int const SPREAD_OFFSET = 100;
9- unsigned int const EXTRA_ICON_SPACE = 10;
10+ RawPixel const BORDER_SIZE = 50_em;
11+ RawPixel const FLAT_SPACING = 20_em;
12+ RawPixel const ICON_SIZE = 128_em;
13+ RawPixel const MINIMUM_SPACING = 10_em;
14+ RawPixel const TILE_SIZE = 150_em;
15+ RawPixel const SPREAD_OFFSET = 100_em;
16+ RawPixel const EXTRA_ICON_SPACE = 10_em;
17+ RawPixel const TEXT_SIZE = 15_em;
18+
19+ unsigned int const ANIMATION_LENGTH = 250;
20 unsigned int const MAX_DIRECTIONS_CHANGED = 3;
21+ double const TEXT_TILE_MULTIPLIER = 3.5;
22 }
23
24 NUX_IMPLEMENT_OBJECT_TYPE(SwitcherView);
25
26 SwitcherView::SwitcherView(ui::AbstractIconRenderer::Ptr const& renderer)
27 : render_boxes(false)
28- , border_size(50)
29- , flat_spacing(20)
30- , icon_size(128)
31- , minimum_spacing(10)
32- , tile_size(150)
33- , vertical_size(tile_size + VERTICAL_PADDING.CP(scale()) * 2)
34- , text_size(15)
35- , animation_length(250)
36- , spread_size(3.5f)
37+ , border_size(BORDER_SIZE.CP(scale))
38+ , flat_spacing(FLAT_SPACING.CP(scale))
39+ , icon_size(ICON_SIZE.CP(scale))
40+ , minimum_spacing(MINIMUM_SPACING.CP(scale))
41+ , tile_size(TILE_SIZE.CP(scale))
42+ , vertical_size(tile_size + VERTICAL_PADDING.CP(scale) * 2)
43+ , text_size(TEXT_SIZE.CP(scale))
44+ , animation_length(ANIMATION_LENGTH)
45 , icon_renderer_(renderer)
46 , text_view_(new StaticCairoText(""))
47 , animation_(animation_length)
48@@ -67,10 +75,11 @@
49 icon_renderer_->monitor = monitors::MAX;
50 icon_renderer_->SetTargetSize(tile_size, icon_size, minimum_spacing);
51
52- text_view_->SetMaximumWidth(tile_size * spread_size);
53+ text_view_->SetMaximumWidth(tile_size * TEXT_TILE_MULTIPLIER);
54 text_view_->SetLines(1);
55 text_view_->SetTextColor(nux::color::White);
56 text_view_->SetFont("Ubuntu Bold 10");
57+ text_view_->SetScale(scale);
58
59 icon_size.changed.connect(sigc::mem_fun(this, &SwitcherView::OnIconSizeChanged));
60 tile_size.changed.connect(sigc::mem_fun(this, &SwitcherView::OnTileSizeChanged));
61@@ -112,10 +121,10 @@
62 .add("vertical-size", vertical_size)
63 .add("text-size", text_size)
64 .add("animation-length", animation_length)
65- .add("spread-size", spread_size)
66+ .add("spread-size", TEXT_TILE_MULTIPLIER)
67 .add("label", text_view_->GetText())
68 .add("last_icon_selected", last_icon_selected_)
69- .add("spread_offset", SPREAD_OFFSET)
70+ .add("spread_offset", SPREAD_OFFSET.CP(scale))
71 .add("label_visible", text_view_->IsVisible());
72 }
73
74@@ -172,11 +181,18 @@
75 void SwitcherView::OnTileSizeChanged(int size)
76 {
77 icon_renderer_->SetTargetSize(tile_size, icon_size, minimum_spacing);
78- vertical_size = tile_size + VERTICAL_PADDING.CP(scale()) * 2;
79+ vertical_size = tile_size + VERTICAL_PADDING.CP(scale) * 2;
80 }
81
82 void SwitcherView::OnScaleChanged(double scale)
83 {
84+ text_view_->SetScale(scale);
85+ border_size = BORDER_SIZE.CP(scale);
86+ flat_spacing = FLAT_SPACING.CP(scale);
87+ icon_size = ICON_SIZE.CP(scale);
88+ minimum_spacing = MINIMUM_SPACING.CP(scale);
89+ tile_size = TILE_SIZE.CP(scale);
90+ text_size = TEXT_SIZE.CP(scale);
91 vertical_size = tile_size + VERTICAL_PADDING.CP(scale) * 2;
92 }
93
94@@ -706,7 +722,7 @@
95 if (text_view_->IsVisible())
96 {
97 background_geo.height += text_size;
98- text_view_->SetBaseY(background_geo.y + background_geo.height - VERTICAL_PADDING.CP(scale()));
99+ text_view_->SetBaseY(background_geo.y + background_geo.height - VERTICAL_PADDING.CP(scale));
100 }
101
102 if (model_)
103@@ -722,7 +738,7 @@
104 nux::Geometry const& spread_bounds = UpdateRenderTargets(progress);
105 ResizeRenderTargets(spread_bounds, progress);
106 // remove extra space consumed by spread
107- spread_padded_width = spread_bounds.width + SPREAD_OFFSET;
108+ spread_padded_width = spread_bounds.width + SPREAD_OFFSET.CP(scale);
109 max_width -= spread_padded_width - tile_size;
110
111 int expansion = std::max(0, spread_bounds.height - icon_size);
112@@ -968,7 +984,7 @@
113
114 int SwitcherView::IconIndexAt(int x, int y) const
115 {
116- int half_size = icon_size.Get() / 2 + EXTRA_ICON_SPACE;
117+ int half_size = icon_size.Get() / 2 + EXTRA_ICON_SPACE.CP(scale);
118 int icon_index = -1;
119
120 // Taking icon rotation into consideration will make selection more
121@@ -1005,7 +1021,7 @@
122
123 for (unsigned int i = 0; i < render_targets_.size(); ++i)
124 {
125- if (render_targets_[i]->result.IsPointInside(x + SPREAD_OFFSET, y + SPREAD_OFFSET))
126+ if (render_targets_[i]->result.IsPointInside(x + SPREAD_OFFSET.CP(scale), y + SPREAD_OFFSET.CP(scale)))
127 return i;
128 }
129
130
131=== modified file 'launcher/SwitcherView.h'
132--- launcher/SwitcherView.h 2014-05-08 04:22:49 +0000
133+++ launcher/SwitcherView.h 2014-05-08 04:22:49 +0000
134@@ -65,7 +65,6 @@
135 nux::Property<int> vertical_size;
136 nux::Property<int> text_size;
137 nux::Property<int> animation_length;
138- nux::Property<double> spread_size;
139
140 void SkipAnimation();
141
142
143=== modified file 'tests/test_switcher_view.cpp'
144--- tests/test_switcher_view.cpp 2014-05-08 04:22:49 +0000
145+++ tests/test_switcher_view.cpp 2014-05-08 04:22:49 +0000
146@@ -118,7 +118,6 @@
147 EXPECT_EQ(switcher.text_size, 15);
148 EXPECT_EQ(switcher.animation_length, 250);
149 EXPECT_EQ(switcher.monitor, 0);
150- EXPECT_EQ(switcher.spread_size, 3.5f);
151 ASSERT_NE(switcher.text_view_, nullptr);
152 ASSERT_NE(switcher.icon_renderer_, nullptr);
153 EXPECT_EQ(switcher.icon_renderer_->pip_style, ui::OVER_TILE);