MCPcopy Create free account
hub / github.com/ZDoom/Raze / OnMouseDown

Method OnMouseDown

libraries/ZWidget/src/widgets/scrollbar/scrollbar.cpp:172–258  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172bool Scrollbar::OnMouseDown(const Point& pos, int key)
173{
174 mouse_drag_start_pos = pos;
175
176 if (rect_button_decrement.contains(pos))
177 {
178 mouse_down_mode = mouse_down_button_decr;
179 FuncScrollOnMouseDown = &FuncScrollLineDecrement;
180
181 double last_position = position;
182
183 position -= line_step;
184 last_step_size = -line_step;
185 if (position >= scroll_max)
186 position = scroll_max - 1.0;
187 if (position < scroll_min)
188 position = scroll_min;
189
190 if (last_position != position)
191 InvokeScrollEvent(&FuncScrollLineDecrement);
192 }
193 else if (rect_button_increment.contains(pos))
194 {
195 mouse_down_mode = mouse_down_button_incr;
196 FuncScrollOnMouseDown = &FuncScrollLineIncrement;
197
198 double last_position = position;
199
200 position += line_step;
201 last_step_size = line_step;
202 if (position >= scroll_max)
203 position = scroll_max - 1.0;
204 if (position < scroll_min)
205 position = scroll_min;
206
207 if (last_position != position)
208 InvokeScrollEvent(&FuncScrollLineIncrement);
209 }
210 else if (rect_thumb.contains(pos))
211 {
212 mouse_down_mode = mouse_down_thumb_drag;
213 thumb_start_position = position;
214 thumb_start_pixel_position = vertical ? (rect_thumb.y - rect_track_decrement.y) : (rect_thumb.x - rect_track_decrement.x);
215 }
216 else if (rect_track_decrement.contains(pos))
217 {
218 mouse_down_mode = mouse_down_track_decr;
219 FuncScrollOnMouseDown = &FuncScrollPageDecrement;
220
221 double last_position = position;
222
223 position -= page_step;
224 last_step_size = -page_step;
225 if (position >= scroll_max)
226 position = scroll_max - 1.0;
227 if (position < scroll_min)
228 position = scroll_min;
229

Callers

nothing calls this directly

Calls 2

containsMethod · 0.45
StartMethod · 0.45

Tested by

no test coverage detected