void TaskBar::update_active(Window active) { for(int n=0; n<children(); n++) { Fl_Widget *w = child(n); Window win = w->argument(); if(GetState(win) == IconicState) w->label_color(fl_inactive(FL_BLACK)); else w->label_color(Fl_Button::default_style->label_color); if(active==win) { TaskBar::active = win; w->set_value(); w->color(fl_lighter(Fl_Button::default_style->color)); w->highlight_color(fl_lighter(Fl_Button::default_style->color)); } else { w->clear_value(); w->color(Fl_Button::default_style->color); w->highlight_color(Fl_Button::default_style->highlight_color); } } redraw(); }
Scheme_Object* spark_fltk_widget::handle_event_callback(int argc, Scheme_Object** argv) { DEFAULT_RET_INIT; Fl_Widget* widget = _get_widget(argc, argv, 0); if (widget) { Widget* w = reinterpret_cast<Widget*>(widget->argument()); if (w) { w->other_callbacks[CBT_HANDLE] = argv[1]; if (argc >= 3) w->other_arguments[CBT_HANDLE] = argv[2]; _ret_ = scheme_true; } } DEFAULT_RET_FINISH; }
void TaskBar::update_name(Window win) { for(int n=0; n<children(); n++) { Fl_Widget *w = child(n); Window window = w->argument(); if(window==win) { char *name = 0; bool ret = Fl_WM::get_window_icontitle(win, name); if(!ret || !name) ret = Fl_WM::get_window_title(win, name); if(ret && name) { w->label(name); w->tooltip(name); free(name); } else { w->label("..."); w->tooltip("..."); } // Update icon also.. Fl_Image *icon = w->image(); if(icon!=&default_icon) delete icon; if(Fl_WM::get_window_icon(win, icon, 16, 16)) w->image(icon); else w->image(default_icon); w->redraw(); break; } } redraw(); }