// These are C wrappers around static members of Combox, used as
// callbacks for xforms.
-extern "C" void C_Combox_input_cb(FL_OBJECT *ob, long);
-extern "C" void C_Combox_combo_cb(FL_OBJECT *ob, long data) ;
-extern "C" int C_Combox_peek_event(FL_FORM * form, void *xev);
+extern "C" {
+
+ static
+ void C_Combox_input_cb(FL_OBJECT * ob, long data)
+ {
+ Combox::input_cb(ob, data);
+ }
+
+ static
+ void C_Combox_combo_cb(FL_OBJECT * ob, long data)
+ {
+ Combox::combo_cb(ob, data);
+ }
+
+ static
+ int C_Combox_peek_event(FL_FORM * form, void *xev)
+ {
+ return Combox::peek_event(form, xev);
+ }
+
+}
+
Combox::Combox(combox_type t)
: type(t), tabfolder1(0), tabfolder2(0)
}
XUngrabPointer(fl_get_display(), 0);
XFlush(fl_get_display());
- if (!who && browser && label && callback)
- callback(sel, cb_arg, this);
if (form) {
fl_hide_form(form);
XSetInputFocus(fl_get_display(), save_window,
fl_redraw_object(button);
}
}
+ if (!who && browser && label && callback)
+ callback(sel, cb_arg, this);
if (_post) _post();
}
void Combox::activate()
{
- if (browser) fl_activate_object(browser);
- if (button) fl_activate_object(button);
- if (label) fl_activate_object(label);
+ if (browser)
+ fl_activate_object(browser);
+ if (button) {
+ fl_activate_object(button);
+ fl_set_object_lcol(button, FL_BLACK);
+ }
+ if (label) {
+ fl_activate_object(label);
+ fl_set_object_lcol(label, FL_BLACK);
+ }
}
void Combox::deactivate()
{
- if (browser) fl_deactivate_object(browser);
- if (button) fl_deactivate_object(button);
- if (label) fl_deactivate_object(label);
+ if (browser)
+ fl_deactivate_object(browser);
+ if (button) {
+ fl_deactivate_object(button);
+ fl_set_object_lcol(button, FL_INACTIVE);
+ }
+ if (label) {
+ fl_deactivate_object(label);
+ fl_set_object_lcol(label, FL_INACTIVE);
+ }
}
}
-extern "C" void C_Combox_input_cb(FL_OBJECT * ob, long data)
-{
- Combox::input_cb(ob, data);
-}
-
-
void Combox::combo_cb(FL_OBJECT * ob, long data)
{
Combox * combo = static_cast<Combox*>(ob->u_vdata);
}
}
-extern "C" void C_Combox_combo_cb(FL_OBJECT * ob, long data)
-{
- Combox::combo_cb(ob, data);
-}
-
int Combox::peek_event(FL_FORM * form, void * xev)
{
FL_OBJECT * ob = static_cast<FL_OBJECT *>(form->u_vdata);
Combox * combo = static_cast<Combox*>(ob->u_vdata);
- // I don't know why belowmouse does not work, but it doesn't. (Asger)
- // Are we sure? Please verify. (Lgb)
+ // below mouse does not work like we need it
if (static_cast<XEvent *>(xev)->type == ButtonPress && (
static_cast<XEvent *>(xev)->xbutton.x - ob->x < 0 ||
static_cast<XEvent *>(xev)->xbutton.x - ob->x > ob->w ||
}
return 0;
}
-
-extern "C" int C_Combox_peek_event(FL_FORM * form, void *xev)
-{
- return Combox::peek_event(form, xev);
-}
#ifdef TESTCOMBO