Rev 2097 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2097 | Rev 2105 | ||
---|---|---|---|
Line 303... | Line 303... | ||
303 | more.set_dir (arrow_button::right); |
303 | more.set_dir (arrow_button::right); |
304 | }
|
304 | }
|
305 | set_pos_backlbl (); |
305 | set_pos_backlbl (); |
306 | abort_selectors (); |
306 | abort_selectors (); |
307 | }
|
307 | }
|
308 | - | ||
309 | void change_value (int _dir, double scl = 1.0) { |
- | |
310 | dir = _dir; |
- | |
311 | delta = scl * delta0; |
- | |
312 | value += dir_delta (); |
- | |
313 | f_value = value; |
- | |
314 | changed (f_value); |
- | |
315 | }
|
- | |
316 | 308 | ||
- | 309 | void change_value (int _dir, double scl = 1.0, int upd = 0) { |
|
- | 310 | dir = _dir; |
|
- | 311 | delta = scl * delta0; |
|
- | 312 | value += dir_delta (); |
|
- | 313 | if (limits) clamp<T>(lo, value, hi); |
|
317 | void decrease () { |
314 | if (pre == 0 || upd) { |
318 | change_value (-1); |
315 | f_value = value; |
- | 316 | set_pos (posx, posy); |
|
- | 317 | }
|
|
- | 318 | call_listener (0, f_value); |
|
319 | }
|
319 | }
|
320 | 320 | ||
- | 321 | spinner2<T>& operator++ () { |
|
- | 322 | change_value (+1, 1, 1); |
|
- | 323 | return *this; |
|
- | 324 | }
|
|
- | 325 | ||
- | 326 | spinner2<T>& operator-- () { |
|
- | 327 | change_value (-1, 1, 1); |
|
- | 328 | return *this; |
|
- | 329 | }
|
|
- | 330 | ||
321 | void increase () { |
331 | void increase () { |
322 | change_value (+1); |
332 | change_value (+1, 1, 1); |
323 | }
|
333 | }
|
324 | 334 | ||
325 | spinner2<T>& operator++ () { |
335 | void decrease () { |
326 | change_value (+1); |
336 | change_value (-1, 1, 1); |
327 | return *this; |
- | |
328 | }
|
337 | }
|
329 | 338 | ||
- | 339 | void changed (field& f) { |
|
- | 340 | ||
- | 341 | if (limits) { |
|
- | 342 | T v = f; |
|
330 | spinner2<T>& operator-- () { |
343 | if (clamp<T>(lo, v, hi)) f = v; |
331 | change_value (-1); |
344 | value = v; |
- | 345 | } else |
|
332 | return *this; |
346 | value = f; |
333 | }
|
347 | |
- | 348 | delta = value - lastv; |
|
- | 349 | if (delta > 0) { |
|
- | 350 | dir = 1; |
|
- | 351 | } else { |
|
- | 352 | dir = -1; |
|
- | 353 | delta = -delta; |
|
- | 354 | }
|
|
- | 355 | lastv = value; |
|
334 | 356 | ||
- | 357 | set_pos (posx, posy); |
|
- | 358 | ||
- | 359 | call_listener (0, f); |
|
- | 360 | ||
- | 361 | }
|
|
- | 362 | ||
335 | void changed (checkbutton& cb) { |
363 | void changed (checkbutton& cb) { |
336 | if (orient == NONE) { |
364 | if (orient == NONE) { |
337 | cb.turn_off (0); |
365 | cb.turn_off (0); |
338 | if (mouse_slider0.active) cant_mouse_slide (); |
366 | if (mouse_slider0.active) cant_mouse_slide (); |
339 | } else { |
367 | } else { |
340 | if (cb.state) mouse_slider0.add (this); else mouse_slider0.remove (this); |
368 | if (cb.state) mouse_slider0.add (this); else mouse_slider0.remove (this); |
341 | if (SHIFT == 0) activate_mouse_slider (); |
369 | if (SHIFT == 0) activate_mouse_slider (); |
342 | }
|
370 | }
|
343 | }
|
371 | }
|
344 | 372 | ||
345 | void changed (field& f) { |
- | |
346 | if (limits) { |
- | |
347 | T v = f; |
- | |
348 | if (clamp<T>(lo, v, hi)) f = v; |
- | |
349 | }
|
- | |
350 | value = f; |
- | |
351 | if (f.edited) { |
- | |
352 | delta = value - lastv; |
- | |
353 | if (delta > 0) { |
- | |
354 | dir = 1; |
- | |
355 | } else { |
- | |
356 | dir = -1; |
- | |
357 | delta = -delta; |
- | |
358 | }
|
- | |
359 | }
|
- | |
360 | lastv = value; |
- | |
361 | set_pos (posx, posy); |
- | |
362 | call_listener (0, f); |
- | |
363 | }
|
- | |
364 | - | ||
365 | void call_listener (int i, field& f) { |
373 | void call_listener (int i, field& f) { |
366 | change_listener<field>* lisi = lis[i]; |
374 | change_listener<field>* lisi = lis[i]; |
367 | if (lisi) lisi->changed (f); |
375 | if (lisi) lisi->changed (f); |
368 | }
|
376 | }
|
369 | 377 | ||
Line 377... | Line 385... | ||
377 | }
|
385 | }
|
378 | 386 | ||
379 | void after_slide () { |
387 | void after_slide () { |
380 | lbl.turn_off (DONT_CALL_LISTENER); |
388 | lbl.turn_off (DONT_CALL_LISTENER); |
381 | set_delta (delta0 * mouse_slider0.scale.value); |
389 | set_delta (delta0 * mouse_slider0.scale.value); |
- | 390 | if (null) |
|
382 | if (null) set_value (0); |
391 | set_value (0); |
- | 392 | else { |
|
- | 393 | if (pre) set_value (value); |
|
- | 394 | }
|
|
383 | }
|
395 | }
|
384 | 396 | ||
385 | void draw () { |
397 | void draw () { |
386 | glColor3f (clr.r, clr.g, clr.b); |
398 | glColor3f (clr.r, clr.g, clr.b); |
387 | widget* w [] = {&lbl, &dec, &inc, &f_value}; |
399 | widget* w [] = {&lbl, &dec, &inc, &f_value}; |