changeset 2035:5625ee0230ad

clean out fltkcomplexbutton a bit
author corvid <corvid@lavabit.com>
date Wed, 18 May 2011 16:19:58 +0000
parents 7cad4651d972
children 6a8f4de33240
files dw/fltkcomplexbutton.cc dw/fltkcomplexbutton.hh
diffstat 2 files changed, 7 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/dw/fltkcomplexbutton.cc	Wed May 18 00:04:48 2011 +0000
+++ b/dw/fltkcomplexbutton.cc	Wed May 18 16:19:58 2011 +0000
@@ -29,7 +29,6 @@
   Sets the current value of the button.
   A non-zero value sets the button to 1 (ON), and zero sets it to 0 (OFF).
   \param[in] v button value.
-  \see set(), clear()
  */
 int ComplexButton::value(int v) {
   v = v ? 1 : 0;
@@ -45,22 +44,7 @@
   }
 }
 
-/**
-  Turns on this button and turns off all other radio buttons in the group
-  (calling \c value(1) or \c set() does not do this).
- */
-void ComplexButton::setonly() { // set this radio button on, turn others off
-  value(1);
-  Fl_Group* g = parent();
-  Fl_Widget*const* a = g->array();
-  for (int i = g->children(); i--;) {
-    Fl_Widget* o = *a++;
-    if (o != this && o->type()==FL_RADIO_BUTTON) ((Fl_Button*)o)->value(0);
-  }
-}
-
 void ComplexButton::draw() {
-  if (type() == FL_HIDDEN_BUTTON) return;
   Fl_Color col = value() ? selection_color() : color();
   draw_box(value() ? (down_box()?down_box():fl_down(box())) : box(), col);
   draw_backdrop();
@@ -85,14 +69,12 @@
   switch (event) {
   case FL_ENTER: /* FALLTHROUGH */
   case FL_LEAVE:
-//  if ((value_?selection_color():color())==FL_GRAY) redraw();
     return 1;
   case FL_PUSH:
     if (Fl::visible_focus() && handle(FL_FOCUS)) Fl::focus(this);
   case FL_DRAG:
     if (Fl::event_inside(this)) {
-      if (type() == FL_RADIO_BUTTON) newval = 1;
-      else newval = !oldval;
+      newval = !oldval;
     } else
     {
       clear_changed();
@@ -111,24 +93,15 @@
       return 1;
     }
     set_changed();
-    if (type() == FL_RADIO_BUTTON) setonly();
-    else if (type() == FL_TOGGLE_BUTTON) oldval = value_;
-    else {
-      value(oldval);
-      set_changed();
-      if (when() & FL_WHEN_CHANGED) {
-        Fl_Widget_Tracker wp(this);
-        do_callback();
-        if (wp.deleted()) return 1;
-      }
+    value(oldval);
+    set_changed();
+    if (when() & FL_WHEN_CHANGED) {
+      Fl_Widget_Tracker wp(this);
+      do_callback();
+      if (wp.deleted()) return 1;
     }
     if (when() & FL_WHEN_RELEASE) do_callback();
     return 1;
-  case FL_SHORTCUT:
-    if (!(shortcut() ?
-          Fl::test_shortcut(shortcut()) : test_shortcut())) return 0;
-    if (Fl::visible_focus() && handle(FL_FOCUS)) Fl::focus(this);
-    goto triggered_by_keyboard;
   case FL_FOCUS : /* FALLTHROUGH */
   case FL_UNFOCUS :
     if (Fl::visible_focus()) {
@@ -146,15 +119,7 @@
     if (Fl::focus() == this && Fl::event_key() == ' ' &&
         !(Fl::event_state() & (FL_SHIFT | FL_CTRL | FL_ALT | FL_META))) {
       set_changed();
-    triggered_by_keyboard:
       Fl_Widget_Tracker wp(this);
-      if (type() == FL_RADIO_BUTTON && !value_) {
-        setonly();
-        if (when() & FL_WHEN_CHANGED) do_callback();
-      } else if (type() == FL_TOGGLE_BUTTON) {
-        value(!value());
-        if (when() & FL_WHEN_CHANGED) do_callback();
-      }
       if (wp.deleted()) return 1;
       if (when() & FL_WHEN_RELEASE) do_callback();
       return 1;
@@ -175,7 +140,6 @@
   box(FL_UP_BOX);
   down_box(FL_NO_BOX);
   value_ = oldval = 0;
-  shortcut_ = 0;
 }
 
 ComplexButton::~ComplexButton() {
--- a/dw/fltkcomplexbutton.hh	Wed May 18 00:04:48 2011 +0000
+++ b/dw/fltkcomplexbutton.hh	Wed May 18 16:19:58 2011 +0000
@@ -22,15 +22,6 @@
 
 #include <FL/Fl_Group.H>
 
-// values for type()
-#define FL_NORMAL_BUTTON	0   /**< value() will be set to 1 during the press of the button and
-                                         reverts back to 0 when the button is released */
-#define FL_TOGGLE_BUTTON	1   ///< value() toggles between 0 and 1 at every click of the button
-#define FL_RADIO_BUTTON		(FL_RESERVED_TYPE+2) /**< is set to 1 at button press, and all other
-				         buttons in the same group with <tt>type() == FL_RADIO_BUTTON</tt>
-				         are set to zero.*/
-#define FL_HIDDEN_BUTTON	3   ///< for Forms compatibility
-
 extern FL_EXPORT Fl_Shortcut fl_old_shortcut(const char*);
 
 namespace dw {
@@ -45,15 +36,9 @@
   uchar down_box_;
 
 protected:
-
-  static Fl_Widget_Tracker *key_release_tracker;
-  static void key_release_timeout(void*);
-  void simulate_key_action();
-
   virtual void draw();
 
 public:
-
   virtual int handle(int);
 
   ComplexButton(int X, int Y, int W, int H, const char *L = 0);
@@ -67,47 +52,6 @@
   char value() const {return value_;}
 
   /**
-    Same as \c value(1).
-    \see value(int v)
-   */
-  int set() {return value(1);}
-
-  /**
-    Same as \c value(0).
-    \see value(int v)
-   */
-  int clear() {return value(0);}
-
-  void setonly(); // this should only be called on FL_RADIO_BUTTONs
-
-  /**
-    Returns the current shortcut key for the button.
-    \retval int
-   */
-  int shortcut() const {return shortcut_;}
-
-  /**
-    Sets the shortcut key to \c s.
-    Setting this overrides the use of '\&' in the label().
-    The value is a bitwise OR of a key and a set of shift flags, for example:
-    <tt>FL_ALT | 'a'</tt>, or
-    <tt>FL_ALT | (FL_F + 10)</tt>, or just
-    <tt>'a'</tt>.
-    A value of 0 disables the shortcut.
-
-    The key can be any value returned by Fl::event_key(), but will usually be
-    an ASCII letter.  Use a lower-case letter unless you require the shift key
-    to be held down.
-
-    The shift flags can be any set of values accepted by Fl::event_state().
-    If the bit is on, that shift key must be pushed.  Meta, Alt, Ctrl, and
-    Shift must be off if they are not in the shift flags (zero for the other
-    bits indicates a "don't care" setting).
-    \param[in] s bitwise OR of key and shift flags
-   */
-  void shortcut(int s) {shortcut_ = s;}
-
-  /**
     Returns the current down box type, which is drawn when value() is non-zero.
     \retval Fl_Boxtype
    */
@@ -121,12 +65,6 @@
   void down_box(Fl_Boxtype b) {down_box_ = b;}
 
   /// (for backwards compatibility)
-  void shortcut(const char *s) {shortcut(fl_old_shortcut(s));}
-
-  /// (for backwards compatibility)
-  Fl_Color down_color() const {return selection_color();}
-
-  /// (for backwards compatibility)
   void down_color(unsigned c) {selection_color(c);}
 };