From 9772f99303b5b6ab7cd0561c68bbe9de402ae814 Mon Sep 17 00:00:00 2001 From: David Capello Date: Thu, 17 Sep 2015 15:19:47 -0300 Subject: [PATCH] Add scroll bars to Timeline widget (fix #732) Changes: - Added ui::ScrollableViewDelegate so ui::ScrollBar can be child of a non-ui::View widget. - Added a generic ui::setup_scrollbars() utility to locate horizontal/vertical scrollbars depending on the scrollable area and the available viewport area. - Replaced Timeline::m_scroll_x/y ints with m_hbar/m_vbar widgets. - Added transparent scrollbar look & feel. - Added a "hover" state to mini-scrollbars used in sprite editors. --- data/skins/default/sheet.png | Bin 13592 -> 13834 bytes data/skins/default/skin.xml | 28 +++++- src/app/ui/skin/skin_theme.cpp | 28 ++++-- src/app/ui/timeline.cpp | 161 ++++++++++++++++++++++----------- src/app/ui/timeline.h | 16 +++- src/ui/CMakeLists.txt | 1 + src/ui/scroll_bar.cpp | 37 ++++---- src/ui/scroll_bar.h | 13 ++- src/ui/scroll_helper.cpp | 82 +++++++++++++++++ src/ui/scroll_helper.h | 26 ++++++ src/ui/view.cpp | 81 ++++------------- src/ui/view.h | 79 ++++++++-------- 12 files changed, 365 insertions(+), 187 deletions(-) create mode 100644 src/ui/scroll_helper.cpp create mode 100644 src/ui/scroll_helper.h diff --git a/data/skins/default/sheet.png b/data/skins/default/sheet.png index 207b22b55ddd0e2b77efa8874348600019168ce2..af489296c57a833560a822728ca35f635bf50736 100644 GIT binary patch literal 13834 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 i_8TKm0#l098dTg<3i5i2nf@zBX+D literal 13592 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 u_fTTzOzCcCV?!N#rVjQ0Ru%u1dV$Sj!!%YS75 - + + + + + + + @@ -451,9 +457,29 @@ + + + + + + + +