diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-09-29 06:20:15 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-09-29 06:20:15 +0000 |
| commit | 4c97599917ff71da2051446984755c34512191e8 (patch) | |
| tree | 1fe32872958a66014a2fdd994054881627ba6966 /fluid | |
| parent | 50fc2f480682aec85d04f46c492a4bb852e5ae33 (diff) | |
Enable all of the new FLUID stuff...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1590 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid')
| -rw-r--r-- | fluid/Fl_Type.h | 15 | ||||
| -rw-r--r-- | fluid/Fl_Widget_Type.cxx | 169 | ||||
| -rw-r--r-- | fluid/Fluid_Image.cxx | 44 | ||||
| -rw-r--r-- | fluid/Fluid_Image.h | 10 | ||||
| -rw-r--r-- | fluid/widget_panel.cxx | 23 | ||||
| -rw-r--r-- | fluid/widget_panel.fl | 45 | ||||
| -rw-r--r-- | fluid/widget_panel.h | 1 |
7 files changed, 208 insertions, 99 deletions
diff --git a/fluid/Fl_Type.h b/fluid/Fl_Type.h index 8daac9789..bd933b650 100644 --- a/fluid/Fl_Type.h +++ b/fluid/Fl_Type.h @@ -1,5 +1,5 @@ // -// "$Id: Fl_Type.h,v 1.5.2.11.2.1 2001/08/11 16:09:26 easysw Exp $" +// "$Id: Fl_Type.h,v 1.5.2.11.2.2 2001/09/29 06:20:15 easysw Exp $" // // Widget type header file for the Fast Light Tool Kit (FLTK). // @@ -227,6 +227,9 @@ class Fl_Widget_Type : public Fl_Type { const char *extra_code_[NUM_EXTRA_CODE]; const char *subclass_; + const char *tooltip_; + const char *image_name_; + const char *inactive_name_; uchar hotspot_; protected: @@ -246,6 +249,8 @@ public: Fluid_Image *image; void setimage(Fluid_Image *); + Fluid_Image *inactive; + void setinactive(Fluid_Image *); Fl_Widget_Type(); Fl_Type *make(); @@ -255,6 +260,12 @@ public: void extra_code(int n,const char *); const char *subclass() const {return subclass_;} void subclass(const char *); + const char *tooltip() const {return tooltip_;} + void tooltip(const char *); + const char *image_name() const {return image_name_;} + void image_name(const char *); + const char *inactive_name() const {return inactive_name_;} + void inactive_name(const char *); uchar hotspot() const {return hotspot_;} void hotspot(uchar v) {hotspot_ = v;} uchar resizable() const; @@ -549,5 +560,5 @@ int storestring(const char *n, const char * & p, int nostrip=0); extern int include_H_from_C; // -// End of "$Id: Fl_Type.h,v 1.5.2.11.2.1 2001/08/11 16:09:26 easysw Exp $". +// End of "$Id: Fl_Type.h,v 1.5.2.11.2.2 2001/09/29 06:20:15 easysw Exp $". // diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx index ea294a028..22056af9a 100644 --- a/fluid/Fl_Widget_Type.cxx +++ b/fluid/Fl_Widget_Type.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Widget_Type.cxx,v 1.15.2.16.2.2 2001/09/29 03:36:27 easysw Exp $" +// "$Id: Fl_Widget_Type.cxx,v 1.15.2.16.2.3 2001/09/29 06:20:15 easysw Exp $" // // Widget type code for the Fast Light Tool Kit (FLTK). // @@ -146,19 +146,20 @@ void Fl_Widget_Type::setimage(Fluid_Image *i) { if (image) image->decrement(); if (i) i->increment(); image = i; - if (i) i->label(o); - else o->labeltype(FL_NORMAL_LABEL); + i->image(o); + redraw(); +} + +void Fl_Widget_Type::setinactive(Fluid_Image *i) { + if (i == inactive) return; + if (inactive) inactive->decrement(); + if (i) i->increment(); + inactive = i; + i->deimage(o); redraw(); } -static char dont_touch_image; void Fl_Widget_Type::setlabel(const char *n) { - if (image) { - if (dont_touch_image) return; - Fluid_Image *i = Fluid_Image::find(n); - setimage(i); - if (i) return; - } o->label(n); redraw(); } @@ -166,7 +167,11 @@ void Fl_Widget_Type::setlabel(const char *n) { Fl_Widget_Type::Fl_Widget_Type() { for (int n=0; n<NUM_EXTRA_CODE; n++) {extra_code_[n] = 0; subclass_ = 0;} hotspot_ = 0; + tooltip_ = 0; + image_name_ = 0; + inactive_name_ = 0; image = 0; + inactive = 0; xclass = 0; o = 0; public_ = 1; @@ -190,6 +195,21 @@ void Fl_Widget_Type::subclass(const char *n) { redraw_browser(); } +void Fl_Widget_Type::tooltip(const char *n) { + storestring(n,tooltip_); + o->tooltip(n); +} + +void Fl_Widget_Type::image_name(const char *n) { + setimage(Fluid_Image::find(n)); + storestring(n,image_name_); +} + +void Fl_Widget_Type::inactive_name(const char *n) { + setinactive(Fluid_Image::find(n)); + storestring(n,inactive_name_); +} + void Fl_Widget_Type::redraw() { Fl_Type *t = this; if (is_menu_item()) { @@ -296,15 +316,26 @@ static Fl_Input *image_input; void image_cb(Fl_Input* i, void *v) { if (v == LOAD) { image_input = i; -// i->static_value(current_widget->label()); + if (current_widget->is_widget()) { + i->activate(); + i->static_value(((Fl_Widget_Type*)current_widget)->image_name()); + } else i->deactivate(); } else { -// for (Fl_Type *o = Fl_Type::first; o; o = o->next) -// if (o->selected && o->is_widget()) o->label(i->value()); + for (Fl_Type *o = Fl_Type::first; o; o = o->next) + if (o->selected && o->is_widget()) ((Fl_Widget_Type*)o)->image_name(i->value()); } } void image_browse_cb(Fl_Button* b, void *v) { - if (v != LOAD) { + if (v == LOAD) { + if (current_widget->is_widget()) b->activate(); + else b->deactivate(); + } else { + if (ui_find_image(image_input->value())) { + image_input->value(ui_find_image_name); + for (Fl_Type *o = Fl_Type::first; o; o = o->next) + if (o->selected && o->is_widget()) ((Fl_Widget_Type*)o)->image_name(ui_find_image_name); + } } } @@ -313,15 +344,41 @@ static Fl_Input *inactive_input; void inactive_cb(Fl_Input* i, void *v) { if (v == LOAD) { inactive_input = i; -// i->static_value(current_widget->label()); + if (current_widget->is_widget()) { + i->activate(); + i->static_value(((Fl_Widget_Type*)current_widget)->inactive_name()); + } else i->deactivate(); } else { -// for (Fl_Type *o = Fl_Type::first; o; o = o->next) -// if (o->selected && o->is_widget()) o->label(i->value()); + for (Fl_Type *o = Fl_Type::first; o; o = o->next) + if (o->selected && o->is_widget()) ((Fl_Widget_Type*)o)->inactive_name(i->value()); } } void inactive_browse_cb(Fl_Button* b, void *v) { - if (v != LOAD) { + if (v == LOAD) { + if (current_widget->is_widget()) b->activate(); + else b->deactivate(); + } else { + if (ui_find_image(inactive_input->value())) { + inactive_input->value(ui_find_image_name); + for (Fl_Type *o = Fl_Type::first; o; o = o->next) + if (o->selected && o->is_widget()) ((Fl_Widget_Type*)o)->inactive_name(ui_find_image_name); + } + } +} + +static Fl_Input *tooltip_input; + +void tooltip_cb(Fl_Input* i, void *v) { + if (v == LOAD) { + tooltip_input = i; + if (current_widget->is_widget()) { + i->activate(); + i->static_value(((Fl_Widget_Type*)current_widget)->tooltip()); + } else i->deactivate(); + } else { + for (Fl_Type *o = Fl_Type::first; o; o = o->next) + if (o->selected && o->is_widget()) ((Fl_Widget_Type*)o)->tooltip(i->value()); } } @@ -724,6 +781,7 @@ void labelsize_cb(Fl_Value_Input* i, void *v) { } extern const char *ui_find_image_name; +#if 0 void image_cb(Fl_Widget *a, void *) { Fluid_Image *i = ui_find_image(current_widget->label()); if (!ui_find_image_name) return; // user hit "Cancel" @@ -740,11 +798,10 @@ void image_cb(Fl_Widget *a, void *) { label_cb(label_input,LOAD); a->when(FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED); } +#endif /* 0 */ Fl_Menu_Item labeltypemenu[] = { - {"Image...",0,image_cb,(void*)(-1)}, {"NORMAL_LABEL",0,0,(void*)0}, - {"SYMBOL_LABEL",0,0,(void*)FL_SYMBOL_LABEL}, {"SHADOW_LABEL",0,0,(void*)FL_SHADOW_LABEL}, {"ENGRAVED_LABEL",0,0,(void*)FL_ENGRAVED_LABEL}, {"EMBOSSED_LABEL",0,0,(void*)FL_EMBOSSED_LABEL}, @@ -754,27 +811,17 @@ Fl_Menu_Item labeltypemenu[] = { void labeltype_cb(Fl_Choice* i, void *v) { if (v == LOAD) { int n; - if (current_widget->image) { - n = -1; - i->when(FL_WHEN_RELEASE|FL_WHEN_NOT_CHANGED); - } else { - n = current_widget->o->labeltype(); - i->when(FL_WHEN_RELEASE); - } + n = current_widget->o->labeltype(); + i->when(FL_WHEN_RELEASE); for (int j = 0; j < int(sizeof(labeltypemenu)/sizeof(*labeltypemenu)); j++) if (labeltypemenu[j].argument() == n) {i->value(j); break;} } else { int m = i->value(); int n = int(labeltypemenu[m].argument()); if (n<0) return; // should not happen - if (current_widget->image) label_input->activate(); for (Fl_Type *o = Fl_Type::first; o; o = o->next) if (o->selected && o->is_widget()) { Fl_Widget_Type* p = (Fl_Widget_Type*)o; - if (p->image) { - p->setimage(0); - p->o->label(p->label()); - } p->o->labeltype((Fl_Labeltype)n); p->redraw(); } @@ -846,6 +893,7 @@ static Fl_Menu_Item alignmenu[] = { {"FL_ALIGN_INSIDE",0,0,(void*)(FL_ALIGN_INSIDE)}, {"FL_ALIGN_CLIP",0,0,(void*)(FL_ALIGN_CLIP)}, {"FL_ALIGN_WRAP",0,0,(void*)(FL_ALIGN_WRAP)}, + {"FL_ALIGN_TEXT_OVER_IMAGE",0,0,(void*)(FL_ALIGN_TEXT_OVER_IMAGE)}, {"FL_ALIGN_TOP_LEFT",0,0,(void*)(FL_ALIGN_TOP_LEFT)}, {"FL_ALIGN_TOP_RIGHT",0,0,(void*)(FL_ALIGN_TOP_RIGHT)}, {"FL_ALIGN_BOTTOM_LEFT",0,0,(void*)(FL_ALIGN_BOTTOM_LEFT)}, @@ -1437,7 +1485,7 @@ void Fl_Widget_Type::write_code1() { } else { write_c("new %s(%d, %d, %d, %d", t, o->x(), o->y(), o->w(), o->h()); } - if (!image && label() && *label()) { + if (label() && *label()) { write_c(", "); switch (i18n_type) { case 0 : /* None */ @@ -1458,6 +1506,7 @@ void Fl_Widget_Type::write_code1() { } write_c(");\n"); indentation += 2; + if (is_window()) write_c("%sw = o;\n",indent()); if (varused) write_widget_code(); } @@ -1465,6 +1514,27 @@ void Fl_Widget_Type::write_code1() { // this is split from write_code1() for Fl_Window_Type: void Fl_Widget_Type::write_widget_code() { Fl_Widget* tplate = ((Fl_Widget_Type*)factory)->o; + if (tooltip() && *tooltip()) { + write_c("%so->tooltip(",indent()); + switch (i18n_type) { + case 0 : /* None */ + write_cstring(tooltip()); + break; + case 1 : /* GNU gettext */ + write_c("%s(", i18n_function); + write_cstring(tooltip()); + write_c(")"); + break; + case 2 : /* POSIX catgets */ + write_c("catgets(%s,%s,%d,", i18n_file[0] ? i18n_file : "_catalog", + i18n_set, msgnum()); + write_cstring(tooltip()); + write_c(")"); + break; + } + write_c(");\n"); + } + if (o->type() != tplate->type() && !is_window()) write_c("%so->type(%d);\n", indent(), o->type()); if (o->box() != tplate->box()) @@ -1486,9 +1556,9 @@ void Fl_Widget_Type::write_widget_code() { write_c("%so->color(%d);\n", indent(), o->color()); if (o->selection_color() != tplate->selection_color()) write_c("%so->selection_color(%d);\n", indent(), o->selection_color()); - if (image) - image->write_code(); - else if (o->labeltype() != tplate->labeltype()) + if (image) image->write_code(); + if (inactive) inactive->write_code(1); + if (o->labeltype() != tplate->labeltype()) write_c("%so->labeltype(FL_%s);\n", indent(), item_name(labeltypemenu, o->labeltype())); if (o->labelfont() != tplate->labelfont()) @@ -1572,6 +1642,18 @@ void Fl_Widget_Type::write_properties() { Fl_Type::write_properties(); write_indent(level+1); if (!public_) write_string("private"); + if (tooltip() && *tooltip()) { + write_string("tooltip"); + write_word(o->tooltip()); + } + if (image_name() && *image_name()) { + write_string("image"); + write_word(image_name()); + } + if (inactive_name() && *inactive_name()) { + write_string("deimage"); + write_word(inactive_name()); + } write_string("xywh {%d %d %d %d}", o->x(), o->y(), o->w(), o->h()); Fl_Widget* tplate = ((Fl_Widget_Type*)factory)->o; if (o->type() != tplate->type()) { @@ -1596,9 +1678,7 @@ void Fl_Widget_Type::write_properties() { write_string("color %d", o->color()); if (o->selection_color()!=tplate->selection_color()) write_string("selection_color %d", o->selection_color()); - if (image) - write_string("labeltype image"); - else if (o->labeltype()!=tplate->labeltype()) { + if (o->labeltype()!=tplate->labeltype()) { write_string("labeltype"); write_word(item_name(labeltypemenu, o->labeltype())); } @@ -1659,6 +1739,12 @@ void Fl_Widget_Type::read_property(const char *c) { y += pasteoffset; o->resize(x,y,w,h); } + } else if (!strcmp(c,"tooltip")) { + tooltip(read_word()); + } else if (!strcmp(c,"image")) { + image_name(read_word()); + } else if (!strcmp(c,"deimage")) { + inactive_name(read_word()); } else if (!strcmp(c,"type")) { o->type(item_number(subtypes(), read_word())); } else if (!strcmp(c,"box")) { @@ -1698,6 +1784,8 @@ void Fl_Widget_Type::read_property(const char *c) { Fluid_Image *i = Fluid_Image::find(label()); if (!i) read_error("Image file '%s' not found", label()); else setimage(i); + image_name(label()); + label(""); } else { o->labeltype((Fl_Labeltype)item_number(labeltypemenu,c)); } @@ -1791,7 +1879,6 @@ int Fl_Widget_Type::read_fdesign(const char* name, const char* value) { } } else if (!strcmp(name,"label")) { label(value); - if (value[0] == '@') o->labeltype(FL_SYMBOL_LABEL); } else if (!strcmp(name,"name")) { this->name(value); } else if (!strcmp(name,"callback")) { @@ -1868,5 +1955,5 @@ int Fl_Widget_Type::read_fdesign(const char* name, const char* value) { } // -// End of "$Id: Fl_Widget_Type.cxx,v 1.15.2.16.2.2 2001/09/29 03:36:27 easysw Exp $". +// End of "$Id: Fl_Widget_Type.cxx,v 1.15.2.16.2.3 2001/09/29 06:20:15 easysw Exp $". // diff --git a/fluid/Fluid_Image.cxx b/fluid/Fluid_Image.cxx index d10c2b9df..97b8ac696 100644 --- a/fluid/Fluid_Image.cxx +++ b/fluid/Fluid_Image.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fluid_Image.cxx,v 1.7.2.9.2.1 2001/08/05 23:58:54 easysw Exp $" +// "$Id: Fluid_Image.cxx,v 1.7.2.9.2.2 2001/09/29 06:20:15 easysw Exp $" // // Pixmap label support for the Fast Light Tool Kit (FLTK). // @@ -48,9 +48,10 @@ protected: public: pixmap_image(const char *name, FILE *); ~pixmap_image(); - virtual void label(Fl_Widget *); // set the label of this widget + virtual void image(Fl_Widget *); // set the image of this widget + virtual void deimage(Fl_Widget *); // set the deimage of this widget virtual void write_static(); - virtual void write_code(); + virtual void write_code(int inactive = 0); static int test_file(char *buffer); }; @@ -58,8 +59,12 @@ int pixmap_image::test_file(char *buffer) { return (strstr(buffer,"/* XPM") != 0); } -void pixmap_image::label(Fl_Widget *o) { - if (p) p->label(o); +void pixmap_image::image(Fl_Widget *o) { + o->image(p); +} + +void pixmap_image::deimage(Fl_Widget *o) { + o->deimage(p); } static int pixmap_header_written; @@ -84,9 +89,9 @@ void pixmap_image::write_static() { unique_id(this, "image", filename_name(name()), 0)); } -void pixmap_image::write_code() { +void pixmap_image::write_code(int inactive) { if (!p) return; - write_c("%s%s.label(o);\n", indent(), + write_c("%so->%s(%s);\n", indent(), inactive ? "deimage" : "image", unique_id(this, "pixmap", filename_name(name()), 0)); } @@ -101,6 +106,10 @@ static int hexdigit(int x) { #define INITIALLINES 1024 pixmap_image::pixmap_image(const char *name, FILE *f) : Fluid_Image(name) { + p = 0; + numlines = 0; + linelength = 0; + if (!f) return; // for subclasses // read all the c-strings out of the file: char* local_data[INITIALLINES]; @@ -181,7 +190,7 @@ pixmap_image::pixmap_image(const char *name, FILE *f) : Fluid_Image(name) { pixmap_image::~pixmap_image() { if (p && p->data) { char** real_data = (char**)(p->data); - for (int i = 0; real_data[i]; i++) delete[] real_data[i]; + for (int i = 0; i < numlines; i++) delete[] real_data[i]; free((void*)real_data); } free((void*)linelength); @@ -234,9 +243,10 @@ class bitmap_image : public Fluid_Image { public: ~bitmap_image(); bitmap_image(const char *name, FILE *); - virtual void label(Fl_Widget *); // set the label of this widget + virtual void image(Fl_Widget *); // set the image of this widget + virtual void deimage(Fl_Widget *); // set the deimage of this widget virtual void write_static(); - virtual void write_code(); + virtual void write_code(int inactive = 0); static int test_file(char *buffer); }; @@ -245,8 +255,12 @@ int bitmap_image::test_file(char *buffer) { return (strstr(buffer,"#define ") != 0); } -void bitmap_image::label(Fl_Widget *o) { - if (p) p->label(o); else o->labeltype(FL_NORMAL_LABEL); +void bitmap_image::image(Fl_Widget *o) { + o->image(p); +} + +void bitmap_image::deimage(Fl_Widget *o) { + o->deimage(p); } static int bitmap_header_written; @@ -284,9 +298,9 @@ void bitmap_image::write_static() { p->w(), p->h()); } -void bitmap_image::write_code() { +void bitmap_image::write_code(int inactive) { if (!p) return; - write_c("%s%s.label(o);\n", indent(), + write_c("%so->%s(%s);\n", indent(), inactive ? "deimage" : "image", unique_id(this, "bitmap", filename_name(name()), 0)); } @@ -436,5 +450,5 @@ Fluid_Image *ui_find_image(const char *oldname) { } // -// End of "$Id: Fluid_Image.cxx,v 1.7.2.9.2.1 2001/08/05 23:58:54 easysw Exp $". +// End of "$Id: Fluid_Image.cxx,v 1.7.2.9.2.2 2001/09/29 06:20:15 easysw Exp $". // diff --git a/fluid/Fluid_Image.h b/fluid/Fluid_Image.h index f38706c73..f513b8785 100644 --- a/fluid/Fluid_Image.h +++ b/fluid/Fluid_Image.h @@ -1,5 +1,5 @@ // -// "$Id: Fluid_Image.h,v 1.3.2.4 2001/01/22 15:13:38 easysw Exp $" +// "$Id: Fluid_Image.h,v 1.3.2.4.2.1 2001/09/29 06:20:15 easysw Exp $" // // Pixmap image header file for the Fast Light Tool Kit (FLTK). // @@ -43,18 +43,20 @@ public: static Fluid_Image* find(const char *); void decrement(); // reference counting & automatic free void increment(); - virtual void label(Fl_Widget *) = 0; // set the label of this widget + virtual void image(Fl_Widget *) = 0; // set the image of this widget + virtual void deimage(Fl_Widget *) = 0; // set the deimage of this widget virtual void write_static() = 0; - virtual void write_code() = 0; + virtual void write_code(int inactive = 0) = 0; const char *name() const {return name_;} }; // pop up file chooser and return a legal image selected by user, // or zero for any errors: Fluid_Image *ui_find_image(const char *); +extern const char *ui_find_image_name; #endif // -// End of "$Id: Fluid_Image.h,v 1.3.2.4 2001/01/22 15:13:38 easysw Exp $". +// End of "$Id: Fluid_Image.h,v 1.3.2.4.2.1 2001/09/29 06:20:15 easysw Exp $". // diff --git a/fluid/widget_panel.cxx b/fluid/widget_panel.cxx index b0d825284..3b962eafd 100644 --- a/fluid/widget_panel.cxx +++ b/fluid/widget_panel.cxx @@ -31,16 +31,16 @@ Fl_Window* make_widget_panel() { } { Fl_Input* o = new Fl_Input(95, 65, 195, 20, "Image:"); o->callback((Fl_Callback*)image_cb); - o->when(FL_WHEN_CHANGED); } { Fl_Button* o = new Fl_Button(290, 65, 105, 20, "Browse..."); + o->tooltip("}"); o->callback((Fl_Callback*)image_browse_cb); } { Fl_Input* o = new Fl_Input(95, 90, 195, 20, "Inactive:"); o->callback((Fl_Callback*)inactive_cb); - o->when(FL_WHEN_CHANGED); } { Fl_Button* o = new Fl_Button(290, 90, 105, 20, "Browse..."); + o->tooltip("}"); o->callback((Fl_Callback*)inactive_browse_cb); } { Fl_Value_Input* o = new Fl_Value_Input(95, 150, 60, 20, "X:"); @@ -87,7 +87,7 @@ Fl_Window* make_widget_panel() { { Fl_Button* o = new Fl_Button(175, 115, 55, 20, "text\nimage"); o->type(1); o->labelsize(8); - o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_WRAP)); + o->callback((Fl_Callback*)align_cb, (void*)(FL_ALIGN_TEXT_OVER_IMAGE)); } { Fl_Button* o = new Fl_Button(295, 115, 20, 20, "@-1<-"); o->type(1); @@ -204,9 +204,11 @@ Fl_Window* make_widget_panel() { } { Fl_Input* o = new Fl_Input(95, 235, 115, 20, "X Class:"); o->callback((Fl_Callback*)xclass_cb); - o->when(FL_WHEN_NEVER); } - new Fl_Input(95, 285, 300, 20, "Tooltip:"); + { Fl_Input* o = new Fl_Input(95, 285, 300, 20, "Tooltip:"); + o->tooltip("}"); + o->callback((Fl_Callback*)tooltip_cb); + } o->end(); } { Fl_Group* o = new Fl_Group(10, 30, 395, 295, "Style"); @@ -273,7 +275,6 @@ Fl_Window* make_widget_panel() { o->hide(); { Fl_Input* o = new Fl_Input(100, 65, 230, 20, "Name:"); o->callback((Fl_Callback*)name_cb); - o->when(FL_WHEN_NEVER); } { Fl_Light_Button* o = new Fl_Light_Button(330, 65, 65, 20, "public"); o->selection_color(1); @@ -284,7 +285,6 @@ Fl_Window* make_widget_panel() { { Fl_Input* o = new Fl_Input(100, 40, 160, 20, "Class:"); o->textfont(4); o->callback((Fl_Callback*)subclass_cb, (void*)(4)); - o->when(FL_WHEN_NEVER); } { Fl_Choice* o = new Fl_Choice(260, 40, 135, 20); o->box(FL_THIN_UP_BOX); @@ -294,22 +294,18 @@ Fl_Window* make_widget_panel() { { Fl_Input* o = v_input[0] = new Fl_Input(100, 90, 295, 20, "Extra Code:"); o->textfont(4); o->callback((Fl_Callback*)v_input_cb, (void*)(0)); - o->when(FL_WHEN_NEVER); } { Fl_Input* o = v_input[1] = new Fl_Input(100, 110, 295, 20); o->textfont(4); o->callback((Fl_Callback*)v_input_cb, (void*)(1)); - o->when(FL_WHEN_NEVER); } { Fl_Input* o = v_input[2] = new Fl_Input(100, 130, 295, 20); o->textfont(4); o->callback((Fl_Callback*)v_input_cb, (void*)(2)); - o->when(FL_WHEN_NEVER); } { Fl_Input* o = v_input[3] = new Fl_Input(100, 150, 295, 20); o->textfont(4); o->callback((Fl_Callback*)v_input_cb, (void*)(3)); - o->when(FL_WHEN_NEVER); } { Fl_Box* o = new Fl_Box(20, 175, 75, 20, "Callback:"); o->align(FL_ALIGN_RIGHT|FL_ALIGN_INSIDE); @@ -318,7 +314,6 @@ Fl_Window* make_widget_panel() { o->type(4); o->textfont(4); o->callback((Fl_Callback*)callback_cb); - o->when(FL_WHEN_NEVER); } { Fl_Box* o = new Fl_Box(95, 325, 100, 0, "label"); o->hide(); @@ -327,18 +322,16 @@ Fl_Window* make_widget_panel() { { Fl_Input* o = new Fl_Input(100, 270, 140, 20, "User Data:"); o->textfont(4); o->callback((Fl_Callback*)user_data_cb); - o->when(FL_WHEN_NEVER); } { Fl_Input* o = new Fl_Input(100, 295, 140, 20, "Type:"); o->textfont(4); o->callback((Fl_Callback*)user_data_type_cb); - o->when(FL_WHEN_NEVER); } { Fl_Choice* o = new Fl_Choice(290, 270, 105, 20, "When:"); o->box(FL_THIN_UP_BOX); o->down_box(FL_BORDER_BOX); o->callback((Fl_Callback*)when_cb); - o->when(FL_WHEN_NEVER); + o->when(FL_WHEN_CHANGED); o->menu(whenmenu); } { Fl_Light_Button* o = new Fl_Light_Button(290, 295, 105, 20, "No Change"); diff --git a/fluid/widget_panel.fl b/fluid/widget_panel.fl index 6981609b3..e6c9124be 100644 --- a/fluid/widget_panel.fl +++ b/fluid/widget_panel.fl @@ -33,41 +33,41 @@ Function {make_widget_panel()} {open Fl_Input {} { label {Image:} callback image_cb - xywh {95 65 195 20} when 1 + xywh {95 65 195 20} } Fl_Button {} { label {Browse...} callback image_browse_cb - xywh {290 65 105 20} + tooltip {\}} xywh {290 65 105 20} } Fl_Input {} { label {Inactive:} callback inactive_cb - xywh {95 90 195 20} when 1 + xywh {95 90 195 20} } Fl_Button {} { label {Browse...} callback inactive_browse_cb - xywh {290 90 105 20} + tooltip {\}} xywh {290 90 105 20} } Fl_Value_Input {} { label {X:} - callback x_cb selected + callback x_cb xywh {95 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } Fl_Value_Input {} { label {Y:} - callback y_cb selected + callback y_cb xywh {155 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } Fl_Value_Input {} { label {Width:} - callback w_cb selected + callback w_cb xywh {215 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } Fl_Value_Input {} { label {Height:} - callback h_cb selected + callback h_cb xywh {275 150 60 20} labelsize 10 align 5 maximum 2048 step 1 } Fl_Group {} { @@ -90,7 +90,7 @@ Function {make_widget_panel()} {open Fl_Button {} { label {text image} - user_data FL_ALIGN_WRAP + user_data FL_ALIGN_TEXT_OVER_IMAGE callback align_cb xywh {175 115 55 20} type Toggle labelsize 8 } @@ -212,11 +212,12 @@ image} Fl_Input {} { label {X Class:} callback xclass_cb - xywh {95 235 115 20} when 0 + xywh {95 235 115 20} } Fl_Input {} { label {Tooltip:} - xywh {95 285 300 20} + callback tooltip_cb + tooltip {\}} xywh {95 285 300 20} } } Fl_Group {} { @@ -289,7 +290,7 @@ image} Fl_Input {} { label {Name:} callback name_cb - xywh {100 65 230 20} when 0 + xywh {100 65 230 20} } Fl_Light_Button {} { label public @@ -300,7 +301,7 @@ image} label {Class:} user_data 4 callback subclass_cb - xywh {100 40 160 20} when 0 textfont 4 + xywh {100 40 160 20} textfont 4 } Fl_Choice {} { callback subtype_cb open @@ -310,22 +311,22 @@ image} label {Extra Code:} user_data 0 callback v_input_cb - xywh {100 90 295 20} when 0 textfont 4 + xywh {100 90 295 20} textfont 4 } Fl_Input {v_input[1]} { user_data 1 callback v_input_cb - xywh {100 110 295 20} when 0 textfont 4 + xywh {100 110 295 20} textfont 4 } Fl_Input {v_input[2]} { user_data 2 callback v_input_cb - xywh {100 130 295 20} when 0 textfont 4 + xywh {100 130 295 20} textfont 4 } Fl_Input {v_input[3]} { user_data 3 callback v_input_cb - xywh {100 150 295 20} when 0 textfont 4 + xywh {100 150 295 20} textfont 4 } Fl_Box {} { label {Callback:} @@ -333,7 +334,7 @@ image} } Fl_Input {} { callback callback_cb - xywh {100 175 295 90} type Multiline when 0 textfont 4 + xywh {100 175 295 90} type Multiline textfont 4 } Fl_Box {} { label label @@ -342,17 +343,17 @@ image} Fl_Input {} { label {User Data:} callback user_data_cb - xywh {100 270 140 20} when 0 textfont 4 + xywh {100 270 140 20} textfont 4 } Fl_Input {} { label {Type:} callback user_data_type_cb - xywh {100 295 140 20} when 0 textfont 4 + xywh {100 295 140 20} textfont 4 } Fl_Choice {} { label {When:} callback when_cb open - xywh {290 270 105 20} box THIN_UP_BOX down_box BORDER_BOX when 0 + xywh {290 270 105 20} box THIN_UP_BOX down_box BORDER_BOX when 1 code0 {extern Fl_Menu_Item whenmenu[];} code1 {o->menu(whenmenu);} } {} @@ -383,7 +384,7 @@ image} } Fl_Return_Button {} { label OK - callback ok_cb + callback ok_cb selected xywh {240 335 80 25} } } diff --git a/fluid/widget_panel.h b/fluid/widget_panel.h index 905a95f96..8451b3c2b 100644 --- a/fluid/widget_panel.h +++ b/fluid/widget_panel.h @@ -40,6 +40,7 @@ extern void active_cb(Fl_Light_Button*, void*); extern void resizable_cb(Fl_Light_Button*, void*); extern void hotspot_cb(Fl_Light_Button*, void*); extern void xclass_cb(Fl_Input*, void*); +extern void tooltip_cb(Fl_Input*, void*); extern Fl_Menu_Item fontmenu[]; extern void labelfont_cb(Fl_Choice*, void*); extern void labelsize_cb(Fl_Value_Input*, void*); |
