Move the rest of the image file formats (except for XBM and XPM) to

the fltk_images library; saves about 16k in the FLTK core library on my
Intel system.

Fix a memory leak bug in most of the fl_set_fonts*.cxx implementations;
as a result, the Fl_Fontdesc structure now has a fontname member to old
the human-readable font name.

Lots of fixes for shadowed variables, etc.

Use snprintf, strlcpy, and strlcat in more places.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2566 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Michael R Sweet
2002-08-09 01:09:49 +00:00
parent 27a54dc22b
commit a6b935289e
55 changed files with 1107 additions and 1096 deletions
+10
View File
@@ -1,6 +1,16 @@
CHANGES IN FLTK 1.1.0
- Documentation updates.
- More snprintf/strlcpy/strlcat changes where needed.
- Fl::get_font_name() would leak 128 bytes.
- Eliminated most of the "shadowed" variables to avoid
potential problems with using the wrong copy of "foo"
in a class method.
- Moved Fl_BMP_Image, Fl_GIF_Image, and Fl_PNM_Image to
the fltk_images library, so the only image formats
that are supported by the core library are XBM and XPM
files. This reduces the size of the FLTK core library
by about 16k...
- The Fl_Text_Display::resize() method was incorrectly
flagged as protected.
- Fixed some memory/initialization bugs in
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl.H,v 1.8.2.11.2.19 2002/07/30 14:57:02 easysw Exp $"
// "$Id: Fl.H,v 1.8.2.11.2.20 2002/08/09 01:09:48 easysw Exp $"
//
// Main header file for the Fast Light Tool Kit (FLTK).
//
@@ -69,7 +69,7 @@ public: // should be private!
static int compose_state;
static int visible_focus_;
static int dnd_text_ops_;
static void damage(int x) {damage_ = x;}
static void damage(int d) {damage_ = d;}
static void (*idle)();
@@ -237,7 +237,7 @@ public:
static int event_button2() {return e_state&FL_BUTTON2;}
static int event_button3() {return e_state&FL_BUTTON3;}
static void set_idle(void (*cb)()) {idle = cb;}
static void grab(Fl_Window&w) {grab(&w);}
static void grab(Fl_Window&win) {grab(&win);}
static void release() {grab(0);}
// Visible focus methods...
@@ -258,5 +258,5 @@ public:
#endif // !Fl_H
//
// End of "$Id: Fl.H,v 1.8.2.11.2.19 2002/07/30 14:57:02 easysw Exp $".
// End of "$Id: Fl.H,v 1.8.2.11.2.20 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Adjuster.H,v 1.5.2.3.2.1 2002/01/01 15:11:27 easysw Exp $"
// "$Id: Fl_Adjuster.H,v 1.5.2.3.2.2 2002/08/09 01:09:48 easysw Exp $"
//
// Adjuster widget header file for the Fast Light Tool Kit (FLTK).
//
@@ -41,13 +41,13 @@ protected:
FL_EXPORT int handle(int);
FL_EXPORT void value_damage();
public:
FL_EXPORT Fl_Adjuster(int x,int y,int w,int h,const char *l=0);
FL_EXPORT void soft(int x) {soft_ = x;}
FL_EXPORT Fl_Adjuster(int X,int Y,int W,int H,const char *l=0);
FL_EXPORT void soft(int s) {soft_ = s;}
FL_EXPORT int soft() const {return soft_;}
};
#endif
//
// End of "$Id: Fl_Adjuster.H,v 1.5.2.3.2.1 2002/01/01 15:11:27 easysw Exp $".
// End of "$Id: Fl_Adjuster.H,v 1.5.2.3.2.2 2002/08/09 01:09:48 easysw Exp $".
//
+6 -6
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Box.H,v 1.5.2.4.2.2 2002/04/12 20:16:07 easysw Exp $"
// "$Id: Fl_Box.H,v 1.5.2.4.2.3 2002/08/09 01:09:48 easysw Exp $"
//
// Box header file for the Fast Light Tool Kit (FLTK).
//
@@ -34,10 +34,10 @@ class Fl_Box : public Fl_Widget {
protected:
FL_EXPORT void draw();
public:
FL_EXPORT Fl_Box(int x, int y, int w, int h, const char *l=0)
: Fl_Widget(x,y,w,h,l) {}
FL_EXPORT Fl_Box(Fl_Boxtype b, int x, int y, int w, int h, const char *l)
: Fl_Widget(x,y,w,h,l) {box(b);}
FL_EXPORT Fl_Box(int X, int Y, int W, int H, const char *l=0)
: Fl_Widget(X,Y,W,H,l) {}
FL_EXPORT Fl_Box(Fl_Boxtype b, int X, int Y, int W, int H, const char *l)
: Fl_Widget(X,Y,W,H,l) {box(b);}
virtual FL_EXPORT int handle(int);
};
@@ -45,5 +45,5 @@ public:
#endif
//
// End of "$Id: Fl_Box.H,v 1.5.2.4.2.2 2002/04/12 20:16:07 easysw Exp $".
// End of "$Id: Fl_Box.H,v 1.5.2.4.2.3 2002/08/09 01:09:48 easysw Exp $".
//
+3 -3
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Menu_.H,v 1.7.2.4.2.2 2002/01/01 15:11:27 easysw Exp $"
// "$Id: Fl_Menu_.H,v 1.7.2.4.2.3 2002/08/09 01:09:48 easysw Exp $"
//
// Menu base class header file for the Fast Light Tool Kit (FLTK).
//
@@ -65,7 +65,7 @@ public:
FL_EXPORT void replace(int,const char *);
FL_EXPORT void remove(int);
void shortcut(int i, int s) {menu_[i].shortcut(s);}
void mode(int i,int x) {menu_[i].flags = x;}
void mode(int i,int fl) {menu_[i].flags = fl;}
int mode(int i) const {return menu_[i].flags;}
const Fl_Menu_Item *mvalue() const {return value_;}
@@ -93,5 +93,5 @@ public:
#endif
//
// End of "$Id: Fl_Menu_.H,v 1.7.2.4.2.2 2002/01/01 15:11:27 easysw Exp $".
// End of "$Id: Fl_Menu_.H,v 1.7.2.4.2.3 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Menu_Bar.H,v 1.5.2.4.2.1 2002/01/01 15:11:27 easysw Exp $"
// "$Id: Fl_Menu_Bar.H,v 1.5.2.4.2.2 2002/08/09 01:09:48 easysw Exp $"
//
// Menu bar header file for the Fast Light Tool Kit (FLTK).
//
@@ -33,12 +33,12 @@ protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
Fl_Menu_Bar(int x,int y,int w,int h,const char *l=0)
: Fl_Menu_(x,y,w,h,l) {}
Fl_Menu_Bar(int X, int Y, int W, int H,const char *l=0)
: Fl_Menu_(X,Y,W,H,l) {}
};
#endif
//
// End of "$Id: Fl_Menu_Bar.H,v 1.5.2.4.2.1 2002/01/01 15:11:27 easysw Exp $".
// End of "$Id: Fl_Menu_Bar.H,v 1.5.2.4.2.2 2002/08/09 01:09:48 easysw Exp $".
//
+6 -6
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Pixmap.H,v 1.6.2.8.2.8 2002/08/05 17:50:23 easysw Exp $"
// "$Id: Fl_Pixmap.H,v 1.6.2.8.2.9 2002/08/09 01:09:48 easysw Exp $"
//
// Pixmap header file for the Fast Light Tool Kit (FLTK).
//
@@ -50,10 +50,10 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
Fl_Offscreen id; // for internal use
Fl_Bitmask mask; // for internal use (mask bitmap)
explicit Fl_Pixmap(char * const * d) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)d); measure();}
explicit Fl_Pixmap(uchar* const * d) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)d); measure();}
explicit Fl_Pixmap(const char * const * d) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)d); measure();}
explicit Fl_Pixmap(const uchar* const * d) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)d); measure();}
explicit Fl_Pixmap(char * const * D) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)D); measure();}
explicit Fl_Pixmap(uchar* const * D) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)D); measure();}
explicit Fl_Pixmap(const char * const * D) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)D); measure();}
explicit Fl_Pixmap(const uchar* const * D) : Fl_Image(-1,0,1), alloc_data(0), id(0), mask(0) {set_data((const char*const*)D); measure();}
virtual ~Fl_Pixmap();
virtual Fl_Image *copy(int W, int H);
Fl_Image *copy() { return copy(w(), h()); }
@@ -69,5 +69,5 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
#endif
//
// End of "$Id: Fl_Pixmap.H,v 1.6.2.8.2.8 2002/08/05 17:50:23 easysw Exp $".
// End of "$Id: Fl_Pixmap.H,v 1.6.2.8.2.9 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Return_Button.H,v 1.5.2.3.2.1 2002/01/01 15:11:28 easysw Exp $"
// "$Id: Fl_Return_Button.H,v 1.5.2.3.2.2 2002/08/09 01:09:48 easysw Exp $"
//
// Return button header file for the Fast Light Tool Kit (FLTK).
//
@@ -32,12 +32,12 @@ protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
Fl_Return_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Button(x,y,w,h,l) {}
Fl_Return_Button(int X, int Y, int W, int H,const char *l=0)
: Fl_Button(X,Y,W,H,l) {}
};
#endif
//
// End of "$Id: Fl_Return_Button.H,v 1.5.2.3.2.1 2002/01/01 15:11:28 easysw Exp $".
// End of "$Id: Fl_Return_Button.H,v 1.5.2.3.2.2 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Scrollbar.H,v 1.5.2.4.2.1 2002/01/01 15:11:28 easysw Exp $"
// "$Id: Fl_Scrollbar.H,v 1.5.2.4.2.2 2002/08/09 01:09:48 easysw Exp $"
//
// Scroll bar header file for the Fast Light Tool Kit (FLTK).
//
@@ -43,8 +43,8 @@ public:
FL_EXPORT int handle(int);
int value() {return int(Fl_Slider::value());}
int value(int position, int size, int top, int total) {
return scrollvalue(position, size, top, total);
int value(int p, int s, int top, int total) {
return scrollvalue(p, s, top, total);
}
int linesize() const {return linesize_;}
void linesize(int i) {linesize_ = i;}
@@ -54,5 +54,5 @@ public:
#endif
//
// End of "$Id: Fl_Scrollbar.H,v 1.5.2.4.2.1 2002/01/01 15:11:28 easysw Exp $".
// End of "$Id: Fl_Scrollbar.H,v 1.5.2.4.2.2 2002/08/09 01:09:48 easysw Exp $".
//
+3 -3
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Value_Input.H,v 1.5.2.3.2.2 2002/01/01 15:11:28 easysw Exp $"
// "$Id: Fl_Value_Input.H,v 1.5.2.3.2.3 2002/08/09 01:09:48 easysw Exp $"
//
// Value input header file for the Fast Light Tool Kit (FLTK).
//
@@ -42,7 +42,7 @@ public:
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT Fl_Value_Input(int x,int y,int w,int h,const char *l=0);
void soft(char x) {soft_ = x;}
void soft(char s) {soft_ = s;}
char soft() const {return soft_;}
Fl_Font textfont() const {return input.textfont();}
@@ -59,5 +59,5 @@ public:
#endif
//
// End of "$Id: Fl_Value_Input.H,v 1.5.2.3.2.2 2002/01/01 15:11:28 easysw Exp $".
// End of "$Id: Fl_Value_Input.H,v 1.5.2.3.2.3 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Widget.H,v 1.6.2.4.2.15 2002/07/23 15:07:32 easysw Exp $"
// "$Id: Fl_Widget.H,v 1.6.2.4.2.16 2002/08/09 01:09:48 easysw Exp $"
//
// Widget header file for the Fast Light Tool Kit (FLTK).
//
@@ -103,7 +103,7 @@ public:
FL_EXPORT virtual void draw() = 0;
FL_EXPORT virtual int handle(int);
Fl_Group* parent() const {return parent_;}
void parent(Fl_Group* w) {parent_ = w;} // for hacks only, Fl_Group::add()
void parent(Fl_Group* p) {parent_ = p;} // for hacks only, Fl_Group::add()
uchar type() const {return type_;}
void type(uchar t) {type_ = t;}
@@ -195,7 +195,7 @@ public:
FL_EXPORT void damage(uchar c);
FL_EXPORT void damage(uchar c,int,int,int,int);
FL_EXPORT void draw_label(int, int, int, int, Fl_Align) const;
void measure_label(int& x, int& y) {label_.measure(x,y);}
void measure_label(int& xx, int& yy) {label_.measure(xx,yy);}
FL_EXPORT Fl_Window* window() const ;
@@ -212,5 +212,5 @@ public:
#endif
//
// End of "$Id: Fl_Widget.H,v 1.6.2.4.2.15 2002/07/23 15:07:32 easysw Exp $".
// End of "$Id: Fl_Widget.H,v 1.6.2.4.2.16 2002/08/09 01:09:48 easysw Exp $".
//
+5 -5
View File
@@ -1,5 +1,5 @@
//
// "$Id: x.H,v 1.10.2.8.2.9 2002/04/15 12:19:01 easysw Exp $"
// "$Id: x.H,v 1.10.2.8.2.10 2002/08/09 01:09:48 easysw Exp $"
//
// X11 header file for the Fast Light Tool Kit (FLTK).
//
@@ -114,15 +114,15 @@ public:
char wait_for_expose;
char backbuffer_bad; // used for XDBE
static FL_EXPORT Fl_X* first;
static FL_EXPORT Fl_X* i(const Fl_Window* w) {return w->i;}
static FL_EXPORT Fl_X* i(const Fl_Window* wi) {return wi->i;}
FL_EXPORT void setwindow(Fl_Window* wi) {w=wi; wi->i=this;}
FL_EXPORT void sendxjunk();
static FL_EXPORT void make_xid(Fl_Window*,XVisualInfo* =fl_visual, Colormap=fl_colormap);
static FL_EXPORT Fl_X* set_xid(Fl_Window*, Window);
// kludges to get around protection:
FL_EXPORT void flush() {w->flush();}
static FL_EXPORT void x(Fl_Window* w, int X) {w->x(X);}
static FL_EXPORT void y(Fl_Window* w, int Y) {w->y(Y);}
static FL_EXPORT void x(Fl_Window* wi, int X) {wi->x(X);}
static FL_EXPORT void y(Fl_Window* wi, int Y) {wi->y(Y);}
};
// convert xid <-> Fl_Window:
@@ -138,5 +138,5 @@ extern FL_EXPORT int fl_parse_color(const char* p, uchar& r, uchar& g, uchar& b)
#endif
//
// End of "$Id: x.H,v 1.10.2.8.2.9 2002/04/15 12:19:01 easysw Exp $".
// End of "$Id: x.H,v 1.10.2.8.2.10 2002/08/09 01:09:48 easysw Exp $".
//
+3 -3
View File
@@ -1,7 +1,7 @@
dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
dnl "$Id: configure.in,v 1.33.2.31.2.82 2002/08/05 17:50:21 easysw Exp $"
dnl "$Id: configure.in,v 1.33.2.31.2.83 2002/08/09 01:09:47 easysw Exp $"
dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
@@ -615,7 +615,7 @@ if test -n "$GCC"; then
CXX="$CC"
# Show all warnings when compiling...
OPTIM="-Wall $OPTIM"
OPTIM="-Wall -Wshadow -Wconversion -Winline $OPTIM"
# Set the default compiler optimizations...
if test -z "$DEBUGFLAG"; then
@@ -782,5 +782,5 @@ dnl Make sure the fltk-config script is executable...
chmod +x fltk-config
dnl
dnl End of "$Id: configure.in,v 1.33.2.31.2.82 2002/08/05 17:50:21 easysw Exp $".
dnl End of "$Id: configure.in,v 1.33.2.31.2.83 2002/08/09 01:09:47 easysw Exp $".
dnl
+121 -121
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Adjuster.cxx,v 1.5.2.3.2.7 2002/05/24 14:19:19 easysw Exp $"
// "$Id: Fl_Adjuster.cxx,v 1.5.2.3.2.8 2002/08/09 01:09:48 easysw Exp $"
//
// Adjuster widget for the Fast Light Tool Kit (FLTK).
//
@@ -155,8 +155,8 @@ int Fl_Adjuster::handle(int event) {
return 0;
}
Fl_Adjuster::Fl_Adjuster(int x, int y, int w, int h, const char* l)
: Fl_Valuator(x, y, w, h, l) {
Fl_Adjuster::Fl_Adjuster(int X, int Y, int W, int H, const char* l)
: Fl_Valuator(X, Y, W, H, l) {
box(FL_UP_BOX);
step(1, 10000);
selection_color(FL_BLACK);
@@ -165,5 +165,5 @@ Fl_Adjuster::Fl_Adjuster(int x, int y, int w, int h, const char* l)
}
//
// End of "$Id: Fl_Adjuster.cxx,v 1.5.2.3.2.7 2002/05/24 14:19:19 easysw Exp $".
// End of "$Id: Fl_Adjuster.cxx,v 1.5.2.3.2.8 2002/08/09 01:09:48 easysw Exp $".
//
+32 -32
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_BMP_Image.cxx,v 1.1.2.8 2002/07/26 14:22:02 easysw Exp $"
// "$Id: Fl_BMP_Image.cxx,v 1.1.2.9 2002/08/09 01:09:48 easysw Exp $"
//
// Fl_BMP_Image routines.
//
@@ -72,7 +72,7 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
colors_used, // Number of colors used
x, y, // Looping vars
color, // Color of RLE pixel
count, // Number of times to repeat
repcount, // Number of times to repeat
temp, // Temporary color
align; // Alignment bytes
long offbits; // Offset to image data
@@ -111,7 +111,7 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
compression = BI_RGB;
colors_used = 0;
count = info_size - 12;
repcount = info_size - 12;
} else {
// New BMP header...
w(read_long(fp));
@@ -125,16 +125,16 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
colors_used = read_dword(fp);
read_dword(fp);
count = info_size - 40;
repcount = info_size - 40;
}
// printf("w() = %d, h() = %d, depth = %d, compression = %d, colors_used = %d, count = %d\n",
// w(), h(), depth, compression, colors_used, count);
// printf("w() = %d, h() = %d, depth = %d, compression = %d, colors_used = %d, repcount = %d\n",
// w(), h(), depth, compression, colors_used, repcount);
// Skip remaining header bytes...
while (count > 0) {
while (repcount > 0) {
getc(fp);
count --;
repcount --;
}
// Check header data...
@@ -147,9 +147,9 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
if (colors_used == 0 && depth <= 8)
colors_used = 1 << depth;
for (count = 0; count < colors_used; count ++) {
for (repcount = 0; repcount < colors_used; repcount ++) {
// Read BGR color...
fread(colormap[count], 1, 3, fp);
fread(colormap[repcount], 1, 3, fp);
// Skip pad byte for new BMP files...
if (info_size > 12) getc(fp);
@@ -164,7 +164,7 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
// Read the image data...
color = 0;
count = 0;
repcount = 0;
align = 0;
byte = 0;
temp = 0;
@@ -202,10 +202,10 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
case 4 : // 16-color
for (x = w(), bit = 0xf0; x > 0; x --) {
// Get a new count as needed...
if (count == 0) {
// Get a new repcount as needed...
if (repcount == 0) {
if (compression != BI_RLE4) {
count = 2;
repcount = 2;
color = -1;
} else {
while (align > 0) {
@@ -213,22 +213,22 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
getc(fp);
}
if ((count = getc(fp)) == 0) {
if ((count = getc(fp)) == 0) {
if ((repcount = getc(fp)) == 0) {
if ((repcount = getc(fp)) == 0) {
// End of line...
x ++;
continue;
} else if (count == 1) {
} else if (repcount == 1) {
// End of image...
break;
} else if (count == 2) {
} else if (repcount == 2) {
// Delta...
count = getc(fp) * getc(fp) * w();
repcount = getc(fp) * getc(fp) * w();
color = 0;
} else {
// Absolute...
color = -1;
align = ((4 - (count & 3)) / 2) & 1;
align = ((4 - (repcount & 3)) / 2) & 1;
}
} else {
color = getc(fp);
@@ -237,7 +237,7 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
}
// Get a new color as needed...
count --;
repcount --;
// Get the next color byte as needed...
if (color < 0) color = getc(fp);
@@ -269,34 +269,34 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
case 8 : // 256-color
for (x = w(); x > 0; x --) {
// Get a new count as needed...
// Get a new repcount as needed...
if (compression != BI_RLE8) {
count = 1;
repcount = 1;
color = -1;
}
if (count == 0) {
if (repcount == 0) {
while (align > 0) {
align --;
getc(fp);
}
if ((count = getc(fp)) == 0) {
if ((count = getc(fp)) == 0) {
if ((repcount = getc(fp)) == 0) {
if ((repcount = getc(fp)) == 0) {
// End of line...
x ++;
continue;
} else if (count == 1) {
} else if (repcount == 1) {
// End of image...
break;
} else if (count == 2) {
} else if (repcount == 2) {
// Delta...
count = getc(fp) * getc(fp) * w();
repcount = getc(fp) * getc(fp) * w();
color = 0;
} else {
// Absolute...
color = -1;
align = (2 - (count & 1)) & 1;
align = (2 - (repcount & 1)) & 1;
}
} else {
color = getc(fp);
@@ -307,7 +307,7 @@ Fl_BMP_Image::Fl_BMP_Image(const char *bmp) // I - File to read
if (color < 0) temp = getc(fp);
else temp = color;
count --;
repcount --;
// Copy the color value...
*ptr++ = colormap[temp][2];
@@ -393,5 +393,5 @@ read_long(FILE *fp) { // I - File to read from
//
// End of "$Id: Fl_BMP_Image.cxx,v 1.1.2.8 2002/07/26 14:22:02 easysw Exp $".
// End of "$Id: Fl_BMP_Image.cxx,v 1.1.2.9 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.16 2002/08/05 17:50:24 easysw Exp $"
// "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.17 2002/08/09 01:09:48 easysw Exp $"
//
// Bitmap drawing routines for the Fast Light Tool Kit (FLTK).
//
@@ -395,8 +395,8 @@ void Fl_Bitmap::uncache() {
}
}
void Fl_Bitmap::label(Fl_Widget* w) {
w->image(this);
void Fl_Bitmap::label(Fl_Widget* widget) {
widget->image(this);
}
void Fl_Bitmap::label(Fl_Menu_Item* m) {
@@ -473,5 +473,5 @@ Fl_Image *Fl_Bitmap::copy(int W, int H) {
//
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.16 2002/08/05 17:50:24 easysw Exp $".
// End of "$Id: Fl_Bitmap.cxx,v 1.5.2.4.2.17 2002/08/09 01:09:48 easysw Exp $".
//
+53 -53
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Browser.cxx,v 1.9.2.12.2.5 2002/04/11 11:52:41 easysw Exp $"
// "$Id: Fl_Browser.cxx,v 1.9.2.12.2.6 2002/08/09 01:09:48 easysw Exp $"
//
// Browser widget for the Fast Light Tool Kit (FLTK).
//
@@ -161,13 +161,13 @@ void Fl_Browser::insert(int line, FL_BLINE* t) {
redraw_line(t);
}
void Fl_Browser::insert(int line, const char* newtext, void* data) {
void Fl_Browser::insert(int line, const char* newtext, void* d) {
int l = strlen(newtext);
FL_BLINE* t = (FL_BLINE*)malloc(sizeof(FL_BLINE)+l);
t->length = l;
t->flags = 0;
strcpy(t->txt, newtext);
t->data = data;
t->data = d;
insert(line, t);
}
@@ -198,9 +198,9 @@ void Fl_Browser::text(int line, const char* newtext) {
redraw_line(t);
}
void Fl_Browser::data(int line, void* data) {
void Fl_Browser::data(int line, void* d) {
if (line < 1 || line > lines) return;
find_line(line)->data = data;
find_line(line)->data = d;
}
int Fl_Browser::item_height(void* lv) const {
@@ -212,27 +212,27 @@ int Fl_Browser::item_height(void* lv) const {
if (!l->txt[0]) {
// For blank lines set the height to exactly 1 line!
fl_font(textfont(), textsize());
int h = fl_height();
if (h > hmax) hmax = h;
int hh = fl_height();
if (hh > hmax) hmax = hh;
}
else {
// do each column separately as they may all set different fonts:
for (char* str = l->txt; *str; str++) {
Fl_Font font = textfont(); // default font
int size = textsize(); // default size
int tsize = textsize(); // default size
while (*str==format_char()) {
str++;
switch (*str++) {
case 'l': case 'L': size = 24; break;
case 'm': case 'M': size = 18; break;
case 's': size = 11; break;
case 'l': case 'L': tsize = 24; break;
case 'm': case 'M': tsize = 18; break;
case 's': tsize = 11; break;
case 'b': font = (Fl_Font)(font|FL_BOLD); break;
case 'i': font = (Fl_Font)(font|FL_ITALIC); break;
case 'f': case 't': font = FL_COURIER; break;
case 'B':
case 'C': strtol(str, &str, 10); break;// skip a color number
case 'F': font = (Fl_Font)strtol(str,&str,10); break;
case 'S': size = strtol(str,&str,10); break;
case 'S': tsize = strtol(str,&str,10); break;
case 0: case '@': str--;
case '.': goto END_FORMAT;
}
@@ -241,8 +241,8 @@ int Fl_Browser::item_height(void* lv) const {
char* ptr = str;
for(;*str && (*str!=column_char()); str++) ;
if (ptr < str) {
fl_font(font, size); int h = fl_height();
if (h > hmax) hmax = h;
fl_font(font, tsize); int hh = fl_height();
if (hh > hmax) hmax = hh;
}
if (!*str) str --;
}
@@ -254,34 +254,34 @@ int Fl_Browser::item_height(void* lv) const {
int Fl_Browser::item_width(void* v) const {
char* str = ((FL_BLINE*)v)->txt;
const int* i = column_widths();
int w = 0;
int ww = 0;
while (*i) { // add up all tab-seperated fields
char* e;
for (e = str; *e && *e != column_char(); e++);
if (!*e) break; // last one occupied by text
str = e+1;
w += *i++;
ww += *i++;
}
// OK, we gotta parse the string and find the string width...
int size = textsize();
int tsize = textsize();
Fl_Font font = textfont();
int done = 0;
while (*str == format_char_ && str[1] && str[1] != format_char_) {
str ++;
switch (*str++) {
case 'l': case 'L': size = 24; break;
case 'm': case 'M': size = 18; break;
case 's': size = 11; break;
case 'l': case 'L': tsize = 24; break;
case 'm': case 'M': tsize = 18; break;
case 's': tsize = 11; break;
case 'b': font = (Fl_Font)(font|FL_BOLD); break;
case 'i': font = (Fl_Font)(font|FL_ITALIC); break;
case 'f': case 't': font = FL_COURIER; break;
case 'B':
case 'C': strtol(str, &str, 10); break;// skip a color number
case 'F': font = (Fl_Font)strtol(str, &str, 10); break;
case 'S': size = strtol(str, &str, 10); break;
case 'S': tsize = strtol(str, &str, 10); break;
case '.':
done = 1;
case '@':
@@ -296,8 +296,8 @@ int Fl_Browser::item_width(void* v) const {
if (*str == format_char_ && str[1])
str ++;
fl_font(font, size);
return w + int(fl_width(str)) + 6;
fl_font(font, tsize);
return ww + int(fl_width(str)) + 6;
}
int Fl_Browser::full_height() const {
@@ -308,36 +308,36 @@ int Fl_Browser::incr_height() const {
return textsize()+2;
}
void Fl_Browser::item_draw(void* v, int x, int y, int w, int h) const {
void Fl_Browser::item_draw(void* v, int X, int Y, int W, int H) const {
char* str = ((FL_BLINE*)v)->txt;
const int* i = column_widths();
while (w > 6) { // do each tab-seperated field
int w1 = w; // width for this field
while (W > 6) { // do each tab-seperated field
int w1 = W; // width for this field
char* e = 0; // pointer to end of field or null if none
if (*i) { // find end of field and temporarily replace with 0
for (e = str; *e && *e != column_char(); e++);
if (*e) {*e = 0; w1 = *i++;} else e = 0;
}
int size = textsize();
int tsize = textsize();
Fl_Font font = textfont();
Fl_Color lcol = textcolor();
Fl_Align align = FL_ALIGN_LEFT;
Fl_Align talign = FL_ALIGN_LEFT;
// check for all the @-lines recognized by XForms:
while (*str == format_char() && *++str && *str != format_char()) {
switch (*str++) {
case 'l': case 'L': size = 24; break;
case 'm': case 'M': size = 18; break;
case 's': size = 11; break;
case 'l': case 'L': tsize = 24; break;
case 'm': case 'M': tsize = 18; break;
case 's': tsize = 11; break;
case 'b': font = (Fl_Font)(font|FL_BOLD); break;
case 'i': font = (Fl_Font)(font|FL_ITALIC); break;
case 'f': case 't': font = FL_COURIER; break;
case 'c': align = FL_ALIGN_CENTER; break;
case 'r': align = FL_ALIGN_RIGHT; break;
case 'c': talign = FL_ALIGN_CENTER; break;
case 'r': talign = FL_ALIGN_RIGHT; break;
case 'B':
if (!(((FL_BLINE*)v)->flags & SELECTED)) {
fl_color((Fl_Color)strtol(str, &str, 10));
fl_rectf(x, y, w1, h);
fl_rectf(X, Y, w1, H);
} else strtol(str, &str, 10);
break;
case 'C':
@@ -350,18 +350,18 @@ void Fl_Browser::item_draw(void* v, int x, int y, int w, int h) const {
lcol = FL_INACTIVE_COLOR;
break;
case 'S':
size = strtol(str, &str, 10);
tsize = strtol(str, &str, 10);
break;
case '-':
fl_color(FL_DARK3);
fl_line(x+3, y+h/2, x+w1-3, y+h/2);
fl_line(X+3, Y+H/2, X+w1-3, Y+H/2);
fl_color(FL_LIGHT3);
fl_line(x+3, y+h/2+1, x+w1-3, y+h/2+1);
fl_line(X+3, Y+H/2+1, X+w1-3, Y+H/2+1);
break;
case 'u':
case '_':
fl_color(lcol);
fl_line(x+3, y+h-1, x+w1-3, y+h-1);
fl_line(X+3, Y+H-1, X+w1-3, Y+H-1);
break;
case '.':
goto BREAK;
@@ -370,24 +370,24 @@ void Fl_Browser::item_draw(void* v, int x, int y, int w, int h) const {
}
}
BREAK:
fl_font(font, size);
fl_font(font, tsize);
if (((FL_BLINE*)v)->flags & SELECTED)
lcol = fl_contrast(lcol, selection_color());
if (!active_r()) lcol = fl_inactive(lcol);
fl_color(lcol);
fl_draw(str, x+3, y, w1-6, h, e ? Fl_Align(align|FL_ALIGN_CLIP) : align, 0, 0);
fl_draw(str, X+3, Y, w1-6, H, e ? Fl_Align(talign|FL_ALIGN_CLIP) : talign, 0, 0);
if (!e) break; // no more fields...
*e = column_char(); // put the seperator back
x += w1;
w -= w1;
X += w1;
W -= w1;
str = e+1;
}
}
static const int no_columns[1] = {0};
Fl_Browser::Fl_Browser(int x, int y, int w, int h, const char*l)
: Fl_Browser_(x, y, w, h, l) {
Fl_Browser::Fl_Browser(int X, int Y, int W, int H, const char*l)
: Fl_Browser_(X, Y, W, H, l) {
column_widths_ = no_columns;
lines = 0;
full_height_ = 0;
@@ -427,9 +427,9 @@ int Fl_Browser::topline() const {
void Fl_Browser::clear() {
for (FL_BLINE* l = first; l;) {
FL_BLINE* h = l->next;
FL_BLINE* n = l->next;
free(l);
l = h;
l = n;
}
full_height_ = 0;
first = 0;
@@ -437,8 +437,8 @@ void Fl_Browser::clear() {
new_list();
}
void Fl_Browser::add(const char* newtext, void* data) {
insert(lines+1, newtext, data);
void Fl_Browser::add(const char* newtext, void* d) {
insert(lines+1, newtext, d);
//Fl_Browser_::display(last);
}
@@ -452,9 +452,9 @@ void* Fl_Browser::data(int line) const {
return find_line(line)->data;
}
int Fl_Browser::select(int line, int value) {
int Fl_Browser::select(int line, int v) {
if (line < 1 || line > lines) return 0;
return Fl_Browser_::select(find_line(line), value);
return Fl_Browser_::select(find_line(line), v);
}
int Fl_Browser::selected(int line) const {
@@ -480,9 +480,9 @@ void Fl_Browser::hide(int line) {
}
}
void Fl_Browser::display(int line, int value) {
void Fl_Browser::display(int line, int v) {
if (line < 1 || line > lines) return;
if (value) show(line); else hide(line);
if (v) show(line); else hide(line);
}
int Fl_Browser::visible(int line) const {
@@ -495,5 +495,5 @@ int Fl_Browser::value() const {
}
//
// End of "$Id: Fl_Browser.cxx,v 1.9.2.12.2.5 2002/04/11 11:52:41 easysw Exp $".
// End of "$Id: Fl_Browser.cxx,v 1.9.2.12.2.6 2002/08/09 01:09:48 easysw Exp $".
//
+44 -44
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.13 2002/07/18 15:43:48 easysw Exp $"
// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.14 2002/08/09 01:09:48 easysw Exp $"
//
// Base Browser widget class for the Fast Light Tool Kit (FLTK).
//
@@ -119,9 +119,9 @@ void Fl_Browser_::update_top() {
if (position_ != real_position_) {
void* l;
int ly;
int y = position_;
int yy = position_;
// start from either head or current position, whichever is closer:
if (!top_ || y <= (real_position_/2)) {
if (!top_ || yy <= (real_position_/2)) {
l = item_first();
ly = 0;
} else {
@@ -133,35 +133,35 @@ void Fl_Browser_::update_top() {
offset_ = 0;
real_position_ = 0;
} else {
int h = item_quick_height(l);
int hh = item_quick_height(l);
// step through list until we find line containing this point:
while (ly > y) {
while (ly > yy) {
void* l1 = item_prev(l);
if (!l1) {ly = 0; break;} // hit the top
l = l1;
h = item_quick_height(l);
ly -= h;
l = l1;
hh = item_quick_height(l);
ly -= hh;
}
while ((ly+h) <= y) {
while ((ly+hh) <= yy) {
void* l1 = item_next(l);
if (!l1) {y = ly+h-1; break;}
if (!l1) {yy = ly+hh-1; break;}
l = l1;
ly += h;
h = item_quick_height(l);
ly += hh;
hh = item_quick_height(l);
}
// top item must *really* be visible, use slow height:
for (;;) {
h = item_height(l);
if ((ly+h) > y) break; // it is big enough to see
hh = item_height(l);
if ((ly+hh) > yy) break; // it is big enough to see
// go up to top of previous item:
void* l1 = item_prev(l);
if (!l1) {ly = y = 0; break;} // hit the top
l = l1; y = position_ = ly = ly-item_quick_height(l);
if (!l1) {ly = yy = 0; break;} // hit the top
l = l1; yy = position_ = ly = ly-item_quick_height(l);
}
// use it:
top_ = l;
offset_ = y-ly;
real_position_ = y;
offset_ = yy-ly;
real_position_ = yy;
}
damage(FL_DAMAGE_SCROLL);
}
@@ -169,26 +169,26 @@ void Fl_Browser_::update_top() {
// Change position(), top() will update when update_top() is called
// (probably by draw() or handle()):
void Fl_Browser_::position(int y) {
if (y < 0) y = 0;
if (y == position_) return;
position_ = y;
if (y != real_position_) redraw_lines();
void Fl_Browser_::position(int yy) {
if (yy < 0) yy = 0;
if (yy == position_) return;
position_ = yy;
if (yy != real_position_) redraw_lines();
}
void Fl_Browser_::hposition(int x) {
if (x < 0) x = 0;
if (x == hposition_) return;
hposition_ = x;
if (x != real_hposition_) redraw_lines();
void Fl_Browser_::hposition(int xx) {
if (xx < 0) xx = 0;
if (xx == hposition_) return;
hposition_ = xx;
if (xx != real_hposition_) redraw_lines();
}
// Tell whether item is currently displayed:
int Fl_Browser_::displayed(void* x) const {
int Fl_Browser_::displayed(void* p) const {
int X, Y, W, H; bbox(X, Y, W, H);
int yy = H+offset_;
for (void* l = top_; l && yy > 0; l = item_next(l)) {
if (l == x) return 1;
if (l == p) return 1;
yy -= item_height(l);
}
return 0;
@@ -196,11 +196,11 @@ int Fl_Browser_::displayed(void* x) const {
// Ensure this item is displayed:
// Messy because we have no idea if it is before top or after bottom:
void Fl_Browser_::display(void* x) {
void Fl_Browser_::display(void* p) {
// First special case - want to display first item in the list?
update_top();
if (x == item_first()) {position(0); return;}
if (p == item_first()) {position(0); return;}
int X, Y, W, H, Yp; bbox(X, Y, W, H);
void* l = top_;
@@ -208,11 +208,11 @@ void Fl_Browser_::display(void* x) {
int h1;
// 2nd special case - want to display item already displayed at top of browser?
if (l == x) {position(real_position_+Y); return;} // scroll up a bit
if (l == p) {position(real_position_+Y); return;} // scroll up a bit
// 3rd special case - want to display item just above top of browser?
void* lp = item_prev(l);
if (lp == x) {position(real_position_+Y-item_quick_height(lp)); return;}
if (lp == p) {position(real_position_+Y-item_quick_height(lp)); return;}
#ifdef DISPLAY_SEARCH_BOTH_WAYS_AT_ONCE
// search for item. We search both up and down the list at the same time,
@@ -221,7 +221,7 @@ void Fl_Browser_::display(void* x) {
while (l || lp) {
if (l) {
h1 = item_quick_height(l);
if (l == x) {
if (l == p) {
if (Y <= H) { // it is visible or right at bottom
Y = Y+h1-H; // find where bottom edge is
if (Y > 0) position(real_position_+Y); // scroll down a bit
@@ -236,7 +236,7 @@ void Fl_Browser_::display(void* x) {
if (lp) {
h1 = item_quick_height(lp);
Yp -= h1;
if (lp == x) {
if (lp == p) {
if ((Yp + h1) >= 0) position(real_position_+Yp);
else position(real_position_+Yp-(H-h1)/2);
return;
@@ -250,7 +250,7 @@ void Fl_Browser_::display(void* x) {
l = top_;
for (; l; l = item_next(l)) {
h1 = item_quick_height(l);
if (l == x) {
if (l == p) {
if (Y <= H) { // it is visible or right at bottom
Y = Y+h1-H; // find where bottom edge is
if (Y > 0) position(real_position_+Y); // scroll down a bit
@@ -267,7 +267,7 @@ void Fl_Browser_::display(void* x) {
for (; l; l = item_prev(l)) {
h1 = item_quick_height(l);
Y -= h1;
if (l == x) {
if (l == p) {
if ((Y + h1) >= 0) position(real_position_+Y);
else position(real_position_+Y-(H-h1)/2);
return;
@@ -363,8 +363,8 @@ J1:
if (l == selection_ && Fl::focus() == this) {
draw_focus(FL_NO_BOX, X, yy+Y+1, W, hh);
}
int w = item_width(l);
if (w > max_width) {max_width = w; max_width_item = l;}
int ww = item_width(l);
if (ww > max_width) {max_width = ww; max_width_item = l;}
}
yy += hh;
}
@@ -650,7 +650,7 @@ int Fl_Browser_::handle(int event) {
position(p);
} else if (my > (Y+H) && my > py) {
int p = real_position_+my-(Y+H);
int h = full_height()-H; if (p > h) p = h;
int hh = full_height()-H; if (p > hh) p = hh;
if (p<0) p = 0;
position(p);
}
@@ -701,8 +701,8 @@ int Fl_Browser_::handle(int event) {
return 0;
}
Fl_Browser_::Fl_Browser_(int x, int y, int w, int h, const char* l)
: Fl_Group(x, y, w, h, l),
Fl_Browser_::Fl_Browser_(int X, int Y, int W, int H, const char* l)
: Fl_Group(X, Y, W, H, l),
scrollbar(0, 0, 0, 0, 0), // they will be resized by draw()
hscrollbar(0, 0, 0, 0, 0)
{
@@ -755,5 +755,5 @@ void Fl_Browser_::item_select(void*, int) {}
int Fl_Browser_::item_selected(void* l) const {return l==selection_;}
//
// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.13 2002/07/18 15:43:48 easysw Exp $".
// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.14 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Button.cxx,v 1.4.2.6.2.15 2002/06/02 17:52:36 easysw Exp $"
// "$Id: Fl_Button.cxx,v 1.4.2.6.2.16 2002/08/09 01:09:48 easysw Exp $"
//
// Button widget for the Fast Light Tool Kit (FLTK).
//
@@ -135,8 +135,8 @@ int Fl_Button::handle(int event) {
}
}
Fl_Button::Fl_Button(int x,int y,int w,int h, const char *l)
: Fl_Widget(x,y,w,h,l) {
Fl_Button::Fl_Button(int X, int Y, int W, int H, const char *l)
: Fl_Widget(X,Y,W,H,l) {
box(FL_UP_BOX);
down_box(FL_NO_BOX);
value_ = oldval = 0;
@@ -145,5 +145,5 @@ Fl_Button::Fl_Button(int x,int y,int w,int h, const char *l)
}
//
// End of "$Id: Fl_Button.cxx,v 1.4.2.6.2.15 2002/06/02 17:52:36 easysw Exp $".
// End of "$Id: Fl_Button.cxx,v 1.4.2.6.2.16 2002/08/09 01:09:48 easysw Exp $".
//
+35 -35
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Chart.cxx,v 1.5.2.6.2.8 2002/06/09 18:18:50 spitzak Exp $"
// "$Id: Fl_Chart.cxx,v 1.5.2.6.2.9 2002/08/09 01:09:48 easysw Exp $"
//
// Forms-compatible chart widget for the Fast Light Tool Kit (FLTK).
//
@@ -63,11 +63,11 @@ static void draw_barchart(int x,int y,int w,int h,
int i;
/* Draw the bars */
for (i=0; i<numb; i++) {
int h = (int)rint(entries[i].val*incr);
if (h < 0)
fl_rectbound(x+i*bwidth,zeroh,bwidth+1,-h+1, (Fl_Color)entries[i].col);
else if (h > 0)
fl_rectbound(x+i*bwidth,zeroh-h,bwidth+1,h+1,(Fl_Color)entries[i].col);
int hh = (int)rint(entries[i].val*incr);
if (hh < 0)
fl_rectbound(x+i*bwidth,zeroh,bwidth+1,-hh+1, (Fl_Color)entries[i].col);
else if (hh > 0)
fl_rectbound(x+i*bwidth,zeroh-hh,bwidth+1,hh+1,(Fl_Color)entries[i].col);
}
/* Draw the labels */
fl_color(textcolor);
@@ -109,11 +109,11 @@ static void draw_horbarchart(int x,int y,int w,int h,
if (min == 0.0 && max == 0.0) return; /* Nothing else to draw */
/* Draw the bars */
for (i=0; i<numb; i++) {
int w = (int)rint(entries[i].val*incr);
if (w > 0)
fl_rectbound(zeroh,y+i*bwidth,w+1,bwidth+1, (Fl_Color)entries[i].col);
else if (w < 0)
fl_rectbound(zeroh+w,y+i*bwidth,-w+1,bwidth+1,(Fl_Color)entries[i].col);
int ww = (int)rint(entries[i].val*incr);
if (ww > 0)
fl_rectbound(zeroh,y+i*bwidth,ww+1,bwidth+1, (Fl_Color)entries[i].col);
else if (ww < 0)
fl_rectbound(zeroh+w,y+i*bwidth,-ww+1,bwidth+1,(Fl_Color)entries[i].col);
}
/* Draw the labels */
fl_color(textcolor);
@@ -141,26 +141,26 @@ static void draw_linechart(int type, int x,int y,int w,int h,
for (i=0; i<numb; i++) {
int x0 = x + (int)rint((i-.5)*bwidth);
int x1 = x + (int)rint((i+.5)*bwidth);
int y0 = i ? zeroh - (int)rint(entries[i-1].val*incr) : 0;
int y1 = zeroh - (int)rint(entries[i].val*incr);
int yy0 = i ? zeroh - (int)rint(entries[i-1].val*incr) : 0;
int yy1 = zeroh - (int)rint(entries[i].val*incr);
if (type == FL_SPIKE_CHART) {
fl_color((Fl_Color)entries[i].col);
fl_line(x1, zeroh, x1, y1);
fl_line(x1, zeroh, x1, yy1);
} else if (type == FL_LINE_CHART && i != 0) {
fl_color((Fl_Color)entries[i-1].col);
fl_line(x0,y0,x1,y1);
fl_line(x0,yy0,x1,yy1);
} else if (type == FL_FILLED_CHART && i != 0) {
fl_color((Fl_Color)entries[i-1].col);
if ((entries[i-1].val>0.0)!=(entries[i].val>0.0)) {
double ttt = entries[i-1].val/(entries[i-1].val-entries[i].val);
int xt = x + (int)rint((i-.5+ttt)*bwidth);
fl_polygon(x0,zeroh, x0,y0, xt,zeroh);
fl_polygon(xt,zeroh, x1,y1, x1,zeroh);
fl_polygon(x0,zeroh, x0,yy0, xt,zeroh);
fl_polygon(xt,zeroh, x1,yy1, x1,zeroh);
} else {
fl_polygon(x0,zeroh, x0,y0, x1,y1, x1,zeroh);
fl_polygon(x0,zeroh, x0,yy0, x1,yy1, x1,zeroh);
}
fl_color(textcolor);
fl_line(x0,y0,x1,y1);
fl_line(x0,yy0,x1,yy1);
}
}
/* Draw base line */
@@ -283,8 +283,8 @@ void Fl_Chart::draw() {
#define FL_CHART_LCOL FL_LCOL
#define FL_CHART_ALIGN FL_ALIGN_BOTTOM
Fl_Chart::Fl_Chart(int x,int y,int w,int h,const char *l) :
Fl_Widget(x,y,w,h,l) {
Fl_Chart::Fl_Chart(int X, int Y, int W, int H,const char *l) :
Fl_Widget(X,Y,W,H,l) {
box(FL_BORDER_BOX);
align(FL_ALIGN_BOTTOM);
numb = 0;
@@ -325,36 +325,36 @@ void Fl_Chart::add(double val, const char *str, unsigned col) {
redraw();
}
void Fl_Chart::insert(int index, double val, const char *str, unsigned col) {
void Fl_Chart::insert(int ind, double val, const char *str, unsigned col) {
int i;
if (index < 1 || index > numb+1) return;
if (ind < 1 || ind > numb+1) return;
/* Allocate more entries if required */
if (numb >= sizenumb) {
sizenumb += FL_CHART_MAX;
entries = (FL_CHART_ENTRY *)realloc(entries, sizeof(FL_CHART_ENTRY) * (sizenumb + 1));
}
// Shift entries as needed
for (i=numb; i >= index; i--) entries[i] = entries[i-1];
for (i=numb; i >= ind; i--) entries[i] = entries[i-1];
if (numb < maxnumb || maxnumb == 0) numb++;
/* Fill in the new entry */
entries[index-1].val = float(val);
entries[index-1].col = col;
entries[ind-1].val = float(val);
entries[ind-1].col = col;
if (str) {
strlcpy(entries[index-1].str,str,FL_CHART_LABEL_MAX+1);
strlcpy(entries[ind-1].str,str,FL_CHART_LABEL_MAX+1);
} else {
entries[index-1].str[0] = 0;
entries[ind-1].str[0] = 0;
}
redraw();
}
void Fl_Chart::replace(int index,double val, const char *str, unsigned col) {
if (index < 1 || index > numb) return;
entries[index-1].val = float(val);
entries[index-1].col = col;
void Fl_Chart::replace(int ind,double val, const char *str, unsigned col) {
if (ind < 1 || ind > numb) return;
entries[ind-1].val = float(val);
entries[ind-1].col = col;
if (str) {
strlcpy(entries[index-1].str,str,FL_CHART_LABEL_MAX+1);
strlcpy(entries[ind-1].str,str,FL_CHART_LABEL_MAX+1);
} else {
entries[index-1].str[0] = 0;
entries[ind-1].str[0] = 0;
}
redraw();
}
@@ -380,5 +380,5 @@ void Fl_Chart::maxsize(int m) {
}
//
// End of "$Id: Fl_Chart.cxx,v 1.5.2.6.2.8 2002/06/09 18:18:50 spitzak Exp $".
// End of "$Id: Fl_Chart.cxx,v 1.5.2.6.2.9 2002/08/09 01:09:48 easysw Exp $".
//
+14 -14
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Check_Browser.cxx,v 1.1.2.4 2002/04/11 11:52:41 easysw Exp $"
// "$Id: Fl_Check_Browser.cxx,v 1.1.2.5 2002/08/09 01:09:48 easysw Exp $"
//
// Fl_Check_Browser header file for the Fast Light Tool Kit (FLTK).
//
@@ -82,8 +82,8 @@ int Fl_Check_Browser::lineno(cb_item *p0) const {
return 0;
}
Fl_Check_Browser::Fl_Check_Browser(int x, int y, int w, int h, const char *l)
: Fl_Browser_(x, y, w, h, l) {
Fl_Check_Browser::Fl_Check_Browser(int X, int Y, int W, int H, const char *l)
: Fl_Browser_(X, Y, W, H, l) {
type(FL_SELECT_BROWSER);
when(FL_WHEN_NEVER);
first = last = 0;
@@ -114,27 +114,27 @@ int Fl_Check_Browser::item_width(void *v) const {
return int(fl_width(((cb_item *)v)->text)) + CHECK_SIZE + 8;
}
void Fl_Check_Browser::item_draw(void *v, int x, int y, int, int) const {
void Fl_Check_Browser::item_draw(void *v, int X, int Y, int, int) const {
cb_item *i = (cb_item *)v;
char *s = i->text;
int size = textsize();
int tsize = textsize();
Fl_Color col = textcolor();
int cy = y + (size + 1 - CHECK_SIZE) / 2;
x += 2;
int cy = Y + (tsize + 1 - CHECK_SIZE) / 2;
X += 2;
fl_color(FL_BLACK);
fl_loop(x, cy, x, cy + CHECK_SIZE,
x + CHECK_SIZE, cy + CHECK_SIZE, x + CHECK_SIZE, cy);
fl_loop(X, cy, X, cy + CHECK_SIZE,
X + CHECK_SIZE, cy + CHECK_SIZE, X + CHECK_SIZE, cy);
if (i->checked) {
fl_line(x, cy, x + CHECK_SIZE, cy + CHECK_SIZE);
fl_line(x, cy + CHECK_SIZE, x + CHECK_SIZE, cy);
fl_line(X, cy, X + CHECK_SIZE, cy + CHECK_SIZE);
fl_line(X, cy + CHECK_SIZE, X + CHECK_SIZE, cy);
}
fl_font(textfont(), size);
fl_font(textfont(), tsize);
if (i->selected) {
col = fl_contrast(col, selection_color());
}
fl_color(col);
fl_draw(s, x + CHECK_SIZE + 8, y + size - 1);
fl_draw(s, X + CHECK_SIZE + 8, Y + tsize - 1);
}
void Fl_Check_Browser::item_select(void *v, int state) {
@@ -259,5 +259,5 @@ void Fl_Check_Browser::check_none() {
//
// End of "$Id: Fl_Check_Browser.cxx,v 1.1.2.4 2002/04/11 11:52:41 easysw Exp $".
// End of "$Id: Fl_Check_Browser.cxx,v 1.1.2.5 2002/08/09 01:09:48 easysw Exp $".
//
+3 -3
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Check_Button.cxx,v 1.4.2.3.2.3 2002/01/01 15:11:30 easysw Exp $"
// "$Id: Fl_Check_Button.cxx,v 1.4.2.3.2.4 2002/08/09 01:09:48 easysw Exp $"
//
// Check button widget for the Fast Light Tool Kit (FLTK).
//
@@ -30,8 +30,8 @@
// diamond is smaller than the widget size and can be surchecked by
// another box type, for compatability with Forms.
Fl_Check_Button::Fl_Check_Button(int x, int y, int w, int h, const char *l)
: Fl_Light_Button(x, y, w, h, l) {
Fl_Check_Button::Fl_Check_Button(int X, int Y, int W, int H, const char *l)
: Fl_Light_Button(X, Y, W, H, l) {
box(FL_NO_BOX);
down_box(FL_DOWN_BOX);
selection_color(FL_BLACK);
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Choice.cxx,v 1.10.2.5.2.10 2002/07/09 17:18:45 easysw Exp $"
// "$Id: Fl_Choice.cxx,v 1.10.2.5.2.11 2002/08/09 01:09:48 easysw Exp $"
//
// Choice widget for the Fast Light Tool Kit (FLTK).
//
@@ -74,8 +74,8 @@ void Fl_Choice::draw() {
draw_label();
}
Fl_Choice::Fl_Choice(int x,int y,int w,int h, const char *l)
: Fl_Menu_(x,y,w,h,l) {
Fl_Choice::Fl_Choice(int X, int Y, int W, int H, const char *l)
: Fl_Menu_(X,Y,W,H,l) {
align(FL_ALIGN_LEFT);
when(FL_WHEN_RELEASE);
textfont(FL_HELVETICA);
@@ -129,5 +129,5 @@ int Fl_Choice::handle(int e) {
}
//
// End of "$Id: Fl_Choice.cxx,v 1.10.2.5.2.10 2002/07/09 17:18:45 easysw Exp $".
// End of "$Id: Fl_Choice.cxx,v 1.10.2.5.2.11 2002/08/09 01:09:48 easysw Exp $".
//
+15 -15
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Clock.cxx,v 1.8.2.4.2.1 2002/01/01 15:11:30 easysw Exp $"
// "$Id: Fl_Clock.cxx,v 1.8.2.4.2.2 2002/08/09 01:09:48 easysw Exp $"
//
// Clock widget for the Fast Light Tool Kit (FLTK).
//
@@ -68,11 +68,11 @@ static void rect(double x, double y, double w, double h) {
fl_end_polygon();
}
void Fl_Clock_Output::draw(int x, int y, int w, int h) {
draw_box(box(), x, y, w, h, type()==FL_ROUND_CLOCK ? FL_GRAY : color());
void Fl_Clock_Output::draw(int X, int Y, int W, int H) {
draw_box(box(), X, Y, W, H, type()==FL_ROUND_CLOCK ? FL_GRAY : color());
fl_push_matrix();
fl_translate(x+w/2.0-.5, y+h/2.0-.5);
fl_scale((w-1)/28.0, (h-1)/28.0);
fl_translate(X+W/2.0-.5, Y+H/2.0-.5);
fl_scale((W-1)/28.0, (H-1)/28.0);
if (type() == FL_ROUND_CLOCK) {
fl_color(color());
fl_begin_polygon(); fl_circle(0,0,14); fl_end_polygon();
@@ -104,9 +104,9 @@ void Fl_Clock_Output::draw() {
draw_label();
}
void Fl_Clock_Output::value(int h, int m, int s) {
if (h!=hour_ || m!=minute_ || s!=second_) {
hour_ = h; minute_ = m; second_ = s;
void Fl_Clock_Output::value(int H, int m, int s) {
if (H!=hour_ || m!=minute_ || s!=second_) {
hour_ = H; minute_ = m; second_ = s;
damage(FL_DAMAGE_CHILD);
}
}
@@ -117,8 +117,8 @@ void Fl_Clock_Output::value(ulong v) {
value(timeofday->tm_hour, timeofday->tm_min, timeofday->tm_sec);
}
Fl_Clock_Output::Fl_Clock_Output(int x, int y, int w, int h, const char *l)
: Fl_Widget(x, y, w, h, l) {
Fl_Clock_Output::Fl_Clock_Output(int X, int Y, int W, int H, const char *l)
: Fl_Widget(X, Y, W, H, l) {
box(FL_UP_BOX);
selection_color(fl_gray_ramp(5));
align(FL_ALIGN_BOTTOM);
@@ -130,11 +130,11 @@ Fl_Clock_Output::Fl_Clock_Output(int x, int y, int w, int h, const char *l)
////////////////////////////////////////////////////////////////
Fl_Clock::Fl_Clock(int x, int y, int w, int h, const char *l)
: Fl_Clock_Output(x, y, w, h, l) {}
Fl_Clock::Fl_Clock(int X, int Y, int W, int H, const char *l)
: Fl_Clock_Output(X, Y, W, H, l) {}
Fl_Clock::Fl_Clock(uchar t, int x, int y, int w, int h, const char *l)
: Fl_Clock_Output(x, y, w, h, l) {
Fl_Clock::Fl_Clock(uchar t, int X, int Y, int W, int H, const char *l)
: Fl_Clock_Output(X, Y, W, H, l) {
type(t);
box(t==FL_ROUND_CLOCK ? FL_NO_BOX : FL_UP_BOX);
}
@@ -170,5 +170,5 @@ Fl_Clock::~Fl_Clock() {
}
//
// End of "$Id: Fl_Clock.cxx,v 1.8.2.4.2.1 2002/01/01 15:11:30 easysw Exp $".
// End of "$Id: Fl_Clock.cxx,v 1.8.2.4.2.2 2002/08/09 01:09:48 easysw Exp $".
//
+43 -43
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Color_Chooser.cxx,v 1.7.2.4.2.4 2002/04/11 10:46:19 easysw Exp $"
// "$Id: Fl_Color_Chooser.cxx,v 1.7.2.4.2.5 2002/08/09 01:09:48 easysw Exp $"
//
// Color chooser for the Fast Light Tool Kit (FLTK).
//
@@ -46,9 +46,9 @@
#define UPDATE_HUE_BOX 1
void Fl_Color_Chooser::hsv2rgb(
double H, double S, double V, double& r, double& g, double& b) {
double H, double S, double V, double& R, double& G, double& B) {
if (S < 5.0e-6) {
r = g = b = V;
R = G = B = V;
} else {
int i = (int)H;
double f = H - (float)i;
@@ -56,27 +56,27 @@ void Fl_Color_Chooser::hsv2rgb(
double p2 = V*(1.0-S*f);
double p3 = V*(1.0-S*(1.0-f));
switch (i) {
case 0: r = V; g = p3; b = p1; break;
case 1: r = p2; g = V; b = p1; break;
case 2: r = p1; g = V; b = p3; break;
case 3: r = p1; g = p2; b = V; break;
case 4: r = p3; g = p1; b = V; break;
case 5: r = V; g = p1; b = p2; break;
case 0: R = V; G = p3; B = p1; break;
case 1: R = p2; G = V; B = p1; break;
case 2: R = p1; G = V; B = p3; break;
case 3: R = p1; G = p2; B = V; break;
case 4: R = p3; G = p1; B = V; break;
case 5: R = V; G = p1; B = p2; break;
}
}
}
void Fl_Color_Chooser::rgb2hsv(
double r, double g, double b, double& H, double& S, double& V) {
double maxv = r > g ? r : g; if (b > maxv) maxv = b;
double R, double G, double B, double& H, double& S, double& V) {
double maxv = R > G ? R : G; if (B > maxv) maxv = B;
V = maxv;
if (maxv>0) {
double minv = r < g ? r : g; if (b < minv) minv = b;
double minv = R < G ? R : G; if (B < minv) minv = B;
S = 1.0 - double(minv)/maxv;
if (maxv > minv) {
if (maxv == r) {H = (g-b)/double(maxv-minv); if (H<0) H += 6.0;}
else if (maxv == g) H = 2.0+(b-r)/double(maxv-minv);
else H = 4.0+(r-g)/double(maxv-minv);
if (maxv == R) {H = (G-B)/double(maxv-minv); if (H<0) H += 6.0;}
else if (maxv == G) H = 2.0+(B-R)/double(maxv-minv);
else H = 4.0+(R-G)/double(maxv-minv);
}
}
}
@@ -117,13 +117,13 @@ void Fl_Color_Chooser::set_valuators() {
}
}
int Fl_Color_Chooser::rgb(double r, double g, double b) {
if (r == r_ && g == g_ && b == b_) return 0;
r_ = r; g_ = g; b_ = b;
int Fl_Color_Chooser::rgb(double R, double G, double B) {
if (R == r_ && G == g_ && B == b_) return 0;
r_ = R; g_ = G; b_ = B;
double ph = hue_;
double ps = saturation_;
double pv = value_;
rgb2hsv(r,g,b,hue_,saturation_,value_);
rgb2hsv(R,G,B,hue_,saturation_,value_);
set_valuators();
if (value_ != pv) {
#ifdef UPDATE_HUE_BOX
@@ -137,15 +137,15 @@ int Fl_Color_Chooser::rgb(double r, double g, double b) {
return 1;
}
int Fl_Color_Chooser::hsv(double h, double s, double v) {
h = fmod(h,6.0); if (h < 0.0) h += 6.0;
if (s < 0.0) s = 0.0; else if (s > 1.0) s = 1.0;
if (v < 0.0) v = 0.0; else if (v > 1.0) v = 1.0;
if (h == hue_ && s == saturation_ && v == value_) return 0;
int Fl_Color_Chooser::hsv(double H, double S, double V) {
H = fmod(H,6.0); if (H < 0.0) H += 6.0;
if (S < 0.0) S = 0.0; else if (S > 1.0) S = 1.0;
if (V < 0.0) V = 0.0; else if (V > 1.0) V = 1.0;
if (H == hue_ && S == saturation_ && V == value_) return 0;
double ph = hue_;
double ps = saturation_;
double pv = value_;
hue_ = h; saturation_ = s; value_ = v;
hue_ = H; saturation_ = S; value_ = V;
if (value_ != pv) {
#ifdef UPDATE_HUE_BOX
huebox.damage(FL_DAMAGE_SCROLL);
@@ -155,7 +155,7 @@ int Fl_Color_Chooser::hsv(double h, double s, double v) {
huebox.damage(FL_DAMAGE_EXPOSE);
valuebox.damage(FL_DAMAGE_SCROLL);
}
hsv2rgb(h,s,v,r_,g_,b_);
hsv2rgb(H,S,V,r_,g_,b_);
set_valuators();
return 1;
}
@@ -272,11 +272,11 @@ int Flcc_HueBox::handle_key(int key) {
void Flcc_HueBox::draw() {
if (damage()&FL_DAMAGE_ALL) draw_box();
int x1 = x()+Fl::box_dx(box());
int y1 = y()+Fl::box_dy(box());
int yy1 = y()+Fl::box_dy(box());
int w1 = w()-Fl::box_dw(box());
int h1 = h()-Fl::box_dh(box());
if (damage() == FL_DAMAGE_EXPOSE) fl_clip(x1+px,y1+py,6,6);
fl_draw_image(generate_image, this, x1, y1, w1, h1);
if (damage() == FL_DAMAGE_EXPOSE) fl_clip(x1+px,yy1+py,6,6);
fl_draw_image(generate_image, this, x1, yy1, w1, h1);
if (damage() == FL_DAMAGE_EXPOSE) fl_pop_clip();
Fl_Color_Chooser* c = (Fl_Color_Chooser*)parent();
#ifdef CIRCLE
@@ -289,7 +289,7 @@ void Flcc_HueBox::draw() {
if (X < 0) X = 0; else if (X > w1-6) X = w1-6;
if (Y < 0) Y = 0; else if (Y > h1-6) Y = h1-6;
// fl_color(c->value()>.75 ? FL_BLACK : FL_WHITE);
draw_box(FL_UP_BOX,x1+X,y1+Y,6,6,Fl::focus() == this ? FL_FOREGROUND_COLOR : FL_GRAY);
draw_box(FL_UP_BOX,x1+X,yy1+Y,6,6,Fl::focus() == this ? FL_FOREGROUND_COLOR : FL_GRAY);
px = X; py = Y;
}
@@ -342,15 +342,15 @@ void Flcc_ValueBox::draw() {
Fl_Color_Chooser* c = (Fl_Color_Chooser*)parent();
c->hsv2rgb(c->hue(),c->saturation(),1.0,tr,tg,tb);
int x1 = x()+Fl::box_dx(box());
int y1 = y()+Fl::box_dy(box());
int yy1 = y()+Fl::box_dy(box());
int w1 = w()-Fl::box_dw(box());
int h1 = h()-Fl::box_dh(box());
if (damage() == FL_DAMAGE_EXPOSE) fl_clip(x1,y1+py,w1,6);
fl_draw_image(generate_vimage, this, x1, y1, w1, h1);
if (damage() == FL_DAMAGE_EXPOSE) fl_clip(x1,yy1+py,w1,6);
fl_draw_image(generate_vimage, this, x1, yy1, w1, h1);
if (damage() == FL_DAMAGE_EXPOSE) fl_pop_clip();
int Y = int((1-c->value()) * (h1-6));
if (Y < 0) Y = 0; else if (Y > h1-6) Y = h1-6;
draw_box(FL_UP_BOX,x1,y1+Y,w1,6,Fl::focus() == this ? FL_FOREGROUND_COLOR : FL_GRAY);
draw_box(FL_UP_BOX,x1,yy1+Y,w1,6,Fl::focus() == this ? FL_FOREGROUND_COLOR : FL_GRAY);
py = Y;
}
@@ -383,19 +383,19 @@ int Flcc_ValueBox::handle_key(int key) {
void Fl_Color_Chooser::rgb_cb(Fl_Widget* o, void*) {
Fl_Color_Chooser* c = (Fl_Color_Chooser*)(o->parent());
double r = c->rvalue.value();
double g = c->gvalue.value();
double b = c->bvalue.value();
double R = c->rvalue.value();
double G = c->gvalue.value();
double B = c->bvalue.value();
if (c->mode() == M_HSV) {
if (c->hsv(r,g,b)) c->do_callback();
if (c->hsv(R,G,B)) c->do_callback();
return;
}
if (c->mode() != M_RGB) {
r = r/255;
g = g/255;
b = b/255;
R = R/255;
G = G/255;
B = B/255;
}
if (c->rgb(r,g,b)) c->do_callback();
if (c->rgb(R,G,B)) c->do_callback();
}
void Fl_Color_Chooser::mode_cb(Fl_Widget* o, void*) {
@@ -521,5 +521,5 @@ int fl_color_chooser(const char* name, uchar& r, uchar& g, uchar& b) {
}
//
// End of "$Id: Fl_Color_Chooser.cxx,v 1.7.2.4.2.4 2002/04/11 10:46:19 easysw Exp $".
// End of "$Id: Fl_Color_Chooser.cxx,v 1.7.2.4.2.5 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Counter.cxx,v 1.8.2.3.2.9 2002/05/24 14:19:19 easysw Exp $"
// "$Id: Fl_Counter.cxx,v 1.8.2.3.2.10 2002/08/09 01:09:48 easysw Exp $"
//
// Counter widget for the Fast Light Tool Kit (FLTK).
//
@@ -173,8 +173,8 @@ Fl_Counter::~Fl_Counter() {
Fl::remove_timeout(repeat_callback, this);
}
Fl_Counter::Fl_Counter(int x, int y, int w, int h, const char* l)
: Fl_Valuator(x, y, w, h, l) {
Fl_Counter::Fl_Counter(int X, int Y, int W, int H, const char* l)
: Fl_Valuator(X, Y, W, H, l) {
box(FL_UP_BOX);
selection_color(FL_INACTIVE_COLOR); // was FL_BLUE
align(FL_ALIGN_BOTTOM);
@@ -188,5 +188,5 @@ Fl_Counter::Fl_Counter(int x, int y, int w, int h, const char* l)
}
//
// End of "$Id: Fl_Counter.cxx,v 1.8.2.3.2.9 2002/05/24 14:19:19 easysw Exp $".
// End of "$Id: Fl_Counter.cxx,v 1.8.2.3.2.10 2002/08/09 01:09:48 easysw Exp $".
//
+20 -20
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Dial.cxx,v 1.12.2.3.2.3 2002/05/12 11:12:56 easysw Exp $"
// "$Id: Fl_Dial.cxx,v 1.12.2.3.2.4 2002/08/09 01:09:48 easysw Exp $"
//
// Circular dial widget for the Fast Light Tool Kit (FLTK).
//
@@ -31,34 +31,34 @@
// All angles are measured with 0 to the right and counter-clockwise
void Fl_Dial::draw(int x, int y, int w, int h) {
if (damage()&FL_DAMAGE_ALL) draw_box(box(), x, y, w, h, color());
x += Fl::box_dx(box());
y += Fl::box_dy(box());
w -= Fl::box_dw(box());
h -= Fl::box_dh(box());
void Fl_Dial::draw(int X, int Y, int W, int H) {
if (damage()&FL_DAMAGE_ALL) draw_box(box(), X, Y, W, H, color());
X += Fl::box_dx(box());
Y += Fl::box_dy(box());
W -= Fl::box_dw(box());
H -= Fl::box_dh(box());
double angle = (a2-a1)*(value()-minimum())/(maximum()-minimum()) + a1;
if (type() == FL_FILL_DIAL) {
// foo: draw this nicely in certain round box types
int foo = (box() > _FL_ROUND_UP_BOX && Fl::box_dx(box()));
if (foo) {x--; y--; w+=2; h+=2;}
if (foo) {X--; Y--; W+=2; H+=2;}
fl_color(color());
fl_pie(x, y, w-1, h-1, 270-a1, angle > a1 ? 360+270-angle : 270-360-angle);
fl_pie(X, Y, W-1, H-1, 270-a1, angle > a1 ? 360+270-angle : 270-360-angle);
fl_color(selection_color());
fl_pie(x, y, w-1, h-1, 270-angle, 270-a1);
fl_pie(X, Y, W-1, H-1, 270-angle, 270-a1);
if (foo) {
fl_color(FL_FOREGROUND_COLOR);
fl_arc(x, y, w, h, 0, 360);
fl_arc(X, Y, W, H, 0, 360);
}
return;
}
if (!(damage()&FL_DAMAGE_ALL)) {
fl_color(color());
fl_pie(x+1, y+1, w-2, h-2, 0, 360);
fl_pie(X+1, Y+1, W-2, H-2, 0, 360);
}
fl_push_matrix();
fl_translate(x+w/2-.5, y+h/2-.5);
fl_scale(w-1, h-1);
fl_translate(X+W/2-.5, Y+H/2-.5);
fl_scale(W-1, H-1);
fl_rotate(45-angle);
fl_color(selection_color());
if (type()) { // FL_LINE_DIAL
@@ -88,13 +88,13 @@ void Fl_Dial::draw() {
draw_label();
}
int Fl_Dial::handle(int event, int x, int y, int w, int h) {
int Fl_Dial::handle(int event, int X, int Y, int W, int H) {
switch (event) {
case FL_PUSH:
handle_push();
case FL_DRAG: {
int mx = Fl::event_x()-x-w/2;
int my = Fl::event_y()-y-h/2;
int mx = Fl::event_x()-X-W/2;
int my = Fl::event_y()-Y-H/2;
if (!mx && !my) return 1;
double angle = 270-atan2((float)-my, (float)mx)*180/M_PI;
double oldangle = (a2-a1)*(value()-minimum())/(maximum()-minimum()) + a1;
@@ -125,8 +125,8 @@ int Fl_Dial::handle(int e) {
return handle(e, x(), y(), w(), h());
}
Fl_Dial::Fl_Dial(int x, int y, int w, int h, const char* l)
: Fl_Valuator(x, y, w, h, l) {
Fl_Dial::Fl_Dial(int X, int Y, int W, int H, const char* l)
: Fl_Valuator(X, Y, W, H, l) {
box(FL_OVAL_BOX);
selection_color(FL_INACTIVE_COLOR); // was 37
a1 = 45;
@@ -134,5 +134,5 @@ Fl_Dial::Fl_Dial(int x, int y, int w, int h, const char* l)
}
//
// End of "$Id: Fl_Dial.cxx,v 1.12.2.3.2.3 2002/05/12 11:12:56 easysw Exp $".
// End of "$Id: Fl_Dial.cxx,v 1.12.2.3.2.4 2002/08/09 01:09:48 easysw Exp $".
//
+37 -37
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Browser.cxx,v 1.1.2.20 2002/07/17 15:23:58 easysw Exp $"
// "$Id: Fl_File_Browser.cxx,v 1.1.2.21 2002/08/09 01:09:48 easysw Exp $"
//
// Fl_File_Browser routines.
//
@@ -115,7 +115,7 @@ int // O - Height in pixels
Fl_File_Browser::item_height(void *p) const // I - List item data
{
FL_BLINE *line; // Pointer to line
char *text; // Pointer into text
char *t; // Pointer into text
int height; // Width of line
int textheight; // Height of text
@@ -131,8 +131,8 @@ Fl_File_Browser::item_height(void *p) const // I - List item data
line = (FL_BLINE *)p;
if (line != NULL)
for (text = line->txt; *text != '\0'; text ++)
if (*text == '\n')
for (t = line->txt; *t != '\0'; t ++)
if (*t == '\n')
height += textheight;
// If we have enabled icons then add space for them...
@@ -156,7 +156,7 @@ Fl_File_Browser::item_width(void *p) const // I - List item data
{
int i; // Looping var
FL_BLINE *line; // Pointer to line
char *text, // Pointer into text
char *t, // Pointer into text
*ptr, // Pointer into fragment
fragment[10240]; // Fragment of text
int width, // Width of line
@@ -185,8 +185,8 @@ Fl_File_Browser::item_width(void *p) const // I - List item data
tempwidth = 0;
column = 0;
for (text = line->txt, ptr = fragment; *text != '\0'; text ++)
if (*text == '\n')
for (t = line->txt, ptr = fragment; *t != '\0'; t ++)
if (*t == '\n')
{
// Newline - nul terminate this fragment and get the width...
*ptr = '\0';
@@ -202,7 +202,7 @@ Fl_File_Browser::item_width(void *p) const // I - List item data
tempwidth = 0;
column = 0;
}
else if (*text == column_char())
else if (*t == column_char())
{
// Advance to the next column...
column ++;
@@ -220,7 +220,7 @@ Fl_File_Browser::item_width(void *p) const // I - List item data
ptr = fragment;
}
else
*ptr++ = *text;
*ptr++ = *t;
if (ptr > fragment)
{
@@ -253,15 +253,15 @@ Fl_File_Browser::item_width(void *p) const // I - List item data
void
Fl_File_Browser::item_draw(void *p, // I - List item data
int x, // I - Upper-lefthand X coordinate
int y, // I - Upper-lefthand Y coordinate
int w, // I - Width of item
int h) const// I - Height of item
int X, // I - Upper-lefthand X coordinate
int Y, // I - Upper-lefthand Y coordinate
int W, // I - Width of item
int H) const// I - Height of item
{
int i; // Looping var
FL_BLINE *line; // Pointer to line
Fl_Color c; // Text color
char *text, // Pointer into text
char *t, // Pointer into text
*ptr, // Pointer into fragment
fragment[10240]; // Fragment of text
int width, // Width of line
@@ -288,31 +288,31 @@ Fl_File_Browser::item_draw(void *p, // I - List item data
if (Fl_File_Icon::first() == NULL)
{
// No icons, just draw the text...
x ++;
w -= 2;
X ++;
W -= 2;
}
else
{
// Draw the icon if it is set...
if (line->data)
((Fl_File_Icon *)line->data)->draw(x, y, iconsize_, iconsize_,
((Fl_File_Icon *)line->data)->draw(X, Y, iconsize_, iconsize_,
(line->flags & SELECTED) ? FL_YELLOW :
FL_LIGHT2,
active_r());
// Draw the text offset to the right...
x += iconsize_ + 9;
w -= iconsize_ - 10;
X += iconsize_ + 9;
W -= iconsize_ - 10;
// Center the text vertically...
height = fl_height();
for (text = line->txt; *text != '\0'; text ++)
if (*text == '\n')
for (t = line->txt; *t != '\0'; t ++)
if (*t == '\n')
height += fl_height();
if (height < iconsize_)
y += (iconsize_ - height) / 2;
Y += (iconsize_ - height) / 2;
}
// Draw the text...
@@ -326,27 +326,27 @@ Fl_File_Browser::item_draw(void *p, // I - List item data
else
fl_color(fl_inactive(c));
for (text = line->txt, ptr = fragment; *text != '\0'; text ++)
if (*text == '\n')
for (t = line->txt, ptr = fragment; *t != '\0'; t ++)
if (*t == '\n')
{
// Newline - nul terminate this fragment and draw it...
*ptr = '\0';
fl_draw(fragment, x + width, y, w - width, fl_height(),
fl_draw(fragment, X + width, Y, W - width, fl_height(),
(Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_CLIP), 0, 0);
// Point back to the start of the fragment...
ptr = fragment;
width = 0;
y += fl_height();
Y += fl_height();
column = 0;
}
else if (*text == column_char())
else if (*t == column_char())
{
// Tab - nul terminate this fragment and draw it...
*ptr = '\0';
int cW = w - width; // Clip width...
int cW = W - width; // Clip width...
if (columns)
{
@@ -357,7 +357,7 @@ Fl_File_Browser::item_draw(void *p, // I - List item data
cW = columns[i];
}
fl_draw(fragment, x + width, y, cW, fl_height(),
fl_draw(fragment, X + width, Y, cW, fl_height(),
(Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_CLIP), 0, 0);
// Advance to the next column...
@@ -373,14 +373,14 @@ Fl_File_Browser::item_draw(void *p, // I - List item data
ptr = fragment;
}
else
*ptr++ = *text;
*ptr++ = *t;
if (ptr > fragment)
{
// Nul terminate this fragment and draw it...
*ptr = '\0';
fl_draw(fragment, x + width, y, w - width, fl_height(),
fl_draw(fragment, X + width, Y, W - width, fl_height(),
(Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_CLIP), 0, 0);
}
}
@@ -390,12 +390,12 @@ Fl_File_Browser::item_draw(void *p, // I - List item data
// 'Fl_File_Browser::Fl_File_Browser()' - Create a Fl_File_Browser widget.
//
Fl_File_Browser::Fl_File_Browser(int x, // I - Upper-lefthand X coordinate
int y, // I - Upper-lefthand Y coordinate
int w, // I - Width in pixels
int h, // I - Height in pixels
Fl_File_Browser::Fl_File_Browser(int X, // I - Upper-lefthand X coordinate
int Y, // I - Upper-lefthand Y coordinate
int W, // I - Width in pixels
int H, // I - Height in pixels
const char *l) // I - Label text
: Fl_Browser(x, y, w, h, l)
: Fl_Browser(X, Y, W, H, l)
{
// Initialize the filter pattern, current directory, and icon size...
pattern_ = "*";
@@ -645,5 +645,5 @@ Fl_File_Browser::filter(const char *pattern) // I - Pattern string
//
// End of "$Id: Fl_File_Browser.cxx,v 1.1.2.20 2002/07/17 15:23:58 easysw Exp $".
// End of "$Id: Fl_File_Browser.cxx,v 1.1.2.21 2002/08/09 01:09:48 easysw Exp $".
//
+22 -22
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.22 2002/08/05 17:50:25 easysw Exp $"
// "$Id: Fl_File_Chooser2.cxx,v 1.1.2.23 2002/08/09 01:09:48 easysw Exp $"
//
// More Fl_File_Chooser routines.
//
@@ -110,7 +110,7 @@ int // O - Number of selected files
Fl_File_Chooser::count()
{
int i; // Looping var
int count; // Number of selected files
int fcount; // Number of selected files
const char *filename; // Filename in input field or list
char pathname[1024]; // Full path to file
@@ -126,7 +126,7 @@ Fl_File_Chooser::count()
return (strcmp(filename, directory_) != 0);
}
for (i = 1, count = 0; i <= fileList->size(); i ++)
for (i = 1, fcount = 0; i <= fileList->size(); i ++)
if (fileList->selected(i))
{
// See if this file is a directory...
@@ -137,10 +137,10 @@ Fl_File_Chooser::count()
strlcpy(pathname, filename, sizeof(pathname));
if (!fl_filename_isdir(pathname))
count ++;
fcount ++;
}
return (count);
return (fcount);
}
@@ -209,19 +209,19 @@ Fl_File_Chooser::directory(const char *d)// I - Directory to change to
void
Fl_File_Chooser::favoritesButtonCB()
{
int value; // Current selection
int v; // Current selection
char pathname[1024], // Pathname
menuname[2048]; // Menu name
value = favoritesButton->value();
v = favoritesButton->value();
if (!value) {
if (!v) {
// Add current directory to favorites...
if (getenv("HOME")) value = favoritesButton->size() - 5;
else value = favoritesButton->size() - 4;
if (getenv("HOME")) v = favoritesButton->size() - 5;
else v = favoritesButton->size() - 4;
sprintf(menuname, "favorite%02d", value);
sprintf(menuname, "favorite%02d", v);
prefs_.set(menuname, directory_);
@@ -231,14 +231,14 @@ Fl_File_Chooser::favoritesButtonCB()
if (favoritesButton->size() > 104) {
((Fl_Menu_Item *)favoritesButton->menu())[0].deactivate();
}
} else if (value == 1) {
} else if (v == 1) {
// Manage favorites...
favoritesCB(0);
} else if (value == 2) {
} else if (v == 2) {
// Filesystems/My Computer
directory("");
} else {
unquote_pathname(pathname, favoritesButton->text(value), sizeof(pathname));
unquote_pathname(pathname, favoritesButton->text(v), sizeof(pathname));
directory(pathname);
}
}
@@ -986,7 +986,7 @@ const char * // O - Filename or NULL
Fl_File_Chooser::value(int f) // I - File number
{
int i; // Looping var
int count; // Number of selected files
int fcount; // Number of selected files
const char *name; // Current filename
char *slash; // Trailing slash, if any
static char pathname[1024]; // Filename + directory
@@ -1006,7 +1006,7 @@ Fl_File_Chooser::value(int f) // I - File number
} else return name;
}
for (i = 1, count = 0; i <= fileList->size(); i ++)
for (i = 1, fcount = 0; i <= fileList->size(); i ++)
if (fileList->selected(i)) {
// See if this file is a directory...
name = fileList->text(i);
@@ -1019,8 +1019,8 @@ Fl_File_Chooser::value(int f) // I - File number
if (!fl_filename_isdir(pathname)) {
// Nope, see if this this is "the one"...
count ++;
if (count == f) return (pathname);
fcount ++;
if (fcount == f) return (pathname);
}
}
@@ -1036,7 +1036,7 @@ void
Fl_File_Chooser::value(const char *filename) // I - Filename + directory
{
int i, // Looping var
count; // Number of items in list
fcount; // Number of items in list
char *slash; // Directory separator
char pathname[1024]; // Local copy of filename
@@ -1081,12 +1081,12 @@ Fl_File_Chooser::value(const char *filename) // I - Filename + directory
okButton->activate();
// Then find the file in the file list and select it...
count = fileList->size();
fcount = fileList->size();
fileList->deselect(0);
fileList->redraw();
for (i = 1; i <= count; i ++)
for (i = 1; i <= fcount; i ++)
#if defined(WIN32) || defined(__EMX__)
if (strcasecmp(fileList->text(i), slash) == 0) {
#else
@@ -1143,5 +1143,5 @@ unquote_pathname(char *dst, // O - Destination string
//
// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.22 2002/08/05 17:50:25 easysw Exp $".
// End of "$Id: Fl_File_Chooser2.cxx,v 1.1.2.23 2002/08/09 01:09:48 easysw Exp $".
//
+7 -9
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Icon2.cxx,v 1.1.2.15 2002/06/28 21:04:36 easysw Exp $"
// "$Id: Fl_File_Icon2.cxx,v 1.1.2.16 2002/08/09 01:09:48 easysw Exp $"
//
// Fl_File_Icon system icon routines.
//
@@ -777,9 +777,7 @@ load_kde_icons(const char *directory) // I - Directory to load
{
if (entries[i]->d_name[0] != '.')
{
strcpy(full, directory);
strcat(full,"/");
strcat(full, entries[i]->d_name);
snprintf(full, sizeof(full), "%s/%s", directory, entries[i]->d_name);
if (fl_filename_isdir(full))
load_kde_icons(full);
@@ -820,11 +818,11 @@ load_kde_mimelnk(const char *filename)
while (fgets(tmp, sizeof(tmp), fp))
{
if ((val = get_kde_val(tmp, "Icon")) != NULL)
strcpy(iconfilename, val);
strlcpy(iconfilename, val, sizeof(iconfilename));
else if ((val = get_kde_val(tmp, "MimeType")) != NULL)
strcpy(mimetype, val);
strlcpy(mimetype, val, sizeof(mimetype));
else if ((val = get_kde_val(tmp, "Patterns")) != NULL)
strcpy(pattern, val);
strlcpy(pattern, val, sizeof(pattern));
}
fclose(fp);
@@ -902,7 +900,7 @@ kde_to_fltk_pattern(const char *kdepattern)
pattern = (char *)malloc(strlen(kdepattern) + 3);
strcpy(pattern, "{");
strcat(pattern, kdepattern);
strcpy(pattern + 1, kdepattern);
if (pattern[strlen(pattern) - 1] == ';')
pattern[strlen(pattern) - 1] = '\0';
@@ -944,5 +942,5 @@ get_kde_val(char *str,
//
// End of "$Id: Fl_File_Icon2.cxx,v 1.1.2.15 2002/06/28 21:04:36 easysw Exp $".
// End of "$Id: Fl_File_Icon2.cxx,v 1.1.2.16 2002/08/09 01:09:48 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_File_Input.cxx,v 1.1.2.5 2002/07/30 18:40:50 easysw Exp $"
// "$Id: Fl_File_Input.cxx,v 1.1.2.6 2002/08/09 01:09:48 easysw Exp $"
//
// File_Input header file for the Fast Light Tool Kit (FLTK).
//
@@ -49,8 +49,8 @@
// 'Fl_File_Input::Fl_File_Input()' - Create a Fl_File_Input widget.
//
Fl_File_Input::Fl_File_Input(int x, int y, int w, int h, const char *l)
: Fl_Input(x, y, w, h, l) {
Fl_File_Input::Fl_File_Input(int X, int Y, int W, int H, const char *l)
: Fl_Input(X, Y, W, H, l) {
buttons_[0] = 0;
errorcolor_ = FL_RED;
ok_entry_ = 1;
@@ -270,5 +270,5 @@ Fl_File_Input::handle_button(int event) // I - Event
//
// End of "$Id: Fl_File_Input.cxx,v 1.1.2.5 2002/07/30 18:40:50 easysw Exp $".
// End of "$Id: Fl_File_Input.cxx,v 1.1.2.6 2002/08/09 01:09:48 easysw Exp $".
//
+3 -2
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Font.H,v 1.6.2.3.2.2 2002/03/06 18:11:01 easysw Exp $"
// "$Id: Fl_Font.H,v 1.6.2.3.2.3 2002/08/09 01:09:48 easysw Exp $"
//
// Font definitions for the Fast Light Tool Kit (FLTK).
//
@@ -75,6 +75,7 @@ extern FL_EXPORT Fl_FontSize *fl_fontsize; // the currently selected one
struct Fl_Fontdesc {
const char *name;
char fontname[128]; // "Pretty" font name
Fl_FontSize *first; // linked list of sizes of this style
# ifndef WIN32
char **xlist; // matched X font names
@@ -93,5 +94,5 @@ FL_EXPORT char *fl_find_fontsize(char *name);
#endif
//
// End of "$Id: Fl_Font.H,v 1.6.2.3.2.2 2002/03/06 18:11:01 easysw Exp $".
// End of "$Id: Fl_Font.H,v 1.6.2.3.2.3 2002/08/09 01:09:48 easysw Exp $".
//
+45 -45
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Group.cxx,v 1.8.2.8.2.17 2002/07/30 18:40:50 easysw Exp $"
// "$Id: Fl_Group.cxx,v 1.8.2.8.2.18 2002/08/09 01:09:48 easysw Exp $"
//
// Group widget for the Fast Light Tool Kit (FLTK).
//
@@ -484,35 +484,35 @@ void Fl_Group::resize(int X, int Y, int W, int H) {
for (int i=children_; i--;) {
Fl_Widget* o = *a++;
#if 1
int X = *p++;
if (X >= IR) X += dw;
else if (X > IX) X = IX+((X-IX)*(IR+dw-IX)+(IR-IX)/2)/(IR-IX);
int XX = *p++;
if (XX >= IR) XX += dw;
else if (XX > IX) XX = IX+((XX-IX)*(IR+dw-IX)+(IR-IX)/2)/(IR-IX);
int R = *p++;
if (R >= IR) R += dw;
else if (R > IX) R = IX+((R-IX)*(IR+dw-IX)+(IR-IX)/2)/(IR-IX);
int Y = *p++;
if (Y >= IB) Y += dh;
else if (Y > IY) Y = IY+((Y-IY)*(IB+dh-IY)+(IB-IY)/2)/(IB-IY);
int YY = *p++;
if (YY >= IB) YY += dh;
else if (YY > IY) YY = IY+((YY-IY)*(IB+dh-IY)+(IB-IY)/2)/(IB-IY);
int B = *p++;
if (B >= IB) B += dh;
else if (B > IY) B = IY+((B-IY)*(IB+dh-IY)+(IB-IY)/2)/(IB-IY);
#else // much simpler code from Francois Ostiguy:
int X = *p++;
if (X >= IR) X += dw;
else if (X > IX) X = X + dw * (X-IX)/(IR-IX);
int XX = *p++;
if (XX >= IR) XX += dw;
else if (XX > IX) XX += dw * (XX-IX)/(IR-IX);
int R = *p++;
if (R >= IR) R += dw;
else if (R > IX) R = R + dw * (R-IX)/(IR-IX);
int Y = *p++;
if (Y >= IB) Y += dh;
else if (Y > IY) Y = Y + dh*(Y-IY)/(IB-IY);
int YY = *p++;
if (YY >= IB) YY += dh;
else if (YY > IY) YY = YY + dh*(YY-IY)/(IB-IY);
int B = *p++;
if (B >= IB) B += dh;
else if (B > IY) B = B + dh*(B-IY)/(IB-IY);
#endif
o->resize(X+dx, Y+dy, R-X, B-Y);
o->resize(XX+dx, YY+dy, R-XX, B-YY);
}
}
@@ -535,57 +535,57 @@ void Fl_Group::draw() {
}
// Draw a child only if it needs it:
void Fl_Group::update_child(Fl_Widget& w) const {
if (w.damage() && w.visible() && w.type() < FL_WINDOW &&
fl_not_clipped(w.x(), w.y(), w.w(), w.h())) {
w.draw();
w.clear_damage();
void Fl_Group::update_child(Fl_Widget& widget) const {
if (widget.damage() && widget.visible() && widget.type() < FL_WINDOW &&
fl_not_clipped(widget.x(), widget.y(), widget.w(), widget.h())) {
widget.draw();
widget.clear_damage();
}
}
// Force a child to redraw:
void Fl_Group::draw_child(Fl_Widget& w) const {
if (w.visible() && w.type() < FL_WINDOW &&
fl_not_clipped(w.x(), w.y(), w.w(), w.h())) {
w.clear_damage(FL_DAMAGE_ALL);
w.draw();
w.clear_damage();
void Fl_Group::draw_child(Fl_Widget& widget) const {
if (widget.visible() && widget.type() < FL_WINDOW &&
fl_not_clipped(widget.x(), widget.y(), widget.w(), widget.h())) {
widget.clear_damage(FL_DAMAGE_ALL);
widget.draw();
widget.clear_damage();
}
}
extern char fl_draw_shortcut;
// Parents normally call this to draw outside labels:
void Fl_Group::draw_outside_label(const Fl_Widget& w) const {
if (!w.visible()) return;
void Fl_Group::draw_outside_label(const Fl_Widget& widget) const {
if (!widget.visible()) return;
// skip any labels that are inside the widget:
if (!(w.align()&15) || (w.align() & FL_ALIGN_INSIDE)) return;
if (!(widget.align()&15) || (widget.align() & FL_ALIGN_INSIDE)) return;
// invent a box that is outside the widget:
int align = w.align();
int X = w.x();
int Y = w.y();
int W = w.w();
int H = w.h();
if (align & FL_ALIGN_TOP) {
align ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP);
int a = widget.align();
int X = widget.x();
int Y = widget.y();
int W = widget.w();
int H = widget.h();
if (a & FL_ALIGN_TOP) {
a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP);
Y = y();
H = w.y()-Y;
} else if (align & FL_ALIGN_BOTTOM) {
align ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP);
H = widget.y()-Y;
} else if (a & FL_ALIGN_BOTTOM) {
a ^= (FL_ALIGN_BOTTOM|FL_ALIGN_TOP);
Y = Y+H;
H = y()+h()-Y;
} else if (align & FL_ALIGN_LEFT) {
align ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT);
} else if (a & FL_ALIGN_LEFT) {
a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT);
X = x();
W = w.x()-X-3;
} else if (align & FL_ALIGN_RIGHT) {
align ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT);
W = widget.x()-X-3;
} else if (a & FL_ALIGN_RIGHT) {
a ^= (FL_ALIGN_LEFT|FL_ALIGN_RIGHT);
X = X+W+3;
W = x()+this->w()-X;
}
w.draw_label(X,Y,W,H,(Fl_Align)align);
widget.draw_label(X,Y,W,H,(Fl_Align)a);
}
//
// End of "$Id: Fl_Group.cxx,v 1.8.2.8.2.17 2002/07/30 18:40:50 easysw Exp $".
// End of "$Id: Fl_Group.cxx,v 1.8.2.8.2.18 2002/08/09 01:09:48 easysw Exp $".
//
+172 -165
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.22 2002/08/05 17:50:25 easysw Exp $"
// "$Id: Fl_Image.cxx,v 1.5.2.3.2.23 2002/08/09 01:09:49 easysw Exp $"
//
// Image drawing code for the Fast Light Tool Kit (FLTK).
//
@@ -67,8 +67,8 @@ void Fl_Image::color_average(Fl_Color, float) {
void Fl_Image::desaturate() {
}
void Fl_Image::label(Fl_Widget* w) {
w->image(this);
void Fl_Image::label(Fl_Widget* widget) {
widget->image(this);
}
void Fl_Image::label(Fl_Menu_Item* m) {
@@ -380,8 +380,8 @@ void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
#endif
}
void Fl_RGB_Image::label(Fl_Widget* w) {
w->image(this);
void Fl_RGB_Image::label(Fl_Widget* widget) {
widget->image(this);
}
void Fl_RGB_Image::label(Fl_Menu_Item* m) {
@@ -391,5 +391,5 @@ void Fl_RGB_Image::label(Fl_Menu_Item* m) {
//
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.22 2002/08/05 17:50:25 easysw Exp $".
// End of "$Id: Fl_Image.cxx,v 1.5.2.3.2.23 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Input.cxx,v 1.10.2.15.2.12 2002/07/20 05:56:44 easysw Exp $"
// "$Id: Fl_Input.cxx,v 1.10.2.15.2.13 2002/08/09 01:09:49 easysw Exp $"
//
// Input widget for the Fast Light Tool Kit (FLTK).
//
@@ -388,10 +388,10 @@ int Fl_Input::handle(int event) {
w()-Fl::box_dw(b), h()-Fl::box_dh(b));
}
Fl_Input::Fl_Input(int x, int y, int w, int h, const char *l)
: Fl_Input_(x, y, w, h, l) {
Fl_Input::Fl_Input(int X, int Y, int W, int H, const char *l)
: Fl_Input_(X, Y, W, H, l) {
}
//
// End of "$Id: Fl_Input.cxx,v 1.10.2.15.2.12 2002/07/20 05:56:44 easysw Exp $".
// End of "$Id: Fl_Input.cxx,v 1.10.2.15.2.13 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Input_.cxx,v 1.21.2.11.2.19 2002/07/30 18:40:50 easysw Exp $"
// "$Id: Fl_Input_.cxx,v 1.21.2.11.2.20 2002/08/09 01:09:49 easysw Exp $"
//
// Common input widget routines for the Fast Light Tool Kit (FLTK).
//
@@ -749,8 +749,8 @@ int Fl_Input_::handletext(int event, int X, int Y, int W, int H) {
/*------------------------------*/
Fl_Input_::Fl_Input_(int x, int y, int w, int h, const char* l)
: Fl_Widget(x, y, w, h, l) {
Fl_Input_::Fl_Input_(int X, int Y, int W, int H, const char* l)
: Fl_Widget(X, Y, W, H, l) {
box(FL_DOWN_BOX);
color(FL_BACKGROUND2_COLOR, FL_SELECTION_COLOR);
align(FL_ALIGN_LEFT);
@@ -848,5 +848,5 @@ Fl_Input_::~Fl_Input_() {
}
//
// End of "$Id: Fl_Input_.cxx,v 1.21.2.11.2.19 2002/07/30 18:40:50 easysw Exp $".
// End of "$Id: Fl_Input_.cxx,v 1.21.2.11.2.20 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Light_Button.cxx,v 1.4.2.3.2.19 2002/07/24 12:16:57 easysw Exp $"
// "$Id: Fl_Light_Button.cxx,v 1.4.2.3.2.20 2002/08/09 01:09:49 easysw Exp $"
//
// Lighted button widget for the Fast Light Tool Kit (FLTK).
//
@@ -134,13 +134,13 @@ int Fl_Light_Button::handle(int event) {
}
}
Fl_Light_Button::Fl_Light_Button(int x, int y, int w, int h, const char* l)
: Fl_Button(x, y, w, h, l) {
Fl_Light_Button::Fl_Light_Button(int X, int Y, int W, int H, const char* l)
: Fl_Button(X, Y, W, H, l) {
type(FL_TOGGLE_BUTTON);
selection_color(FL_YELLOW);
align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
}
//
// End of "$Id: Fl_Light_Button.cxx,v 1.4.2.3.2.19 2002/07/24 12:16:57 easysw Exp $".
// End of "$Id: Fl_Light_Button.cxx,v 1.4.2.3.2.20 2002/08/09 01:09:49 easysw Exp $".
//
+108 -110
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Menu.cxx,v 1.18.2.12.2.16 2002/07/24 12:16:57 easysw Exp $"
// "$Id: Fl_Menu.cxx,v 1.18.2.12.2.17 2002/08/09 01:09:49 easysw Exp $"
//
// Menu code for the Fast Light Tool Kit (FLTK).
//
@@ -266,8 +266,8 @@ menuwindow::menuwindow(const Fl_Menu_Item* m, int X, int Y, int Wp, int Hp,
if (t) Wtitle = t->measure(&Htitle, button) + 12;
int W = 0;
if (m) for (; m->text; m = m->next()) {
int h; int w1 = m->measure(&h, button);
if (h+LEADING>itemheight) itemheight = h+LEADING;
int hh; int w1 = m->measure(&hh, button);
if (hh+LEADING>itemheight) itemheight = hh+LEADING;
if (m->flags&(FL_SUBMENU|FL_SUBMENU_POINTER)) w1 += 14;
if (w1 > W) W = w1;
if (m->shortcut_) {
@@ -324,42 +324,41 @@ void menuwindow::autoscroll(int n) {
////////////////////////////////////////////////////////////////
void menuwindow::drawentry(const Fl_Menu_Item* m, int n, int erase) {
void menuwindow::drawentry(const Fl_Menu_Item* m, int n, int eraseit) {
if (!m) return; // this happens if -1 is selected item and redrawn
int BW = Fl::box_dx(box());
int x = BW;
int W = this->w();
int w = W-2*BW-1;
int y = BW+1+n*itemheight;
int h = itemheight - LEADING;
int xx = BW;
int W = w();
int ww = W-2*BW-1;
int yy = BW+1+n*itemheight;
int hh = itemheight - LEADING;
if (erase && n != selected) {
if (eraseit && n != selected) {
fl_color(button && !Fl::scheme() ? button->color() : FL_GRAY);
fl_rectf(x+1, y-(LEADING-2)/2, w-2, h+(LEADING-2));
fl_rectf(xx+1, yy-(LEADING-2)/2, ww-2, hh+(LEADING-2));
}
m->draw(x, y, w, h, button, n==selected);
m->draw(xx, yy, ww, hh, button, n==selected);
// the shortcuts and arrows assumme fl_color() was left set by draw():
if (m->submenu()) {
int sz = (h-5)&-2;
int y1 = y+(h-sz)/2;
int x1 = x+w-sz-3;
int sz = (hh-5)&-2;
int y1 = yy+(hh-sz)/2;
int x1 = xx+ww-sz-3;
fl_polygon(x1, y1, x1, y1+sz, x1+sz, y1+sz/2);
} else if (m->shortcut_) {
Fl_Font f = button ? button->textfont() : FL_HELVETICA;
fl_font(f, button ? button->textsize() : FL_NORMAL_SIZE);
fl_draw(fl_shortcut_label(m->shortcut_), x, y, w-3, h, FL_ALIGN_RIGHT);
fl_draw(fl_shortcut_label(m->shortcut_), xx, yy, ww-3, hh, FL_ALIGN_RIGHT);
}
if (m->flags & FL_MENU_DIVIDER) {
fl_color(FL_DARK3);
fl_xyline(BW-1, y+h+(LEADING-2)/2, W-2*BW+2);
fl_xyline(BW-1, yy+hh+(LEADING-2)/2, W-2*BW+2);
fl_color(FL_LIGHT3);
fl_xyline(BW-1, y+h+((LEADING-2)/2+1), W-2*BW+2);
fl_xyline(BW-1, yy+hh+((LEADING-2)/2+1), W-2*BW+2);
}
}
void menutitle::draw() {
@@ -367,7 +366,6 @@ void menutitle::draw() {
}
void menuwindow::draw() {
if (damage() != FL_DAMAGE_CHILD) { // complete redraw
fl_draw_box(box(), 0, 0, w(), h(), color());
if (menu) {
@@ -395,12 +393,12 @@ int menuwindow::find_selected(int mx, int my) {
my -= y();
if (my < 0 || my >= h()) return -1;
if (!itemheight) { // menubar
int x = 3; int n = 0;
int xx = 3; int n = 0;
const Fl_Menu_Item* m = menu;
for (; ; m = m->next(), n++) {
if (!m->text) return -1;
x += m->measure(0, button) + 16;
if (x > mx) break;
xx += m->measure(0, button) + 16;
if (xx > mx) break;
}
return n;
}
@@ -413,9 +411,9 @@ int menuwindow::find_selected(int mx, int my) {
// return horizontal position for item n in a menubar:
int menuwindow::titlex(int n) {
const Fl_Menu_Item* m;
int x = 3;
for (m=menu; n--; m = m->next()) x += m->measure(0, button) + 16;
return x;
int xx = 3;
for (m=menu; n--; m = m->next()) xx += m->measure(0, button) + 16;
return xx;
}
////////////////////////////////////////////////////////////////
@@ -458,16 +456,16 @@ static inline void setitem(const Fl_Menu_Item* i, int m, int n) {
}
static void setitem(int m, int n) {
menustate &p = *(::p);
p.current_item = (n >= 0) ? p.p[m]->menu->next(n) : 0;
p.menu_number = m;
p.item_number = n;
menustate &pp = *p;
pp.current_item = (n >= 0) ? pp.p[m]->menu->next(n) : 0;
pp.menu_number = m;
pp.item_number = n;
}
static int forward(int menu) { // go to next item in menu menu if possible
menustate &p = *(::p);
menuwindow &m = *(p.p[menu]);
int item = (menu == p.menu_number) ? p.item_number : m.selected;
menustate &pp = *p;
menuwindow &m = *(pp.p[menu]);
int item = (menu == pp.menu_number) ? pp.item_number : m.selected;
while (++item < m.numitems) {
const Fl_Menu_Item* m1 = m.menu->next(item);
if (m1->activevisible()) {setitem(m1, menu, item); return 1;}
@@ -476,9 +474,9 @@ static int forward(int menu) { // go to next item in menu menu if possible
}
static int backward(int menu) { // previous item in menu menu if possible
menustate &p = *(::p);
menuwindow &m = *(p.p[menu]);
int item = (menu == p.menu_number) ? p.item_number : m.selected;
menustate &pp = *p;
menuwindow &m = *(pp.p[menu]);
int item = (menu == pp.menu_number) ? pp.item_number : m.selected;
if (item < 0) item = m.numitems;
while (--item >= 0) {
const Fl_Menu_Item* m1 = m.menu->next(item);
@@ -488,7 +486,7 @@ static int backward(int menu) { // previous item in menu menu if possible
}
int menuwindow::handle(int e) {
menustate &p = *(::p);
menustate &pp = *p;
switch (e) {
case FL_KEYBOARD:
switch (Fl::event_key()) {
@@ -497,44 +495,44 @@ int menuwindow::handle(int e) {
case FL_BackSpace:
case 0xFE20: // backtab
BACKTAB:
if (!backward(p.menu_number)) {p.item_number = -1;backward(p.menu_number);}
if (!backward(pp.menu_number)) {pp.item_number = -1;backward(pp.menu_number);}
return 1;
case FL_Up:
if (p.menubar && p.menu_number == 0) ;
else if (backward(p.menu_number));
else if (p.menubar && p.menu_number==1) setitem(0, p.p[0]->selected);
if (pp.menubar && pp.menu_number == 0) ;
else if (backward(pp.menu_number));
else if (pp.menubar && pp.menu_number==1) setitem(0, pp.p[0]->selected);
return 1;
case FL_Down:
if (p.menu_number || !p.menubar) forward(p.menu_number);
else if (p.menu_number < p.nummenus-1) forward(p.menu_number+1);
if (pp.menu_number || !pp.menubar) forward(pp.menu_number);
else if (pp.menu_number < pp.nummenus-1) forward(pp.menu_number+1);
return 1;
case FL_Right:
if (p.menubar && (p.menu_number<=0 || p.menu_number==1 && p.nummenus==2))
if (pp.menubar && (pp.menu_number<=0 || pp.menu_number==1 && pp.nummenus==2))
forward(0);
else if (p.menu_number < p.nummenus-1) forward(p.menu_number+1);
else if (pp.menu_number < pp.nummenus-1) forward(pp.menu_number+1);
return 1;
case FL_Left:
if (p.menubar && p.menu_number<=1) backward(0);
else if (p.menu_number>0)
setitem(p.menu_number-1, p.p[p.menu_number-1]->selected);
if (pp.menubar && pp.menu_number<=1) backward(0);
else if (pp.menu_number>0)
setitem(pp.menu_number-1, pp.p[pp.menu_number-1]->selected);
return 1;
case FL_Enter:
case ' ':
p.state = DONE_STATE;
pp.state = DONE_STATE;
return 1;
case FL_Escape:
setitem(0, -1, 0);
p.state = DONE_STATE;
pp.state = DONE_STATE;
return 1;
}
break;
case FL_SHORTCUT: {
for (int mymenu = p.nummenus; mymenu--;) {
menuwindow &mw = *(p.p[mymenu]);
for (int mymenu = pp.nummenus; mymenu--;) {
menuwindow &mw = *(pp.p[mymenu]);
int item; const Fl_Menu_Item* m = mw.menu->find_shortcut(&item);
if (m) {
setitem(m, mymenu, item);
if (!m->submenu()) p.state = DONE_STATE;
if (!m->submenu()) pp.state = DONE_STATE;
return 1;
}
}} break;
@@ -545,36 +543,36 @@ int menuwindow::handle(int e) {
int mx = Fl::event_x_root();
int my = Fl::event_y_root();
int item=0; int mymenu;
for (mymenu = p.nummenus-1; ; mymenu--) {
item = p.p[mymenu]->find_selected(mx, my);
for (mymenu = pp.nummenus-1; ; mymenu--) {
item = pp.p[mymenu]->find_selected(mx, my);
if (item >= 0) break;
if (mymenu <= 0) break;
}
setitem(mymenu, item);
if (e == FL_PUSH) {
if (p.current_item && p.current_item->submenu() // this is a menu title
&& item != p.p[mymenu]->selected // and it is not already on
&& !p.current_item->callback_) // and it does not have a callback
p.state = MENU_PUSH_STATE;
if (pp.current_item && pp.current_item->submenu() // this is a menu title
&& item != pp.p[mymenu]->selected // and it is not already on
&& !pp.current_item->callback_) // and it does not have a callback
pp.state = MENU_PUSH_STATE;
else
p.state = PUSH_STATE;
pp.state = PUSH_STATE;
}} return 1;
case FL_RELEASE:
// do nothing if they try to pick inactive items
if (p.current_item && !p.current_item->activevisible()) return 1;
if (pp.current_item && !pp.current_item->activevisible()) return 1;
// Mouse must either be held down/dragged some, or this must be
// the second click (not the one that popped up the menu):
if (!Fl::event_is_click() || p.state == PUSH_STATE ||
p.menubar && p.current_item && !p.current_item->submenu() // button
if (!Fl::event_is_click() || pp.state == PUSH_STATE ||
pp.menubar && pp.current_item && !pp.current_item->submenu() // button
) {
#if 0 // makes the check/radio items leave the menu up
const Fl_Menu_Item* m = p.current_item;
const Fl_Menu_Item* m = pp.current_item;
if (m && button && (m->flags & (FL_MENU_TOGGLE|FL_MENU_RADIO))) {
((Fl_Menu_*)button)->picked(m);
p.p[p.menu_number]->redraw();
pp.p[pp.menu_number]->redraw();
} else
#endif
p.state = DONE_STATE;
pp.state = DONE_STATE;
}
return 1;
}
@@ -602,11 +600,11 @@ const Fl_Menu_Item* Fl_Menu_Item::pulldown(
}
menuwindow mw(this, X, Y, W, H, initial_item, t, menubar);
Fl::grab(mw);
menustate p; ::p = &p;
p.p[0] = &mw;
p.nummenus = 1;
p.menubar = menubar;
p.state = INITIAL_STATE;
menustate pp; p = &pp;
pp.p[0] = &mw;
pp.nummenus = 1;
pp.menubar = menubar;
pp.state = INITIAL_STATE;
menuwindow* fakemenu = 0; // kludge for buttons in menubar
@@ -616,50 +614,50 @@ const Fl_Menu_Item* Fl_Menu_Item::pulldown(
goto STARTUP;
}
p.current_item = 0; p.menu_number = 0; p.item_number = -1;
pp.current_item = 0; pp.menu_number = 0; pp.item_number = -1;
if (menubar) mw.handle(FL_DRAG); // find the initial menu
initial_item = p.current_item;
initial_item = pp.current_item;
if (initial_item) goto STARTUP;
// the main loop, runs until p.state goes to DONE_STATE:
for (;;) {
// make sure all the menus are shown:
{for (int k = menubar; k < p.nummenus; k++)
if (!p.p[k]->shown()) {
if (p.p[k]->title) p.p[k]->title->show();
p.p[k]->show();
{for (int k = menubar; k < pp.nummenus; k++)
if (!pp.p[k]->shown()) {
if (pp.p[k]->title) pp.p[k]->title->show();
pp.p[k]->show();
}
}
// get events:
{const Fl_Menu_Item* oldi = p.current_item;
{const Fl_Menu_Item* oldi = pp.current_item;
Fl::wait();
if (p.state == DONE_STATE) break; // done.
if (p.current_item == oldi) continue;}
if (pp.state == DONE_STATE) break; // done.
if (pp.current_item == oldi) continue;}
// only do rest if item changes:
delete fakemenu; fakemenu = 0; // turn off "menubar button"
if (!p.current_item) { // pointing at nothing
if (!pp.current_item) { // pointing at nothing
// turn off selection in deepest menu, but don't erase other menus:
p.p[p.nummenus-1]->set_selected(-1);
pp.p[pp.nummenus-1]->set_selected(-1);
continue;
}
delete fakemenu; fakemenu = 0;
initial_item = 0; // stop the startup code
p.p[p.menu_number]->autoscroll(p.item_number);
pp.p[pp.menu_number]->autoscroll(pp.item_number);
STARTUP:
menuwindow& cw = *p.p[p.menu_number];
const Fl_Menu_Item* m = p.current_item;
menuwindow& cw = *pp.p[pp.menu_number];
const Fl_Menu_Item* m = pp.current_item;
if (!m->activevisible()) { // pointing at inactive item
cw.set_selected(-1);
initial_item = 0; // turn off startup code
continue;
}
cw.set_selected(p.item_number);
cw.set_selected(pp.item_number);
if (m==initial_item) initial_item=0; // stop the startup code if item found
if (m->submenu()) {
@@ -669,57 +667,57 @@ const Fl_Menu_Item* Fl_Menu_Item::pulldown(
else menutable = (Fl_Menu_Item*)(m)->user_data_;
// figure out where new menu goes:
int nX, nY;
if (!p.menu_number && p.menubar) { // menu off a menubar:
nX = cw.x() + cw.titlex(p.item_number);
if (!pp.menu_number && pp.menubar) { // menu off a menubar:
nX = cw.x() + cw.titlex(pp.item_number);
nY = cw.y() + cw.h();
initial_item = 0;
} else {
nX = cw.x() + cw.w();
nY = cw.y() + p.item_number * cw.itemheight;
nY = cw.y() + pp.item_number * cw.itemheight;
title = 0;
}
if (initial_item) { // bring up submenu containing initial item:
menuwindow* n = new menuwindow(menutable,X,Y,W,H,initial_item,title);
p.p[p.nummenus++] = n;
pp.p[pp.nummenus++] = n;
// move all earlier menus to line up with this new one:
if (n->selected>=0) {
int dy = n->y()-nY;
int dx = n->x()-nX;
for (int menu = 0; menu <= p.menu_number; menu++) {
menuwindow* t = p.p[menu];
int nx = t->x()+dx; if (nx < 0) {nx = 0; dx = -t->x();}
int ny = t->y()+dy; if (ny < 0) {ny = 0; dy = -t->y();}
t->position(nx, ny);
for (int menu = 0; menu <= pp.menu_number; menu++) {
menuwindow* tt = pp.p[menu];
int nx = tt->x()+dx; if (nx < 0) {nx = 0; dx = -tt->x();}
int ny = tt->y()+dy; if (ny < 0) {ny = 0; dy = -tt->y();}
tt->position(nx, ny);
}
setitem(p.nummenus-1, n->selected);
setitem(pp.nummenus-1, n->selected);
goto STARTUP;
}
} else if (p.nummenus > p.menu_number+1 &&
p.p[p.menu_number+1]->menu == menutable) {
} else if (pp.nummenus > pp.menu_number+1 &&
pp.p[pp.menu_number+1]->menu == menutable) {
// the menu is already up:
while (p.nummenus > p.menu_number+2) delete p.p[--p.nummenus];
p.p[p.nummenus-1]->set_selected(-1);
while (pp.nummenus > pp.menu_number+2) delete pp.p[--pp.nummenus];
pp.p[pp.nummenus-1]->set_selected(-1);
} else {
// delete all the old menus and create new one:
while (p.nummenus > p.menu_number+1) delete p.p[--p.nummenus];
p.p[p.nummenus++]= new menuwindow(menutable, nX, nY,
while (pp.nummenus > pp.menu_number+1) delete pp.p[--pp.nummenus];
pp.p[pp.nummenus++]= new menuwindow(menutable, nX, nY,
title?1:0, 0, 0, title, 0, menubar);
}
} else { // !m->submenu():
while (p.nummenus > p.menu_number+1) delete p.p[--p.nummenus];
if (!p.menu_number && p.menubar) {
while (pp.nummenus > pp.menu_number+1) delete pp.p[--pp.nummenus];
if (!pp.menu_number && pp.menubar) {
// kludge so "menubar buttons" turn "on" by using menu title:
fakemenu = new menuwindow(0,
cw.x()+cw.titlex(p.item_number),
cw.x()+cw.titlex(pp.item_number),
cw.y()+cw.h(), 0, 0,
0, m, 0, 1);
fakemenu->title->show();
}
}
}
const Fl_Menu_Item* m = p.current_item;
const Fl_Menu_Item* m = pp.current_item;
delete fakemenu;
while (p.nummenus>1) delete p.p[--p.nummenus];
while (pp.nummenus>1) delete pp.p[--pp.nummenus];
mw.hide();
Fl::release();
return m;
@@ -730,12 +728,12 @@ Fl_Menu_Item::popup(
int X, int Y,
const char* title,
const Fl_Menu_Item* picked,
const Fl_Menu_* button
const Fl_Menu_* but
) const
{
static Fl_Menu_Item dummy; // static so it is all zeros
dummy.text = title;
return pulldown(X, Y, 0, 0, picked, button, title ? &dummy : 0);
return pulldown(X, Y, 0, 0, picked, but, title ? &dummy : 0);
}
// Search only the top level menu for a shortcut. Either &x in the
@@ -776,5 +774,5 @@ const Fl_Menu_Item* Fl_Menu_Item::test_shortcut() const {
}
//
// End of "$Id: Fl_Menu.cxx,v 1.18.2.12.2.16 2002/07/24 12:16:57 easysw Exp $".
// End of "$Id: Fl_Menu.cxx,v 1.18.2.12.2.17 2002/08/09 01:09:49 easysw Exp $".
//
+5 -27
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Menu_.cxx,v 1.7.2.8.2.3 2002/04/11 11:52:41 easysw Exp $"
// "$Id: Fl_Menu_.cxx,v 1.7.2.8.2.4 2002/08/09 01:09:49 easysw Exp $"
//
// Common menu code for the Fast Light Tool Kit (FLTK).
//
@@ -112,43 +112,21 @@ void Fl_Menu_::menu(const Fl_Menu_Item* m) {
value_ = menu_ = (Fl_Menu_Item*)m;
}
#if 1
// this version is ok with new Fl_Menu_add code with fl_menu_array_owner:
void Fl_Menu_::copy(const Fl_Menu_Item* m, void* user_data) {
void Fl_Menu_::copy(const Fl_Menu_Item* m, void* ud) {
int n = m->size();
Fl_Menu_Item* newMenu = new Fl_Menu_Item[n];
memcpy(newMenu, m, n*sizeof(Fl_Menu_Item));
menu(newMenu);
alloc = 1; // make destructor free array, but not strings
// for convienence, provide way to change all the user data pointers:
if (user_data) for (; n--;) {
if (newMenu->callback_) newMenu->user_data_ = user_data;
if (ud) for (; n--;) {
if (newMenu->callback_) newMenu->user_data_ = ud;
newMenu++;
}
}
#else
// This is Guillaume Nodet's fixed version for the older Fl_Menu_add
// that enlarged the array at powers of 2:
void Fl_Menu_::copy(const Fl_Menu_Item* m, void* user_data) {
int i, s = m->size(), n=s;
for (i=0; n; n>>=1, i++);
n = 1 << i;
Fl_Menu_Item* newMenu = new Fl_Menu_Item[n];
memcpy(newMenu, m, s*sizeof(Fl_Menu_Item));
memset(newMenu+s, 0, (n-s)*sizeof(Fl_Menu_Item));
menu(newMenu);
alloc = 1; // make destructor free it
// for convienence, provide way to change all the user data pointers:
if (user_data) for (; s--;) {
if (newMenu->callback_) newMenu->user_data_ = user_data;
newMenu++;
}
}
#endif
Fl_Menu_::~Fl_Menu_() {
clear();
}
@@ -172,5 +150,5 @@ void Fl_Menu_::clear() {
}
//
// End of "$Id: Fl_Menu_.cxx,v 1.7.2.8.2.3 2002/04/11 11:52:41 easysw Exp $".
// End of "$Id: Fl_Menu_.cxx,v 1.7.2.8.2.4 2002/08/09 01:09:49 easysw Exp $".
//
+17 -17
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Menu_add.cxx,v 1.9.2.13.2.3 2002/06/06 14:04:53 easysw Exp $"
// "$Id: Fl_Menu_add.cxx,v 1.9.2.13.2.4 2002/08/09 01:09:49 easysw Exp $"
//
// Menu utilities for the Fast Light Tool Kit (FLTK).
//
@@ -99,7 +99,7 @@ static int compare(const char* a, const char* b) {
// now add submenu titles directly by setting SUBMENU in the flags):
int Fl_Menu_Item::add(
const char *mytext,
int shortcut,
int sc,
Fl_Callback *cb,
void *data,
int myflags
@@ -110,7 +110,7 @@ int Fl_Menu_Item::add(
char *q;
char buf[1024];
int size = array==local_array ? local_array_size : array->size();
int msize = array==local_array ? local_array_size : array->size();
int flags1 = 0;
const char* item;
@@ -138,10 +138,10 @@ int Fl_Menu_Item::add(
if (!m->text) { /* create a new menu */
int n = m-array;
array = insert(array, size, n, item, FL_SUBMENU|flags1);
size++;
array = insert(array, size, n+1, 0, 0);
size++;
array = insert(array, msize, n, item, FL_SUBMENU|flags1);
msize++;
array = insert(array, msize, n+1, 0, 0);
msize++;
m = array+n;
}
m++; /* go into the submenu */
@@ -154,22 +154,22 @@ int Fl_Menu_Item::add(
if (!m->text) { /* add a new menu item */
int n = m-array;
array = insert(array, size, n, item, myflags|flags1);
size++;
array = insert(array, msize, n, item, myflags|flags1);
msize++;
if (myflags & FL_SUBMENU) { // add submenu delimiter
array = insert(array, size, n+1, 0, 0);
size++;
array = insert(array, msize, n+1, 0, 0);
msize++;
}
m = array+n;
}
/* fill it in */
m->shortcut_ = shortcut;
m->shortcut_ = sc;
m->callback_ = cb;
m->user_data_ = data;
m->flags = myflags|flags1;
if (array == local_array) local_array_size = size;
if (array == local_array) local_array_size = msize;
return m-array;
}
@@ -222,14 +222,14 @@ int Fl_Menu_::add(const char *str) {
char buf[128];
int r = 0;
while (*str) {
int shortcut = 0;
int sc = 0;
char *c;
for (c = buf; *str && *str != '|'; str++) {
if (*str == '\t') {*c++ = 0; shortcut = fl_old_shortcut(str);}
if (*str == '\t') {*c++ = 0; sc = fl_old_shortcut(str);}
else *c++ = *str;
}
*c = 0;
r = add(buf, shortcut, 0, 0, 0);
r = add(buf, sc, 0, 0, 0);
if (*str) str++;
}
return r;
@@ -262,5 +262,5 @@ void Fl_Menu_::remove(int i) {
}
//
// End of "$Id: Fl_Menu_add.cxx,v 1.9.2.13.2.3 2002/06/06 14:04:53 easysw Exp $".
// End of "$Id: Fl_Menu_add.cxx,v 1.9.2.13.2.4 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Pack.cxx,v 1.6.2.4.2.2 2002/01/01 15:11:31 easysw Exp $"
// "$Id: Fl_Pack.cxx,v 1.6.2.4.2.3 2002/08/09 01:09:49 easysw Exp $"
//
// Packing widget for the Fast Light Tool Kit (FLTK).
//
@@ -32,8 +32,8 @@
#include <FL/Fl_Pack.H>
#include <FL/fl_draw.H>
Fl_Pack::Fl_Pack(int x,int y,int w ,int h,const char *l)
: Fl_Group(x, y, w, h, l) {
Fl_Pack::Fl_Pack(int X, int Y, int W, int H,const char *l)
: Fl_Group(X, Y, W, H, l) {
resizable(0);
spacing_ = 0;
// type(VERTICAL); // already set like this
@@ -132,5 +132,5 @@ void Fl_Pack::draw() {
}
//
// End of "$Id: Fl_Pack.cxx,v 1.6.2.4.2.2 2002/01/01 15:11:31 easysw Exp $".
// End of "$Id: Fl_Pack.cxx,v 1.6.2.4.2.3 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.20 2002/08/05 17:50:25 easysw Exp $"
// "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.21 2002/08/09 01:09:49 easysw Exp $"
//
// Pixmap drawing code for the Fast Light Tool Kit (FLTK).
//
@@ -162,8 +162,8 @@ void Fl_Pixmap::uncache() {
}
}
void Fl_Pixmap::label(Fl_Widget* w) {
w->image(this);
void Fl_Pixmap::label(Fl_Widget* widget) {
widget->image(this);
}
void Fl_Pixmap::label(Fl_Menu_Item* m) {
@@ -460,5 +460,5 @@ void Fl_Pixmap::desaturate() {
}
//
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.20 2002/08/05 17:50:25 easysw Exp $".
// End of "$Id: Fl_Pixmap.cxx,v 1.9.2.4.2.21 2002/08/09 01:09:49 easysw Exp $".
//
+24 -24
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Positioner.cxx,v 1.4.2.3.2.1 2002/01/01 15:11:31 easysw Exp $"
// "$Id: Fl_Positioner.cxx,v 1.4.2.3.2.2 2002/08/09 01:09:49 easysw Exp $"
//
// Positioner widget for the Fast Light Tool Kit (FLTK).
//
@@ -36,14 +36,14 @@ static double flinear(double val, double smin, double smax, double gmin, double
else return gmin + (gmax - gmin) * (val - smin) / (smax - smin);
}
void Fl_Positioner::draw(int x, int y, int w, int h) {
int x1 = x + 4;
int y1 = y + 4;
int w1 = w - 2 * 4;
int h1 = h - 2 * 4;
void Fl_Positioner::draw(int X, int Y, int W, int H) {
int x1 = X + 4;
int y1 = Y + 4;
int w1 = W - 2 * 4;
int h1 = H - 2 * 4;
int xx = int(flinear(xvalue(), xmin, xmax, x1, x1+w1-1)+.5);
int yy = int(flinear(yvalue(), ymin, ymax, y1, y1+h1-1)+.5);
draw_box(box(), x, y, w, h, color());
draw_box(box(), X, Y, W, H, color());
fl_color(selection_color());
fl_xyline(x1, yy, x1+w1);
fl_yxline(xx, y1, y1+h1);
@@ -70,24 +70,24 @@ int Fl_Positioner::yvalue(double Y) {
return(value(xvalue_, Y));
}
int Fl_Positioner::handle(int event, int x, int y, int w, int h) {
int Fl_Positioner::handle(int event, int X, int Y, int W, int H) {
switch (event) {
case FL_PUSH:
case FL_DRAG:
case FL_RELEASE: {
double x1 = x + 4;
double y1 = y + 4;
double w1 = w - 2 * 4;
double h1 = h - 2 * 4;
double X = flinear(Fl::event_x(), x1, x1+w1-1.0, xmin, xmax);
if (xstep_) X = int(X/xstep_+0.5) * xstep_;
if (X < xmin) X = xmin;
if (X > xmax) X = xmax;
double Y = flinear(Fl::event_y(), y1, y1+h1-1.0, ymin, ymax);
if (ystep_) Y = int(Y/ystep_+0.5) * ystep_;
if (Y < ymin) Y = ymin;
if (Y > ymax) Y = ymax;
if (value(X, Y)) set_changed();}
double x1 = X + 4;
double y1 = Y + 4;
double w1 = W - 2 * 4;
double h1 = H - 2 * 4;
double xx = flinear(Fl::event_x(), x1, x1+w1-1.0, xmin, xmax);
if (xstep_) xx = int(xx/xstep_+0.5) * xstep_;
if (xx < xmin) xx = xmin;
if (xx > xmax) xx = xmax;
double yy = flinear(Fl::event_y(), y1, y1+h1-1.0, ymin, ymax);
if (ystep_) yy = int(yy/ystep_+0.5) * ystep_;
if (yy < ymin) yy = ymin;
if (yy > ymax) yy = ymax;
if (value(xx, yy)) set_changed();}
if (!(when() & FL_WHEN_CHANGED ||
when() & FL_WHEN_RELEASE && event == FL_RELEASE)) return 1;
if (changed() || when()&FL_WHEN_NOT_CHANGED) {
@@ -102,8 +102,8 @@ int Fl_Positioner::handle(int e) {
return handle(e, x(), y(), w(), h());
}
Fl_Positioner::Fl_Positioner(int x, int y, int w, int h, const char* l)
: Fl_Widget(x, y, w, h, l) {
Fl_Positioner::Fl_Positioner(int X, int Y, int W, int H, const char* l)
: Fl_Widget(X, Y, W, H, l) {
box(FL_DOWN_BOX);
selection_color(FL_RED);
align(FL_ALIGN_BOTTOM);
@@ -129,5 +129,5 @@ void Fl_Positioner::ybounds(double a, double b) {
}
//
// End of "$Id: Fl_Positioner.cxx,v 1.4.2.3.2.1 2002/01/01 15:11:31 easysw Exp $".
// End of "$Id: Fl_Positioner.cxx,v 1.4.2.3.2.2 2002/08/09 01:09:49 easysw Exp $".
//
+14 -12
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Preferences.cxx,v 1.1.2.17 2002/07/01 20:14:08 easysw Exp $"
// "$Id: Fl_Preferences.cxx,v 1.1.2.18 2002/08/09 01:09:49 easysw Exp $"
//
// Preferences methods for the Fast Light Tool Kit (FLTK).
//
@@ -392,9 +392,9 @@ char Fl_Preferences::get( const char *key, void *data, const void *defaultValue,
const char *v = node->get( key );
if ( v )
{
int size;
void *w = decodeHex( v, size );
memmove( data, w, size>maxSize?maxSize:size );
int dsize;
void *w = decodeHex( v, dsize );
memmove( data, w, dsize>maxSize?maxSize:dsize );
free( w );
return 1;
}
@@ -414,8 +414,8 @@ char Fl_Preferences::get( const char *key, void *&data, const void *defaultValue
const char *v = node->get( key );
if ( v )
{
int size;
data = decodeHex( v, size );
int dsize;
data = decodeHex( v, dsize );
return 1;
}
if ( defaultValue )
@@ -432,11 +432,11 @@ char Fl_Preferences::get( const char *key, void *&data, const void *defaultValue
/**
* set an entry (name/value pair)
*/
char Fl_Preferences::set( const char *key, const void *data, int size )
char Fl_Preferences::set( const char *key, const void *data, int dsize )
{
char *buffer = (char*)malloc( size*2+1 ), *d = buffer;;
char *buffer = (char*)malloc( dsize*2+1 ), *d = buffer;;
unsigned char *s = (unsigned char*)data;
for ( ; size>0; size-- )
for ( ; dsize>0; dsize-- )
{
static char lu[] = "0123456789abcdef";
unsigned char v = *s++;
@@ -889,7 +889,9 @@ void Fl_Preferences::Node::set( const char *name, const char *value )
// create or set a value (or annotation) from a single line in the file buffer
void Fl_Preferences::Node::set( const char *line )
{
char dirty = dirty_; // hmm. If we assume that we always read yhis file in the beginning, we can handle the dirty flag 'quick and dirty'
// hmm. If we assume that we always read this file in the beginning,
// we can handle the dirty flag 'quick and dirty'
char dirt = dirty_;
if ( line[0]==';' || line[0]==0 || line[0]=='#' )
{
set( line, 0 );
@@ -905,7 +907,7 @@ void Fl_Preferences::Node::set( const char *line )
else
set( line, "" );
}
dirty_ = dirty;
dirty_ = dirt;
}
// add more data to an existing entry
@@ -1052,5 +1054,5 @@ char Fl_Preferences::Node::remove()
//
// End of "$Id: Fl_Preferences.cxx,v 1.1.2.17 2002/07/01 20:14:08 easysw Exp $".
// End of "$Id: Fl_Preferences.cxx,v 1.1.2.18 2002/08/09 01:09:49 easysw Exp $".
//
+4 -4
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Progress.cxx,v 1.1.2.5 2002/04/11 10:46:19 easysw Exp $"
// "$Id: Fl_Progress.cxx,v 1.1.2.6 2002/08/09 01:09:49 easysw Exp $"
//
// Progress bar widget routines.
//
@@ -92,8 +92,8 @@ void Fl_Progress::draw()
// 'Fl_Progress::Fl_Progress()' - Construct a Fl_Progress widget.
//
Fl_Progress::Fl_Progress(int x, int y, int w, int h, const char* l)
: Fl_Widget(x, y, w, h, l)
Fl_Progress::Fl_Progress(int X, int Y, int W, int H, const char* l)
: Fl_Widget(X, Y, W, H, l)
{
align(FL_ALIGN_INSIDE);
box(FL_DOWN_BOX);
@@ -105,5 +105,5 @@ Fl_Progress::Fl_Progress(int x, int y, int w, int h, const char* l)
//
// End of "$Id: Fl_Progress.cxx,v 1.1.2.5 2002/04/11 10:46:19 easysw Exp $".
// End of "$Id: Fl_Progress.cxx,v 1.1.2.6 2002/08/09 01:09:49 easysw Exp $".
//
+3 -15
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Shared_Image.cxx,v 1.23.2.15 2002/07/14 21:25:39 easysw Exp $"
// "$Id: Fl_Shared_Image.cxx,v 1.23.2.16 2002/08/09 01:09:49 easysw Exp $"
//
// Shared image code for the Fast Light Tool Kit (FLTK).
//
@@ -29,11 +29,6 @@
#include <FL/Fl.H>
#include <FL/Fl_Shared_Image.H>
#include <FL/Fl_BMP_Image.H>
#include <FL/Fl_GIF_Image.H>
#include <FL/Fl_JPEG_Image.H>
#include <FL/Fl_PNG_Image.H>
#include <FL/Fl_PNM_Image.H>
#include <FL/Fl_XBM_Image.H>
#include <FL/Fl_XPM_Image.H>
@@ -234,14 +229,7 @@ Fl_Shared_Image::reload() {
}
// Load the image as appropriate...
if (memcmp(header, "GIF87a", 6) == 0 ||
memcmp(header, "GIF89a", 6) == 0)
img = new Fl_GIF_Image(name_);
else if (memcmp(header, "BM", 2) == 0) // BMP file
img = new Fl_BMP_Image(name_);
else if (header[0] == 'P' && header[1] >= '1' && header[1] <= '6') // Portable anymap
img = new Fl_PNM_Image(name_);
else if (memcmp(header, "#define", 7) == 0) // XBM file
if (memcmp(header, "#define", 7) == 0) // XBM file
img = new Fl_XBM_Image(name_);
else if (memcmp(header, "/* XPM */", 9) == 0) // XPM file
img = new Fl_XPM_Image(name_);
@@ -467,5 +455,5 @@ Fl_Shared_Image::remove_handler(Fl_Shared_Handler f) {
//
// End of "$Id: Fl_Shared_Image.cxx,v 1.23.2.15 2002/07/14 21:25:39 easysw Exp $".
// End of "$Id: Fl_Shared_Image.cxx,v 1.23.2.16 2002/08/09 01:09:49 easysw Exp $".
//
+5 -5
View File
@@ -1,5 +1,5 @@
//
// "$Id: Fl_Text_Buffer.cxx,v 1.9.2.9 2002/08/05 17:50:25 easysw Exp $"
// "$Id: Fl_Text_Buffer.cxx,v 1.9.2.10 2002/08/09 01:09:49 easysw Exp $"
//
// Copyright 2001-2002 by Bill Spitzak and others.
// Original code Copyright Mark Edel. Permission to distribute under
@@ -1967,7 +1967,7 @@ int Fl_Text_Buffer::findchar_forward( int startPos, char searchChar,
int *foundPos ) {
int pos, gapLen = mGapEnd - mGapStart;
if (pos < 0 || pos >= mLength) {
if (startPos < 0 || startPos >= mLength) {
*foundPos = mLength;
return 0;
}
@@ -2003,11 +2003,11 @@ int Fl_Text_Buffer::findchar_backward( int startPos, char searchChar,
int *foundPos ) {
int pos, gapLen = mGapEnd - mGapStart;
if ( startPos == 0 ) {
if ( startPos <= 0 || startPos >= mLength ) {
*foundPos = 0;
return 0;
}
pos = startPos == 0 ? 0 : startPos - 1;
pos = startPos - 1;
while ( pos >= mGapStart ) {
if ( mBuf[ pos + gapLen ] == searchChar ) {
*foundPos = pos;
@@ -2289,5 +2289,5 @@ Fl_Text_Buffer::outputfile(const char *file, int start, int end, int buflen) {
//
// End of "$Id: Fl_Text_Buffer.cxx,v 1.9.2.9 2002/08/05 17:50:25 easysw Exp $".
// End of "$Id: Fl_Text_Buffer.cxx,v 1.9.2.10 2002/08/09 01:09:49 easysw Exp $".
//
+6 -6
View File
@@ -1,5 +1,5 @@
#
# "$Id: Makefile,v 1.18.2.14.2.46 2002/07/14 17:03:31 easysw Exp $"
# "$Id: Makefile,v 1.18.2.14.2.47 2002/08/09 01:09:49 easysw Exp $"
#
# Library makefile for the Fast Light Tool Kit (FLTK).
#
@@ -27,7 +27,6 @@ CPPFILES = \
Fl.cxx \
Fl_Adjuster.cxx \
Fl_Bitmap.cxx \
Fl_BMP_Image.cxx \
Fl_Browser.cxx \
Fl_Browser_.cxx \
Fl_Browser_load.cxx \
@@ -47,7 +46,6 @@ CPPFILES = \
Fl_File_Chooser2.cxx \
Fl_File_Icon.cxx \
Fl_File_Input.cxx \
Fl_GIF_Image.cxx \
Fl_Group.cxx \
Fl_Help_Dialog.cxx \
Fl_Help_View.cxx \
@@ -66,7 +64,6 @@ CPPFILES = \
Fl_Overlay_Window.cxx \
Fl_Pack.cxx \
Fl_Pixmap.cxx \
Fl_PNM_Image.cxx \
Fl_Positioner.cxx \
Fl_Preferences.cxx \
Fl_Progress.cxx \
@@ -170,9 +167,12 @@ GLCPPFILES = \
IMGCPPFILES = \
fl_images_core.cxx \
Fl_BMP_Image.cxx \
Fl_File_Icon2.cxx \
Fl_GIF_Image.cxx \
Fl_JPEG_Image.cxx \
Fl_PNG_Image.cxx
Fl_PNG_Image.cxx \
Fl_PNM_Image.cxx
CFILES = fl_call_main.c flstring.c scandir.c numericsort.c vsnprintf.c
@@ -565,5 +565,5 @@ uninstall:
#
# End of "$Id: Makefile,v 1.18.2.14.2.46 2002/07/14 17:03:31 easysw Exp $".
# End of "$Id: Makefile,v 1.18.2.14.2.47 2002/08/09 01:09:49 easysw Exp $".
#

Some files were not shown because too many files have changed in this diff Show More