Ejemplo n.º 1
0
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();
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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();
}