diff options
| author | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2014-06-06 13:55:20 +0000 |
|---|---|---|
| committer | CI bot <ps-jenkins@lists.canonical.com> | 2014-06-06 13:55:20 +0000 |
| commit | 476768d6f13522a230abdc5612e783fb3fa81f7a (patch) | |
| tree | e9ecfb9429f3093adaf0daf102caaaabddeff304 | |
| parent | 3b43db9c2710cb397fcce39bd7aa294c9a355ce0 (diff) | |
| parent | 40ad1f050267a083f2be8c99f9fc322143475073 (diff) | |
SwitcherView: use RawPixel's for the size values and convert them to match current scaling Fixes: 1317348
(bzr r3813)
| -rw-r--r-- | launcher/SwitcherView.cpp | 54 | ||||
| -rw-r--r-- | launcher/SwitcherView.h | 1 | ||||
| -rw-r--r-- | tests/test_switcher_view.cpp | 1 |
3 files changed, 35 insertions, 21 deletions
diff --git a/launcher/SwitcherView.cpp b/launcher/SwitcherView.cpp index c4b612c28..edfe560c6 100644 --- a/launcher/SwitcherView.cpp +++ b/launcher/SwitcherView.cpp @@ -38,24 +38,32 @@ namespace switcher namespace { RawPixel const VERTICAL_PADDING = 45_em; - unsigned int const SPREAD_OFFSET = 100; - unsigned int const EXTRA_ICON_SPACE = 10; + RawPixel const BORDER_SIZE = 50_em; + RawPixel const FLAT_SPACING = 20_em; + RawPixel const ICON_SIZE = 128_em; + RawPixel const MINIMUM_SPACING = 10_em; + RawPixel const TILE_SIZE = 150_em; + RawPixel const SPREAD_OFFSET = 100_em; + RawPixel const EXTRA_ICON_SPACE = 10_em; + RawPixel const TEXT_SIZE = 15_em; + + unsigned int const ANIMATION_LENGTH = 250; unsigned int const MAX_DIRECTIONS_CHANGED = 3; + double const TEXT_TILE_MULTIPLIER = 3.5; } NUX_IMPLEMENT_OBJECT_TYPE(SwitcherView); SwitcherView::SwitcherView(ui::AbstractIconRenderer::Ptr const& renderer) : render_boxes(false) - , border_size(50) - , flat_spacing(20) - , icon_size(128) - , minimum_spacing(10) - , tile_size(150) - , vertical_size(tile_size + VERTICAL_PADDING.CP(scale()) * 2) - , text_size(15) - , animation_length(250) - , spread_size(3.5f) + , border_size(BORDER_SIZE.CP(scale)) + , flat_spacing(FLAT_SPACING.CP(scale)) + , icon_size(ICON_SIZE.CP(scale)) + , minimum_spacing(MINIMUM_SPACING.CP(scale)) + , tile_size(TILE_SIZE.CP(scale)) + , vertical_size(tile_size + VERTICAL_PADDING.CP(scale) * 2) + , text_size(TEXT_SIZE.CP(scale)) + , animation_length(ANIMATION_LENGTH) , icon_renderer_(renderer) , text_view_(new StaticCairoText("")) , animation_(animation_length) @@ -67,10 +75,11 @@ SwitcherView::SwitcherView(ui::AbstractIconRenderer::Ptr const& renderer) icon_renderer_->monitor = monitors::MAX; icon_renderer_->SetTargetSize(tile_size, icon_size, minimum_spacing); - text_view_->SetMaximumWidth(tile_size * spread_size); + text_view_->SetMaximumWidth(tile_size * TEXT_TILE_MULTIPLIER); text_view_->SetLines(1); text_view_->SetTextColor(nux::color::White); text_view_->SetFont("Ubuntu Bold 10"); + text_view_->SetScale(scale); icon_size.changed.connect(sigc::mem_fun(this, &SwitcherView::OnIconSizeChanged)); tile_size.changed.connect(sigc::mem_fun(this, &SwitcherView::OnTileSizeChanged)); @@ -112,10 +121,10 @@ void SwitcherView::AddProperties(debug::IntrospectionData& introspection) .add("vertical-size", vertical_size) .add("text-size", text_size) .add("animation-length", animation_length) - .add("spread-size", spread_size) + .add("spread-size", TEXT_TILE_MULTIPLIER) .add("label", text_view_->GetText()) .add("last_icon_selected", last_icon_selected_) - .add("spread_offset", SPREAD_OFFSET) + .add("spread_offset", SPREAD_OFFSET.CP(scale)) .add("label_visible", text_view_->IsVisible()); } @@ -172,11 +181,18 @@ void SwitcherView::OnIconSizeChanged(int size) void SwitcherView::OnTileSizeChanged(int size) { icon_renderer_->SetTargetSize(tile_size, icon_size, minimum_spacing); - vertical_size = tile_size + VERTICAL_PADDING.CP(scale()) * 2; + vertical_size = tile_size + VERTICAL_PADDING.CP(scale) * 2; } void SwitcherView::OnScaleChanged(double scale) { + text_view_->SetScale(scale); + border_size = BORDER_SIZE.CP(scale); + flat_spacing = FLAT_SPACING.CP(scale); + icon_size = ICON_SIZE.CP(scale); + minimum_spacing = MINIMUM_SPACING.CP(scale); + tile_size = TILE_SIZE.CP(scale); + text_size = TEXT_SIZE.CP(scale); vertical_size = tile_size + VERTICAL_PADDING.CP(scale) * 2; } @@ -706,7 +722,7 @@ bool SwitcherView::RenderArgsFlat(nux::Geometry& background_geo, int selection, if (text_view_->IsVisible()) { background_geo.height += text_size; - text_view_->SetBaseY(background_geo.y + background_geo.height - VERTICAL_PADDING.CP(scale())); + text_view_->SetBaseY(background_geo.y + background_geo.height - VERTICAL_PADDING.CP(scale)); } if (model_) @@ -722,7 +738,7 @@ bool SwitcherView::RenderArgsFlat(nux::Geometry& background_geo, int selection, nux::Geometry const& spread_bounds = UpdateRenderTargets(progress); ResizeRenderTargets(spread_bounds, progress); // remove extra space consumed by spread - spread_padded_width = spread_bounds.width + SPREAD_OFFSET; + spread_padded_width = spread_bounds.width + SPREAD_OFFSET.CP(scale); max_width -= spread_padded_width - tile_size; int expansion = std::max(0, spread_bounds.height - icon_size); @@ -968,7 +984,7 @@ void SwitcherView::DrawOverlay(nux::GraphicsEngine& GfxContext, bool force_draw, int SwitcherView::IconIndexAt(int x, int y) const { - int half_size = icon_size.Get() / 2 + EXTRA_ICON_SPACE; + int half_size = icon_size.Get() / 2 + EXTRA_ICON_SPACE.CP(scale); int icon_index = -1; // Taking icon rotation into consideration will make selection more @@ -1005,7 +1021,7 @@ int SwitcherView::DetailIconIdexAt(int x, int y) const for (unsigned int i = 0; i < render_targets_.size(); ++i) { - if (render_targets_[i]->result.IsPointInside(x + SPREAD_OFFSET, y + SPREAD_OFFSET)) + if (render_targets_[i]->result.IsPointInside(x + SPREAD_OFFSET.CP(scale), y + SPREAD_OFFSET.CP(scale))) return i; } diff --git a/launcher/SwitcherView.h b/launcher/SwitcherView.h index c86ae3179..392aac293 100644 --- a/launcher/SwitcherView.h +++ b/launcher/SwitcherView.h @@ -65,7 +65,6 @@ public: nux::Property<int> vertical_size; nux::Property<int> text_size; nux::Property<int> animation_length; - nux::Property<double> spread_size; void SkipAnimation(); diff --git a/tests/test_switcher_view.cpp b/tests/test_switcher_view.cpp index 896eca506..0bce83b97 100644 --- a/tests/test_switcher_view.cpp +++ b/tests/test_switcher_view.cpp @@ -118,7 +118,6 @@ TEST_F(TestSwitcherView, Initiate) EXPECT_EQ(switcher.text_size, 15); EXPECT_EQ(switcher.animation_length, 250); EXPECT_EQ(switcher.monitor, 0); - EXPECT_EQ(switcher.spread_size, 3.5f); ASSERT_NE(switcher.text_view_, nullptr); ASSERT_NE(switcher.icon_renderer_, nullptr); EXPECT_EQ(switcher.icon_renderer_->pip_style, ui::OVER_TILE); |
