You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.6KB

  1. //
  2. // "$Id: Fl_Adjuster.H 7981 2010-12-08 23:53:04Z greg.ercolano $"
  3. //
  4. // Adjuster widget header file for the Fast Light Tool Kit (FLTK).
  5. //
  6. // Copyright 1998-2010 by Bill Spitzak and others.
  7. //
  8. // This library is free software; you can redistribute it and/or
  9. // modify it under the terms of the GNU Library General Public
  10. // License as published by the Free Software Foundation; either
  11. // version 2 of the License, or (at your option) any later version.
  12. //
  13. // This library is distributed in the hope that it will be useful,
  14. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. // Library General Public License for more details.
  17. //
  18. // You should have received a copy of the GNU Library General Public
  19. // License along with this library; if not, write to the Free Software
  20. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  21. // USA.
  22. //
  23. // Please report all bugs and problems on the following page:
  24. //
  25. // http://www.fltk.org/str.php
  26. //
  27. /* \file
  28. Fl_Adjuster widget . */
  29. // 3-button "slider", made for Nuke
  30. #ifndef Fl_Adjuster_H
  31. #define Fl_Adjuster_H
  32. #ifndef Fl_Valuator_H
  33. #include "Fl_Valuator.H"
  34. #endif
  35. /**
  36. The Fl_Adjuster widget was stolen from Prisms, and has proven
  37. to be very useful for values that need a large dynamic range.
  38. \image html adjuster1.png
  39. \image latex adjuster1.png "Fl_Adjuster" width=4cm
  40. <P>When you press a button and drag to the right the value increases.
  41. When you drag to the left it decreases. The largest button adjusts by
  42. 100 * step(), the next by 10 * step() and that
  43. smallest button by step(). Clicking on the buttons
  44. increments by 10 times the amount dragging by a pixel does. Shift +
  45. click decrements by 10 times the amount.
  46. */
  47. class FL_EXPORT Fl_Adjuster : public Fl_Valuator {
  48. int drag;
  49. int ix;
  50. int soft_;
  51. protected:
  52. void draw();
  53. int handle(int);
  54. void value_damage();
  55. public:
  56. Fl_Adjuster(int X,int Y,int W,int H,const char *l=0);
  57. /**
  58. If "soft" is turned on, the user is allowed to drag the value outside
  59. the range. If they drag the value to one of the ends, let go, then
  60. grab again and continue to drag, they can get to any value. Default is
  61. one.
  62. */
  63. void soft(int s) {soft_ = s;}
  64. /**
  65. If "soft" is turned on, the user is allowed to drag the value outside
  66. the range. If they drag the value to one of the ends, let go, then
  67. grab again and continue to drag, they can get to any value. Default is
  68. one.
  69. */
  70. int soft() const {return soft_;}
  71. };
  72. #endif
  73. //
  74. // End of "$Id: Fl_Adjuster.H 7981 2010-12-08 23:53:04Z greg.ercolano $".
  75. //