Hi FLTKers,
I'm writing a little app where a series of buttons "do something" when the
corresponding key is pressed (and when is released too), displaying a graphical
status when the button is on (e.g. a black square inside it); 'q' handles the
first button, 'w' the second, 'e' the third and so on.
First of all I have extended Fl_Button providing the following methods:
-----------------------------------------------------------------------
void myButton::draw() {
fl_draw_box(FL_BORDER_BOX, x(), y(), w(), h(), FL_BACKGROUND_COLOR);
}
void myButton::on() {
fl_rectf(x()+5, y()+5, w()-10, h()-10, 0, 0, 0);
}
void myButton::off() {
fl_rectf(x()+5, y()+5, w()-10, h()-10, FL_BACKGROUND_COLOR);
}
-----------------------------------------------------------------------
Then I've grouped the buttons into a Fl_Group overriding handle(). The code is
very minimal: if FL_KEYDOWN case, the button is turned on calling on() method
(off() for KEYUP), paying attention to keep focus active with:
-----------------------------------------------------------------------
case FL_UNFOCUS:
this->take_focus();
return 1;
-----------------------------------------------------------------------
Sadly, fl_rectf() into myButton::on() stops drawing the black square if I click
another widget outside the Fl_Group and I don't understand why... Maybe a lose
of focus? But i'm forcing it into FL_UNFOCUS! Is the drawing procedure
completely wrong?
Thank you in advance for any positive suggestion (and forgive my english :-)).
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk