Subversion Repositories DIN Is Noise

Rev

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};