Well,

In the end I rolled my own. Here's the code.

Best,
Marc

Fl_Image_Button.H:


#ifndef __FL_IMAGE_BUTTON_H
#define __FL_IMAGE_BUTTON_H
#include <FL/Fl_Button.H>
#include <FL/Fl.H>

class Fl_Image_Button: public Fl_Button {
private:
         Fl_Image* upimage;
         Fl_Image* downimage;
public:
         Fl_Image* up_image();
         Fl_Image* down_image();
         void up_image(Fl_Image* p_up_image);
         void down_image(Fl_Image* p_down_image);
         void draw();
         Fl_Image_Button(int a,int b,int c,int d,const char* e);
         Fl_Image_Button(int a,int b,int c,int d);
};

#endif


Fl_Image_Button.cxx:

#include <FL/Fl_Image_Button.H>
#ifndef NULL
#define NULL 0
#endif
void Fl_Image_Button::up_image(Fl_Image* p_upimage)
{
        upimage=p_upimage;
}

void Fl_Image_Button::down_image(Fl_Image* p_downimage)
{
        downimage=p_downimage;
}

Fl_Image* Fl_Image_Button::up_image()
{
        return upimage;
}

Fl_Image* Fl_Image_Button::down_image()
{
        return downimage;
}

Fl_Image_Button::Fl_Image_Button(int a,int b,int c,int 
d):Fl_Button(a,b,c,d)
{
        upimage=NULL;
        downimage=NULL;
        Fl_Button::clear_visible_focus();
}

void Fl_Image_Button::draw() {
        if (value()==0)
        {
                if (upimage!=NULL) {
                        this->image(upimage);
                }
        } else {
                if (this->value()==1)
                {
                        if (downimage!=NULL) {
                                this->image(downimage);
                        }
                }
        }
        Fl_Button::draw();
}

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to