summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-09-29 06:20:15 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-09-29 06:20:15 +0000
commit4c97599917ff71da2051446984755c34512191e8 (patch)
tree1fe32872958a66014a2fdd994054881627ba6966
parent50fc2f480682aec85d04f46c492a4bb852e5ae33 (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
-rw-r--r--CHANGES26
-rw-r--r--fluid/Fl_Type.h15
-rw-r--r--fluid/Fl_Widget_Type.cxx169
-rw-r--r--fluid/Fluid_Image.cxx44
-rw-r--r--fluid/Fluid_Image.h10
-rw-r--r--fluid/widget_panel.cxx23
-rw-r--r--fluid/widget_panel.fl45
-rw-r--r--fluid/widget_panel.h1
8 files changed, 229 insertions, 104 deletions
diff --git a/CHANGES b/CHANGES
index 5d2216548..12db70560 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,3 @@
-TODO - FLUID now provides on-line help.
-
-TODO - FLUID now supports image labels in addition to text
- labels + text over image alignment.
-
TODO - Documentation updates.
@@ -12,25 +7,46 @@ CHANGES IN FLTK 1.1.0b2
needed a non-blank text string to display the image.
This bug also caused all sorts of crashes and display
problems.
+
- Added new filetype() method to Fl_FileBrowser to allow
for file or directory browsing.
+
- Fixed the drawing of the focus box around
Fl_Return_Button.
+
- Fixed menu item measurement bug (wasn't initializing
image pointers to 0...)
+
- Radio and checkbox menu items now draw with the new
style (round radio buttons with dots and square check
buttons with check marks.)
+
- Improved the appearance of Fl_Check_Button.
+
- Improved the Fl_HelpView table formatting code; now
dynamically sizes the table columns, and supports
COLSPAN.
+
- The FLUID keyboard shortcuts now work as expected
(CTRL-C copies, SHIFT-CTRL-C writes code, etc.)
+
- The FLTK_DOCDIR environment variable can now be
used to tell FLUID where to find the on-line
documentation files.
+ - FLUID now supports image labels in addition to text
+ labels + text over image alignment.
+
+ - FLUID now supports tooltips.
+
+ - The widget panel in FLUID is now tabbed, a la FLTK
+ 2.0.
+
+ - The FLUID pixmap destructor tried to free 1 too many
+ lines of image data.
+
+ - FLUID now provides on-line help.
+
CHANGES IN FLTK 1.1.0b1
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*);