Merge lp:~nomeata/widelands/plot-improvements into lp:widelands

Proposed by Joachim Breitner
Status: Merged
Merged at revision: 6088
Proposed branch: lp:~nomeata/widelands/plot-improvements
Merge into: lp:widelands
Prerequisite: lp:~nomeata/widelands/statistics-menu-settings-persistent
Diff against target: 100 lines (+25/-21)
2 files modified
src/ui_basic/slider.cc (+22/-21)
src/ui_basic/slider.h (+3/-0)
To merge this branch: bzr merge lp:~nomeata/widelands/plot-improvements
Reviewer Review Type Date Requested Status
Widelands Developers Pending
Review via email: mp+81412@code.launchpad.net

Description of the change

This fixes a small visual bug with the slider, whereas if the slider widget is resized, the position of the cursor was not recalculated.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/ui_basic/slider.cc'
--- src/ui_basic/slider.cc 2011-11-06 12:23:20 +0000
+++ src/ui_basic/slider.cc 2011-11-06 18:28:26 +0000
@@ -71,13 +71,10 @@
71 m_x_gap (x_gap),71 m_x_gap (x_gap),
72 m_y_gap (y_gap),72 m_y_gap (y_gap),
73 m_bar_size (bar_size),73 m_bar_size (bar_size),
74 m_cursor_pos
75 (m_value <= m_min_value ? 0 :
76 m_value >= m_max_value ? get_bar_size() :
77 (m_value - m_min_value) * get_bar_size() / (m_max_value - m_min_value)),
78 m_cursor_size (cursor_size)74 m_cursor_size (cursor_size)
79{75{
80 set_think(false);76 set_think(false);
77 calc_cursor_pos();
81}78}
8279
83void Slider::set_value(int32_t new_value)80void Slider::set_value(int32_t new_value)
@@ -86,17 +83,32 @@
8683
87 if (new_value != m_value) {84 if (new_value != m_value) {
88 m_value = new_value;85 m_value = new_value;
86 calc_cursor_pos();
87 send_value_changed();
88 update();
89 }
90}
91
92void Slider::calc_cursor_pos() {
93 if (m_max_value == m_min_value) {
94 m_cursor_pos = m_min_value;
95 } else if (m_value == m_min_value) {
96 m_cursor_pos = 0;
97 } else if (m_value == m_max_value) {
98 m_cursor_pos = get_bar_size();
99 } else {
89 m_cursor_pos =100 m_cursor_pos =
90 m_value <= m_min_value ? 0 :
91 m_value >= m_max_value ? get_bar_size() :
92 (m_value - m_min_value) * get_bar_size()101 (m_value - m_min_value) * get_bar_size()
93 /102 /
94 (m_max_value - m_min_value);103 (m_max_value - m_min_value);
95 send_value_changed();
96 update();
97 }104 }
98}105}
99106
107void Slider::layout() {
108 Panel::layout();
109 calc_cursor_pos();
110}
111
100/**112/**
101 * \brief Sets max value.113 * \brief Sets max value.
102 *114 *
@@ -245,18 +257,7 @@
245 m_pressed = false;257 m_pressed = false;
246258
247 // cursor position: align to integer value259 // cursor position: align to integer value
248 if (m_max_value == m_min_value) {260 calc_cursor_pos();
249 m_cursor_pos = m_min_value;
250 } else if (m_value == m_min_value) {
251 m_cursor_pos = 0;
252 } else if (m_value == m_max_value) {
253 m_cursor_pos = get_bar_size();
254 } else {
255 m_cursor_pos =
256 (m_value - m_min_value) * get_bar_size()
257 /
258 (m_max_value - m_min_value);
259 }
260261
261 update();262 update();
262 }263 }
@@ -464,9 +465,9 @@
464}465}
465466
466void HorizontalSlider::layout() {467void HorizontalSlider::layout() {
467 Slider::layout();
468 m_y_gap = get_h() / 2 - 2;468 m_y_gap = get_h() / 2 - 2;
469 m_bar_size = get_w() - m_cursor_size;469 m_bar_size = get_w() - m_cursor_size;
470 Slider::layout();
470}471}
471472
472////////////////////////////////////////////////////////////////////////////////473////////////////////////////////////////////////////////////////////////////////
473474
=== modified file 'src/ui_basic/slider.h'
--- src/ui_basic/slider.h 2011-11-06 12:23:20 +0000
+++ src/ui_basic/slider.h 2011-11-06 18:28:26 +0000
@@ -62,6 +62,9 @@
6262
6363
64protected:64protected:
65 void layout();
66 void calc_cursor_pos();
67
65 // drawing68 // drawing
66 int32_t get_x_gap() const {return m_x_gap;}69 int32_t get_x_gap() const {return m_x_gap;}
67 int32_t get_y_gap() const {return m_y_gap;}70 int32_t get_y_gap() const {return m_y_gap;}

Subscribers

People subscribed via source and target branches

to status/vote changes: