dslinux/user/pixil/libs/flnx/FL .Enumerations.H.swp Enumerations.H Fl.H Fl_Adjuster.H Fl_Animator.H Fl_Bitmap.H Fl_Box.H Fl_Browser.H Fl_Browser_.H Fl_Button.H Fl_Chart.H Fl_Check_Button.H Fl_Choice.H Fl_Clock.H Fl_Color_Chooser.H Fl_Counter.H Fl_Dial.H Fl_Double_Window.H Fl_Fill_Dial.H Fl_Fill_Slider.H Fl_Float_Input.H Fl_FormsBitmap.H Fl_FormsPixmap.H Fl_Free.H Fl_Gl_Window.H Fl_Group.H Fl_Hold_Browser.H Fl_Hor_Fill_Slider.H Fl_Hor_Nice_Slider.H Fl_Hor_Slider.H Fl_Hor_Value_Slider.H Fl_Image.H Fl_Input.H Fl_Input_.H Fl_Int_Input.H Fl_Light_Button.H Fl_Line_Dial.H Fl_Menu.H Fl_Menu_.H Fl_Menu_Bar.H Fl_Menu_Button.H Fl_Menu_Item.H Fl_Menu_Window.H Fl_Multi_Browser.H Fl_Multi_Label.H Fl_Multiline_Input.H Fl_Multiline_Output.H Fl_Nice_Slider.H Fl_Object.H Fl_Output.H Fl_Overlay_Window.H Fl_Pack.H Fl_Pixmap.H Fl_Positioner.H Fl_Radio_Button.H Fl_Radio_Light_Button.H Fl_Radio_Round_Button.H Fl_Repeat_Button.H Fl_Return_Button.H Fl_Roller.H Fl_Round_Button.H Fl_Round_Clo! ck.H Fl_Scroll.H Fl_Scrollbar.H Fl_Secret_Input.H Fl_Select_Browser.H Fl_Simple_Counter.H Fl_Single_Window.H Fl_Slider.H Fl_Tabs.H Fl_Tile.H Fl_Timer.H Fl_Toggle_Button.H Fl_Toggle_Light_Button.H Fl_Toggle_Round_Button.H Fl_Valuator.H Fl_Value_Input.H Fl_Value_Output.H Fl_Value_Slider.H Fl_Widget.H Fl_Window.H Fl_Window_Resize.H config.h dirent.h filename.H fl_ask.H fl_draw.H fl_file_chooser.H fl_message.H fl_show_colormap.H fl_show_input.H forms.H gl.h gl2opengl.h gl_draw.H glut.H math.h menubar.h n_x.h win32.H x.H
amadeus
dslinux_amadeus at user.in-berlin.de
Tue Oct 3 13:25:03 CEST 2006
Update of /cvsroot/dslinux/dslinux/user/pixil/libs/flnx/FL
In directory antilope:/tmp/cvs-serv11916/libs/flnx/FL
Added Files:
.Enumerations.H.swp Enumerations.H Fl.H Fl_Adjuster.H
Fl_Animator.H Fl_Bitmap.H Fl_Box.H Fl_Browser.H Fl_Browser_.H
Fl_Button.H Fl_Chart.H Fl_Check_Button.H Fl_Choice.H
Fl_Clock.H Fl_Color_Chooser.H Fl_Counter.H Fl_Dial.H
Fl_Double_Window.H Fl_Fill_Dial.H Fl_Fill_Slider.H
Fl_Float_Input.H Fl_FormsBitmap.H Fl_FormsPixmap.H Fl_Free.H
Fl_Gl_Window.H Fl_Group.H Fl_Hold_Browser.H
Fl_Hor_Fill_Slider.H Fl_Hor_Nice_Slider.H Fl_Hor_Slider.H
Fl_Hor_Value_Slider.H Fl_Image.H Fl_Input.H Fl_Input_.H
Fl_Int_Input.H Fl_Light_Button.H Fl_Line_Dial.H Fl_Menu.H
Fl_Menu_.H Fl_Menu_Bar.H Fl_Menu_Button.H Fl_Menu_Item.H
Fl_Menu_Window.H Fl_Multi_Browser.H Fl_Multi_Label.H
Fl_Multiline_Input.H Fl_Multiline_Output.H Fl_Nice_Slider.H
Fl_Object.H Fl_Output.H Fl_Overlay_Window.H Fl_Pack.H
Fl_Pixmap.H Fl_Positioner.H Fl_Radio_Button.H
Fl_Radio_Light_Button.H Fl_Radio_Round_Button.H
Fl_Repeat_Button.H Fl_Return_Button.H Fl_Roller.H
Fl_Round_Button.H Fl_Round_Clock.H Fl_Scroll.H Fl_Scrollbar.H
Fl_Secret_Input.H Fl_Select_Browser.H Fl_Simple_Counter.H
Fl_Single_Window.H Fl_Slider.H Fl_Tabs.H Fl_Tile.H Fl_Timer.H
Fl_Toggle_Button.H Fl_Toggle_Light_Button.H
Fl_Toggle_Round_Button.H Fl_Valuator.H Fl_Value_Input.H
Fl_Value_Output.H Fl_Value_Slider.H Fl_Widget.H Fl_Window.H
Fl_Window_Resize.H config.h dirent.h filename.H fl_ask.H
fl_draw.H fl_file_chooser.H fl_message.H fl_show_colormap.H
fl_show_input.H forms.H gl.h gl2opengl.h gl_draw.H glut.H
math.h menubar.h n_x.h win32.H x.H
Log Message:
adding pristine copy of pixil to HEAD so I can branch from it
--- NEW FILE: Fl_Toggle_Button.H ---
//
// "$Id: Fl_Toggle_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Toggle button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Toggle_Button_H
#define Fl_Toggle_Button_H
#include "Fl_Button.H"
class Fl_Toggle_Button : public Fl_Button {
public:
Fl_Toggle_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Button(x,y,w,h,l) {type(FL_TOGGLE_BUTTON);}
};
#endif
//
// End of "$Id: Fl_Toggle_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Radio_Light_Button.H ---
//
// "$Id: Fl_Radio_Light_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Radio light button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Radio_Light_Button_H
#define Fl_Radio_Light_Button_H
#include "Fl_Light_Button.H"
class Fl_Radio_Light_Button : public Fl_Light_Button {
public:
Fl_Radio_Light_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Light_Button(x,y,w,h,l) {type(FL_RADIO_BUTTON);}
};
#endif
//
// End of "$Id: Fl_Radio_Light_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Select_Browser.H ---
//
// "$Id: Fl_Select_Browser.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Select browser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Select_Browser_H
#define Fl_Select_Browser_H
#include "Fl_Browser.H"
class Fl_Select_Browser : public Fl_Browser {
public:
Fl_Select_Browser(int x,int y,int w,int h,const char *l=0)
: Fl_Browser(x,y,w,h,l) {type(FL_SELECT_BROWSER);}
};
#endif
//
// End of "$Id: Fl_Select_Browser.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu.H ---
//
// "$Id: Fl_Menu.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Old menu header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// this include file is for back compatability only
#include "Fl_Menu_Item.H"
//
// End of "$Id: Fl_Menu.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Color_Chooser.H ---
//
// "$Id: Fl_Color_Chooser.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Color chooser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// The color chooser object and the color chooser popup. The popup
// is just a window containing a single color chooser and some boxes
// to indicate the current and cancelled color.
#ifndef Fl_Color_Chooser_H
#define Fl_Color_Chooser_H
#include <FL/Fl_Group.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Return_Button.H>
#include <FL/Fl_Choice.H>
#include <FL/Fl_Value_Input.H>
class Flcc_HueBox : public Fl_Widget {
FL_EXPORT int handle(int);
FL_EXPORT void draw();
int px, py;
public:
Flcc_HueBox(int X, int Y, int W, int H) : Fl_Widget(X,Y,W,H) {
px = py = 0;}
};
class Flcc_ValueBox : public Fl_Widget {
FL_EXPORT int handle(int);
FL_EXPORT void draw();
int py;
public:
Flcc_ValueBox(int X, int Y, int W, int H) : Fl_Widget(X,Y,W,H) {
py = 0;}
};
class Flcc_Value_Input : public Fl_Value_Input {
public:
FL_EXPORT int format(char*);
Flcc_Value_Input(int X, int Y, int W, int H) : Fl_Value_Input(X,Y,W,H) {}
};
class Fl_Color_Chooser : public Fl_Group {
Flcc_HueBox huebox;
Flcc_ValueBox valuebox;
Fl_Choice choice;
Flcc_Value_Input rvalue;
Flcc_Value_Input gvalue;
Flcc_Value_Input bvalue;
Fl_Box resize_box;
double hue_, saturation_, value_;
double r_, g_, b_;
FL_EXPORT void set_valuators();
static FL_EXPORT void rgb_cb(Fl_Widget*, void*);
static FL_EXPORT void mode_cb(Fl_Widget*, void*);
public:
int mode() {return choice.value();}
double hue() const {return hue_;}
double saturation() const {return saturation_;}
double value() const {return value_;}
double r() const {return r_;}
double g() const {return g_;}
double b() const {return b_;}
FL_EXPORT int hsv(double,double,double);
FL_EXPORT int rgb(double,double,double);
static FL_EXPORT void hsv2rgb(double, double, double,double&,double&,double&);
static FL_EXPORT void rgb2hsv(double, double, double,double&,double&,double&);
FL_EXPORT Fl_Color_Chooser(int,int,int,int,const char* = 0);
};
FL_EXPORT int fl_color_chooser(const char* name, double& r, double& g, double& b);
FL_EXPORT int fl_color_chooser(const char* name, uchar& r, uchar& g, uchar& b);
#endif
//
// End of "$Id: Fl_Color_Chooser.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Scrollbar.H ---
//
// "$Id: Fl_Scrollbar.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Scroll bar header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Scrollbar_H
#define Fl_Scrollbar_H
#include "Fl_Slider.H"
class Fl_Scrollbar : public Fl_Slider {
int linesize_;
int pushed_;
FL_EXPORT void draw();
FL_EXPORT int handle(int);
static FL_EXPORT void timeout_cb(void*);
FL_EXPORT void increment_cb();
public:
FL_EXPORT Fl_Scrollbar(int x,int y,int w,int h, const char *l = 0);
int value() {return int(Fl_Slider::value());}
int value(int position, int size, int top, int total) {
return scrollvalue(position, size, top, total);
}
int linesize() const {return linesize_;}
void linesize(int i) {linesize_ = i;}
};
#endif
//
// End of "$Id: Fl_Scrollbar.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: gl2opengl.h ---
/* gl.h
GL to OpenGL translator.
If you include this, you might be able to port old GL programs.
There are also much better emulators available on the net.
*/
#include <FL/gl.h>
#include "gl_draw.H"
inline void clear() {glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);}
#define RGBcolor(r,g,b) glColor3ub(r,g,b)
#define bgnline() glBegin(GL_LINE_STRIP)
#define bgnpolygon() glBegin(GL_POLYGON)
#define bgnclosedline() glBegin(GL_LINE_LOOP)
#define endline() glEnd()
#define endpolygon() glEnd()
#define endclosedline() glEnd()
#define v2f(v) glVertex2fv(v)
#define v2s(v) glVertex2sv(v)
#define cmov(x,y,z) glRasterPos3f(x,y,z)
#define charstr(s) gl_draw(s)
#define fmprstr(s) gl_draw(s)
typedef float Matrix[4][4];
inline void pushmatrix() {glPushMatrix();}
inline void popmatrix() {glPopMatrix();}
inline void multmatrix(Matrix m) {glMultMatrixf((float *)m);}
inline void color(int n) {glIndexi(n);}
inline void rect(int x,int y,int r,int t) {gl_rect(x,y,r-x,t-y);}
inline void rectf(int x,int y,int r,int t) {glRectf(x,y,r+1,t+1);}
inline void recti(int x,int y,int r,int t) {gl_rect(x,y,r-x,t-y);}
inline void rectfi(int x,int y,int r,int t) {glRecti(x,y,r+1,t+1);}
inline void rects(int x,int y,int r,int t) {gl_rect(x,y,r-x,t-y);}
inline void rectfs(int x,int y,int r,int t) {glRects(x,y,r+1,t+1);}
--- NEW FILE: Fl_Choice.H ---
//
// "$Id: Fl_Choice.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Choice header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Choice_H
#define Fl_Choice_H
#include "Fl_Menu_.H"
class Fl_Choice : public Fl_Menu_ {
protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Choice(int,int,int,int,const char * = 0);
FL_EXPORT int value(int i);
FL_EXPORT int value() const {return Fl_Menu_::value();}
};
#endif
//
// End of "$Id: Fl_Choice.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: fl_draw.H ---
//
// "$Id: fl_draw.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Portable drawing function header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef fl_draw_H
#define fl_draw_H
#include "Enumerations.H" // for the color names
// Colors:
FL_EXPORT void fl_color(Fl_Color); // select indexed color
inline void fl_color(int c) {fl_color((Fl_Color)c);} // for back compatability
FL_EXPORT void fl_color(uchar, uchar, uchar); // select actual color
extern FL_EXPORT Fl_Color fl_color_;
inline Fl_Color fl_color() {return fl_color_;}
// clip:
FL_EXPORT void fl_clip(int x, int y, int w, int h);
#define fl_push_clip fl_clip
FL_EXPORT void fl_push_no_clip();
FL_EXPORT void fl_pop_clip();
FL_EXPORT int fl_not_clipped(int x, int y, int w, int h);
FL_EXPORT int fl_clip_box(int, int, int, int, int& x, int& y, int& w, int& h);
// points:
FL_EXPORT void fl_point(int x, int y);
// rectangles tweaked to exactly fill the pixel rectangle:
FL_EXPORT void fl_rect(int x, int y, int w, int h);
FL_EXPORT void fl_rectf(int x, int y, int w, int h);
// line segments:
FL_EXPORT void fl_line(int,int, int,int);
FL_EXPORT void fl_line(int,int, int,int, int,int);
// closed line segments:
FL_EXPORT void fl_loop(int,int, int,int, int,int);
FL_EXPORT void fl_loop(int,int, int,int, int,int, int,int);
// filled polygons
FL_EXPORT void fl_polygon(int,int, int,int, int,int);
FL_EXPORT void fl_polygon(int,int, int,int, int,int, int,int);
// draw rectilinear lines, horizontal segment first:
FL_EXPORT void fl_xyline(int x, int y, int x1);
FL_EXPORT void fl_xyline(int x, int y, int x1, int y2);
FL_EXPORT void fl_xyline(int x, int y, int x1, int y2, int x3);
// draw rectilinear lines, vertical segment first:
FL_EXPORT void fl_yxline(int x, int y, int y1);
FL_EXPORT void fl_yxline(int x, int y, int y1, int x2);
FL_EXPORT void fl_yxline(int x, int y, int y1, int x2, int y3);
// circular lines and pie slices (code in fl_arci.C):
FL_EXPORT void fl_arc(int x, int y, int w, int h, double a1, double a2);
FL_EXPORT void fl_pie(int x, int y, int w, int h, double a1, double a2);
FL_EXPORT void fl_chord(int x, int y, int w, int h, double a1, double a2); // nyi
// scalable drawing code (code in fl_vertex.C and fl_arc.C):
FL_EXPORT void fl_push_matrix();
FL_EXPORT void fl_pop_matrix();
FL_EXPORT void fl_scale(double x, double y);
FL_EXPORT void fl_scale(double x);
FL_EXPORT void fl_translate(double x, double y);
FL_EXPORT void fl_rotate(double d);
FL_EXPORT void fl_mult_matrix(double a, double b, double c, double d, double x,double y);
FL_EXPORT void fl_begin_points();
FL_EXPORT void fl_begin_line();
FL_EXPORT void fl_begin_loop();
FL_EXPORT void fl_begin_polygon();
FL_EXPORT void fl_vertex(double x, double y);
FL_EXPORT void fl_curve(double, double, double, double, double, double, double, double);
FL_EXPORT void fl_arc(double x, double y, double r, double start, double a);
FL_EXPORT void fl_circle(double x, double y, double r);
FL_EXPORT void fl_end_points();
FL_EXPORT void fl_end_line();
FL_EXPORT void fl_end_loop();
FL_EXPORT void fl_end_polygon();
FL_EXPORT void fl_begin_complex_polygon();
FL_EXPORT void fl_gap();
FL_EXPORT void fl_end_complex_polygon();
// get and use transformed positions:
FL_EXPORT double fl_transform_x(double x, double y);
FL_EXPORT double fl_transform_y(double x, double y);
FL_EXPORT double fl_transform_dx(double x, double y);
FL_EXPORT double fl_transform_dy(double x, double y);
FL_EXPORT void fl_transformed_vertex(double x, double y);
// current font:
FL_EXPORT void fl_font(int face, int size);
extern FL_EXPORT int fl_font_;
inline int fl_font() {return fl_font_;}
extern FL_EXPORT int fl_size_;
inline int fl_size() {return fl_size_;}
// information you can get about the current font:
FL_EXPORT int fl_height(); // using "size" should work ok
FL_EXPORT int fl_descent();
FL_EXPORT double fl_width(const char*);
FL_EXPORT double fl_width(const char*, int n);
FL_EXPORT double fl_width(uchar);
// draw using current font:
FL_EXPORT void fl_draw(const char*, int x, int y);
FL_EXPORT void fl_draw(const char*, int n, int x, int y);
FL_EXPORT void fl_measure(const char*, int& x, int& y);
FL_EXPORT void fl_draw(const char*, int,int,int,int, Fl_Align);
FL_EXPORT void fl_draw(const char*, int,int,int,int, Fl_Align,
void (*callthis)(const char *, int n, int x, int y));
// boxtypes:
FL_EXPORT void fl_frame(const char* s, int x, int y, int w, int h);
FL_EXPORT void fl_frame2(const char* s, int x, int y, int w, int h);
FL_EXPORT void fl_draw_box(Fl_Boxtype, int x, int y, int w, int h, Fl_Color);
// images:
FL_EXPORT void fl_draw_image(const uchar*, int,int,int,int, int delta=3, int ldelta=0);
FL_EXPORT void fl_draw_image_mono(const uchar*, int,int,int,int, int delta=1, int ld=0);
typedef void (*Fl_Draw_Image_Cb)(void*,int,int,int,uchar*);
FL_EXPORT void fl_draw_image(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=3);
FL_EXPORT void fl_draw_image_mono(Fl_Draw_Image_Cb, void*, int,int,int,int, int delta=1);
FL_EXPORT void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b);
// pixmaps:
FL_EXPORT int fl_draw_pixmap(/*const*/ char* const* data, int x,int y,Fl_Color=FL_GRAY);
FL_EXPORT int fl_measure_pixmap(/*const*/ char* const* data, int &w, int &h);
// other:
extern FL_EXPORT void fl_scroll(int X, int Y, int W, int H, int dx, int dy,
void (*draw_area)(void*, int,int,int,int), void* data);
FL_EXPORT const char* fl_shortcut_label(int);
FL_EXPORT void fl_overlay_rect(int,int,int,int);
FL_EXPORT void fl_overlay_clear();
FL_EXPORT void fl_cursor(Fl_Cursor, Fl_Color=FL_BLACK, Fl_Color=FL_WHITE);
// XForms symbols:
FL_EXPORT int fl_draw_symbol(const char* label,int x,int y,int w,int h, Fl_Color);
FL_EXPORT int fl_add_symbol(const char* name, void (*drawit)(Fl_Color), int scalable);
#endif
//
// End of "$Id: fl_draw.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: x.H ---
//
// "$Id: x.H,v 1.1 2006-10-03 11:25:01 dslinux_amadeus Exp $"
//
// X11 header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// These are internal fltk symbols that are necessary or useful for
// calling Xlib. You should include this file if (and ONLY if) you
// need to call Xlib directly. These symbols may not exist on non-X
// systems.
#ifndef Fl_X_H
#define Fl_X_H
#include "Enumerations.H"
#ifdef WIN32
#include "win32.H"
#else
#ifdef NANO_X
#include "n_x.h"
#else
#if defined(_ABIN32) || defined(_ABI64) // fix for broken SGI Irix X .h files
#pragma set woff 3322
#endif
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#if defined(_ABIN32) || defined(_ABI64)
#pragma reset woff 3322
#endif
#include <X11/Xatom.h>
#include "Fl_Window.H"
FL_EXPORT void fl_open_display();
FL_EXPORT void fl_close_display();
// constant info about the X server connection:
extern FL_EXPORT Display *fl_display;
extern FL_EXPORT int fl_screen;
extern FL_EXPORT XVisualInfo *fl_visual;
extern FL_EXPORT Colormap fl_colormap;
// drawing functions:
extern FL_EXPORT GC fl_gc;
extern FL_EXPORT Window fl_window;
extern FL_EXPORT XFontStruct* fl_xfont;
FL_EXPORT ulong fl_xpixel(Fl_Color i);
FL_EXPORT ulong fl_xpixel(uchar r, uchar g, uchar b);
FL_EXPORT void fl_clip_region(Region);
FL_EXPORT Region XRectangleRegion(int x, int y, int w, int h); // in fl_rect.cxx
// feed events into fltk:
FL_EXPORT int fl_handle(const XEvent&);
// you can use these in Fl::add_handler() to look at events:
extern FL_EXPORT const XEvent* fl_xevent;
extern FL_EXPORT ulong fl_event_time;
// off-screen pixmaps: create, destroy, draw into, copy to window:
#define Fl_Offscreen ulong
#define fl_create_offscreen(w,h) \
XCreatePixmap(fl_display, fl_window, w, h, fl_visual->depth)
// begin/end are macros that save the old state in local variables:
#define fl_begin_offscreen(pixmap) \
Window _sw=fl_window; fl_window=pixmap; fl_push_no_clip()
#define fl_end_offscreen() \
fl_pop_clip(); fl_window = _sw
#define fl_copy_offscreen(x,y,w,h,pixmap,srcx,srcy) \
XCopyArea(fl_display, pixmap, fl_window, fl_gc, srcx, srcy, w, h, x, y)
#define fl_delete_offscreen(pixmap) XFreePixmap(fl_display, pixmap)
// this object contains all X-specific stuff about a window:
// Warning: this object is highly subject to change! It's definition
// is only here so that fl_xid can be declared inline:
class Fl_X {
public:
Window xid;
Window other_xid;
Fl_Window *w;
Region region;
Fl_X *next;
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;}
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);}
};
// convert xid <-> Fl_Window:
inline Window fl_xid(const Fl_Window*w) {return Fl_X::i(w)->xid;}
FL_EXPORT Fl_Window* fl_find(Window xid);
extern FL_EXPORT char fl_override_redirect; // hack into Fl_X::make_xid()
extern FL_EXPORT int fl_background_pixel; // hack into Fl_X::make_xid()
#endif
#endif
#endif
//
// End of "$Id: x.H,v 1.1 2006-10-03 11:25:01 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Radio_Button.H ---
//
// "$Id: Fl_Radio_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Radio button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Radio_Button_H
#define Fl_Radio_Button_H
#include "Fl_Button.H"
class Fl_Radio_Button : public Fl_Button {
public:
Fl_Radio_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Button(x,y,w,h,l) {type(FL_RADIO_BUTTON);}
};
#endif
//
// End of "$Id: Fl_Radio_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: win32.H ---
//
// "$Id: win32.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// WIN32 header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// Do not directly include this file, instead use <FL/x.H>. It will
// include this file if WIN32 is defined. This is to encourage
// portability of even the system-specific code...
#include <windows.h>
// In some of the distributions, the gcc header files are missing some stuff:
#ifndef LPMINMAXINFO
#define LPMINMAXINFO MINMAXINFO*
#endif
#ifndef VK_LWIN
#define VK_LWIN 0x5B
#define VK_RWIN 0x5C
#define VK_APPS 0x5D
#endif
// some random X equivalents
typedef HWND Window;
typedef POINT XPoint;
struct XRectangle {int x, y, width, height;};
typedef HRGN Region;
FL_EXPORT void fl_clip_region(Region);
inline Region XRectangleRegion(int x, int y, int w, int h) {
return CreateRectRgn(x,y,x+w,y+h);
}
inline void XDestroyRegion(Region r) {DeleteObject(r);}
inline void XClipBox(Region r,XRectangle* rect) {
RECT win_rect; GetRgnBox(r,&win_rect);
rect->x=win_rect.left;
rect->y=win_rect.top;
rect->width=win_rect.right-win_rect.left;
rect->height=win_rect.bottom-win_rect.top;
}
#define XDestroyWindow(a,b) DestroyWindow(b)
#define XMapWindow(a,b) ShowWindow(b, SW_RESTORE)
#define XUnmapWindow(a,b) ShowWindow(b, SW_HIDE)
#include "Fl_Window.H"
// this object contains all win32-specific stuff about a window:
// Warning: this object is highly subject to change!
class Fl_X {
public:
Window xid;
HBITMAP other_xid; // for double-buffered windows
Fl_Window* w;
Region region;
Fl_X *next;
int wait_for_expose;
HDC private_dc; // used for OpenGL
HCURSOR cursor;
static FL_EXPORT Fl_X* first;
static FL_EXPORT Fl_X* i(const Fl_Window* w) {return w->i;}
static FL_EXPORT int fake_X_wm(const Fl_Window* w,int &X, int &Y,
int &bt,int &bx,int &by);
FL_EXPORT void setwindow(Fl_Window* wi) {w=wi; wi->i=this;}
FL_EXPORT void flush() {w->flush();}
FL_EXPORT void set_minmax(LPMINMAXINFO minmax);
FL_EXPORT void mapraise();
static FL_EXPORT Fl_X* make(Fl_Window*);
};
extern FL_EXPORT HCURSOR fl_default_cursor;
inline Window fl_xid(const Fl_Window*w) {return Fl_X::i(w)->xid;}
FL_EXPORT Fl_Window* fl_find(Window xid);
extern FL_EXPORT char fl_override_redirect; // hack into Fl_Window::make_xid()
extern FL_EXPORT int fl_background_pixel; // hack into Fl_Window::make_xid()
// most recent fl_color() or fl_rgbcolor() points at one of these:
extern FL_EXPORT struct Fl_XMap {
COLORREF rgb; // this should be the type the RGB() macro returns
HPEN pen; // pen, 0 if none created yet
int brush; // ref to solid brush, 0 if none created yet
} *fl_current_xmap;
inline COLORREF fl_RGB() {return fl_current_xmap->rgb;}
inline HPEN fl_pen() {return fl_current_xmap->pen;}
FL_EXPORT HBRUSH fl_brush(); // allocates a brush if necessary
extern FL_EXPORT HINSTANCE fl_display;
extern FL_EXPORT Window fl_window;
extern FL_EXPORT HDC fl_gc;
extern FL_EXPORT HPALETTE fl_palette; // non-zero only on 8-bit displays!
extern FL_EXPORT HDC fl_GetDC(Window);
extern FL_EXPORT MSG fl_msg;
// off-screen pixmaps: create, destroy, draw into, copy to window
#define Fl_Offscreen HBITMAP
#define fl_create_offscreen(w, h) CreateCompatibleBitmap(fl_gc, w, h)
extern FL_EXPORT HDC fl_makeDC(HBITMAP);
#define fl_begin_offscreen(b) \
HDC _sgc=fl_gc; Window _sw=fl_window; \
fl_gc=fl_makeDC(b); fl_window=(HWND)b; fl_push_no_clip()
#define fl_end_offscreen() \
fl_pop_clip(); DeleteDC(fl_gc); fl_window=_sw; fl_gc = _sgc
FL_EXPORT void fl_copy_offscreen(int x,int y,int w,int h,HBITMAP pixmap,int srcx,int srcy);
#define fl_delete_offscreen(bitmap) DeleteObject(bitmap);
//
// End of "$Id: win32.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: gl_draw.H ---
//
// "$Id: gl_draw.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// OpenGL header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#include "gl.h"
//
// End of "$Id: gl_draw.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Tabs.H ---
//
// "$Id: Fl_Tabs.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Tab header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Tabs_H
#define Fl_Tabs_H
#include "Fl_Group.H"
class Fl_Tabs : public Fl_Group {
Fl_Widget *value_;
Fl_Widget *push_;
FL_EXPORT void draw();
FL_EXPORT int tab_positions(int*, int*);
FL_EXPORT int tab_height();
FL_EXPORT void draw_tab(int x1, int x2, int W, int H, Fl_Widget* o, int sel=0);
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Widget *value();
FL_EXPORT int value(Fl_Widget *);
Fl_Widget *push() const {return push_;}
FL_EXPORT int push(Fl_Widget *);
FL_EXPORT Fl_Tabs(int,int,int,int,const char * = 0);
FL_EXPORT Fl_Widget *which(int event_x, int event_y);
};
#endif
//
// End of "$Id: Fl_Tabs.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: .Enumerations.H.swp ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: Fl_FormsPixmap.H ---
//
// "$Id: Fl_FormsPixmap.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Forms pixmap header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_FormsPixmap_H
#define Fl_FormsPixmap_H
#include "Fl_Pixmap.H"
class Fl_FormsPixmap : public Fl_Widget {
Fl_Pixmap *b;
protected:
FL_EXPORT void draw();
public:
FL_EXPORT Fl_FormsPixmap(Fl_Boxtype, int, int, int, int, const char * = 0);
FL_EXPORT void set(/*const*/char * const * bits);
void Pixmap(Fl_Pixmap *B) {b = B;}
Fl_Pixmap *Pixmap() const {return b;}
};
#endif
//
// End of "$Id: Fl_FormsPixmap.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu_Item.H ---
//
// "$Id: Fl_Menu_Item.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Menu item header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Menu_Item_H
#define Fl_Menu_Item_H
#ifndef Fl_Widget_H
// used to get the Fl_Callback typedefs:
#include "Fl_Widget.H"
#endif
enum { // values for flags:
FL_MENU_INACTIVE = 1,
FL_MENU_TOGGLE= 2,
FL_MENU_VALUE = 4,
FL_MENU_RADIO = 8,
FL_MENU_INVISIBLE = 0x10,
FL_SUBMENU_POINTER = 0x20,
FL_SUBMENU = 0x40,
FL_MENU_DIVIDER = 0x80,
FL_MENU_HORIZONTAL = 0x100
};
extern FL_EXPORT int fl_old_shortcut(const char*);
class Fl_Menu_;
struct Fl_Menu_Item {
const char *text; // label()
int shortcut_;
Fl_Callback *callback_;
void *user_data_;
int flags;
uchar labeltype_;
uchar labelfont_;
uchar labelsize_;
uchar labelcolor_;
// advance N items, skipping submenus:
FL_EXPORT const Fl_Menu_Item *next(int=1) const;
Fl_Menu_Item *next(int i=1) {
return (Fl_Menu_Item*)(((const Fl_Menu_Item*)this)->next(i));}
// methods on menu items:
const char* label() const {return text;}
void label(const char* a) {text=a;}
void label(Fl_Labeltype a,const char* b) {labeltype_ = a; text = b;}
Fl_Labeltype labeltype() const {return (Fl_Labeltype)labeltype_;}
void labeltype(Fl_Labeltype a) {labeltype_ = a;}
Fl_Color labelcolor() const {return (Fl_Color)labelcolor_;}
void labelcolor(uchar a) {labelcolor_ = a;}
Fl_Font labelfont() const {return (Fl_Font)labelfont_;}
void labelfont(uchar a) {labelfont_ = a;}
uchar labelsize() const {return labelsize_;}
void labelsize(uchar a) {labelsize_ = a;}
Fl_Callback_p callback() const {return callback_;}
void callback(Fl_Callback* c, void* p) {callback_=c; user_data_=p;}
void callback(Fl_Callback* c) {callback_=c;}
void callback(Fl_Callback0*c) {callback_=(Fl_Callback*)c;}
void callback(Fl_Callback1*c, long p=0) {callback_=(Fl_Callback*)c; user_data_=(void*)p;}
void* user_data() const {return user_data_;}
void user_data(void* v) {user_data_ = v;}
long argument() const {return (long)user_data_;}
void argument(long v) {user_data_ = (void*)v;}
int shortcut() const {return shortcut_;}
void shortcut(int s) {shortcut_ = s;}
int submenu() const {return flags&(FL_SUBMENU|FL_SUBMENU_POINTER);}
int checkbox() const {return flags&FL_MENU_TOGGLE;}
int radio() const {return flags&FL_MENU_RADIO;}
int value() const {return flags&FL_MENU_VALUE;}
void set() {flags |= FL_MENU_VALUE;}
void clear() {flags &= ~FL_MENU_VALUE;}
FL_EXPORT void setonly();
int visible() const {return !(flags&FL_MENU_INVISIBLE);}
void show() {flags &= ~FL_MENU_INVISIBLE;}
void hide() {flags |= FL_MENU_INVISIBLE;}
int active() const {return !(flags&FL_MENU_INACTIVE);}
void activate() {flags &= ~FL_MENU_INACTIVE;}
void deactivate() {flags |= FL_MENU_INACTIVE;}
int activevisible() const {return !(flags&0x11);}
// used by menubar:
FL_EXPORT int measure(int* h, const Fl_Menu_*) const;
FL_EXPORT void draw(int x, int y, int w, int h, const Fl_Menu_*, int t=0) const;
// popup menus without using an Fl_Menu_ widget:
FL_EXPORT const Fl_Menu_Item* popup(
int X, int Y,
const char *title = 0,
const Fl_Menu_Item* picked=0,
const Fl_Menu_* = 0) const;
FL_EXPORT const Fl_Menu_Item* pulldown(
int X, int Y, int W, int H,
const Fl_Menu_Item* picked = 0,
const Fl_Menu_* = 0,
const Fl_Menu_Item* title = 0,
int menubar=0) const;
FL_EXPORT const Fl_Menu_Item* test_shortcut() const;
FL_EXPORT const Fl_Menu_Item* find_shortcut(int *ip=0) const;
void do_callback(Fl_Widget* o) const {callback_(o, user_data_);}
void do_callback(Fl_Widget* o,void* arg) const {callback_(o, arg);}
void do_callback(Fl_Widget* o,long arg) const {callback_(o, (void*)arg);}
// back-compatability, do not use:
int checked() const {return flags&FL_MENU_VALUE;}
void check() {flags |= FL_MENU_VALUE;}
void uncheck() {flags &= ~FL_MENU_VALUE;}
FL_EXPORT int add(const char*, int shortcut, Fl_Callback*, void* =0, int = 0);
int add(const char*a, const char* b, Fl_Callback* c,
void* d = 0, int e = 0) {
return add(a,fl_old_shortcut(b),c,d,e);}
FL_EXPORT int size() const ;
};
typedef Fl_Menu_Item Fl_Menu; // back compatability
enum { // back-compatability enum:
FL_PUP_NONE = 0,
FL_PUP_GREY = FL_MENU_INACTIVE,
FL_PUP_GRAY = FL_MENU_INACTIVE,
FL_MENU_BOX = FL_MENU_TOGGLE,
FL_PUP_BOX = FL_MENU_TOGGLE,
FL_MENU_CHECK = FL_MENU_VALUE,
FL_PUP_CHECK = FL_MENU_VALUE,
FL_PUP_RADIO = FL_MENU_RADIO,
FL_PUP_INVISIBLE = FL_MENU_INVISIBLE,
FL_PUP_SUBMENU = FL_SUBMENU_POINTER
};
#endif
//
// End of "$Id: Fl_Menu_Item.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: n_x.h ---
//
// "$Id: N_X.H,v 1.00 2000/05/25 16:25:45 Tang hao "
//
// Nano-X header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 2000-2000 by Tang Hao.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// Do not directly include this file, instead use <FL/x.H>. It will
// include this file if NANO_X is defined. This is to encourage
// portability of even the system-specific code...
#define MWINCLUDECOLORS
#include <nano-X.h>
//#if defined(_ABIN32) || defined(_ABI64) // fix for broken SGI Irix X .h files
//#pragma set woff 3322
//#endif
//#include <X11/Xlib.h>
//#include <X11/Xutil.h>
//#if defined(_ABIN32) || defined(_ABI64)
//#pragma reset woff 3322
//#endif
//#include <X11/Xatom.h>
#include "Fl_Window.H"
//tanghao
#define Window GR_WINDOW_ID
#define GC GR_GC_ID
#define XVisualInfo int
#define Colormap int
#define Region int
/*typedef struct
{
int x;
int y;
}Cursor;
*/
#define Cursor int
//tanghao
#define None 0
FL_EXPORT void fl_open_display();
FL_EXPORT void fl_close_display();
// constant info about the X server connection:
//extern FL_EXPORT Display *fl_display;
extern FL_EXPORT int fl_display;
extern FL_EXPORT int fl_screen;
extern FL_EXPORT XVisualInfo *fl_visual;
extern FL_EXPORT Colormap fl_colormap;
// drawing functions:
//extern FL_EXPORT GC fl_gc;
extern FL_EXPORT GR_GC_ID fl_gc;
//extern FL_EXPORT Window fl_window;
extern FL_EXPORT GR_WINDOW_ID fl_window;
//extern FL_EXPORT XFontStruct* fl_xfont;
extern FL_EXPORT GR_FONT_ID fl_xfont;
FL_EXPORT ulong fl_xpixel(Fl_Color i);
FL_EXPORT ulong fl_xpixel(uchar r, uchar g, uchar b);
FL_EXPORT void fl_clip_region(Region);
FL_EXPORT Region XRectangleRegion(int x, int y, int w, int h); // in fl_rect.cxx
// feed events into fltk:
//FL_EXPORT int fl_handle(const XEvent&);
FL_EXPORT int fl_handle(const GR_EVENT&);
// you can use these in Fl::add_handler() to look at events:
//extern FL_EXPORT const XEvent* fl_xevent;
//extern FL_EXPORT const GR_EVENT fl_xevent;
extern FL_EXPORT GR_EVENT * fl_xevent;
extern FL_EXPORT ulong fl_event_time;
// off-screen pixmaps: create, destroy, draw into, copy to window:
#define Fl_Offscreen GR_WINDOW_ID
#define fl_create_offscreen(w,h) GrNewPixmap(w,h,0)
//
// XCreatePixmap(fl_display, fl_window, w, h, fl_visual->depth)
// begin/end are macros that save the old state in local variables:
#define fl_begin_offscreen(pixmap) \
Window _sw=fl_window; fl_window=pixmap; fl_push_no_clip()
#define fl_end_offscreen() \
fl_pop_clip(); fl_window=_sw
#define fl_copy_offscreen(x,y,w,h,pixmap,srcx,srcy) \
GrCopyArea(fl_window,fl_gc,x,y,w,h,pixmap,srcx,srcy,MWROP_SRCCOPY)
//(GR_DRAW_ID id, GR_GC_ID gc, GR_COORD x, GR_COORD y,
//GR_SIZE width, GR_SIZE height, GR_DRAW_ID srcid,
//GR_COORD srcx, GR_COORD srcy, int op);
//
// XCopyArea(fl_display, pixmap, fl_window, fl_gc, srcx, srcy, w, h, x, y)
#define fl_delete_offscreen(pixmap) GrDestroyWindow(pixmap)
//XFreePixmap(fl_display, pixmap)
// this object contains all X-specific stuff about a window:
// Warning: this object is highly subject to change! It's definition
// is only here so that fl_xid can be declared inline:
class Fl_X {
public:
static int mw_parent;
static int mw_parent_xid;
static int mw_parent_top;
static int fix_exposure;
Window xid;
Window other_xid;
Fl_Window *w;
Region region;
Fl_X *next;
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;}
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);}
};
// convert xid <-> Fl_Window:
inline Window fl_xid(const Fl_Window*w) {return Fl_X::i(w)->xid;}
FL_EXPORT Fl_Window* fl_find(Window xid);
extern FL_EXPORT char fl_override_redirect; // hack into Fl_X::make_xid()
extern FL_EXPORT int fl_background_pixel; // hack into Fl_X::make_xid()
//
// End of "$Id: N_X.H,v 1.00 2000/05/25 16:25:45 Tang hao "
//
--- NEW FILE: fl_show_colormap.H ---
//
// "$Id: fl_show_colormap.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Colormap picker header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef fl_show_colormap_H
#define fl_show_colormap_H
FL_EXPORT Fl_Color fl_show_colormap(Fl_Color oldcol);
#endif
//
// End of "$Id: fl_show_colormap.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Window.H ---
//
// "$Id: Fl_Window.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Window header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Window_H
#define Fl_Window_H
#include "Fl_Group.H"
#define FL_WINDOW 0xF0 // all subclasses have type() >= this
class Fl_Window : public Fl_Group {
friend class Fl_X; Fl_X *i; // points at the system-specific stuff
const char* iconlabel_;
const char* xclass_;
const void* icon_;
// size_range stuff:
short minw, minh, maxw, maxh;
uchar dw, dh, aspect, size_range_set;
FL_EXPORT void size_range_();
// values for flags():
enum {
FL_MODAL = 64,
FL_NOBORDER = 8,
FL_FORCE_POSITION = 16,
FL_NON_MODAL = 32
};
static FL_EXPORT Fl_Window *current_;
FL_EXPORT void _Fl_Window(); // constructor innards
protected:
virtual FL_EXPORT void draw();
virtual FL_EXPORT void flush();
public:
unsigned long wm_props;
FL_EXPORT Fl_Window(int,int,int,int, const char* = 0);
FL_EXPORT Fl_Window(int,int, const char* = 0);
virtual FL_EXPORT ~Fl_Window();
virtual FL_EXPORT int handle(int);
virtual FL_EXPORT void resize_notify(int,int,int,int);
virtual FL_EXPORT void resize(int,int,int,int);
FL_EXPORT void border(int b);
void clear_border() {set_flag(FL_NOBORDER);}
int border() const {return !(flags() & FL_NOBORDER);}
void set_modal() {set_flag(FL_MODAL);}
uchar modal() const {return flags() & FL_MODAL;}
void set_non_modal() {set_flag(FL_NON_MODAL);}
uchar non_modal() const {return flags() & (FL_NON_MODAL|FL_MODAL);}
FL_EXPORT void hotspot(int x, int y, int offscreen = 0);
FL_EXPORT void hotspot(const Fl_Widget*, int offscreen = 0);
void hotspot(const Fl_Widget& p, int offscreen = 0) {hotspot(&p,offscreen);}
void free_position() {clear_flag(FL_FORCE_POSITION);}
void size_range(int a, int b, int c=0, int d=0, int e=0, int f=0, int g=0) {
minw=a; minh=b; maxw=c; maxh=d; dw=e; dh=f; aspect=g; size_range_();}
const char* label() const {return Fl_Widget::label();}
const char* iconlabel() const {return iconlabel_;}
FL_EXPORT void label(const char*);
FL_EXPORT void iconlabel(const char*);
FL_EXPORT void label(const char* label, const char* iconlabel);
const char* xclass() const {return xclass_;}
void xclass(const char* c) {xclass_ = c;}
const void* icon() const {return icon_;}
void icon(const void * ic) {icon_ = ic;}
int shown() {return i != 0;}
virtual FL_EXPORT void show();
virtual FL_EXPORT void hide();
FL_EXPORT void show(int, char**);
FL_EXPORT void fullscreen();
FL_EXPORT void fullscreen_off(int,int,int,int);
FL_EXPORT void iconize();
FL_EXPORT int x_root() const ;
FL_EXPORT int y_root() const ;
static Fl_Window *current() {return current_;}
FL_EXPORT void make_current();
// for back-compatability only:
FL_EXPORT void cursor(Fl_Cursor, Fl_Color=FL_BLACK, Fl_Color=FL_WHITE);
static FL_EXPORT void default_callback(Fl_Window*, void* v);
};
#endif
//
// End of "$Id: Fl_Window.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Animator.H ---
#ifndef Fl_Animator_H
#define Fl_Animator_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
#ifndef Fl_Pixmap_H
#include "Fl_Pixmap.H"
#endif
/*
* FL_ANIMATOR
* This widget shows a series of frames from an XPM
* that looks somewhat like a movie strip
*
*/
/* This is derived from a box, and it draws into one too */
class Fl_Animator : public Fl_Widget
{
private:
int _xpos;
int _ypos;
double _interval; /* Gap between frames, in seconds */
int _fcount; /* The number of frames in the strip */
int _fwidth; /* The xsize of the frames */
int _fheight; /* The ysize of the frames */
Fl_Pixmap *_image; /* The actual image */
int _curframe; /* The current frame */
bool _playing;
static void run_animation(void *data);
void draw_frame();
protected:
virtual FL_EXPORT void draw();
public:
Fl_Animator(char * const *image, int X, int Y,
int fcount, int fwidth, int fheight,
int finterval, const char *label = 0);
~Fl_Animator();
/* The user passes the interval in miliseconds, and we convert it */
/* internally */
int interval() { return((int ) (_interval * 1000)); }
void interval(int newint) { _interval = (double) (newint / 1000); }
int frame_width() { return(_fwidth); }
void frame_width(int newwidth) { _fwidth = newwidth; }
int frame_height() { return(_fheight); }
void frame_height(int newheight) { _fwidth = newheight; }
int frame() { return _curframe; }
void frame(int newframe)
{ if (newframe > 0 && newframe < _fcount) _curframe = newframe; }
bool is_playing() {return _playing;}
void start_animation();
void stop_animation();
};
#endif
--- NEW FILE: Fl_Scroll.H ---
//
// "$Id: Fl_Scroll.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Scroll header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Scroll_H
#define Fl_Scroll_H
#include "Fl_Group.H"
#include "Fl_Scrollbar.H"
class Fl_Scroll : public Fl_Group {
int xposition_, yposition_;
int width_, height_;
int oldx, oldy;
static FL_EXPORT void hscrollbar_cb(Fl_Widget*, void*);
static FL_EXPORT void scrollbar_cb(Fl_Widget*, void*);
FL_EXPORT void fix_scrollbar_order();
static FL_EXPORT void draw_clip(void*,int,int,int,int);
FL_EXPORT void bbox(int&,int&,int&,int&);
protected:
FL_EXPORT void draw();
public:
Fl_Scrollbar scrollbar;
Fl_Scrollbar hscrollbar;
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT int handle(int);
FL_EXPORT Fl_Scroll(int X,int Y,int W,int H,const char*l=0);
enum { // values for type()
HORIZONTAL = 1,
VERTICAL = 2,
BOTH = 3,
ALWAYS_ON = 4,
HORIZONTAL_ALWAYS = 5,
VERTICAL_ALWAYS = 6,
BOTH_ALWAYS = 7
};
int xposition() const {return xposition_;}
int yposition() const {return yposition_;}
FL_EXPORT void position(int, int);
};
#endif
//
// End of "$Id: Fl_Scroll.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Browser.H ---
//
// "$Id: Fl_Browser.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Browser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// Forms-compatable browser. Probably useful for other
// lists of textual data. Notice that the line numbers
// start from 1, and 0 means "no line".
#ifndef Fl_Browser_H
#define Fl_Browser_H
#include "Fl_Browser_.H"
struct FL_BLINE;
class Fl_Browser : public Fl_Browser_ {
FL_BLINE *first; // the array of lines
FL_BLINE *last;
FL_BLINE *cache;
int cacheline; // line number of cache
int lines; // Number of lines
int full_height_;
const int* column_widths_;
char format_char_; // alternative to @-sign
char column_char_; // alternative to tab
protected:
// required routines for Fl_Browser_ subclass:
FL_EXPORT void* item_first() const ;
FL_EXPORT void* item_next(void*) const ;
FL_EXPORT void* item_prev(void*) const ;
FL_EXPORT int item_selected(void*) const ;
FL_EXPORT void item_select(void*, int);
FL_EXPORT int item_height(void*) const ;
FL_EXPORT int item_width(void*) const ;
FL_EXPORT void item_draw(void*, int, int, int, int) const ;
FL_EXPORT int full_height() const ;
FL_EXPORT int incr_height() const ;
FL_EXPORT FL_BLINE* find_line(int) const ;
FL_EXPORT FL_BLINE* _remove(int) ;
FL_EXPORT void insert(int, FL_BLINE*);
FL_EXPORT int lineno(void*) const ;
public:
FL_EXPORT void remove(int);
FL_EXPORT void add(const char*, void* = 0);
FL_EXPORT void insert(int, const char*, void* = 0);
FL_EXPORT void move(int to, int from);
FL_EXPORT int load(const char* filename);
FL_EXPORT void clear();
int size() const {return lines;}
FL_EXPORT int topline() const ;
enum Fl_Line_Position { TOP, BOTTOM, MIDDLE };
FL_EXPORT void lineposition(int, Fl_Line_Position);
void topline(int l) { lineposition(l, TOP); }
void bottomline(int l) { lineposition(l, BOTTOM); }
void middleline(int l) { lineposition(l, MIDDLE); }
FL_EXPORT int select(int, int=1);
FL_EXPORT int selected(int) const ;
FL_EXPORT void show(int n);
FL_EXPORT void hide(int n);
void hide() {Fl_Widget::hide();}
FL_EXPORT int visible(int n) const ;
FL_EXPORT int value() const ;
void value(int v) {select(v);}
FL_EXPORT const char* text(int) const ;
FL_EXPORT void text(int, const char*);
FL_EXPORT void* data(int) const ;
FL_EXPORT void data(int, void* v);
FL_EXPORT Fl_Browser(int, int, int, int, const char* = 0);
~Fl_Browser() { clear(); }
char format_char() const {return format_char_;}
void format_char(char c) {format_char_ = c;}
char column_char() const {return column_char_;}
void column_char(char c) {column_char_ = c;}
const int* column_widths() const {return column_widths_;}
void column_widths(const int* l) {column_widths_ = l;}
int displayed(int n) const {return Fl_Browser_::displayed(find_line(n));}
void make_visible(int n) {Fl_Browser_::display(find_line(n));}
// for back compatability only:
void replace(int a, const char* b) {text(a, b);}
FL_EXPORT void display(int, int=1);
};
#endif
//
// End of "$Id: Fl_Browser.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Toggle_Round_Button.H ---
//
// "$Id: Fl_Toggle_Round_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Toggle round button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// provided for back-compatability only
#ifndef Fl_Toggle_Round_Button
#include "Fl_Round_Button.H"
#define Fl_Toggle_Round_Button Fl_Round_Button
#endif
//
// End of "$Id: Fl_Toggle_Round_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: fl_ask.H ---
//
// "$Id: fl_ask.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Standard dialog header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef fl_ask_H
#define fl_ask_H
#include "Enumerations.H"
class Fl_Widget;
FL_EXPORT void fl_message(const char *,...);
FL_EXPORT void fl_alert(const char *,...);
FL_EXPORT int fl_ask(const char *,...);
FL_EXPORT int fl_choice(const char *q,const char *b0,const char *b1,const char *b2,...);
FL_EXPORT const char *fl_input(const char *label, const char *deflt = 0, ...);
FL_EXPORT const char *fl_password(const char *label, const char *deflt = 0, ...);
FL_EXPORT Fl_Widget *fl_message_icon();
extern FL_EXPORT unsigned char fl_message_font_;
extern FL_EXPORT unsigned char fl_message_size_;
inline void fl_message_font(unsigned char f,unsigned char s) {
fl_message_font_ = f; fl_message_size_ = s;}
// pointers you can use to change FLTK to a foreign language:
extern FL_EXPORT const char* fl_no;
extern FL_EXPORT const char* fl_yes;
extern FL_EXPORT const char* fl_ok;
extern FL_EXPORT const char* fl_cancel;
#endif
//
// End of "$Id: fl_ask.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Check_Button.H ---
//
// "$Id: Fl_Check_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Check button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Check_Button_H
#define Fl_Check_Button_H
#include "Fl_Light_Button.H"
class Fl_Check_Button : public Fl_Light_Button {
public:
FL_EXPORT Fl_Check_Button(int x,int y,int w,int h,const char *l = 0);
};
#endif
//
// End of "$Id: Fl_Check_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_FormsBitmap.H ---
//
// "$Id: Fl_FormsBitmap.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Forms bitmap header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_FormsBitmap_H
#define Fl_FormsBitmap_H
#include "Fl_Bitmap.H"
class Fl_FormsBitmap : public Fl_Widget {
Fl_Bitmap *b;
protected:
FL_EXPORT void draw();
public:
FL_EXPORT Fl_FormsBitmap(Fl_Boxtype, int, int, int, int, const char * = 0);
FL_EXPORT void set(int W, int H, const uchar *bits);
void bitmap(Fl_Bitmap *B) {b = B;}
Fl_Bitmap *bitmap() const {return b;}
};
#endif
//
// End of "$Id: Fl_FormsBitmap.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Chart.H ---
//
// "$Id: Fl_Chart.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Forms chart header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Chart_H
#define Fl_Chart_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
// values for type()
#define FL_BAR_CHART 0
#define FL_HORBAR_CHART 1
#define FL_LINE_CHART 2
#define FL_FILL_CHART 3
#define FL_SPIKE_CHART 4
#define FL_PIE_CHART 5
#define FL_SPECIALPIE_CHART 6
#define FL_FILLED_CHART FL_FILL_CHART // compatibility
#define FL_CHART_MAX 128
#define FL_CHART_LABEL_MAX 18
struct FL_CHART_ENTRY {
float val;
uchar col;
char str[FL_CHART_LABEL_MAX+1];
};
class Fl_Chart : public Fl_Widget {
int numb;
int maxnumb;
int sizenumb;
FL_CHART_ENTRY *entries;
double min,max;
uchar autosize_;
uchar textfont_,textsize_,textcolor_;
protected:
FL_EXPORT void draw();
public:
FL_EXPORT Fl_Chart(int,int,int,int,const char * = 0);
FL_EXPORT void clear();
FL_EXPORT void add(double, const char * =0, uchar=0);
FL_EXPORT void insert(int, double, const char * =0, uchar=0);
FL_EXPORT void replace(int, double, const char * =0, uchar=0);
void bounds(double *a,double *b) const {*a = min; *b = max;}
FL_EXPORT void bounds(double a,double b);
int size() const {return numb;}
int maxsize() const {return maxnumb;}
FL_EXPORT void maxsize(int);
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar n) {textcolor_ = n;}
uchar autosize() const {return autosize_;}
void autosize(uchar n) {autosize_ = n;}
};
#endif
//
// End of "$Id: Fl_Chart.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Object.H ---
//
// "$Id: Fl_Object.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Old Fl_Object header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// This file is provided for back compatability only. Please use Fl_Widget
#ifndef Fl_Object
#define Fl_Object Fl_Widget
#endif
#include "Fl_Widget.H"
//
// End of "$Id: Fl_Object.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Hor_Value_Slider.H ---
//
// "$Id: Fl_Hor_Value_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Horizontal value slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Hor_Value_Slider_H
#define Fl_Hor_Value_Slider_H
#include "Fl_Value_Slider.H"
class Fl_Hor_Value_Slider : public Fl_Value_Slider {
public:
Fl_Hor_Value_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Value_Slider(x,y,w,h,l) {type(FL_HOR_SLIDER);}
};
#endif
//
// End of "$Id: Fl_Hor_Value_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Slider.H ---
//
// "$Id: Fl_Slider.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Slider_H
#define Fl_Slider_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
// values for type(), lowest bit indicate horizontal:
#define FL_VERT_SLIDER 0
#define FL_HOR_SLIDER 1
#define FL_VERT_FILL_SLIDER 2
#define FL_HOR_FILL_SLIDER 3
#define FL_VERT_NICE_SLIDER 4
#define FL_HOR_NICE_SLIDER 5
class Fl_Slider : public Fl_Valuator {
float slider_size_;
float slider_size_min_;
uchar slider_;
FL_EXPORT void _Fl_Slider();
FL_EXPORT void draw_bg(int, int, int, int);
protected:
// these allow subclasses to put the slider in a smaller area:
FL_EXPORT void draw(int, int, int, int);
FL_EXPORT int handle(int, int, int, int, int);
public:
FL_EXPORT void draw();
FL_EXPORT int handle(int);
FL_EXPORT Fl_Slider(int x,int y,int w,int h, const char *l = 0);
FL_EXPORT Fl_Slider(uchar t,int x,int y,int w,int h, const char *l);
FL_EXPORT void slider_hor_lines(int x, int y, int h, int w, int W, Fl_Color c);
FL_EXPORT void slider_ver_lines(int x, int y, int h, int w, int W, Fl_Color c);
FL_EXPORT int scrollvalue(int windowtop,int windowsize,int first,int totalsize);
FL_EXPORT void bounds(double a, double b);
float slider_size() const {return slider_size_;}
FL_EXPORT void slider_size(double v);
Fl_Boxtype slider() const {return (Fl_Boxtype)slider_;}
void slider(Fl_Boxtype c) {slider_ = c;}
};
#endif
//
// End of "$Id: Fl_Slider.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: forms.H ---
//
// "$Id: forms.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Forms emulation header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef __FORMS_H__
#define __FORMS_H__
#include "Fl.H"
#include "Fl_Group.H"
#include "Fl_Window.H"
#include "fl_draw.H"
typedef Fl_Widget FL_OBJECT;
typedef Fl_Window FL_FORM;
////////////////////////////////////////////////////////////////
// Random constants & symbols defined by forms.h file:
#ifndef NULL
#define NULL 0
#endif
#ifndef FALSE
#define FALSE 0
#define TRUE 1
#endif
#define FL_ON 1
#define FL_OK 1
#define FL_VALID 1
#define FL_PREEMPT 1
#define FL_AUTO 2
#define FL_WHEN_NEEDED FL_AUTO
#define FL_OFF 0
#define FL_NONE 0
#define FL_CANCEL 0
#define FL_INVALID 0
#define FL_IGNORE -1
#define FL_CLOSE -2
#define FL_LCOL FL_BLACK
#define FL_COL1 FL_GRAY
#define FL_MCOL FL_LIGHT1
#define FL_LEFT_BCOL FL_LIGHT3 // 53 is better match
#define FL_TOP_BCOL FL_LIGHT2 // 51
#define FL_BOTTOM_BCOL FL_DARK2 // 40
#define FL_RIGHT_BCOL FL_DARK3 // 36
#define FL_INACTIVE FL_INACTIVE_COLOR
#define FL_INACTIVE_COL FL_INACTIVE_COLOR
#define FL_FREE_COL1 FL_FREE_COLOR
#define FL_FREE_COL2 ((Fl_Color)(FL_FREE_COLOR+1))
#define FL_FREE_COL3 ((Fl_Color)(FL_FREE_COLOR+2))
#define FL_FREE_COL4 ((Fl_Color)(FL_FREE_COLOR+3))
#define FL_FREE_COL5 ((Fl_Color)(FL_FREE_COLOR+4))
#define FL_FREE_COL6 ((Fl_Color)(FL_FREE_COLOR+5))
#define FL_FREE_COL7 ((Fl_Color)(FL_FREE_COLOR+6))
#define FL_FREE_COL8 ((Fl_Color)(FL_FREE_COLOR+7))
#define FL_FREE_COL9 ((Fl_Color)(FL_FREE_COLOR+8))
#define FL_FREE_COL10 ((Fl_Color)(FL_FREE_COLOR+9))
#define FL_FREE_COL11 ((Fl_Color)(FL_FREE_COLOR+10))
#define FL_FREE_COL12 ((Fl_Color)(FL_FREE_COLOR+11))
#define FL_FREE_COL13 ((Fl_Color)(FL_FREE_COLOR+12))
#define FL_FREE_COL14 ((Fl_Color)(FL_FREE_COLOR+13))
#define FL_FREE_COL15 ((Fl_Color)(FL_FREE_COLOR+14))
#define FL_FREE_COL16 ((Fl_Color)(FL_FREE_COLOR+15))
#define FL_TOMATO ((Fl_Color)(131))
#define FL_INDIANRED ((Fl_Color)(164))
#define FL_SLATEBLUE ((Fl_Color)(195))
#define FL_DARKGOLD ((Fl_Color)(84))
#define FL_PALEGREEN ((Fl_Color)(157))
#define FL_ORCHID ((Fl_Color)(203))
#define FL_DARKCYAN ((Fl_Color)(189))
#define FL_DARKTOMATO ((Fl_Color)(113))
#define FL_WHEAT ((Fl_Color)(174))
#define FL_ALIGN_BESIDE FL_ALIGN_INSIDE
#define FL_PUP_TOGGLE 2 // FL_MENU_TOGGLE
#define FL_PUP_INACTIVE 1 // FL_MENU_INACTIVE
#define FL_NO_FRAME FL_NO_BOX
#define FL_ROUNDED3D_UPBOX FL_ROUND_UP_BOX
#define FL_ROUNDED3D_DOWNBOX FL_ROUND_DOWN_BOX
#define FL_OVAL3D_UPBOX FL_ROUND_UP_BOX
#define FL_OVAL3D_DOWNBOX FL_ROUND_DOWN_BOX
#define FL_MBUTTON1 1
#define FL_LEFT_MOUSE 1
#define FL_LEFTMOUSE 1
#define FL_MBUTTON2 2
#define FL_MIDDLE_MOUSE 2
#define FL_MIDDLEMOUSE 2
#define FL_MBUTTON3 3
#define FL_RIGHT_MOUSE 3
#define FL_RIGHTMOUSE 3
#define FL_MBUTTON4 4
#define FL_MBUTTON5 5
#define FL_INVALID_STYLE 255
#define FL_NORMAL_STYLE FL_HELVETICA
#define FL_BOLD_STYLE FL_HELVETICA_BOLD
#define FL_ITALIC_STYLE FL_HELVETICA_ITALIC
#define FL_BOLDITALIC_STYLE FL_HELVETICA_BOLD_ITALIC
#define FL_FIXED_STYLE FL_COURIER
#define FL_FIXEDBOLD_STYLE FL_COURIER_BOLD
#define FL_FIXEDITALIC_STYLE FL_COURIER_ITALIC
#define FL_FIXEDBOLDITALIC_STYLE FL_COURIER_BOLD_ITALIC
#define FL_TIMES_STYLE FL_TIMES
#define FL_TIMESBOLD_STYLE FL_TIMES_BOLD
#define FL_TIMESITALIC_STYLE FL_TIMES_ITALIC
#define FL_TIMESBOLDITALIC_STYLE FL_TIMES_BOLD_ITALIC
// hacks to change the labeltype() when passed to fl_set_object_lstyle():
#define FL_SHADOW_STYLE (FL_SHADOW_LABEL<<8)
#define FL_ENGRAVED_STYLE (FL_ENGRAVED_LABEL<<8)
#define FL_EMBOSSED_STYLE (FL_EMBOSSED_LABEL<<0)
// size values are different from XForms, match older Forms:
#define FL_TINY_SIZE 8
#define FL_SMALL_SIZE 11 // 10
#define FL_NORMAL_SIZE 14 // 12
#define FL_MEDIUM_SIZE 18 // 14
#define FL_LARGE_SIZE 24 // 18
#define FL_HUGE_SIZE 32 // 24
#define FL_DEFAULT_SIZE FL_SMALL_SIZE
#define FL_TINY_FONT FL_TINY_SIZE
#define FL_SMALL_FONT FL_SMALL_SIZE
#define FL_NORMAL_FONT FL_NORMAL_SIZE
#define FL_MEDIUM_FONT FL_MEDIUM_SIZE
#define FL_LARGE_FONT FL_LARGE_SIZE
#define FL_HUGE_FONT FL_HUGE_SIZE
#define FL_NORMAL_FONT1 FL_SMALL_FONT
#define FL_NORMAL_FONT2 FL_NORMAL_FONT
#define FL_DEFAULT_FONT FL_SMALL_FONT
#define FL_RETURN_END_CHANGED FL_WHEN_RELEASE
#define FL_RETURN_CHANGED FL_WHEN_CHANGED
#define FL_RETURN_END FL_WHEN_RELEASE_ALWAYS
#define FL_RETURN_ALWAYS (FL_WHEN_CHANGED|FL_WHEN_NOT_CHANGED)
#define FL_BOUND_WIDTH 3
typedef int FL_Coord;
typedef int FL_COLOR;
////////////////////////////////////////////////////////////////
// fltk interaction:
#define FL_CMD_OPT void
extern FL_EXPORT void fl_initialize(int*, char*[], const char*, FL_CMD_OPT*, int);
inline void fl_finish() {}
typedef void (*FL_IO_CALLBACK) (int, void*);
inline void fl_add_io_callback(int fd, short w, FL_IO_CALLBACK cb, void* v) {
Fl::add_fd(fd,w,cb,v);}
inline void fl_remove_io_callback(int fd, short, FL_IO_CALLBACK) {
Fl::remove_fd(fd);} // removes all the callbacks!
// type of callback is different and no "id" number is returned:
inline void fl_add_timeout(long msec, void (*cb)(void*), void* v) {
Fl::add_timeout(msec*.001, cb, v);}
inline void fl_remove_timeout(int) {}
// type of callback is different!
inline void fl_set_idle_callback(void (*cb)()) {Fl::set_idle(cb);}
FL_EXPORT Fl_Widget* fl_do_forms(void);
FL_EXPORT Fl_Widget* fl_check_forms();
inline Fl_Widget* fl_do_only_forms(void) {return fl_do_forms();}
inline Fl_Widget* fl_check_only_forms(void) {return fl_check_forms();}
// because of new redraw behavior, these are no-ops:
inline void fl_freeze_object(Fl_Widget*) {}
inline void fl_unfreeze_object(Fl_Widget*) {}
inline void fl_freeze_form(Fl_Window*) {}
inline void fl_unfreeze_form(Fl_Window*) {}
inline void fl_freeze_all_forms() {}
inline void fl_unfreeze_all_forms() {}
inline void fl_set_focus_object(Fl_Window*, Fl_Widget* o) {Fl::focus(o);}
inline void fl_reset_focus_object(Fl_Widget* o) {Fl::focus(o);}
#define fl_set_object_focus fl_set_focus_object
// void fl_set_form_atclose(Fl_Window*w,int (*cb)(Fl_Window*,void*),void* v)
// void fl_set_atclose(int (*cb)(Fl_Window*,void*),void*)
// fl_set_form_atactivate/atdeactivate not implemented!
////////////////////////////////////////////////////////////////
// Fl_Widget:
inline void fl_set_object_boxtype(Fl_Widget* o, Fl_Boxtype a) {o->box(a);}
inline void fl_set_object_lsize(Fl_Widget* o,int s) {o->labelsize(s);}
inline void fl_set_object_lstyle(Fl_Widget* o,int a) {
o->labelfont((uchar)a); o->labeltype((Fl_Labeltype)(a>>8));}
inline void fl_set_object_lcol(Fl_Widget* o, uchar a) {o->labelcolor(a);}
#define fl_set_object_lcolor fl_set_object_lcol
inline void fl_set_object_lalign(Fl_Widget* o, Fl_Align a) {o->align(a);}
#define fl_set_object_align fl_set_object_lalign
inline void fl_set_object_color(Fl_Widget* o,uchar a,uchar b) {o->color(a,b);}
inline void fl_set_object_label(Fl_Widget* o, const char* a) {o->label(a); o->redraw();}
inline void fl_set_object_position(Fl_Widget*o,int x,int y) {o->position(x,y);}
inline void fl_set_object_size(Fl_Widget* o, int w, int h) {o->size(w,h);}
inline void fl_set_object_geometry(Fl_Widget* o,int x,int y,int w,int h) {o->resize(x,y,w,h);}
inline void fl_get_object_geometry(Fl_Widget* o,int*x,int*y,int*w,int*h) {
*x = o->x(); *y = o->y(); *w = o->w(); *h = o->h();}
inline void fl_get_object_position(Fl_Widget* o,int*x,int*y) {
*x = o->x(); *y = o->y();}
typedef void (*Forms_CB)(Fl_Widget*, long);
inline void fl_set_object_callback(Fl_Widget*o,Forms_CB c,long a) {o->callback(c,a);}
#define fl_set_call_back fl_set_object_callback
inline void fl_call_object_callback(Fl_Widget* o) {o->do_callback();}
inline void fl_trigger_object(Fl_Widget* o) {o->do_callback();}
inline void fl_set_object_return(Fl_Widget* o, int v) {
o->when((Fl_When)(v|FL_WHEN_RELEASE));}
inline void fl_redraw_object(Fl_Widget* o) {o->redraw();}
inline void fl_show_object(Fl_Widget* o) {o->show();}
inline void fl_hide_object(Fl_Widget* o) {o->hide();}
inline void fl_free_object(Fl_Widget* x) {delete x;}
inline void fl_delete_object(Fl_Widget* o) {((Fl_Group*)(o->parent()))->remove(*o);}
inline void fl_activate_object(Fl_Widget* o) {o->activate();}
inline void fl_deactivate_object(Fl_Widget* o) {o->deactivate();}
inline void fl_add_object(Fl_Window* f, Fl_Widget* x) {f->add(x);}
inline void fl_insert_object(Fl_Widget* o, Fl_Widget* b) {
((Fl_Group*)(b->parent()))->insert(*o,b);}
inline Fl_Window* FL_ObjWin(Fl_Widget* o) {return o->window();}
////////////////////////////////////////////////////////////////
// things that appered in the demos a lot that I don't emulate, but
// I did not want to edit out of all the demos...
inline int fl_get_border_width() {return 3;}
inline void fl_set_border_width(int) {}
inline void fl_set_object_dblbuffer(Fl_Widget*, int) {}
inline void fl_set_form_dblbuffer(Fl_Window*, int) {}
////////////////////////////////////////////////////////////////
// Fl_Window:
inline void fl_free_form(Fl_Window* x) {delete x;}
inline void fl_redraw_form(Fl_Window* f) {f->redraw();}
inline Fl_Window* fl_bgn_form(Fl_Boxtype b,int w,int h) {
Fl_Window* g = new Fl_Window(w,h,0);
g->box(b);
return g;
}
FL_EXPORT void fl_end_form();
inline void fl_addto_form(Fl_Window* f) {f->begin();}
inline Fl_Group* fl_bgn_group() {return new Fl_Group(0,0,0,0,0);}
inline void fl_end_group() {Fl_Group::current()->forms_end();}
inline void fl_addto_group(Fl_Widget* o) {((Fl_Group* )o)->begin();}
#define resizebox _ddfdesign_kludge()
inline void fl_scale_form(Fl_Window* f, double x, double y) {
f->resizable(f); f->size(int(f->w()*x),int(f->h()*y));}
inline void fl_set_form_position(Fl_Window* f,int x,int y) {f->position(x,y);}
inline void fl_set_form_size(Fl_Window* f, int w, int h) {f->size(w,h);}
inline void fl_set_form_geometry(Fl_Window* f,int x,int y,int w,int h) {
f->resize(x,y,w,h);}
#define fl_set_initial_placement fl_set_form_geometry
inline void fl_adjust_form_size(Fl_Window*) {}
FL_EXPORT void fl_show_form(Fl_Window* f,int p,int b,const char* n);
enum { // "p" argument values:
FL_PLACE_FREE = 0, // make resizable
FL_PLACE_MOUSE = 1, // mouse centered on form
FL_PLACE_CENTER = 2, // center of the screen
FL_PLACE_POSITION = 4,// fixed position, resizable
FL_PLACE_SIZE = 8, // fixed size, normal fltk behavior
FL_PLACE_GEOMETRY =16,// fixed size and position
FL_PLACE_ASPECT = 32, // keep aspect ratio (ignored)
FL_PLACE_FULLSCREEN=64,// fill screen
FL_PLACE_HOTSPOT = 128,// enables hotspot
FL_PLACE_ICONIC = 256,// iconic (ignored)
FL_FREE_SIZE=(1<<14), // force resizable
FL_FIX_SIZE =(1<<15) // force off resizable
};
#define FL_PLACE_FREE_CENTER (FL_PLACE_CENTER|FL_FREE_SIZE)
#define FL_PLACE_CENTERFREE (FL_PLACE_CENTER|FL_FREE_SIZE)
enum { // "b" arguement values:
FL_NOBORDER = 0,
FL_FULLBORDER,
FL_TRANSIENT
//FL_MODAL = (1<<8) // not implemented yet in Forms
};
inline void fl_set_form_hotspot(Fl_Window* w,int x,int y) {w->hotspot(x,y);}
inline void fl_set_form_hotobject(Fl_Window* w, Fl_Widget* o) {w->hotspot(o);}
extern FL_EXPORT char fl_flip; // in forms.C
inline void fl_flip_yorigin() {fl_flip = 1;}
#define fl_prepare_form_window fl_show_form
inline void fl_show_form_window(Fl_Window*) {}
inline void fl_raise_form(Fl_Window* f) {f->show();}
inline void fl_hide_form(Fl_Window* f) {f->hide();}
inline void fl_pop_form(Fl_Window* f) {f->show();}
extern FL_EXPORT char fl_modal_next; // in forms.C
inline void fl_activate_all_forms() {}
inline void fl_deactivate_all_forms() {fl_modal_next = 1;}
inline void fl_deactivate_form(Fl_Window*w) {w->deactivate();}
inline void fl_activate_form(Fl_Window*w) {w->activate();}
inline void fl_set_form_title(Fl_Window* f, const char* s) {f->label(s);}
inline void fl_title_form(Fl_Window* f, const char* s) {f->label(s);}
typedef void (*Forms_FormCB)(Fl_Widget*);
inline void fl_set_form_callback(Fl_Window* f,Forms_FormCB c) {f->callback(c);}
#define fl_set_form_call_back fl_set_form_callback
inline void fl_init() {}
FL_EXPORT void fl_set_graphics_mode(int,int);
inline int fl_form_is_visible(Fl_Window* f) {return f->visible();}
inline int fl_mouse_button() {return Fl::event_button();}
#define fl_mousebutton fl_mouse_button
#define fl_free free
#define fl_malloc malloc
#define fl_calloc calloc
#define fl_realloc realloc
////////////////////////////////////////////////////////////////
// Drawing functions. Only usable inside an Fl_Free object?
inline void fl_drw_box(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) {
fl_draw_box(b,x,y,w,h,bgc);}
inline void fl_drw_frame(Fl_Boxtype b,int x,int y,int w,int h,Fl_Color bgc,int=3) {
fl_draw_box(b,x,y,w,h,bgc);}
inline void fl_drw_text(Fl_Align align, int x, int y, int w, int h,
Fl_Color fgcolor, int size, Fl_Font style,
const char* s) {
fl_font(style,size);
fl_color(fgcolor);
fl_draw(s,x,y,w,h,align);
}
// this does not work except for CENTER...
inline void fl_drw_text_beside(Fl_Align align, int x, int y, int w, int h,
Fl_Color fgcolor, int size, Fl_Font style,
const char* s) {
fl_font(style,size);
fl_color(fgcolor);
fl_draw(s,x,y,w,h,align);
}
inline void fl_set_font_name(Fl_Font n,const char* s) {Fl::set_font(n,s);}
inline void fl_mapcolor(Fl_Color c, uchar r, uchar g, uchar b) {Fl::set_color(c,r,g,b);}
#define fl_set_clipping(x,y,w,h) fl_clip(x,y,w,h)
#define fl_unset_clipping() fl_pop_clip()
////////////////////////////////////////////////////////////////
// Forms classes:
inline Fl_Widget* fl_add_new(Fl_Widget* p) {return p;}
inline Fl_Widget* fl_add_new(uchar t,Fl_Widget* p) {p->type(t); return p;}
#define forms_constructor(type,name) \
inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \
return (type*)(fl_add_new(t, new type(x,y,w,h,l)));}
#define forms_constructort(type,name) \
inline type* name(uchar t,int x,int y,int w,int h,const char* l) { \
return (type*)(fl_add_new(new type(t,x,y,w,h,l)));}
#define forms_constructorb(type,name) \
inline type* name(Fl_Boxtype t,int x,int y,int w,int h,const char* l) { \
return (type*)(fl_add_new(new type(t,x,y,w,h,l)));}
#include "Fl_FormsBitmap.H"
#define FL_NORMAL_BITMAP FL_NO_BOX
forms_constructorb(Fl_FormsBitmap, fl_add_bitmap)
inline void fl_set_bitmap_data(Fl_Widget* o, int w, int h, const uchar* b) {
((Fl_FormsBitmap*)o)->set(w,h,b);
}
#include "Fl_FormsPixmap.H"
#define FL_NORMAL_PIXMAP FL_NO_BOX
forms_constructorb(Fl_FormsPixmap, fl_add_pixmap)
inline void fl_set_pixmap_data(Fl_Widget* o, char*const* b) {
((Fl_FormsPixmap*)o)->set(b);
}
//inline void fl_set_pixmap_file(Fl_Widget*, const char*);
inline void fl_set_pixmap_align(Fl_Widget* o,Fl_Align a,int,int) {o->align(a);}
//inline void fl_set_pixmap_colorcloseness(int, int, int);
#include "Fl_Box.H"
forms_constructorb(Fl_Box, fl_add_box)
#include "Fl_Browser.H"
forms_constructor(Fl_Browser, fl_add_browser)
inline void fl_clear_browser(Fl_Widget* o) {
((Fl_Browser*)o)->clear();}
inline void fl_add_browser_line(Fl_Widget* o, const char* s) {
((Fl_Browser*)o)->add(s);}
inline void fl_addto_browser(Fl_Widget* o, const char* s) {
((Fl_Browser*)o)->add(s);} /* should also scroll to bottom */
//inline void fl_addto_browser_chars(Fl_Widget*, const char*)
//#define fl_append_browser fl_addto_browser_chars
inline void fl_insert_browser_line(Fl_Widget* o, int n, const char* s) {
((Fl_Browser*)o)->insert(n,s);}
inline void fl_delete_browser_line(Fl_Widget* o, int n) {
((Fl_Browser*)o)->remove(n);}
inline void fl_replace_browser_line(Fl_Widget* o, int n, const char* s) {
((Fl_Browser*)o)->replace(n,s);}
inline char* fl_get_browser_line(Fl_Widget* o, int n) {
return (char*)(((Fl_Browser*)o)->text(n));}
inline int fl_load_browser(Fl_Widget* o, const char* f) {
return ((Fl_Browser*)o)->load(f);}
inline void fl_select_browser_line(Fl_Widget* o, int n) {
((Fl_Browser*)o)->select(n,1);}
inline void fl_deselect_browser_line(Fl_Widget* o, int n) {
((Fl_Browser*)o)->select(n,0);}
inline void fl_deselect_browser(Fl_Widget* o) {
((Fl_Browser*)o)->deselect();}
inline int fl_isselected_browser_line(Fl_Widget* o, int n) {
return ((Fl_Browser*)o)->selected(n);}
inline int fl_get_browser_topline(Fl_Widget* o) {
return ((Fl_Browser*)o)->topline();}
inline int fl_get_browser(Fl_Widget* o) {
return ((Fl_Browser*)o)->value();}
inline int fl_get_browser_maxline(Fl_Widget* o) {
return ((Fl_Browser*)o)->size();}
//linline int fl_get_browser_screenlines(Fl_Widget*);
inline void fl_set_browser_topline(Fl_Widget* o, int n) {
((Fl_Browser*)o)->topline(n);}
inline void fl_set_browser_fontsize(Fl_Widget* o, int s) {
((Fl_Browser*)o)->textsize(s);}
inline void fl_set_browser_fontstyle(Fl_Widget* o, Fl_Font s) {
((Fl_Browser*)o)->textfont(s);}
inline void fl_set_browser_specialkey(Fl_Widget* o, char c) {
((Fl_Browser*)o)->format_char(c);}
//inline void fl_set_browser_vscrollbar(Fl_Widget*, int);
//inline void fl_set_browser_hscrollbar(Fl_Widget*, int);
//inline void fl_set_browser_leftslider(Fl_Widget*, int);
//#define fl_set_browser_leftscrollbar fl_set_browser_leftslider
//inline void fl_set_browser_line_selectable(Fl_Widget*, int, int);
//inline void fl_get_browser_dimension(Fl_Widget*,int*,int*,int*,int*);
//inline void fl_set_browser_dblclick_callback(Fl_Widget*,FL_CALLBACKPTR,long);
//inline void fl_set_browser_xoffset(Fl_Widget*, FL_Coord);
//inline void fl_set_browser_scrollbarsize(Fl_Widget*, int, int);
inline void fl_setdisplayed_browser_line(Fl_Widget* o, int n, int i) {
((Fl_Browser*)o)->display(n,i);}
inline int fl_isdisplayed_browser_line(Fl_Widget* o, int n) {
return ((Fl_Browser*)o)->displayed(n);}
#include "Fl_Button.H"
#define FL_NORMAL_BUTTON 0
#define FL_TOUCH_BUTTON 4
#define FL_INOUT_BUTTON 5
#define FL_RETURN_BUTTON 6
#define FL_HIDDEN_RET_BUTTON 7
#define FL_PUSH_BUTTON FL_TOGGLE_BUTTON
#define FL_MENU_BUTTON 9
FL_EXPORT Fl_Button* fl_add_button(uchar t,int x,int y,int w,int h,const char* l);
inline int fl_get_button(Fl_Widget* b) {return ((Fl_Button*)b)->value();}
inline void fl_set_button(Fl_Widget* b, int v) {((Fl_Button*)b)->value(v);}
inline int fl_get_button_numb(Fl_Widget*) {return Fl::event_button();}
inline void fl_set_button_shortcut(Fl_Widget* b, const char* s,int=0) {
((Fl_Button*)b)->shortcut(s);}
//#define fl_set_object_shortcut(b,s) fl_set_button_shortcut(b,s)
#include "Fl_Light_Button.H"
forms_constructor(Fl_Light_Button, fl_add_lightbutton)
#include "Fl_Round_Button.H"
forms_constructor(Fl_Round_Button, fl_add_roundbutton)
forms_constructor(Fl_Round_Button, fl_add_round3dbutton)
#include "Fl_Check_Button.H"
forms_constructor(Fl_Check_Button, fl_add_checkbutton)
inline Fl_Widget* fl_add_bitmapbutton(int t,int x,int y,int w,int h,const char* l) {Fl_Widget* o = fl_add_button(t,x,y,w,h,l); return o;}
inline void fl_set_bitmapbutton_data(Fl_Widget* o,int a,int b,uchar* c) {
(new Fl_Bitmap(c,a,b))->label(o);} // does not delete old Fl_Bitmap!
inline Fl_Widget* fl_add_pixmapbutton(int t,int x,int y,int w,int h,const char* l) {Fl_Widget* o = fl_add_button(t,x,y,w,h,l); return o;}
inline void fl_set_pixmapbutton_data(Fl_Widget* o, char*const* c) {
(new Fl_Pixmap(c))->label(o);} // does not delete old Fl_Pixmap!
// Fl_Canvas object not yet implemented!
#include "Fl_Chart.H"
forms_constructor(Fl_Chart, fl_add_chart)
inline void fl_clear_chart(Fl_Widget* o) {
((Fl_Chart*)o)->clear();}
inline void fl_add_chart_value(Fl_Widget* o,double v,const char* s,uchar c){
((Fl_Chart*)o)->add(v,s,c);}
inline void fl_insert_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) {
((Fl_Chart*)o)->insert(i,v,s,c);}
inline void fl_replace_chart_value(Fl_Widget* o, int i, double v, const char* s, uchar c) {
((Fl_Chart*)o)->replace(i,v,s,c);}
inline void fl_set_chart_bounds(Fl_Widget* o, double a, double b) {
((Fl_Chart*)o)->bounds(a,b);}
inline void fl_set_chart_maxnumb(Fl_Widget* o, int v) {
((Fl_Chart*)o)->maxsize(v);}
inline void fl_set_chart_autosize(Fl_Widget* o, int v) {
((Fl_Chart*)o)->autosize(v);}
inline void fl_set_chart_lstyle(Fl_Widget* o, Fl_Font v) {
((Fl_Chart*)o)->textfont(v);}
inline void fl_set_chart_lsize(Fl_Widget* o, int v) {
((Fl_Chart*)o)->textsize(v);}
inline void fl_set_chart_lcolor(Fl_Widget* o, uchar v) {
((Fl_Chart*)o)->textcolor(v);}
#define fl_set_chart_lcol fl_set_chart_lcolor
#include "Fl_Choice.H"
#define FL_NORMAL_CHOICE 0
#define FL_NORMAL_CHOICE2 0
#define FL_DROPLIST_CHOICE 0
forms_constructor(Fl_Choice, fl_add_choice)
inline void fl_clear_choice(Fl_Widget* o) {
((Fl_Choice*)o)->clear();}
inline void fl_addto_choice(Fl_Widget* o, const char* s) {
((Fl_Choice*)o)->add(s);}
inline void fl_replace_choice(Fl_Widget* o, int i, const char* s) {
((Fl_Choice*)o)->replace(i-1,s);}
inline void fl_delete_choice(Fl_Widget* o, int i) {
((Fl_Choice*)o)->remove(i-1);}
inline void fl_set_choice(Fl_Widget* o, int i) {
((Fl_Choice*)o)->value(i-1);}
// inline void fl_set_choice_text(Fl_Widget*, const char*);
inline int fl_get_choice(Fl_Widget* o) {
return ((Fl_Choice*)o)->value()+1;}
// inline const char* fl_get_choice_item_text(Fl_Widget*, int);
// inline int fl_get_choice_maxitems(Fl_Widget*);
inline const char* fl_get_choice_text(Fl_Widget* o) {
return ((Fl_Choice*)o)->text();}
inline void fl_set_choice_fontsize(Fl_Widget* o, int x) {
((Fl_Choice*)o)->textsize(x);}
inline void fl_set_choice_fontstyle(Fl_Widget* o, Fl_Font x) {
((Fl_Choice*)o)->textfont(x);}
// inline void fl_set_choice_item_mode(Fl_Widget*, int, unsigned);
// inline void fl_set_choice_item_shortcut(Fl_Widget*, int, const char*);
#include "Fl_Clock.H"
forms_constructort(Fl_Clock, fl_add_clock)
inline void fl_get_clock(Fl_Widget* o, int* h, int* m, int* s) {
*h = ((Fl_Clock*)o)->hour();
*m = ((Fl_Clock*)o)->minute();
*s = ((Fl_Clock*)o)->second();
}
#include "Fl_Counter.H"
forms_constructor(Fl_Counter, fl_add_counter)
inline void fl_set_counter_value(Fl_Widget* o, double v) {
((Fl_Counter*)o)->value(v);}
inline void fl_set_counter_bounds(Fl_Widget* o, double a, double b) {
((Fl_Counter*)o)->bounds(a,b);}
inline void fl_set_counter_step(Fl_Widget* o, double a, double b) {
((Fl_Counter*)o)->step(a,b);}
inline void fl_set_counter_precision(Fl_Widget* o, int v) {
((Fl_Counter*)o)->precision(v);}
inline void fl_set_counter_return(Fl_Widget* o, int v) {
((Fl_Counter*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));}
inline double fl_get_counter_value(Fl_Widget* o) {
return ((Fl_Counter*)o)->value();}
inline void fl_get_counter_bounds(Fl_Widget* o, float* a, float* b) {
*a = float(((Fl_Counter*)o)->minimum());
*b = float(((Fl_Counter*)o)->maximum());
}
//inline void fl_set_counter_filter(Fl_Widget*,const char* (*)(Fl_Widget*,double,int));
// Cursor stuff cannot be emulated because it uses X stuff
inline void fl_set_cursor(Fl_Window* w, Fl_Cursor c) {w->cursor(c);}
#define FL_INVISIBLE_CURSOR FL_CURSOR_NONE
#define FL_DEFAULT_CURSOR FL_CURSOR_DEFAULT
#include "Fl_Dial.H"
#define FL_DIAL_COL1 FL_GRAY
#define FL_DIAL_COL2 37
forms_constructor(Fl_Dial, fl_add_dial)
inline void fl_set_dial_value(Fl_Widget* o, double v) {
((Fl_Dial*)o)->value(v);}
inline double fl_get_dial_value(Fl_Widget* o) {
return ((Fl_Dial*)o)->value();}
inline void fl_set_dial_bounds(Fl_Widget* o, double a, double b) {
((Fl_Dial*)o)->bounds(a, b);}
inline void fl_get_dial_bounds(Fl_Widget* o, float* a, float* b) {
*a = float(((Fl_Dial*)o)->minimum());
*b = float(((Fl_Dial*)o)->maximum());
}
inline void fl_set_dial_return(Fl_Widget* o, int i) {
((Fl_Dial*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));}
inline void fl_set_dial_angles(Fl_Widget* o, int a, int b) {
((Fl_Dial*)o)->angles(a, b);}
//inline void fl_set_dial_cross(Fl_Widget* o, int);
// inline void fl_set_dial_direction(Fl_Widget* o, uchar d) {
// ((Fl_Dial*)o)->direction(d);}
inline void fl_set_dial_step(Fl_Widget* o, double v) {
((Fl_Dial*)o)->step(v);}
// Frames:
inline Fl_Widget* fl_add_frame(Fl_Boxtype i,int x,int y,int w,int h,const char* l) {
return fl_add_box(i,x-3,y-3,w+6,h+6,l);}
// labelframe nyi
inline Fl_Widget* fl_add_labelframe(Fl_Boxtype i,int x,int y,int w,int h,const char* l) {
Fl_Widget* o = fl_add_box(i,x-3,y-3,w+6,h+6,l);
o->align(FL_ALIGN_TOP_LEFT);
return o;
}
#include "Fl_Free.H"
inline Fl_Free*
fl_add_free(int t,double x,double y,double w,double h,const char* l,
FL_HANDLEPTR hdl) {
return (Fl_Free*)(fl_add_new(
new Fl_Free(t,int(x),int(y),int(w),int(h),l,hdl)));
}
#include "fl_ask.H"
#include "fl_show_colormap.H"
inline int fl_show_question(const char* c, int = 0) {return fl_ask(c);}
FL_EXPORT void fl_show_message(const char *,const char *,const char *);
FL_EXPORT void fl_show_alert(const char *,const char *,const char *,int=0);
FL_EXPORT int fl_show_question(const char *,const char *,const char *);
inline const char *fl_show_input(const char *l,const char*d=0) {return fl_input(l,d);}
FL_EXPORT /*const*/ char *fl_show_simple_input(const char *label, const char *deflt = 0);
FL_EXPORT int fl_show_choice(
const char *m1,
const char *m2,
const char *m3,
int numb,
const char *b0,
const char *b1,
const char *b2);
inline void fl_set_goodies_font(uchar a, uchar b) {fl_message_font(a,b);}
#define fl_show_messages fl_message
inline int fl_show_choices(const char* c,int n,const char* b1,const char* b2,
const char* b3, int) {
return fl_show_choice(0,c,0,n,b1,b2,b3);
}
#include "filename.H"
#include "fl_file_chooser.H"
inline int do_matching(char* a, const char* b) {return filename_match(a,b);}
// Forms-compatable file chooser (implementation in fselect.C):
FL_EXPORT char* fl_show_file_selector(const char* message,const char* dir,
const char* pat,const char* fname);
FL_EXPORT char* fl_get_directory();
FL_EXPORT char* fl_get_pattern();
FL_EXPORT char* fl_get_filename();
#include "Fl_Input.H"
forms_constructor(Fl_Input, fl_add_input)
inline void fl_set_input(Fl_Widget* o, const char* v) {
((Fl_Input*)o)->value(v);}
inline void fl_set_input_return(Fl_Widget* o, int x) {
((Fl_Input*)o)->when((Fl_When)(x | FL_WHEN_RELEASE));}
inline void fl_set_input_color(Fl_Widget* o, uchar a, uchar b) {
((Fl_Input*)o)->textcolor(a);
((Fl_Input*)o)->cursor_color(b);
}
// inline void fl_set_input_scroll(Fl_Widget*, int);
inline void fl_set_input_cursorpos(Fl_Widget* o, int x, int /*y*/) {
((Fl_Input*)o)->position(x);}
// inline void fl_set_input_selected(Fl_Widget*, int);
// inline void fl_set_input_selected_range(Fl_Widget*, int, int);
// inline void fl_set_input_maxchars(Fl_Widget*, int);
// inline void fl_set_input_format(Fl_Widget*, int, int);
// inline void fl_set_input_hscrollbar(Fl_Widget*, int);
// inline void fl_set_input_vscrollbar(Fl_Widget*, int);
// inline void fl_set_input_xoffset(Fl_Widget*, int);
// inline void fl_set_input_topline(Fl_Widget*, int);
// inline void fl_set_input_scrollbarsize(Fl_Widget*, int, int);
// inline int fl_get_input_topline(Fl_Widget*);
// inline int fl_get_input_screenlines(Fl_Widget*);
inline int fl_get_input_cursorpos(Fl_Widget* o, int*x, int*y) {
*x = ((Fl_Input*)o)->position(); *y = 0; return *x;}
// inline int fl_get_input_numberoflines(Fl_Widget*);
// inline void fl_get_input_format(Fl_Widget*, int*, int*);
inline const char* fl_get_input(Fl_Widget* o) {return ((Fl_Input*)o)->value();}
#include "Fl_Menu_Button.H"
// types are not implemented, they all act like FL_PUSH_MENU:
#define FL_TOUCH_MENU 0
#define FL_PUSH_MENU 1
#define FL_PULLDOWN_MENU 2
forms_constructor(Fl_Menu_Button, fl_add_menu)
inline void fl_clear_menu(Fl_Widget* o) {
((Fl_Menu_Button*)o)->clear();}
inline void fl_set_menu(Fl_Widget* o, const char* s) {
((Fl_Menu_Button*)o)->clear(); ((Fl_Menu_Button*)o)->add(s);}
inline void fl_addto_menu(Fl_Widget* o, const char* s) {
((Fl_Menu_Button*)o)->add(s);}
inline void fl_replace_menu_item(Fl_Widget* o, int i, const char* s) {
((Fl_Menu_Button*)o)->replace(i-1,s);}
inline void fl_delete_menu_item(Fl_Widget* o, int i) {
((Fl_Menu_Button*)o)->remove(i-1);}
inline void fl_set_menu_item_shortcut(Fl_Widget* o, int i, const char* s) {
((Fl_Menu_Button*)o)->shortcut(i-1,fl_old_shortcut(s));}
inline void fl_set_menu_item_mode(Fl_Widget* o, int i, long x) {
((Fl_Menu_Button*)o)->mode(i-1,x);}
inline void fl_show_menu_symbol(Fl_Widget*, int ) {
/* ((Fl_Menu_Button*)o)->show_menu_symbol(i); */}
// inline void fl_set_menu_popup(Fl_Widget*, int);
inline int fl_get_menu(Fl_Widget* o) {
return ((Fl_Menu_Button*)o)->value()+1;}
inline const char* fl_get_menu_item_text(Fl_Widget* o, int i) {
return ((Fl_Menu_Button*)o)->text(i);}
inline int fl_get_menu_maxitems(Fl_Widget* o) {
return ((Fl_Menu_Button*)o)->size();}
inline int fl_get_menu_item_mode(Fl_Widget* o, int i) {
return ((Fl_Menu_Button*)o)->mode(i);}
inline const char* fl_get_menu_text(Fl_Widget* o) {
return ((Fl_Menu_Button*)o)->text();}
#include "Fl_Positioner.H"
#define FL_NORMAL_POSITIONER 0
forms_constructor(Fl_Positioner, fl_add_positioner)
inline void fl_set_positioner_xvalue(Fl_Widget* o, double v) {
((Fl_Positioner*)o)->xvalue(v);}
inline double fl_get_positioner_xvalue(Fl_Widget* o) {
return ((Fl_Positioner*)o)->xvalue();}
inline void fl_set_positioner_xbounds(Fl_Widget* o, double a, double b) {
((Fl_Positioner*)o)->xbounds(a,b);}
inline void fl_get_positioner_xbounds(Fl_Widget* o, float* a, float* b) {
*a = float(((Fl_Positioner*)o)->xminimum());
*b = float(((Fl_Positioner*)o)->xmaximum());
}
inline void fl_set_positioner_yvalue(Fl_Widget* o, double v) {
((Fl_Positioner*)o)->yvalue(v);}
inline double fl_get_positioner_yvalue(Fl_Widget* o) {
return ((Fl_Positioner*)o)->yvalue();}
inline void fl_set_positioner_ybounds(Fl_Widget* o, double a, double b) {
((Fl_Positioner*)o)->ybounds(a,b);}
inline void fl_get_positioner_ybounds(Fl_Widget* o, float* a, float* b) {
*a = float(((Fl_Positioner*)o)->yminimum());
*b = float(((Fl_Positioner*)o)->ymaximum());
}
inline void fl_set_positioner_xstep(Fl_Widget* o, double v) {
((Fl_Positioner*)o)->xstep(v);}
inline void fl_set_positioner_ystep(Fl_Widget* o, double v) {
((Fl_Positioner*)o)->ystep(v);}
inline void fl_set_positioner_return(Fl_Widget* o, int v) {
((Fl_Positioner*)o)->when((Fl_When)(v|FL_WHEN_RELEASE));}
#include "Fl_Slider.H"
#define FL_HOR_BROWSER_SLIDER FL_HOR_SLIDER
#define FL_VERT_BROWSER_SLIDER FL_VERT_SLIDER
forms_constructort(Fl_Slider, fl_add_slider)
#define FL_SLIDER_COL1 FL_GRAY
inline void fl_set_slider_value(Fl_Widget* o, double v) {
((Fl_Slider*)o)->value(v);}
inline double fl_get_slider_value(Fl_Widget* o) {
return ((Fl_Slider*)o)->value();}
inline void fl_set_slider_bounds(Fl_Widget* o, double a, double b) {
((Fl_Slider*)o)->bounds(a, b);}
inline void fl_get_slider_bounds(Fl_Widget* o, float* a, float* b) {
*a = float(((Fl_Slider*)o)->minimum());
*b = float(((Fl_Slider*)o)->maximum());
}
inline void fl_set_slider_return(Fl_Widget* o, int i) {
((Fl_Slider*)o)->when((Fl_When)(i|FL_WHEN_RELEASE));}
inline void fl_set_slider_step(Fl_Widget* o, double v) {
((Fl_Slider*)o)->step(v);}
// inline void fl_set_slider_increment(Fl_Widget* o, double v, double);
inline void fl_set_slider_size(Fl_Widget* o, double v) {
((Fl_Slider*)o)->slider_size(v);}
#include "Fl_Value_Slider.H"
forms_constructor(Fl_Value_Slider, fl_add_valslider)
inline void fl_set_slider_precision(Fl_Widget* o, int i) {
((Fl_Value_Slider*)o)->precision(i);}
// filter function!
// The forms text object was the same as an Fl_Box except it inverted the
// meaning of FL_ALIGN_INSIDE. Implementation in forms.C
class Fl_FormsText : public Fl_Widget {
protected:
FL_EXPORT void draw();
public:
Fl_FormsText(Fl_Boxtype b, int x, int y, int w, int h, const char* l=0)
: Fl_Widget(x,y,w,h,l) {box(b); align(FL_ALIGN_LEFT);}
};
#define FL_NORMAL_TEXT FL_NO_BOX
forms_constructorb(Fl_FormsText, fl_add_text)
#include "Fl_Timer.H"
forms_constructort(Fl_Timer, fl_add_timer)
inline void fl_set_timer(Fl_Widget* o, double v) {((Fl_Timer*)o)->value(v);}
inline double fl_get_timer(Fl_Widget* o) {return ((Fl_Timer*)o)->value();}
inline void fl_suspend_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(1);}
inline void fl_resume_timer(Fl_Widget* o) {((Fl_Timer*)o)->suspended(0);}
inline void fl_set_timer_countup(Fl_Widget* o,char d) {((Fl_Timer*)o)->direction(d);}
void fl_gettime(long* sec, long* usec);
// Fl_XYPlot nyi
// stuff from DDForms:
inline int fl_double_click() {return Fl::event_clicks();}
inline void fl_draw() {Fl::flush();}
#endif /* define __FORMS_H__ */
//
// End of "$Id: forms.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Adjuster.H ---
//
// "$Id: Fl_Adjuster.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Adjuster widget header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// 3-button "slider", made for Nuke
#ifndef Fl_Adjuster_H
#define Fl_Adjuster_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
class Fl_Adjuster : public Fl_Valuator {
int drag;
int ix;
int soft_;
protected:
FL_EXPORT void draw();
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 int soft() const {return soft_;}
};
#endif
//
// End of "$Id: Fl_Adjuster.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Round_Button.H ---
//
// "$Id: Fl_Round_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Round button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Round_Button_H
#define Fl_Round_Button_H
#include "Fl_Light_Button.H"
class Fl_Round_Button : public Fl_Light_Button {
public:
FL_EXPORT Fl_Round_Button(int x,int y,int w,int h,const char *l = 0);
};
#endif
//
// End of "$Id: Fl_Round_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: fl_show_input.H ---
//
// "$Id: fl_show_input.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Standard input dialog header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#include "fl_ask.H"
//
// End of "$Id: fl_show_input.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Pixmap.H ---
//
// "$Id: Fl_Pixmap.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Pixmap header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Pixmap_H
#define Fl_Pixmap_H
class Fl_Widget;
struct Fl_Menu_Item;
struct Fl_Pixmap {
/*const*/ char * const * data;
int w, h; // set by first draw...
ulong id; // for internal use (the pixmap)
ulong mask; // for internal use (mask bitmap)
Fl_Pixmap(/*const*/char * const * d) : data(d), w(-1), h(0), id(0),mask(0) {}
Fl_Pixmap(/*const*/uchar* const * d) : data((char**)d), w(-1), h(0), id(0),mask(0) {}
FL_EXPORT ~Fl_Pixmap();
FL_EXPORT void label(Fl_Widget*);
FL_EXPORT void label(Fl_Menu_Item*);
FL_EXPORT void draw(int X, int Y, int W, int H, int cx=0, int cy=0);
void draw(int X, int Y) {draw(X, Y, w, h, 0, 0);}
};
#endif
//
// End of "$Id: Fl_Pixmap.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Fill_Dial.H ---
//
// "$Id: Fl_Fill_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Filled dial header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Fill_Dial_H
#define Fl_Fill_Dial_H
#include "Fl_Dial.H"
class Fl_Fill_Dial : public Fl_Dial {
public:
Fl_Fill_Dial(int x,int y,int w,int h, const char *l = 0)
: Fl_Dial(x,y,w,h,l) {type(FL_FILL_DIAL);}
};
#endif
//
// End of "$Id: Fl_Fill_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Bitmap.H ---
//
// "$Id: Fl_Bitmap.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Bitmap header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Bitmap_H
#define Fl_Bitmap_H
class Fl_Widget;
struct Fl_Menu_Item;
struct Fl_Bitmap {
const uchar *array;
int w, h;
ulong id; // for internal use
FL_EXPORT Fl_Bitmap(const uchar *bits, int W, int H) :
array(bits), w(W), h(H), id(0) {}
FL_EXPORT Fl_Bitmap(const char *bits, int W, int H) :
array((const uchar *)bits), w(W), h(H), id(0) {}
FL_EXPORT ~Fl_Bitmap();
FL_EXPORT void label(Fl_Widget*);
FL_EXPORT void label(Fl_Menu_Item*);
FL_EXPORT void draw(int X, int Y, int W, int H, int cx=0, int cy=0);
FL_EXPORT void draw(int X, int Y) {draw(X, Y, w, h, 0, 0);}
};
#endif
//
// End of "$Id: Fl_Bitmap.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl.H ---
//
// "$Id: Fl.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Main header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_H
#define Fl_H
#include "config.h"
#ifdef NANO_X //for Nano-x,by tanghao
#define MWINCLUDECOLORS
#include "nano-X.h"
#endif //NANO_X
#include "Enumerations.H"
#ifndef Fl_Object
#define Fl_Object Fl_Widget
#endif
class Fl_Widget;
class Fl_Window;
struct Fl_Label;
typedef void (Fl_Label_Draw_F)(const Fl_Label*, int,int,int,int, Fl_Align);
typedef void (Fl_Label_Measure_F)(const Fl_Label*, int&, int&);
typedef void (Fl_Box_Draw_F)(int,int,int,int, Fl_Color);
class Fl {
Fl() {}; // no constructor!
public: // should be private!
static FL_EXPORT int e_x,e_y,e_x_root,e_y_root;
static FL_EXPORT int e_state;
static FL_EXPORT int e_clicks;
static FL_EXPORT int e_is_click;
static FL_EXPORT int e_keysym;
static FL_EXPORT char* e_text;
static FL_EXPORT int e_length;
static FL_EXPORT Fl_Widget* belowmouse_;
static FL_EXPORT Fl_Widget* pushed_;
static FL_EXPORT Fl_Widget* focus_;
static FL_EXPORT int damage_;
static FL_EXPORT Fl_Widget* selection_owner_;
static FL_EXPORT Fl_Window* modal_;
static FL_EXPORT Fl_Window* grab_;
static void damage(int x) {damage_ = x;}
static FL_EXPORT void (*idle)();
public:
// argument parsers:
static FL_EXPORT int arg(int, char**, int&);
static FL_EXPORT int args(int, char**, int&, int (*)(int,char**,int&) = 0);
static FL_EXPORT const char* const help;
static FL_EXPORT void args(int, char**);
// things called by initialization:
static FL_EXPORT void display(const char*);
static FL_EXPORT int visual(int);
static FL_EXPORT int gl_visual(int, int *alist=0);
static FL_EXPORT void own_colormap();
static FL_EXPORT void get_system_colors();
static FL_EXPORT void foreground(uchar, uchar, uchar);
static FL_EXPORT void background(uchar, uchar, uchar);
static FL_EXPORT void background2(uchar, uchar, uchar);
// execution:
static FL_EXPORT int wait();
static FL_EXPORT double wait(double time);
static FL_EXPORT int check();
static FL_EXPORT int ready();
static FL_EXPORT int run();
static FL_EXPORT Fl_Widget* readqueue();
static FL_EXPORT void add_timeout(double t,void (*cb)(void*),void* = 0);
static FL_EXPORT void remove_timeout(void (*cb)(void*), void* = 0);
static FL_EXPORT void add_fd(int fd, int when, void (*cb)(int,void*),void* =0);
static FL_EXPORT void add_fd(int fd, void (*cb)(int, void*), void* = 0);
static FL_EXPORT void remove_fd(int, int when);
static FL_EXPORT void remove_fd(int);
static FL_EXPORT void add_idle(void (*cb)(void*), void* = 0);
static FL_EXPORT void remove_idle(void (*cb)(void*), void* = 0);
static FL_EXPORT int damage() {return damage_;}
static FL_EXPORT void redraw();
static FL_EXPORT void flush();
static FL_EXPORT void (*warning)(const char*, ...);
static FL_EXPORT void (*error)(const char*, ...);
static FL_EXPORT void (*fatal)(const char*, ...);
static FL_EXPORT Fl_Window* first_window();
static FL_EXPORT Fl_Window* next_window(const Fl_Window*);
static FL_EXPORT Fl_Window* modal() {return modal_;}
static FL_EXPORT Fl_Window* grab() {return grab_;}
static FL_EXPORT void grab(Fl_Window*);
// event information:
static FL_EXPORT int event_x() {return e_x;}
static FL_EXPORT int event_y() {return e_y;}
static FL_EXPORT int event_x_root() {return e_x_root;}
static FL_EXPORT int event_y_root() {return e_y_root;}
static FL_EXPORT void get_mouse(int &,int &);
static FL_EXPORT int event_clicks() {return e_clicks;}
static FL_EXPORT void event_clicks(int i) {e_clicks = i;}
static FL_EXPORT int event_is_click() {return e_is_click;}
static FL_EXPORT void event_is_click(int i) {e_is_click = i;} // only 0 works!
static FL_EXPORT int event_button() {return e_keysym-FL_Button;}
static FL_EXPORT int event_state() {return e_state;}
static FL_EXPORT int event_state(int i) {return e_state&i;}
static FL_EXPORT int event_key() {return e_keysym;}
static FL_EXPORT int event_key(int);
static FL_EXPORT int get_key(int);
static FL_EXPORT const char* event_text() {return e_text;}
static FL_EXPORT int event_length() {return e_length;}
static FL_EXPORT int event_inside(int,int,int,int);
static FL_EXPORT int event_inside(const Fl_Widget*);
static FL_EXPORT int test_shortcut(int);
// event destinations:
static FL_EXPORT int handle(int, Fl_Window*);
static FL_EXPORT Fl_Widget* belowmouse() {return belowmouse_;}
static FL_EXPORT void belowmouse(Fl_Widget*);
static FL_EXPORT Fl_Widget* pushed() {return pushed_;}
static FL_EXPORT void pushed(Fl_Widget*);
static FL_EXPORT Fl_Widget* focus() {return focus_;}
static FL_EXPORT void focus(Fl_Widget*);
static FL_EXPORT void add_handler(int (*h)(int));
// cut/paste:
static FL_EXPORT Fl_Widget* selection_owner() {return selection_owner_;}
static FL_EXPORT void selection_owner(Fl_Widget*);
static FL_EXPORT void selection(Fl_Widget &owner, const char* stuff, int len);
static FL_EXPORT void paste(Fl_Widget &receiver);
// screen size:
#if defined(WIN32)
static FL_EXPORT int x();
static FL_EXPORT int y();
#else
static FL_EXPORT int x() {return 0;}
static FL_EXPORT int y() {return 0;}
#endif /* WIN32 */
static FL_EXPORT int w();
static FL_EXPORT int h();
// color map:
static FL_EXPORT void set_color(Fl_Color, uchar, uchar, uchar);
static FL_EXPORT void set_color(Fl_Color, unsigned);
static FL_EXPORT unsigned get_color(Fl_Color);
static FL_EXPORT void get_color(Fl_Color, uchar&, uchar&, uchar&);
static FL_EXPORT void free_color(Fl_Color, int overlay = 0);
// fonts:
static FL_EXPORT const char* get_font(Fl_Font);
static FL_EXPORT const char* get_font_name(Fl_Font, int* attributes = 0);
static FL_EXPORT int get_font_sizes(Fl_Font, int*& sizep);
static FL_EXPORT void set_font(Fl_Font, const char*);
static FL_EXPORT void set_font(Fl_Font, Fl_Font);
static FL_EXPORT Fl_Font set_fonts(const char* = 0);
// labeltypes:
static FL_EXPORT void set_labeltype(Fl_Labeltype,Fl_Label_Draw_F*,Fl_Label_Measure_F*);
static FL_EXPORT void set_labeltype(Fl_Labeltype, Fl_Labeltype from);
static FL_EXPORT void enable_symbols();
// boxtypes:
static FL_EXPORT void set_boxtype(Fl_Boxtype, Fl_Box_Draw_F*,uchar,uchar,uchar,uchar);
static FL_EXPORT void set_boxtype(Fl_Boxtype, Fl_Boxtype from);
static FL_EXPORT int box_dx(Fl_Boxtype);
static FL_EXPORT int box_dy(Fl_Boxtype);
static FL_EXPORT int box_dw(Fl_Boxtype);
static FL_EXPORT int box_dh(Fl_Boxtype);
// back compatability:
static FL_EXPORT void set_abort(void (*f)(const char*,...)) {fatal = f;}
static FL_EXPORT void (*atclose)(Fl_Window*,void*);
static FL_EXPORT void default_atclose(Fl_Window*,void*);
static FL_EXPORT void set_atclose(void (*f)(Fl_Window*,void*)) {atclose = f;}
static FL_EXPORT int event_shift() {return e_state&FL_SHIFT;}
static FL_EXPORT int event_ctrl() {return e_state&FL_CTRL;}
static FL_EXPORT int event_alt() {return e_state&FL_ALT;}
static FL_EXPORT int event_buttons() {return e_state&0x7f000000;}
static FL_EXPORT int event_button1() {return e_state&FL_BUTTON1;}
static FL_EXPORT int event_button2() {return e_state&FL_BUTTON2;}
static FL_EXPORT int event_button3() {return e_state&FL_BUTTON3;}
static FL_EXPORT void set_idle(void (*cb)()) {idle = cb;}
static FL_EXPORT void grab(Fl_Window&w) {grab(&w);}
static FL_EXPORT void release() {grab(0);}
};
#endif
//
// End of "$Id: Fl.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Value_Slider.H ---
//
// "$Id: Fl_Value_Slider.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Value slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Value_Slider_H
#define Fl_Value_Slider_H
#include "Fl_Slider.H"
class Fl_Value_Slider : public Fl_Slider {
uchar textfont_, textsize_, textcolor_;
public:
FL_EXPORT void draw();
FL_EXPORT int handle(int);
FL_EXPORT Fl_Value_Slider(int x,int y,int w,int h, const char *l = 0);
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar s) {textcolor_ = s;}
};
#endif
//
// End of "$Id: Fl_Value_Slider.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Nice_Slider.H ---
//
// "$Id: Fl_Nice_Slider.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// "Nice" slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Nice_Slider_H
#define Fl_Nice_Slider_H
#include "Fl_Slider.H"
class Fl_Nice_Slider : public Fl_Slider {
public:
Fl_Nice_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Slider(x,y,w,h,l) {type(FL_VERT_NICE_SLIDER); box(FL_FLAT_BOX);}
};
#endif
//
// End of "$Id: Fl_Nice_Slider.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Window_Resize.H ---
#ifndef Fl_Window_Resize_H
#define Fl_Window_Resize_H
#include "Fl_Window.H"
#include <iostream.h>
class Fl_Window_Resize : public Fl_Window {
public:
Fl_Window_Resize(int X, int Y, int W, int H, const char* L = 0)
: Fl_Window( X, Y, W, H, L ) {cout << "1" << endl;}
virtual void resize_notify(int, int, int, int);
};
#endif
--- NEW FILE: Fl_Multi_Browser.H ---
//
// "$Id: Fl_Multi_Browser.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Multi browser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Multi_Browser_H
#define Fl_Multi_Browser_H
#include "Fl_Browser.H"
class Fl_Multi_Browser : public Fl_Browser {
public:
Fl_Multi_Browser(int x,int y,int w,int h,const char *l=0)
: Fl_Browser(x,y,w,h,l) {type(FL_MULTI_BROWSER);}
};
#endif
//
// End of "$Id: Fl_Multi_Browser.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Simple_Counter.H ---
//
// "$Id: Fl_Simple_Counter.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Simple counter header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Simple_Counter_H
#define Fl_Simple_Counter_H
#include "Fl_Counter.H"
class Fl_Simple_Counter : public Fl_Counter {
public:
Fl_Simple_Counter(int x,int y,int w,int h, const char *l = 0)
: Fl_Counter(x,y,w,h,l) {type(FL_SIMPLE_COUNTER);}
};
#endif
//
// End of "$Id: Fl_Simple_Counter.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Hor_Slider.H ---
//
// "$Id: Fl_Hor_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Horizontal slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Hor_Slider_H
#define Fl_Hor_Slider_H
#include "Fl_Slider.H"
class Fl_Hor_Slider : public Fl_Slider {
public:
Fl_Hor_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Slider(x,y,w,h,l) {type(FL_HOR_SLIDER);}
};
#endif
//
// End of "$Id: Fl_Hor_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Gl_Window.H ---
//
// "$Id: Fl_Gl_Window.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// OpenGL header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Gl_Window_H
#define Fl_Gl_Window_H
#include "Fl_Window.H"
class Fl_Gl_Choice; // structure to hold result of glXChooseVisual
class Fl_Gl_Window : public Fl_Window {
int mode_;
const int *alist;
Fl_Gl_Choice *g;
void * context; // actually a GLXContext
char valid_;
char damage1_; // damage() of back buffer
virtual FL_EXPORT void draw_overlay();
FL_EXPORT void init();
void *overlay;
FL_EXPORT void make_overlay();
friend class _Fl_Gl_Overlay;
static FL_EXPORT int can_do(int, const int *);
FL_EXPORT int mode(int, const int *);
public:
FL_EXPORT void show();
void show(int a, char **b) {Fl_Window::show(a,b);}
FL_EXPORT void flush();
FL_EXPORT void hide();
FL_EXPORT void resize(int,int,int,int);
char valid() const {return valid_;}
void valid(char i) {valid_ = i;}
FL_EXPORT void invalidate();
static int can_do(int i) {return can_do(i,0);}
static int can_do(const int *i) {return can_do(0, i);}
int can_do() {return can_do(mode_,alist);}
Fl_Mode mode() const {return (Fl_Mode)mode_;}
int mode(int a) {return mode(a,0);}
int mode(const int *a) {return mode(0, a);}
FL_EXPORT int can_do_overlay();
FL_EXPORT void redraw_overlay();
FL_EXPORT void hide_overlay();
FL_EXPORT void make_current();
FL_EXPORT void make_overlay_current();
FL_EXPORT void swap_buffers();
FL_EXPORT void ortho();
FL_EXPORT ~Fl_Gl_Window();
Fl_Gl_Window(int W, int H, const char *l=0) : Fl_Window(W,H,l) {init();}
Fl_Gl_Window(int X, int Y, int W, int H, const char *l=0)
: Fl_Window(X,Y,W,H,l) {init();}
};
#endif
//
// End of "$Id: Fl_Gl_Window.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Enumerations.H ---
//
// "$Id: Enumerations.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Enumerations for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Enumerations_H
#define Fl_Enumerations_H
//
// The following is only used when building DLLs under WIN32 with Visual C++...
//
#if defined(FL_DLL) && defined(_MSC_VER)
# ifdef FL_LIBRARY
# define FL_EXPORT __declspec(dllexport)
# else
# define FL_EXPORT __declspec(dllimport)
# endif /* FL_LIBRARY */
#else
# define FL_EXPORT
#endif /* FL_DLL && _MSC_VER */
//
// The FLTK version number; this is changed slightly from the beta versions
// because the old "const double" definition would not allow for conditional
// compilation...
//
// FL_VERSION is a double that describes the major and minor version numbers.
// Version 1.1 is actually stored as 1.01 to allow for more than 9 minor
// releases.
//
// The FL_MAJOR_VERSION, FL_MINOR_VERSION, and FL_PATCH_VERSION constants
// give the integral values for the major, minor, and patch releases
// respectively.
//
#define FL_MAJOR_VERSION 1
#define FL_MINOR_VERSION 0
#define FL_PATCH_VERSION 7
#define FL_VERSION ((double)FL_MAJOR_VERSION + \
(double)FL_MINOR_VERSION * 0.01)
typedef unsigned char uchar;
typedef unsigned long ulong;
enum Fl_Event { // events
FL_NO_EVENT = 0,
FL_PUSH = 1,
FL_RELEASE = 2,
FL_ENTER = 3,
FL_LEAVE = 4,
FL_DRAG = 5,
FL_FOCUS = 6,
FL_UNFOCUS = 7,
FL_KEYBOARD = 8,
FL_CLOSE = 9,
FL_MOVE = 10,
FL_SHORTCUT = 11,
FL_DEACTIVATE = 13,
FL_ACTIVATE = 14,
FL_HIDE = 15,
FL_SHOW = 16,
FL_PASTE = 17,
FL_SELECTIONCLEAR = 18
};
enum Fl_When { // Fl_Widget::when():
FL_WHEN_NEVER = 0,
FL_WHEN_CHANGED = 1,
FL_WHEN_RELEASE = 4,
FL_WHEN_RELEASE_ALWAYS= 6,
FL_WHEN_ENTER_KEY = 8,
FL_WHEN_ENTER_KEY_ALWAYS=10,
FL_WHEN_ENTER_KEY_CHANGED=11,
FL_WHEN_NOT_CHANGED = 2 // modifier bit to disable changed() test
};
// Fl::event_key() and Fl::get_key(n) (use ascii letters for all other keys):
#define FL_Button 0xfee8 // use Fl_Button+n for mouse button n
#define FL_BackSpace 0xff08
#define FL_Tab 0xff09
#define FL_Enter 0xff0d
#define FL_Pause 0xff13
#define FL_Scroll_Lock 0xff14
#define FL_Escape 0xff1b
#define FL_Home 0xff50
#define FL_Left 0xff51
#define FL_Up 0xff52
#define FL_Right 0xff53
#define FL_Down 0xff54
#define FL_Page_Up 0xff55
#define FL_Page_Down 0xff56
#define FL_End 0xff57
#define FL_Print 0xff61
#define FL_Insert 0xff63
#define FL_Menu 0xff67 // the "menu/apps" key on XFree86
#define FL_Num_Lock 0xff7f
#define FL_KP 0xff80 // use FL_KP+'x' for 'x' on numeric keypad
#define FL_KP_Enter 0xff8d // same as Fl_KP+'\r'
#define FL_KP_Last 0xffbd // use to range-check keypad
#define FL_F 0xffbd // use FL_F+n for function key n
#define FL_F_Last 0xffe0 // use to range-check function keys
#define FL_Shift_L 0xffe1
#define FL_Shift_R 0xffe2
#define FL_Control_L 0xffe3
#define FL_Control_R 0xffe4
#define FL_Caps_Lock 0xffe5
#define FL_Meta_L 0xffe7 // the left MSWindows key on XFree86
#define FL_Meta_R 0xffe8 // the right MSWindows key on XFree86
#define FL_Alt_L 0xffe9
#define FL_Alt_R 0xffea
#define FL_Delete 0xffff
// Fl::event_state():
#define FL_SHIFT 0x00010000
#define FL_CAPS_LOCK 0x00020000
#define FL_CTRL 0x00040000
#define FL_ALT 0x00080000
#define FL_NUM_LOCK 0x00100000 // most X servers do this?
#define FL_META 0x00400000 // correct for XFree86
#define FL_SCROLL_LOCK 0x00800000 // correct for XFree86
#define FL_BUTTON1 0x01000000
#define FL_BUTTON2 0x02000000
#define FL_BUTTON3 0x04000000
enum Fl_Boxtype { // boxtypes (if you change these you must fix fl_boxtype.C):
FL_NO_BOX = 0, FL_FLAT_BOX,
FL_UP_BOX, FL_DOWN_BOX,
FL_UP_FRAME, FL_DOWN_FRAME,
FL_THIN_UP_BOX, FL_THIN_DOWN_BOX,
FL_THIN_UP_FRAME, FL_THIN_DOWN_FRAME,
FL_ENGRAVED_BOX, FL_EMBOSSED_BOX,
FL_ENGRAVED_FRAME, FL_EMBOSSED_FRAME,
FL_BORDER_BOX, _FL_SHADOW_BOX,
FL_BORDER_FRAME, _FL_SHADOW_FRAME,
_FL_ROUNDED_BOX, _FL_RSHADOW_BOX,
_FL_ROUNDED_FRAME, _FL_RFLAT_BOX,
_FL_ROUND_UP_BOX, _FL_ROUND_DOWN_BOX,
_FL_DIAMOND_UP_BOX, _FL_DIAMOND_DOWN_BOX,
_FL_OVAL_BOX, _FL_OSHADOW_BOX,
_FL_OVAL_FRAME, _FL_OFLAT_BOX,
FL_FREE_BOXTYPE, FL_PDA_BOX = 38,
FL_BLACK_BOX, FL_WHITE_BOX,
FL_PDA_NO_BOX, FL_BOTTOM_BOX
};
extern FL_EXPORT Fl_Boxtype define_FL_ROUND_UP_BOX();
#define FL_ROUND_UP_BOX define_FL_ROUND_UP_BOX()
#define FL_ROUND_DOWN_BOX (Fl_Boxtype)(define_FL_ROUND_UP_BOX()+1)
extern FL_EXPORT Fl_Boxtype define_FL_SHADOW_BOX();
#define FL_SHADOW_BOX define_FL_SHADOW_BOX()
#define FL_SHADOW_FRAME (Fl_Boxtype)(define_FL_SHADOW_BOX()+2)
extern FL_EXPORT Fl_Boxtype define_FL_ROUNDED_BOX();
#define FL_ROUNDED_BOX define_FL_ROUNDED_BOX()
#define FL_ROUNDED_FRAME (Fl_Boxtype)(define_FL_ROUNDED_BOX()+2)
extern FL_EXPORT Fl_Boxtype define_FL_RFLAT_BOX();
#define FL_RFLAT_BOX define_FL_RFLAT_BOX()
extern FL_EXPORT Fl_Boxtype define_FL_RSHADOW_BOX();
#define FL_RSHADOW_BOX define_FL_RSHADOW_BOX()
extern FL_EXPORT Fl_Boxtype define_FL_DIAMOND_BOX();
#define FL_DIAMOND_UP_BOX define_FL_DIAMOND_BOX()
#define FL_DIAMOND_DOWN_BOX (Fl_Boxtype)(define_FL_DIAMOND_BOX()+1)
extern FL_EXPORT Fl_Boxtype define_FL_OVAL_BOX();
#define FL_OVAL_BOX define_FL_OVAL_BOX()
#define FL_OSHADOW_BOX (Fl_Boxtype)(define_FL_OVAL_BOX()+1)
#define FL_OVAL_FRAME (Fl_Boxtype)(define_FL_OVAL_BOX()+2)
#define FL_OFLAT_BOX (Fl_Boxtype)(define_FL_OVAL_BOX()+3)
// conversions of box types to other boxtypes:
inline Fl_Boxtype down(Fl_Boxtype b) {return (Fl_Boxtype)(b|1);}
inline Fl_Boxtype frame(Fl_Boxtype b) {return (Fl_Boxtype)(b|2);}
// back-compatability box types:
#define FL_FRAME FL_ENGRAVED_FRAME
#define FL_FRAME_BOX FL_ENGRAVED_BOX
#define FL_CIRCLE_BOX FL_ROUND_DOWN_BOX
#define FL_DIAMOND_BOX FL_DIAMOND_DOWN_BOX
enum Fl_Labeltype { // labeltypes:
FL_NORMAL_LABEL = 0,
FL_NO_LABEL,
_FL_SYMBOL_LABEL,
_FL_SHADOW_LABEL,
_FL_ENGRAVED_LABEL,
_FL_EMBOSSED_LABEL,
_FL_BITMAP_LABEL,
_FL_PIXMAP_LABEL,
_FL_IMAGE_LABEL,
_FL_MULTI_LABEL,
FL_FREE_LABELTYPE
};
extern Fl_Labeltype FL_EXPORT define_FL_SYMBOL_LABEL();
#define FL_SYMBOL_LABEL define_FL_SYMBOL_LABEL()
extern Fl_Labeltype FL_EXPORT define_FL_SHADOW_LABEL();
#define FL_SHADOW_LABEL define_FL_SHADOW_LABEL()
extern Fl_Labeltype FL_EXPORT define_FL_ENGRAVED_LABEL();
#define FL_ENGRAVED_LABEL define_FL_ENGRAVED_LABEL()
extern Fl_Labeltype FL_EXPORT define_FL_EMBOSSED_LABEL();
#define FL_EMBOSSED_LABEL define_FL_EMBOSSED_LABEL()
enum Fl_Align { // align() values
FL_ALIGN_CENTER = 0,
FL_ALIGN_TOP = 1,
FL_ALIGN_BOTTOM = 2,
FL_ALIGN_LEFT = 4,
FL_ALIGN_RIGHT = 8,
FL_ALIGN_INSIDE = 16,
FL_ALIGN_CLIP = 64,
FL_ALIGN_WRAP = 128,
FL_ALIGN_TOP_LEFT = FL_ALIGN_TOP | FL_ALIGN_LEFT,
FL_ALIGN_TOP_RIGHT = FL_ALIGN_TOP | FL_ALIGN_RIGHT,
FL_ALIGN_BOTTOM_LEFT = FL_ALIGN_BOTTOM | FL_ALIGN_LEFT,
FL_ALIGN_BOTTOM_RIGHT = FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT,
FL_ALIGN_LEFT_TOP = FL_ALIGN_TOP_LEFT,
FL_ALIGN_RIGHT_TOP = FL_ALIGN_TOP_RIGHT,
FL_ALIGN_LEFT_BOTTOM = FL_ALIGN_BOTTOM_LEFT,
FL_ALIGN_RIGHT_BOTTOM = FL_ALIGN_BOTTOM_RIGHT,
FL_ALIGN_NOWRAP = 0 // for back compatability
};
enum Fl_Font { // standard fonts
FL_HELVETICA = 0,
FL_HELVETICA_BOLD,
FL_HELVETICA_ITALIC,
FL_HELVETICA_BOLD_ITALIC,
FL_COURIER,
FL_COURIER_BOLD,
FL_COURIER_ITALIC,
FL_COURIER_BOLD_ITALIC,
FL_TIMES,
FL_TIMES_BOLD,
FL_TIMES_ITALIC,
FL_TIMES_BOLD_ITALIC,
FL_SYMBOL,
FL_SCREEN,
FL_SCREEN_BOLD,
FL_ZAPF_DINGBATS,
FL_FREE_FONT = 16, // first one to allocate
FL_BOLD = 1, // add this to helvetica, courier, or times
FL_ITALIC = 2 // add this to helvetica, courier, or times
};
#define FL_NORMAL_SIZE 14 // default size of all labels & text
enum Fl_Color { // standard colors
FL_BLACK = 0,
FL_RED = 1,
FL_GREEN = 2,
FL_YELLOW = 3,
FL_BLUE = 4,
FL_MAGENTA = 5,
FL_CYAN = 6,
FL_WHITE = 7,
FL_INACTIVE_COLOR = 8,
FL_SELECTION_COLOR = 15,
FL_FREE_COLOR = 16,
FL_NUM_FREE_COLOR = 16,
FL_GRAY_RAMP = 32,
// boxtypes limit themselves to these colors so whole ramp is not allocated:
FL_GRAY0 = 32, // 'A'
FL_DARK3 = 39, // 'H'
FL_DARK2 = 45, // 'N'
FL_DARK1 = 47, // 'P'
FL_GRAY = 49, // 'R' default color
FL_LIGHT1 = 50, // 'S'
FL_LIGHT2 = 52, // 'U'
FL_LIGHT3 = 54, // 'W'
FL_COLOR_CUBE = 56,
FL_NO_COLOR = 255
};
FL_EXPORT Fl_Color inactive(Fl_Color c);
FL_EXPORT Fl_Color contrast(Fl_Color fg, Fl_Color bg);
FL_EXPORT Fl_Color fl_color_average(Fl_Color c1, Fl_Color c2, float weight);
inline Fl_Color fl_lighter(Fl_Color c) { return fl_color_average(c, FL_WHITE, .67f); }
inline Fl_Color fl_darker(Fl_Color c) { return fl_color_average(c, FL_BLACK, .67f); }
#define FL_NUM_GRAY 24
inline Fl_Color fl_gray_ramp(int i) {return (Fl_Color)(i+FL_GRAY_RAMP);}
#define FL_NUM_RED 5
#define FL_NUM_GREEN 8
#define FL_NUM_BLUE 5
inline Fl_Color fl_color_cube(int r, int g, int b) {
return (Fl_Color)((b*FL_NUM_RED + r) * FL_NUM_GREEN + g + FL_COLOR_CUBE);}
enum Fl_Cursor { // standard cursors
FL_CURSOR_DEFAULT = 0,
FL_CURSOR_ARROW = 35,
FL_CURSOR_CROSS = 66,
FL_CURSOR_WAIT = 76,
FL_CURSOR_INSERT = 77,
FL_CURSOR_HAND = 31,
FL_CURSOR_HELP = 47,
FL_CURSOR_MOVE = 27,
// fltk provides bitmaps for these:
FL_CURSOR_NS = 78,
FL_CURSOR_WE = 79,
FL_CURSOR_NWSE = 80,
FL_CURSOR_NESW = 81,
FL_CURSOR_NONE = 255,
// for back compatability (non MSWindows ones):
FL_CURSOR_N = 70,
FL_CURSOR_NE = 69,
FL_CURSOR_E = 49,
FL_CURSOR_SE = 8,
FL_CURSOR_S = 9,
FL_CURSOR_SW = 7,
FL_CURSOR_W = 36,
FL_CURSOR_NW = 68
//FL_CURSOR_NS = 22,
//FL_CURSOR_WE = 55,
};
enum { // values for "when" passed to Fl::add_fd()
FL_READ = 1,
FL_WRITE = 4,
FL_EXCEPT = 8
};
enum Fl_Mode { // visual types and Fl_Gl_Window::mode() (values match Glut)
FL_RGB = 0,
FL_INDEX = 1,
FL_SINGLE = 0,
FL_DOUBLE = 2,
FL_ACCUM = 4,
FL_ALPHA = 8,
FL_DEPTH = 16,
FL_STENCIL = 32,
FL_RGB8 = 64,
FL_MULTISAMPLE= 128
};
// damage masks
enum Fl_Damage {
FL_DAMAGE_CHILD = 0x01,
FL_DAMAGE_EXPOSE = 0x02,
FL_DAMAGE_SCROLL = 0x04,
FL_DAMAGE_OVERLAY = 0x08,
FL_DAMAGE_ALL = 0x80
};
#endif
//
// End of "$Id: Enumerations.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Value_Output.H ---
//
// "$Id: Fl_Value_Output.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Value output header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Value_Output_H
#define Fl_Value_Output_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
class Fl_Value_Output : public Fl_Valuator {
uchar textfont_, textsize_, textcolor_, soft_;
public:
FL_EXPORT int handle(int);
FL_EXPORT void draw();
FL_EXPORT Fl_Value_Output(int x,int y,int w,int h,const char *l=0);
void soft(uchar x) {soft_ = x;}
uchar soft() const {return soft_;}
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar s) {textcolor_ = s;}
};
#endif
//
// End of "$Id: Fl_Value_Output.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Hor_Fill_Slider.H ---
//
// "$Id: Fl_Hor_Fill_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Horizontal fill slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Hor_Fill_Slider_H
#define Fl_Hor_Fill_Slider_H
#include "Fl_Slider.H"
class Fl_Hor_Fill_Slider : public Fl_Slider {
public:
Fl_Hor_Fill_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Slider(x,y,w,h,l) {type(FL_HOR_FILL_SLIDER);}
};
#endif
//
// End of "$Id: Fl_Hor_Fill_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Secret_Input.H ---
//
// "$Id: Fl_Secret_Input.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Secret input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Secret_Input_H
#define Fl_Secret_Input_H
#include "Fl_Input.H"
class Fl_Secret_Input : public Fl_Input {
public:
Fl_Secret_Input(int x,int y,int w,int h,const char *l = 0)
: Fl_Input(x,y,w,h,l) {type(FL_SECRET_INPUT);}
};
#endif
//
// End of "$Id: Fl_Secret_Input.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Dial.H ---
//
// "$Id: Fl_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Dial header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Dial_H
#define Fl_Dial_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
// values for type():
#define FL_NORMAL_DIAL 0
#define FL_LINE_DIAL 1
#define FL_FILL_DIAL 2
class Fl_Dial : public Fl_Valuator {
short a1,a2;
protected:
// these allow subclasses to put the dial in a smaller area:
FL_EXPORT void draw(int, int, int, int);
FL_EXPORT int handle(int, int, int, int, int);
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Dial(int x,int y,int w,int h, const char *l = 0);
short angle1() const {return a1;}
void angle1(short a) {a1 = a;}
short angle2() const {return a2;}
void angle2(short a) {a2 = a;}
void angles(short a, short b) {a1 = a; a2 = b;}
};
#endif
//
// End of "$Id: Fl_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Widget.H ---
//
// "$Id: Fl_Widget.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Widget header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Widget_H
#define Fl_Widget_H
#include "Enumerations.H"
class Fl_Widget;
class Fl_Window;
typedef void (Fl_Callback )(Fl_Widget*, void*);
typedef Fl_Callback* Fl_Callback_p; // needed for BORLAND
typedef void (Fl_Callback0)(Fl_Widget*);
typedef void (Fl_Callback1)(Fl_Widget*, long);
struct Fl_Label {
const char* value;
uchar type;
uchar font;
uchar size;
uchar color;
FL_EXPORT void draw(int,int,int,int, Fl_Align) const ;
FL_EXPORT void measure(int&, int&) const ;
};
class Fl_Widget {
friend class Fl_Group;
Fl_Widget* parent_;
Fl_Callback* callback_;
void* user_data_;
short x_,y_,w_,h_;
Fl_Label label_;
uchar type_;
uchar flags_;
uchar damage_;
uchar box_;
uchar color_;
uchar color2_;
uchar align_;
uchar when_;
// "de-implement" the copy constructors:
Fl_Widget & operator=(const Fl_Widget &);
FL_EXPORT Fl_Widget(const Fl_Widget &);
protected:
FL_EXPORT Fl_Widget(int,int,int,int,const char* =0);
void x(int v) {x_ = v;}
void y(int v) {y_ = v;}
void w(int v) {w_ = v;}
void h(int v) {h_ = v;}
uchar flags() const {return flags_;}
void set_flag(int c) {flags_ |= c;}
void clear_flag(int c) {flags_ &= ~c;}
enum {INACTIVE=1, INVISIBLE=2, OUTPUT=4, SHORTCUT_LABEL=64, CHANGED=128};
FL_EXPORT void draw_box() const;
FL_EXPORT void draw_box(Fl_Boxtype, Fl_Color) const;
FL_EXPORT void draw_box(Fl_Boxtype, int,int,int,int, Fl_Color) const;
FL_EXPORT void draw_label() const;
FL_EXPORT void draw_label(int, int, int, int) const;
public:
virtual FL_EXPORT ~Fl_Widget();
virtual FL_EXPORT void draw() = 0;
virtual FL_EXPORT int handle(int);
FL_EXPORT Fl_Widget* parent() const {return parent_;}
FL_EXPORT void parent(Fl_Widget* w) {parent_ = w;} // for hacks only
FL_EXPORT uchar type() const {return type_;}
FL_EXPORT void type(uchar t) {type_ = t;}
FL_EXPORT int x() const {return x_;}
FL_EXPORT int y() const {return y_;}
FL_EXPORT int w() const {return w_;}
FL_EXPORT int h() const {return h_;}
virtual FL_EXPORT void resize(int,int,int,int);
FL_EXPORT int damage_resize(int,int,int,int);
FL_EXPORT void position(int X,int Y) {resize(X,Y,w_,h_);}
FL_EXPORT void size(int W,int H) {resize(x_,y_,W,H);}
FL_EXPORT Fl_Align align() const {return (Fl_Align)align_;}
FL_EXPORT void align(uchar a) {align_ = a;}
FL_EXPORT Fl_Boxtype box() const {return (Fl_Boxtype)box_;}
FL_EXPORT void box(Fl_Boxtype a) {box_ = a;}
FL_EXPORT Fl_Color color() const {return (Fl_Color)color_;}
FL_EXPORT void color(uchar a) {color_ = a;}
FL_EXPORT Fl_Color selection_color() const {return (Fl_Color)color2_;}
FL_EXPORT void selection_color(uchar a) {color2_ = a;}
FL_EXPORT void color(uchar a, uchar b) {color_=a; color2_=b;}
FL_EXPORT const char* label() const {return label_.value;}
FL_EXPORT void label(const char* a) {label_.value=a;}
FL_EXPORT void label(Fl_Labeltype a,const char* b) {label_.type = a; label_.value = b;}
FL_EXPORT Fl_Labeltype labeltype() const {return (Fl_Labeltype)label_.type;}
FL_EXPORT void labeltype(Fl_Labeltype a) {label_.type = a;}
FL_EXPORT Fl_Color labelcolor() const {return (Fl_Color)label_.color;}
FL_EXPORT void labelcolor(uchar a) {label_.color=a;}
FL_EXPORT Fl_Font labelfont() const {return (Fl_Font)label_.font;}
FL_EXPORT void labelfont(uchar a) {label_.font=a;}
FL_EXPORT uchar labelsize() const {return label_.size;}
FL_EXPORT void labelsize(uchar a) {label_.size=a;}
FL_EXPORT Fl_Callback_p callback() const {return callback_;}
FL_EXPORT void callback(Fl_Callback* c, void* p) {callback_=c; user_data_=p;}
FL_EXPORT void callback(Fl_Callback* c) {callback_=c;}
FL_EXPORT void callback(Fl_Callback0*c) {callback_=(Fl_Callback*)c;}
FL_EXPORT void callback(Fl_Callback1*c, long p=0) {callback_=(Fl_Callback*)c; user_data_=(void*)p;}
FL_EXPORT void* user_data() const {return user_data_;}
FL_EXPORT void user_data(void* v) {user_data_ = v;}
FL_EXPORT long argument() const {return (long)user_data_;}
FL_EXPORT void argument(long v) {user_data_ = (void*)v;}
FL_EXPORT Fl_When when() const {return (Fl_When)when_;}
FL_EXPORT void when(uchar i) {when_ = i;}
FL_EXPORT int visible() const {return !(flags_&INVISIBLE);}
FL_EXPORT int visible_r() const;
FL_EXPORT void show();
FL_EXPORT void hide();
FL_EXPORT void set_visible() {flags_ &= ~INVISIBLE;}
FL_EXPORT void clear_visible() {flags_ |= INVISIBLE;}
FL_EXPORT int active() const {return !(flags_&INACTIVE);}
FL_EXPORT int active_r() const;
FL_EXPORT void activate();
FL_EXPORT void deactivate();
FL_EXPORT int output() const {return (flags_&OUTPUT);}
FL_EXPORT void set_output() {flags_ |= OUTPUT;}
FL_EXPORT void clear_output() {flags_ &= ~OUTPUT;}
FL_EXPORT int takesevents() const {return !(flags_&(INACTIVE|INVISIBLE|OUTPUT));}
FL_EXPORT int changed() const {return flags_&CHANGED;}
FL_EXPORT void set_changed() {flags_ |= CHANGED;}
FL_EXPORT void clear_changed() {flags_ &= ~CHANGED;}
FL_EXPORT int take_focus();
static FL_EXPORT void default_callback(Fl_Widget*, void*);
FL_EXPORT void do_callback() {callback_(this,user_data_);}
FL_EXPORT void do_callback(Fl_Widget* o,void* arg=0) {callback_(o,arg);}
FL_EXPORT void do_callback(Fl_Widget* o,long arg) {callback_(o,(void*)arg);}
FL_EXPORT int test_shortcut();
static FL_EXPORT int test_shortcut(const char*);
FL_EXPORT int contains(const Fl_Widget*) const ;
FL_EXPORT int inside(const Fl_Widget* o) const {return o ? o->contains(this) : 0;}
FL_EXPORT void redraw();
FL_EXPORT uchar damage() const {return damage_;}
FL_EXPORT void clear_damage(uchar c = 0) {damage_ = c;}
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;
FL_EXPORT void measure_label(int& x, int& y) {label_.measure(x,y);}
FL_EXPORT Fl_Window* window() const ;
// back compatability only:
FL_EXPORT Fl_Color color2() const {return (Fl_Color)color2_;}
FL_EXPORT void color2(uchar a) {color2_ = a;}
};
// reserved type numbers (necessary for my cheapo RTTI) start here.
// grep the header files for "RESERVED_TYPE" to find the next available
// number.
#define FL_RESERVED_TYPE 100
#endif
//
// End of "$Id: Fl_Widget.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: gl.h ---
//
// "$Id: gl.h,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// OpenGL header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// You must include this instead of GL/gl.h to get the Microsoft
// APIENTRY stuff included (from <windows.h>) prior to the OpenGL
// header files.
//
// This file also provides "missing" OpenGL functions, and
// gl_start() and gl_finish() to allow OpenGL to be used in any window
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef gl_draw_H
#define gl_draw_H
#include "Enumerations.H" // for color names
#ifdef WIN32
# include <windows.h>
#endif
#include <GL/gl.h>
FL_EXPORT void gl_start();
FL_EXPORT void gl_finish();
FL_EXPORT void gl_color(Fl_Color);
inline void gl_color(int c) {gl_color((Fl_Color)c);} // back compatability
FL_EXPORT void gl_rect(int x,int y,int w,int h);
inline void gl_rectf(int x,int y,int w,int h) {glRecti(x,y,x+w,y+h);}
FL_EXPORT void gl_font(int fontid, int size);
FL_EXPORT int gl_height();
FL_EXPORT int gl_descent();
FL_EXPORT double gl_width(const char *);
FL_EXPORT double gl_width(const char *, int n);
FL_EXPORT double gl_width(uchar);
FL_EXPORT void gl_draw(const char*);
FL_EXPORT void gl_draw(const char*, int n);
FL_EXPORT void gl_draw(const char*, int x, int y);
FL_EXPORT void gl_draw(const char*, float x, float y);
FL_EXPORT void gl_draw(const char*, int n, int x, int y);
FL_EXPORT void gl_draw(const char*, int n, float x, float y);
FL_EXPORT void gl_draw(const char*, int x, int y, int w, int h, Fl_Align);
FL_EXPORT void gl_measure(const char*, int& x, int& y);
FL_EXPORT void gl_draw_image(const uchar *, int x,int y,int w,int h, int d=3, int ld=0);
#endif
//
// End of "$Id: gl.h,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Line_Dial.H ---
//
// "$Id: Fl_Line_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Line dial header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Line_Dial_H
#define Fl_Line_Dial_H
#include "Fl_Dial.H"
class Fl_Line_Dial : public Fl_Dial {
public:
Fl_Line_Dial(int x,int y,int w,int h, const char *l = 0)
: Fl_Dial(x,y,w,h,l) {type(FL_LINE_DIAL);}
};
#endif
//
// End of "$Id: Fl_Line_Dial.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Output.H ---
//
// "$Id: Fl_Output.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Output header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Output_H
#define Fl_Output_H
#include "Fl_Input_.H"
class Fl_Output : public Fl_Input_ {
protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
Fl_Output(int x, int y, int w, int h, const char *l = 0)
: Fl_Input_(x, y, w, h, l) {}
};
#endif
//
// End of "$Id: Fl_Output.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Round_Clock.H ---
//
// "$Id: Fl_Round_Clock.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Round clock header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Round_Clock_H
#define Fl_Round_Clock_H
#include "Fl_Clock.H"
class Fl_Round_Clock : public Fl_Clock {
public:
Fl_Round_Clock(int x,int y,int w,int h, const char *l = 0)
: Fl_Clock(x,y,w,h,l) {type(FL_ROUND_CLOCK); box(FL_NO_BOX);}
};
#endif
//
// End of "$Id: Fl_Round_Clock.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu_.H ---
//
// "$Id: Fl_Menu_.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Menu base class header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Menu__H
#define Fl_Menu__H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
#include "Fl_Menu_Item.H"
class Fl_Menu_ : public Fl_Widget {
Fl_Menu_Item *menu_;
const Fl_Menu_Item *value_;
protected:
uchar down_box_;
uchar textfont_;
uchar textsize_;
uchar textcolor_;
uchar alloc;
public:
FL_EXPORT const Fl_Menu_Item* picked(const Fl_Menu_Item*);
FL_EXPORT Fl_Menu_(int,int,int,int,const char * =0);
FL_EXPORT ~Fl_Menu_();
const Fl_Menu_Item* test_shortcut() {return picked(menu()->test_shortcut());}
FL_EXPORT void global();
const Fl_Menu_Item *menu() const {return menu_;}
FL_EXPORT void menu(const Fl_Menu_Item *m);
FL_EXPORT void copy(const Fl_Menu_Item *m, void* user_data = 0);
FL_EXPORT int add(const char*, int shortcut, Fl_Callback*, void* = 0, int = 0);
int add(const char* a, const char* b, Fl_Callback* c,
void* d = 0, int e = 0) {return add(a,fl_old_shortcut(b),c,d,e);}
FL_EXPORT int size() const ;
FL_EXPORT void clear();
FL_EXPORT int add(const char *);
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;}
int mode(int i) const {return menu_[i].flags;}
const Fl_Menu_Item *mvalue() const {return value_;}
int value() const {return value_-menu_;}
FL_EXPORT int value(const Fl_Menu_Item*);
int value(int i) {return value(menu_+i);}
const char *text() const {return value_ ? value_->text : 0;}
const char *text(int i) const {return menu_[i].text;}
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar c) {textfont_=c;}
uchar textsize() const {return textsize_;}
void textsize(uchar c) {textsize_=c;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar c) {textcolor_=c;}
Fl_Boxtype down_box() const {return (Fl_Boxtype)down_box_;}
void down_box(Fl_Boxtype b) {down_box_ = b;}
// back compatability:
Fl_Color down_color() const {return selection_color();}
void down_color(uchar c) {selection_color(c);}
};
#endif
//
// End of "$Id: Fl_Menu_.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Valuator.H ---
//
// "$Id: Fl_Valuator.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Valuator header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Valuator_H
#define Fl_Valuator_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
// shared type() values for classes that work in both directions:
#define FL_VERTICAL 0
#define FL_HORIZONTAL 1
class Fl_Valuator : public Fl_Widget {
double value_;
double previous_value_;
double min, max; // truncates to this range *after* rounding
double A; int B; // rounds to multiples of A/B, or no rounding if A is zero
protected:
int horizontal() const {return type()&1;}
FL_EXPORT Fl_Valuator(int X, int Y, int W, int H, const char* L);
double previous_value() const {return previous_value_;}
void handle_push() {previous_value_ = value_;}
FL_EXPORT double softclamp(double);
FL_EXPORT void handle_drag(double newvalue);
FL_EXPORT void handle_release(); // use drag() value
virtual FL_EXPORT void value_damage(); // cause damage() due to value() changing
public:
void bounds(double a, double b) {min=a; max=b;}
double minimum() const {return min;}
void minimum(double a) {min = a;}
double maximum() const {return max;}
void maximum(double a) {max = a;}
void range(double a, double b) {min = a; max = b;}
void step(int a) {A = a; B = 1;}
void step(double a, int b) {A = a; B = b;}
FL_EXPORT void step(double s);
double step() const {return A/B;}
FL_EXPORT void precision(int);
double value() const {return value_;}
FL_EXPORT int value(double);
virtual int format(char*);
FL_EXPORT double round(double); // round to nearest multiple of step
FL_EXPORT double clamp(double); // keep in range
FL_EXPORT double increment(double, int); // add n*step to value
};
#endif
//
// End of "$Id: Fl_Valuator.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: fl_file_chooser.H ---
//
// "$Id: fl_file_chooser.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// File chooser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef fl_file_chooser_H
#define fl_file_chooser_H
#include "Enumerations.H"
FL_EXPORT char *fl_file_chooser(const char *message,const char *pat,const char *fname);
FL_EXPORT void fl_file_chooser_callback(void (*cb)(const char *));
#endif
//
// End of "$Id: fl_file_chooser.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Radio_Round_Button.H ---
//
// "$Id: Fl_Radio_Round_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Radio round button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Radio_Round_Button_H
#define Fl_Radio_Round_Button_H
#include "Fl_Round_Button.H"
class Fl_Radio_Round_Button : public Fl_Round_Button {
public:
Fl_Radio_Round_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Round_Button(x,y,w,h,l) {type(FL_RADIO_BUTTON);}
};
#endif
//
// End of "$Id: Fl_Radio_Round_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Roller.H ---
//
// "$Id: Fl_Roller.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Roller header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Roller_H
#define Fl_Roller_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
class Fl_Roller : public Fl_Valuator {
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Roller(int X,int Y,int W,int H,const char* L=0);
};
#endif
//
// End of "$Id: Fl_Roller.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Single_Window.H ---
//
// "$Id: Fl_Single_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Single-buffered window header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Single_Window_H
#define Fl_Single_Window_H
#include "Fl_Window.H"
class Fl_Single_Window : public Fl_Window {
public:
FL_EXPORT void show();
void show(int a, char **b) {Fl_Window::show(a,b);}
FL_EXPORT void flush();
Fl_Single_Window(int W, int H, const char *l=0)
: Fl_Window(W,H,l) {}
Fl_Single_Window(int X, int Y, int W, int H, const char *l=0)
: Fl_Window(X,Y,W,H,l) {}
int make_current();
};
#endif
//
// End of "$Id: Fl_Single_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Image.H ---
//
// "$Id: Fl_Image.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Image header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Image_H
#define Fl_Image_H
class Fl_Widget;
struct Fl_Menu_Item;
struct Fl_Image {
const uchar *array;
int w, h, d, ld;
ulong id; // for internal use
FL_EXPORT Fl_Image(const uchar *bits, int W, int H, int D=3, int LD=0) :
array(bits), w(W), h(H), d(D), ld(LD), id(0) {}
FL_EXPORT ~Fl_Image();
FL_EXPORT void label(Fl_Widget*);
FL_EXPORT void label(Fl_Menu_Item*);
FL_EXPORT void draw(int X, int Y, int W, int H, int cx=0, int cy=0);
FL_EXPORT void draw(int X, int Y) {draw(X, Y, w, h, 0, 0);}
};
#endif
//
// End of "$Id: Fl_Image.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Toggle_Light_Button.H ---
//
// "$Id: Fl_Toggle_Light_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Toggle light button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// provided for back-compatability only
#ifndef Fl_Toggle_Light_Button
#include "Fl_Light_Button.H"
#define Fl_Toggle_Light_Button Fl_Light_Button
#endif
//
// End of "$Id: Fl_Toggle_Light_Button.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: dirent.h ---
//
// "$Id: dirent.h,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Directory header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// this file is for back-compatability only
#include "filename.H"
//
// End of "$Id: dirent.h,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu_Bar.H ---
//
// "$Id: Fl_Menu_Bar.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Menu bar header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Menu_Bar_H
#define Fl_Menu_Bar_H
#include "Fl_Menu_.H"
class Fl_Menu_Bar : public Fl_Menu_ {
protected:
FL_EXPORT int handle(int);
FL_EXPORT void draw();
public:
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.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: fl_message.H ---
//
// "$Id: fl_message.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Standard message header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#include "fl_ask.H"
//
// End of "$Id: fl_message.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Free.H ---
//
// "$Id: Fl_Free.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Forms free header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Free_H
#define Fl_Free_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
#define FL_NORMAL_FREE 1
#define FL_SLEEPING_FREE 2
#define FL_INPUT_FREE 3
#define FL_CONTINUOUS_FREE 4
#define FL_ALL_FREE 5
typedef int (*FL_HANDLEPTR)(Fl_Widget *, int , float, float, char);
class Fl_Free : public Fl_Widget {
FL_HANDLEPTR hfunc;
static FL_EXPORT void step(void *);
FL_EXPORT void draw();
FL_EXPORT int handle(int);
public:
FL_EXPORT Fl_Free(uchar t,int x,int y,int w,int h,const char *l,FL_HANDLEPTR hdl);
FL_EXPORT ~Fl_Free();
};
// old event names for compatability:
#define FL_MOUSE FL_DRAG
#define FL_DRAW 0
#define FL_STEP 9
#define FL_FREEMEM 12
#define FL_FREEZE FL_UNMAP
#define FL_THAW FL_MAP
#endif
//
// End of "$Id: Fl_Free.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Input.H ---
//
// "$Id: Fl_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Input_H
#define Fl_Input_H
#include "Fl_Input_.H"
class Fl_Input : public Fl_Input_ {
FL_EXPORT int handle_key();
FL_EXPORT int shift_position(int p);
FL_EXPORT int shift_up_down_position(int p);
FL_EXPORT void handle_mouse(int keepmark=0);
public:
FL_EXPORT void draw();
FL_EXPORT int handle(int);
FL_EXPORT Fl_Input(int,int,int,int,const char * = 0);
};
#endif
//
// End of "$Id: Fl_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Timer.H ---
//
// "$Id: Fl_Timer.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Timer header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Timer_H
#define Fl_Timer_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
// values for type():
#define FL_NORMAL_TIMER 0
#define FL_VALUE_TIMER 1
#define FL_HIDDEN_TIMER 2
class Fl_Timer : public Fl_Widget {
static FL_EXPORT void stepcb(void *);
FL_EXPORT void step();
char on, direction_;
double delay, total;
long lastsec,lastusec;
protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Timer(uchar t,int x,int y,int w,int h, const char *l);
FL_EXPORT ~Fl_Timer();
FL_EXPORT void value(double);
double value() const {return delay>0.0?delay:0.0;}
char direction() const {return direction_;}
void direction(char d) {direction_ = d;}
char suspended() const {return !on;}
FL_EXPORT void suspended(char d);
};
#endif
//
// End of "$Id: Fl_Timer.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu_Button.H ---
//
// "$Id: Fl_Menu_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Menu button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Menu_Button_H
#define Fl_Menu_Button_H
#include "Fl_Menu_.H"
class Fl_Menu_Button : public Fl_Menu_ {
protected:
FL_EXPORT void draw();
public:
// values for type:
enum {POPUP1 = 1, POPUP2, POPUP12, POPUP3, POPUP13, POPUP23, POPUP123};
FL_EXPORT int handle(int);
FL_EXPORT const Fl_Menu_Item* popup();
FL_EXPORT const Fl_Menu_Item* popup(int, int);
FL_EXPORT Fl_Menu_Button(int,int,int,int,const char * =0);
};
#endif
//
// End of "$Id: Fl_Menu_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Button.H ---
//
// "$Id: Fl_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Button_H
#define Fl_Button_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
// values for type()
#define FL_TOGGLE_BUTTON 1
#define FL_RADIO_BUTTON (FL_RESERVED_TYPE+2)
#define FL_HIDDEN_BUTTON 3 // for Forms compatability
extern FL_EXPORT int fl_old_shortcut(const char*);
class Fl_Button : public Fl_Widget {
int shortcut_;
char value_;
char oldval;
uchar down_box_;
Fl_Color down_label_col_;
protected:
virtual FL_EXPORT void draw();
public:
virtual FL_EXPORT int handle(int);
FL_EXPORT Fl_Button(int,int,int,int,const char * = 0);
FL_EXPORT int value(int);
char value() const {return value_;}
int set() {return value(1);}
int clear() {return value(0);}
FL_EXPORT void setonly(); // this should only be called on FL_RADIO_BUTTONs
int shortcut() const {return shortcut_;}
void shortcut(int s) {shortcut_ = s;}
Fl_Boxtype down_box() const {return (Fl_Boxtype)down_box_;}
void down_box(Fl_Boxtype b) {down_box_ = b;}
// back compatability:
void shortcut(const char *s) {shortcut(fl_old_shortcut(s));}
Fl_Color down_color() const {return selection_color();}
void down_color(uchar c) {selection_color(c);}
Fl_Color down_label_color() const {return down_label_col_;}
void down_label_color(Fl_Color col) {down_label_col_ = col;}
};
#endif
//
// End of "$Id: Fl_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: glut.H ---
//
// "$Id: glut.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// GLUT emulation header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// Emulation of Glut using fltk.
// GLUT is Copyright (c) Mark J. Kilgard, 1994, 1995, 1996:
// "This program is freely distributable without licensing fees and is
// provided without guarantee or warrantee expressed or implied. This
// program is -not- in the public domain."
// Although I have copied the GLUT API, none of my code is based on
// any Glut implementation details and is therefore covered by the LGPL.
// Fltk does not include the Glut drawing functions (such as
// glutWireTeapot()) or the stroke fonts but the declarations for the
// drawing functions are included here because otherwise there is no
// way to get them along with this. To use them you will have to
// link in the original Glut library, put -lglut *after* -lfltk.
// Commented out lines indicate parts of Glut that are not emulated.
#ifndef __glut_h__
#define __glut_h__
#include <FL/gl.h>
#include <GL/glu.h>
////////////////////////////////////////////////////////////////
// Glut is emulated using this window class and these static variables
// (plus several more static variables hidden in glut.C):
#include "Fl.H"
#include "Fl_Gl_Window.H"
class Fl_Glut_Window : public Fl_Gl_Window {
FL_EXPORT void _init();
int mouse_down;
protected:
FL_EXPORT void draw();
FL_EXPORT void draw_overlay();
FL_EXPORT int handle(int);
public: // so the inline functions work
int number;
int menu[3];
FL_EXPORT void make_current();
void (*display)();
void (*overlaydisplay)();
void (*reshape)(int w, int h);
void (*keyboard)(uchar, int x, int y);
void (*mouse)(int b, int state, int x, int y);
void (*motion)(int x, int y);
void (*passivemotion)(int x, int y);
void (*entry)(int);
void (*visibility)(int);
void (*special)(int, int x, int y);
FL_EXPORT Fl_Glut_Window(int w, int h, const char *);
FL_EXPORT Fl_Glut_Window(int x, int y, int w, int h, const char *);
FL_EXPORT ~Fl_Glut_Window();
};
extern FL_EXPORT Fl_Glut_Window *glut_window; // the current window
extern FL_EXPORT int glut_menu; // the current menu
// function pointers that are not per-window:
extern FL_EXPORT void (*glut_idle_function)();
extern FL_EXPORT void (*glut_menustate_function)(int);
extern FL_EXPORT void (*glut_menustatus_function)(int,int,int);
////////////////////////////////////////////////////////////////
//#define GLUT_API_VERSION This does not match any version of Glut exactly...
FL_EXPORT void glutInit(int *argcp, char **argv); // creates first window
FL_EXPORT void glutInitDisplayMode(unsigned int mode);
// the FL_ symbols have the same value as the GLUT ones:
#define GLUT_RGB FL_RGB
#define GLUT_RGBA FL_RGB
#define GLUT_INDEX FL_INDEX
#define GLUT_SINGLE FL_SINGLE
#define GLUT_DOUBLE FL_DOUBLE
#define GLUT_ACCUM FL_ACCUM
#define GLUT_ALPHA FL_ALPHA
#define GLUT_DEPTH FL_DEPTH
#define GLUT_STENCIL FL_STENCIL
#define GLUT_MULTISAMPLE FL_MULTISAMPLE
// #define GLUT_STEREO 256
// #define GLUT_LUMINANCE 512
FL_EXPORT void glutInitWindowPosition(int x, int y);
FL_EXPORT void glutInitWindowSize(int w, int h);
FL_EXPORT void glutMainLoop();
FL_EXPORT int glutCreateWindow(char *title);
FL_EXPORT int glutCreateSubWindow(int win, int x, int y, int width, int height);
FL_EXPORT void glutDestroyWindow(int win);
inline void glutPostRedisplay() {glut_window->redraw();}
FL_EXPORT void glutSwapBuffers();
inline int glutGetWindow() {return glut_window->number;}
FL_EXPORT void glutSetWindow(int win);
inline void glutSetWindowTitle(char *t) {glut_window->label(t);}
inline void glutSetIconTitle(char *t) {glut_window->iconlabel(t);}
inline void glutPositionWindow(int x, int y) {glut_window->position(x,y);}
inline void glutReshapeWindow(int w, int h) {glut_window->size(w,h);}
inline void glutPopWindow() {glut_window->show();}
//inline void glutPushWindow();
inline void glutIconifyWindow() {glut_window->iconize();}
inline void glutShowWindow() {glut_window->show();}
inline void glutHideWindow() {glut_window->hide();}
inline void glutFullScreen() {glut_window->fullscreen();}
inline void glutSetCursor(Fl_Cursor cursor) {glut_window->cursor(cursor);}
// notice that the numeric values are different than glut:
#define GLUT_CURSOR_RIGHT_ARROW ((Fl_Cursor)2)
#define GLUT_CURSOR_LEFT_ARROW ((Fl_Cursor)67)
#define GLUT_CURSOR_INFO FL_CURSOR_HAND
#define GLUT_CURSOR_DESTROY ((Fl_Cursor)45)
#define GLUT_CURSOR_HELP FL_CURSOR_HELP
#define GLUT_CURSOR_CYCLE ((Fl_Cursor)26)
#define GLUT_CURSOR_SPRAY ((Fl_Cursor)63)
#define GLUT_CURSOR_WAIT FL_CURSOR_WAIT
#define GLUT_CURSOR_TEXT FL_CURSOR_INSERT
#define GLUT_CURSOR_CROSSHAIR FL_CURSOR_CROSS
#define GLUT_CURSOR_UP_DOWN FL_CURSOR_NS
#define GLUT_CURSOR_LEFT_RIGHT FL_CURSOR_WE
#define GLUT_CURSOR_TOP_SIDE FL_CURSOR_N
#define GLUT_CURSOR_BOTTOM_SIDE FL_CURSOR_S
#define GLUT_CURSOR_LEFT_SIDE FL_CURSOR_W
#define GLUT_CURSOR_RIGHT_SIDE FL_CURSOR_E
#define GLUT_CURSOR_TOP_LEFT_CORNER FL_CURSOR_NW
#define GLUT_CURSOR_TOP_RIGHT_CORNER FL_CURSOR_NE
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER FL_CURSOR_SE
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER FL_CURSOR_SW
#define GLUT_CURSOR_INHERIT FL_CURSOR_DEFAULT
#define GLUT_CURSOR_NONE FL_CURSOR_NONE
#define GLUT_CURSOR_FULL_CROSSHAIR FL_CURSOR_CROSS
//inline void glutWarpPointer(int x, int y);
inline void glutEstablishOverlay() {glut_window->make_overlay_current();}
inline void glutRemoveOverlay() {glut_window->hide_overlay();}
inline void glutUseLayer(GLenum layer) {
layer ? glut_window->make_overlay_current() : glut_window->make_current();}
enum {GLUT_NORMAL, GLUT_OVERLAY};
inline void glutPostOverlayRedisplay() {glut_window->redraw_overlay();}
inline void glutShowOverlay() {glut_window->redraw_overlay();}
inline void glutHideOverlay() {glut_window->hide_overlay();}
FL_EXPORT int glutCreateMenu(void (*)(int));
FL_EXPORT void glutDestroyMenu(int menu);
inline int glutGetMenu() {return glut_menu;}
inline void glutSetMenu(int m) {glut_menu = m;}
FL_EXPORT void glutAddMenuEntry(char *label, int value);
FL_EXPORT void glutAddSubMenu(char *label, int submenu);
FL_EXPORT void glutChangeToMenuEntry(int item, char *label, int value);
FL_EXPORT void glutChangeToSubMenu(int item, char *label, int submenu);
FL_EXPORT void glutRemoveMenuItem(int item);
inline void glutAttachMenu(int b) {glut_window->menu[b] = glut_menu;}
inline void glutDetachMenu(int b) {glut_window->menu[b] = 0;}
inline void glutDisplayFunc(void (*f)()) {glut_window->display = f;}
inline void glutReshapeFunc(void (*f)(int w, int h)) {glut_window->reshape=f;}
inline void glutKeyboardFunc(void (*f)(uchar key, int x, int y)) {
glut_window->keyboard = f;}
inline void glutMouseFunc(void (*f)(int b, int state, int x, int y)) {
glut_window->mouse = f;}
#define GLUT_LEFT_BUTTON 0
#define GLUT_MIDDLE_BUTTON 1
#define GLUT_RIGHT_BUTTON 2
#define GLUT_DOWN 0
#define GLUT_UP 1
inline void glutMotionFunc(void (*f)(int x, int y)) {glut_window->motion= f;}
inline void glutPassiveMotionFunc(void (*f)(int x, int y)) {
glut_window->passivemotion= f;}
inline void glutEntryFunc(void (*f)(int s)) {glut_window->entry = f;}
enum {GLUT_LEFT, GLUT_ENTERED};
inline void glutVisibilityFunc(void (*f)(int s)) {glut_window->visibility=f;}
enum {GLUT_NOT_VISIBLE, GLUT_VISIBLE};
inline void glutIdleFunc(void (*f)()) {Fl::set_idle(f);}
// Warning: this cast may not work on all machines:
inline void glutTimerFunc(unsigned int msec, void (*f)(int), int value) {
Fl::add_timeout(msec*.001, (void (*)(void *))f, (void *)value);
}
inline void glutMenuStateFunc(void (*f)(int state)) {
glut_menustate_function = f;}
inline void glutMenuStatusFunc(void (*f)(int status, int x, int y)) {
glut_menustatus_function = f;}
enum {GLUT_MENU_NOT_IN_USE, GLUT_MENU_IN_USE};
inline void glutSpecialFunc(void (*f)(int key, int x, int y)) {
glut_window->special = f;}
#define GLUT_KEY_F1 1
#define GLUT_KEY_F2 2
#define GLUT_KEY_F3 3
#define GLUT_KEY_F4 4
#define GLUT_KEY_F5 5
#define GLUT_KEY_F6 6
#define GLUT_KEY_F7 7
#define GLUT_KEY_F8 8
#define GLUT_KEY_F9 9
#define GLUT_KEY_F10 10
#define GLUT_KEY_F11 11
#define GLUT_KEY_F12 12
// WARNING: Different values than Glut uses:
#define GLUT_KEY_LEFT FL_Left
#define GLUT_KEY_UP FL_Up
#define GLUT_KEY_RIGHT FL_Right
#define GLUT_KEY_DOWN FL_Down
#define GLUT_KEY_PAGE_UP FL_Page_Up
#define GLUT_KEY_PAGE_DOWN FL_Page_Down
#define GLUT_KEY_HOME FL_Home
#define GLUT_KEY_END FL_End
#define GLUT_KEY_INSERT FL_Insert
//inline void glutSpaceballMotionFunc(void (*)(int x, int y, int z));
//inline void glutSpaceballRotateFunc(void (*)(int x, int y, int z));
//inline void glutSpaceballButtonFunc(void (*)(int button, int state));
//inline void glutButtonBoxFunc(void (*)(int button, int state));
//inline void glutDialsFunc(void (*)(int dial, int value));
//inline void glutTabletMotionFunc(void (*)(int x, int y));
//inline void glutTabletButtonFunc(void (*)(int button, int state, int x, int y));
inline void glutOverlayDisplayFunc(void (*f)()) {
glut_window->overlaydisplay = f;}
//inline void glutWindowStatusFunc(void (*)(int state));
//enum {GLUT_HIDDEN, GLUT_FULLY_RETAINED, GLUT_PARTIALLY_RETAINED,
// GLUT_FULLY_COVERED};
//inline void glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
//inline GLfloat glutGetColor(int ndx, int component);
//#define GLUT_RED 0
//#define GLUT_GREEN 1
//#define GLUT_BLUE 2
//inline void glutCopyColormap(int win);
// Warning: values are changed from Glut!
// Also relies on the GL_ symbols having values greater than 100
int glutGet(GLenum type);
enum {
GLUT_RETURN_ZERO = 0,
GLUT_WINDOW_X,
GLUT_WINDOW_Y,
GLUT_WINDOW_WIDTH,
GLUT_WINDOW_HEIGHT,
GLUT_WINDOW_PARENT,
//GLUT_WINDOW_NUM_CHILDREN,
//GLUT_WINDOW_CURSOR,
GLUT_SCREEN_WIDTH,
GLUT_SCREEN_HEIGHT,
//GLUT_SCREEN_WIDTH_MM,
//GLUT_SCREEN_HEIGHT_MM,
GLUT_MENU_NUM_ITEMS,
GLUT_DISPLAY_MODE_POSSIBLE,
GLUT_INIT_WINDOW_X,
GLUT_INIT_WINDOW_Y,
GLUT_INIT_WINDOW_WIDTH,
GLUT_INIT_WINDOW_HEIGHT,
GLUT_INIT_DISPLAY_MODE,
//GLUT_ELAPSED_TIME,
GLUT_WINDOW_BUFFER_SIZE
};
#define GLUT_WINDOW_STENCIL_SIZE GL_STENCIL_BITS
#define GLUT_WINDOW_DEPTH_SIZE GL_DEPTH_BITS
#define GLUT_WINDOW_RED_SIZE GL_RED_BITS
#define GLUT_WINDOW_GREEN_SIZE GL_GREEN_BITS
#define GLUT_WINDOW_BLUE_SIZE GL_BLUE_BITS
#define GLUT_WINDOW_ALPHA_SIZE GL_ALPHA_BITS
#define GLUT_WINDOW_ACCUM_RED_SIZE GL_ACCUM_RED_BITS
#define GLUT_WINDOW_ACCUM_GREEN_SIZE GL_ACCUM_GREEN_BITS
#define GLUT_WINDOW_ACCUM_BLUE_SIZE GL_ACCUM_BLUE_BITS
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE GL_ACCUM_ALPHA_BITS
#define GLUT_WINDOW_DOUBLEBUFFER GL_DOUBLEBUFFER
#define GLUT_WINDOW_RGBA GL_RGBA
#define GLUT_WINDOW_COLORMAP_SIZE GL_INDEX_BITS
#ifdef GL_SAMPLES_SGIS
#define GLUT_WINDOW_NUM_SAMPLES GL_SAMPLES_SGIS
#else
#define GLUT_WINDOW_NUM_SAMPLES GLUT_RETURN_ZERO
#endif
#define GLUT_WINDOW_STEREO GL_STEREO
//int glutDeviceGet(GLenum type);
//#define GLUT_HAS_KEYBOARD 600
//#define GLUT_HAS_MOUSE 601
//#define GLUT_HAS_SPACEBALL 602
//#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603
//#define GLUT_HAS_TABLET 604
//#define GLUT_NUM_MOUSE_BUTTONS 605
//#define GLUT_NUM_SPACEBALL_BUTTONS 606
//#define GLUT_NUM_BUTTON_BOX_BUTTONS 607
//#define GLUT_NUM_DIALS 608
//#define GLUT_NUM_TABLET_BUTTONS 609
inline int glutGetModifiers() {return Fl::event_state();}
// WARNING: these values are different than Glut uses:
#define GLUT_ACTIVE_SHIFT FL_SHIFT
#define GLUT_ACTIVE_CTRL FL_CTRL
#define GLUT_ACTIVE_ALT FL_ALT
int glutLayerGet(GLenum);
#define GLUT_OVERLAY_POSSIBLE 800
//#define GLUT_LAYER_IN_USE 801
//#define GLUT_HAS_OVERLAY 802
#define GLUT_TRANSPARENT_INDEX 803
#define GLUT_NORMAL_DAMAGED 804
#define GLUT_OVERLAY_DAMAGED 805
//inline int glutVideoResizeGet(GLenum param);
//#define GLUT_VIDEO_RESIZE_POSSIBLE 900
//#define GLUT_VIDEO_RESIZE_IN_USE 901
//#define GLUT_VIDEO_RESIZE_X_DELTA 902
//#define GLUT_VIDEO_RESIZE_Y_DELTA 903
//#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904
//#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905
//#define GLUT_VIDEO_RESIZE_X 906
//#define GLUT_VIDEO_RESIZE_Y 907
//#define GLUT_VIDEO_RESIZE_WIDTH 908
//#define GLUT_VIDEO_RESIZE_HEIGHT 909
//inline void glutSetupVideoResizing();
//inline void glutStopVideoResizing();
//inline void glutVideoResize(int x, int y, int width, int height);
//inline void glutVideoPan(int x, int y, int width, int height);
////////////////////////////////////////////////////////////////
// Emulated Glut drawing functions:
// Font argument must be a void* for compatability, so...
extern struct Glut_Bitmap_Font {uchar font; int size;}
glutBitmap9By15, glutBitmap8By13, glutBitmapTimesRoman10,
glutBitmapTimesRoman24, glutBitmapHelvetica10, glutBitmapHelvetica12,
glutBitmapHelvetica18;
#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)
#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)
#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)
#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)
#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)
#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)
#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)
FL_EXPORT void glutBitmapCharacter(void *font, int character);
FL_EXPORT int glutBitmapWidth(void *font, int character);
////////////////////////////////////////////////////////////////
// Glut drawing functions. These are NOT emulated but you can
// link in the glut library to get them. This assummes the object
// files in Glut remain as they currently are so that there are
// not symbol conflicts with the above.
extern "C" {
extern int glutExtensionSupported(char *name);
/* Stroke font opaque addresses (use constants instead in source code). */
extern void *glutStrokeRoman;
extern void *glutStrokeMonoRoman;
/* Stroke font constants (use these in GLUT program). */
#define GLUT_STROKE_ROMAN (&glutStrokeRoman)
#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)
/* GLUT font sub-API */
extern void glutStrokeCharacter(void *font, int character);
extern int glutStrokeWidth(void *font, int character);
/* GLUT pre-built models sub-API */
extern void glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
extern void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
extern void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
extern void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
extern void glutWireCube(GLdouble size);
extern void glutSolidCube(GLdouble size);
extern void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
extern void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
extern void glutWireDodecahedron();
extern void glutSolidDodecahedron();
extern void glutWireTeapot(GLdouble size);
extern void glutSolidTeapot(GLdouble size);
extern void glutWireOctahedron();
extern void glutSolidOctahedron();
extern void glutWireTetrahedron();
extern void glutSolidTetrahedron();
extern void glutWireIcosahedron();
extern void glutSolidIcosahedron();
}
#endif /* __glut_h__ */
//
// End of "$Id: glut.H,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Value_Input.H ---
//
// "$Id: Fl_Value_Input.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Value input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Value_Input_H
#define Fl_Value_Input_H
#include "Fl_Valuator.H"
#include "Fl_Input.H"
class Fl_Value_Input : public Fl_Valuator {
public:
Fl_Input input;
private:
char soft_;
static FL_EXPORT void input_cb(Fl_Widget*,void*);
virtual FL_EXPORT void value_damage(); // cause damage() due to value() changing
public:
FL_EXPORT int handle(int);
FL_EXPORT void draw();
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;}
char soft() const {return soft_;}
Fl_Font textfont() const {return input.textfont();}
void textfont(uchar s) {input.textfont(s);}
uchar textsize() const {return input.textsize();}
void textsize(uchar s) {input.textsize(s);}
Fl_Color textcolor() const {return input.textcolor();}
void textcolor(uchar n) {input.textcolor(n);}
Fl_Color cursor_color() const {return input.cursor_color();}
void cursor_color(uchar n) {input.cursor_color(n);}
};
#endif
//
// End of "$Id: Fl_Value_Input.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Light_Button.H ---
//
// "$Id: Fl_Light_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Lighted button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Light_Button_H
#define Fl_Light_Button_H
#include "Fl_Button.H"
class Fl_Light_Button : public Fl_Button {
protected:
virtual FL_EXPORT void draw();
public:
virtual FL_EXPORT int handle(int);
FL_EXPORT Fl_Light_Button(int x,int y,int w,int h,const char *l = 0);
};
#endif
//
// End of "$Id: Fl_Light_Button.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Int_Input.H ---
//
// "$Id: Fl_Int_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Integer input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Int_Input_H
#define Fl_Int_Input_H
#include "Fl_Input.H"
class Fl_Int_Input : public Fl_Input {
public:
Fl_Int_Input(int x,int y,int w,int h,const char *l = 0)
: Fl_Input(x,y,w,h,l) {type(FL_INT_INPUT);}
};
#endif
//
// End of "$Id: Fl_Int_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Clock.H ---
//
// "$Id: Fl_Clock.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Clock header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Clock_H
#define Fl_Clock_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
// values for type:
#define FL_SQUARE_CLOCK 0
#define FL_ROUND_CLOCK 1
#define FL_ANALOG_CLOCK FL_SQUARE_CLOCK
#define FL_DIGITAL_CLOCK FL_SQUARE_CLOCK // nyi
// a Fl_Clock_Output can be used to display a program-supplied time:
class Fl_Clock_Output : public Fl_Widget {
int hour_, minute_, second_;
ulong value_;
FL_EXPORT void drawhands(Fl_Color,Fl_Color); // part of draw
protected:
FL_EXPORT void draw(int, int, int, int);
FL_EXPORT void draw();
public:
FL_EXPORT Fl_Clock_Output(int x,int y,int w,int h, const char *l = 0);
FL_EXPORT void value(ulong v); // set to this Unix time
FL_EXPORT void value(int,int,int); // set hour, minute, second
ulong value() const {return value_;}
int hour() const {return hour_;}
int minute() const {return minute_;}
int second() const {return second_;}
};
// a Fl_Clock displays the current time always by using a timeout:
class Fl_Clock : public Fl_Clock_Output {
FL_EXPORT int handle(int);
public:
FL_EXPORT void update();
FL_EXPORT Fl_Clock(int x,int y,int w,int h, const char *l = 0);
FL_EXPORT Fl_Clock(uchar t,int x,int y,int w,int h, const char *l);
FL_EXPORT ~Fl_Clock();
};
#endif
//
// End of "$Id: Fl_Clock.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Box.H ---
//
// "$Id: Fl_Box.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $"
//
// Box header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Box_H
#define Fl_Box_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
class Fl_Box : public Fl_Widget {
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);}
};
#endif
//
// End of "$Id: Fl_Box.H,v 1.1 2006-10-03 11:24:56 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Return_Button.H ---
//
// "$Id: Fl_Return_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Return button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Return_Button_H
#define Fl_Return_Button_H
#include "Fl_Button.H"
class Fl_Return_Button : public Fl_Button {
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) {}
};
#endif
//
// End of "$Id: Fl_Return_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Pack.H ---
//
// "$Id: Fl_Pack.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Pack header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Pack_H
#define Fl_Pack_H
#include <FL/Fl_Group.H>
class Fl_Pack : public Fl_Group {
int spacing_;
public:
enum { // values for type(int)
VERTICAL = 0,
HORIZONTAL = 1
};
FL_EXPORT void draw();
FL_EXPORT Fl_Pack(int x,int y,int w ,int h,const char *l = 0);
int spacing() const {return spacing_;}
void spacing(int i) {spacing_ = i;}
uchar horizontal() const {return type();}
};
#endif
//
// End of "$Id: Fl_Pack.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Multiline_Output.H ---
//
// "$Id: Fl_Multiline_Output.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Multi line output header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Multiline_Output_H
#define Fl_Multiline_Output_H
#include "Fl_Output.H"
class Fl_Multiline_Output : public Fl_Output {
public:
Fl_Multiline_Output(int x,int y,int w,int h,const char *l = 0)
: Fl_Output(x,y,w,h,l) {type(FL_MULTILINE_INPUT);}
};
#endif
//
// End of "$Id: Fl_Multiline_Output.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: menubar.h ---
// This is an additional header file for "DDForms", which was our internal
// enhancement of Forms. This defines the precursor of the Fl_Menu class.
//
// Unfortunately it defined the callbacks as taking a long rather
// than a void* argument, requiring some dubious casts to emulate it:
#include "Fl_Menu_Bar.H"
struct MenuEntry {
const char *text; /*initial character indicates "type", 0 = end of menu*/
ulong bind; /* key binding in forms format (#x, etc) */
void (*cb)(Fl_Widget *,long); /* callback */
long data; /* value for callback */
int flags; /* see below for flags */
uchar labeltype;
uchar labelfont;
uchar labelsize;
uchar labelcolor;
};
#define CHECKED FL_MENU_CHECK
#define UNCHECKED FL_MENU_BOX
#define DISABLED FL_MENU_INACTIVE
/* Turn a box into a menu bar: */
inline void MenuBar(Fl_Widget *o,MenuEntry *m) {
Fl_Menu_Bar *mb = new Fl_Menu_Bar(o->x(),o->y(),o->w(),o->h());
mb->menu((Fl_Menu_Item*)m);
mb->box(0);
Fl_Group *g = (Fl_Group *)(o->parent());
int i = g->find(*o);
g->insert(*mb, i<g->children()-1 ? g->child(i+1) : 0);
}
/* advance to the Nth item in menu, skipping submenus: */
inline MenuEntry *MenuGetEntry(MenuEntry *m,int i) {
return (MenuEntry*)(((Fl_Menu_Item*)m)->next(i));
}
/* Init the shortcuts for a widget with a popup menu: */
inline void MenuSetShortcuts(Fl_Widget *, MenuEntry *) {}
inline void MenuAdd(
MenuEntry m[],
int, /* number of entries in menutable, ignored here */
const char *text,
const char *bind,
void (*cb)(Fl_Widget *,long),
long data,
int flags) {
((Fl_Menu_Item*)m)->add(text,bind,(Fl_Callback*)cb,(void *)data,flags);
}
inline MenuEntry *MenuPopup(Fl_Widget *o,const char *title,MenuEntry *m,double x,double y) {
const Fl_Menu_Item* v = ((Fl_Menu_Item*)m)->popup(x,y,title);
if (v && v->callback_) v->do_callback(o);
return (MenuEntry *)v;
}
inline MenuEntry *MenuHandleShortcut(Fl_Widget *o,MenuEntry *m,char) {
const Fl_Menu_Item* v = ((Fl_Menu_Item*)m)->test_shortcut();
if (v && v->callback_) v->do_callback(o);
return (MenuEntry *)v;
}
--- NEW FILE: Fl_Repeat_Button.H ---
//
// "$Id: Fl_Repeat_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Repeat button header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Repeat_Button_H
#define Fl_Repeat_Button_H
#include "Fl_Button.H"
class Fl_Repeat_Button : public Fl_Button {
static FL_EXPORT void repeat_callback(void *);
public:
FL_EXPORT int handle(int);
Fl_Repeat_Button(int x,int y,int w,int h,const char *l=0)
: Fl_Button(x,y,w,h,l) {}
void deactivate() {
Fl::remove_timeout(repeat_callback,this);
Fl_Button::deactivate();
}
};
#endif
//
// End of "$Id: Fl_Repeat_Button.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Counter.H ---
//
// "$Id: Fl_Counter.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Counter header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// A numerical value with up/down step buttons. From Forms.
#ifndef Fl_Counter_H
#define Fl_Counter_H
#ifndef Fl_Valuator_H
#include "Fl_Valuator.H"
#endif
// values for type():
#define FL_NORMAL_COUNTER 0
#define FL_SIMPLE_COUNTER 1
class Fl_Counter : public Fl_Valuator {
uchar textfont_, textsize_, textcolor_;
double lstep_;
uchar mouseobj;
static FL_EXPORT void repeat_callback(void *);
FL_EXPORT int calc_mouseobj();
FL_EXPORT void increment_cb();
protected:
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Counter(int,int,int,int,const char * = 0);
FL_EXPORT ~Fl_Counter();
void lstep(double a) {lstep_ = a;}
void step(double a,double b) {Fl_Valuator::step(a); lstep_ = b;}
void step(double a) {Fl_Valuator::step(a);}
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar s) {textcolor_ = s;}
};
#endif
//
// End of "$Id: Fl_Counter.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Input_.H ---
//
// "$Id: Fl_Input_.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Input base class header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Input__H
#define Fl_Input__H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
#define FL_NORMAL_INPUT 0
#define FL_FLOAT_INPUT 1
#define FL_INT_INPUT 2
#define FL_HIDDEN_INPUT 3
#define FL_MULTILINE_INPUT 4
#define FL_SECRET_INPUT 5
class Fl_Input_ : public Fl_Widget {
const char* value_;
char* buffer;
int size_;
int bufsize;
int position_;
int mark_;
int xscroll_, yscroll_;
int mu_p;
int maximum_size_;
int ww_;
uchar textfont_;
uchar textsize_;
uchar textcolor_;
uchar cursor_color_;
uchar erase_cursor_only;
FL_EXPORT const char* expand(const char*, char*) const;
FL_EXPORT double expandpos(const char*, const char*, const char*, int*) const;
FL_EXPORT void minimal_update(int, int);
FL_EXPORT void minimal_update(int p);
FL_EXPORT void put_in_buffer(int newsize);
FL_EXPORT void setfont() const;
protected:
FL_EXPORT int wordboundary(int i) const;
FL_EXPORT int lineboundary(int i) const;
FL_EXPORT void drawtext(int, int, int, int);
FL_EXPORT int up_down_position(int, int keepmark=0);
FL_EXPORT void handle_mouse(int, int, int, int, int keepmark=0);
FL_EXPORT int handletext(int e, int, int, int, int);
FL_EXPORT void maybe_do_callback();
int xscroll() const {return xscroll_;}
int yscroll() const {return yscroll_;}
public:
FL_EXPORT void resize(int, int, int, int);
FL_EXPORT Fl_Input_(int, int, int, int, const char* = 0);
FL_EXPORT ~Fl_Input_();
FL_EXPORT int value(const char*);
FL_EXPORT int value(const char*, int);
FL_EXPORT int static_value(const char*);
FL_EXPORT int static_value(const char*, int);
const char* value() const {return value_;}
char index(int i) const {return value_[i];}
int size() const {return size_;}
int maximum_size() const {return maximum_size_;}
void maximum_size(int m) {maximum_size_ = m;}
int position() const {return position_;}
int mark() const {return mark_;}
FL_EXPORT int position(int p, int m);
int position(int p) {return position(p, p);}
int mark(int m) {return position(position(), m);}
FL_EXPORT int replace(int, int, const char*, int=0);
int cut() {copy(); return replace(position(), mark(), 0);}
int cut(int n) {copy(); return replace(position(), position()+n, 0);}
int cut(int a, int b) {copy(); return replace(a, b, 0);}
int insert(const char* t, int l=0){return replace(position_, mark_, t, l);}
FL_EXPORT int copy();
FL_EXPORT int undo();
FL_EXPORT int copy_cuts();
void set_wrap(int val) {ww_ = val;}
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar n) {textcolor_ = n;}
Fl_Color cursor_color() const {return (Fl_Color)cursor_color_;}
void cursor_color(uchar n) {cursor_color_ = n;}
};
#endif
//
// End of "$Id: Fl_Input_.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Hor_Nice_Slider.H ---
//
// "$Id: Fl_Hor_Nice_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Horizontal "nice" slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Hor_Nice_Slider_H
#define Fl_Hor_Nice_Slider_H
#include "Fl_Slider.H"
class Fl_Hor_Nice_Slider : public Fl_Slider {
public:
Fl_Hor_Nice_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Slider(x,y,w,h,l) {type(FL_HOR_NICE_SLIDER); box(FL_FLAT_BOX);}
};
#endif
//
// End of "$Id: Fl_Hor_Nice_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Tile.H ---
//
// "$Id: Fl_Tile.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Tile header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Tile_H
#define Fl_Tile_H
#include "Fl_Group.H"
class Fl_Tile : public Fl_Group {
public:
FL_EXPORT int handle(int);
Fl_Tile(int X,int Y,int W,int H,const char*l=0) : Fl_Group(X,Y,W,H,l) {}
FL_EXPORT void resize(int, int, int, int);
FL_EXPORT void position(int, int, int, int);
};
#endif
//
// End of "$Id: Fl_Tile.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: config.h ---
/* config.h. Generated automatically by configure. */
/*
* "$Id: config.h,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
*
* Configuration file for the Fast Light Tool Kit (FLTK).
* @configure_input@
*
* Copyright 1998-1999 by Bill Spitzak and others.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA.
*
* Please report all bugs and problems to "FLTK-bugs at easysw.com".
*/
/*
* BORDER_WIDTH:
*
* Thickness of FL_UP_BOX and FL_DOWN_BOX. Current 1,2, and 3 are
* supported.
*
* 3 is the historic FLTK look.
* 2 is the default and looks like Microsoft Windows, KDE, and Qt.
* 1 is a plausible future evolution...
*
* Note that this may be simulated at runtime by redefining the boxtypes
* using Fl::set_boxtype().
*/
#define BORDER_WIDTH 2
/*
* HAVE_GL:
*
* Do you have OpenGL? Set this to 0 if you don't have or plan to use
* OpenGL, and FLTK will be smaller.
*/
#define HAVE_GL 0
/*
* USE_COLORMAP:
*
* Setting this to zero will save a good deal of code (especially for
* fl_draw_image), but FLTK will only work on TrueColor visuals.
*/
#define USE_COLORMAP 1
/*
* HAVE_XDBE:
*
* Do we have the X double-buffer extension?
*/
#define HAVE_XDBE 0
/*
* USE_XDBE:
*
* Actually try to use the double-buffer extension? Set this to zero
* disable use of XDBE without breaking the list_visuals program.
*/
#define USE_XDBE HAVE_XDBE
/*
* HAVE_OVERLAY:
*
* Use the X overlay extension? FLTK will try to use an overlay
* visual for Fl_Overlay_Window, the Gl_Window overlay, and for the
* menus. Setting this to zero will remove a substantial amount of
* code from FLTK. Overlays have only been tested on SGI servers!
*/
#define HAVE_OVERLAY 0
/*
* HAVE_GL_OVERLAY:
*
* It is possible your GL has an overlay even if X does not. If so,
* set this to 1.
*/
#define HAVE_GL_OVERLAY HAVE_OVERLAY
/*
* WORDS_BIGENDIAN:
*
* Byte order of your machine: 1 = big-endian, 0 = little-endian.
*/
#define WORDS_BIGENDIAN 0
/*
* U16, U32, U64:
*
* Types used by fl_draw_image. One of U32 or U64 must be defined.
* U16 is optional but FLTK will work better with it!
*/
#define U16 unsigned short
#define U32 unsigned
/* #undef U64 */
/*
* HAVE_DIRENT_H, HAVE_SYS_NDIR_H, HAVE_SYS_DIR_H, HAVE_NDIR_H, HAVE_SCANDIR:
*
* Where is <dirent.h> (used only by fl_file_chooser and scandir).
*/
#define HAVE_DIRENT_H 1
#define HAVE_SYS_NDIR_H 0
#define HAVE_SYS_DIR_H 0
#define HAVE_NDIR_H 0
#define HAVE_SCANDIR 1
/*
* possibly missing sprintf-style functions:
*/
#define HAVE_VSNPRINTF 1
#define HAVE_SNPRINTF 1
#define HAVE_VSPRINTF 1
/*
* HAVE_SYS_SELECT_H:
*
* Whether or not select() call has its own header file.
*/
#define HAVE_SYS_SELECT_H 0
/*
* HAVE_POLL:
*
* Use poll() if we don't have select().
*/
#define HAVE_POLL 0
/*
* End of "$Id: config.h,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
*/
--- NEW FILE: Fl_Double_Window.H ---
//
// "$Id: Fl_Double_Window.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Double-buffered window header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Double_Window_H
#define Fl_Double_Window_H
#include "Fl_Window.H"
class Fl_Double_Window : public Fl_Window {
protected:
FL_EXPORT void flush(int eraseoverlay);
public:
FL_EXPORT void show();
void show(int a, char **b) {Fl_Window::show(a,b);}
FL_EXPORT void flush();
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT void hide();
FL_EXPORT ~Fl_Double_Window();
Fl_Double_Window(int W, int H, const char *l = 0) : Fl_Window(W,H,l) {}
Fl_Double_Window(int X, int Y, int W, int H, const char *l = 0)
: Fl_Window(X,Y,W,H,l) {}
};
#endif
//
// End of "$Id: Fl_Double_Window.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Float_Input.H ---
//
// "$Id: Fl_Float_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Floating point input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Float_Input_H
#define Fl_Float_Input_H
#include "Fl_Input.H"
class Fl_Float_Input : public Fl_Input {
public:
Fl_Float_Input(int x,int y,int w,int h,const char *l = 0)
: Fl_Input(x,y,w,h,l) {type(FL_FLOAT_INPUT);}
};
#endif
//
// End of "$Id: Fl_Float_Input.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Multi_Label.H ---
//
// "$Id: Fl_Multi_Label.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Multi-label header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Multi_Label_H
#define Fl_Multi_Label_H
class Fl_Widget;
struct Fl_Menu_Item;
struct Fl_Multi_Label {
const char* labela;
const char* labelb;
uchar typea;
uchar typeb;
FL_EXPORT void label(Fl_Widget*);
FL_EXPORT void label(Fl_Menu_Item*);
};
#endif
//
// End of "$Id: Fl_Multi_Label.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Fill_Slider.H ---
//
// "$Id: Fl_Fill_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Filled slider header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Fill_Slider_H
#define Fl_Fill_Slider_H
#include "Fl_Slider.H"
class Fl_Fill_Slider : public Fl_Slider {
public:
Fl_Fill_Slider(int x,int y,int w,int h,const char *l=0)
: Fl_Slider(x,y,w,h,l) {type(FL_VERT_FILL_SLIDER);}
};
#endif
//
// End of "$Id: Fl_Fill_Slider.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Browser_.H ---
//
// "$Id: Fl_Browser_.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Common browser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
// This is the base class for browsers. To be useful it must
// be subclassed and several virtual functions defined. The
// Forms-compatable browser and the file chooser's browser are
// subclassed off of this.
// Yes, I know this should be a template...
#ifndef Fl_Browser__H
#define Fl_Browser__H
#ifndef Fl_Group_H
#include "Fl_Group.H"
#endif
#include "Fl_Scrollbar.H"
#define FL_NORMAL_BROWSER 0
#define FL_SELECT_BROWSER 1
#define FL_HOLD_BROWSER 2
#define FL_MULTI_BROWSER 3
class Fl_Browser_ : public Fl_Group {
int position_; // where user wants it scrolled to
int real_position_; // the current vertical scrolling position
int hposition_; // where user wants it panned to
int real_hposition_; // the current horizontal scrolling position
int offset_; // how far down top_ item the real_position is
int max_width; // widest object seen so far
uchar textfont_, textsize_, textcolor_;
uchar has_scrollbar_; // which scrollbars are enabled
void* top_; // which item scrolling position is in
void* selection_; // which is selected (except for FL_MULTI_BROWSER)
void *redraw1,*redraw2; // minimal update pointers
void* max_width_item; // which item has max_width_
static int scrollbar_width_;
FL_EXPORT void update_top();
protected:
// All of the following must be supplied by the subclass:
virtual FL_EXPORT void *item_first() const = 0;
virtual FL_EXPORT void *item_next(void *) const = 0;
virtual FL_EXPORT void *item_prev(void *) const = 0;
virtual FL_EXPORT int item_height(void *) const = 0;
virtual FL_EXPORT int item_width(void *) const = 0;
virtual FL_EXPORT int item_quick_height(void *) const ;
virtual FL_EXPORT void item_draw(void *,int,int,int,int) const = 0;
// you don't have to provide these but it may help speed it up:
virtual FL_EXPORT int full_width() const ; // current width of all items
virtual FL_EXPORT int full_height() const ; // current height of all items
virtual FL_EXPORT int incr_height() const ; // average height of an item
// These only need to be done by subclass if you want a multi-browser:
virtual FL_EXPORT void item_select(void *,int=1);
virtual FL_EXPORT int item_selected(void *) const ;
// things the subclass may want to call:
FL_EXPORT void *top() const {return top_;}
FL_EXPORT void *selection() const {return selection_;}
FL_EXPORT void new_list(); // completely clobber all data, as though list replaced
FL_EXPORT void deleting(void *a); // get rid of any pointers to a
FL_EXPORT void replacing(void *a,void *b); // change a pointers to b
FL_EXPORT void inserting(void *a,void *b); // insert a before b
FL_EXPORT int displayed(void *) const ; // true if this line is visible
FL_EXPORT void redraw_line(void *); // minimal update, no change in size
FL_EXPORT void redraw_lines() {damage(FL_DAMAGE_SCROLL);} // redraw all of them
FL_EXPORT void bbox(int&,int&,int&,int&) const;
FL_EXPORT int leftedge() const; // x position after scrollbar & border
FL_EXPORT void *find_item(int my); // item under mouse
FL_EXPORT void draw(int,int,int,int);
FL_EXPORT int handle(int,int,int,int,int);
FL_EXPORT void draw();
FL_EXPORT int handle(int);
FL_EXPORT Fl_Browser_(int,int,int,int,const char * = 0);
public:
Fl_Scrollbar scrollbar; // Vertical scrollbar
Fl_Scrollbar hscrollbar; // Horizontal scrollbar
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT int select(void *,int=1,int docallbacks=0);
FL_EXPORT int select_only(void *,int docallbacks=0);
FL_EXPORT int deselect(int docallbacks=0);
int position() const {return position_;}
int hposition() const {return hposition_;}
FL_EXPORT void position(int); // scroll to here
FL_EXPORT void hposition(int); // pan to here
FL_EXPORT void display(void*); // scroll so this item is shown
uchar has_scrollbar() const {return has_scrollbar_;}
void has_scrollbar(uchar i) {has_scrollbar_ = i;}
enum { // values for has_scrollbar()
HORIZONTAL = 1,
VERTICAL = 2,
BOTH = 3,
ALWAYS_ON = 4,
HORIZONTAL_ALWAYS = 5,
VERTICAL_ALWAYS = 6,
BOTH_ALWAYS = 7
};
Fl_Font textfont() const {return (Fl_Font)textfont_;}
void textfont(uchar s) {textfont_ = s;}
uchar textsize() const {return textsize_;}
void textsize(uchar s) {textsize_ = s;}
Fl_Color textcolor() const {return (Fl_Color)textcolor_;}
void textcolor(uchar n) {textcolor_ = n;}
static void scrollbar_width(int b) {scrollbar_width_ = b;}
static int scrollbar_width() {return scrollbar_width_;}
// for back compatability:
void scrollbar_right() {scrollbar.align(FL_ALIGN_RIGHT);}
void scrollbar_left() {scrollbar.align(FL_ALIGN_LEFT);}
};
#endif
//
// End of "$Id: Fl_Browser_.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Multiline_Input.H ---
//
// "$Id: Fl_Multiline_Input.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Multiline input header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Multiline_Input_H
#define Fl_Multiline_Input_H
#include "Fl_Input.H"
class Fl_Multiline_Input : public Fl_Input {
public:
Fl_Multiline_Input(int x,int y,int w,int h,const char *l = 0)
: Fl_Input(x,y,w,h,l) {type(FL_MULTILINE_INPUT);}
};
#endif
//
// End of "$Id: Fl_Multiline_Input.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: math.h ---
//
// "$Id: math.h,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $"
//
// Math header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef fl_math_h
#define fl_math_h
#include <math.h>
#ifdef WIN32
// things missing from <math.h>:
#define M_PI 3.14159265358979323846
#define M_PI_2 1.57079632679489661923
#define M_PI_4 0.78539816339744830962
#define M_1_PI 0.31830988618379067154
#define M_2_PI 0.63661977236758134308
#define M_SQRT2 1.41421356237309504880
#define M_SQRT1_2 0.70710678118654752440
#else
#ifdef __EMX__
#include <float.h>
#endif
#endif
#if defined(WIN32) || defined(CRAY)
inline double rint(double v) {return floor(v+.5);}
inline double copysign(double a, double b) {return b<0 ? -a : a;}
#endif
#endif
//
// End of "$Id: math.h,v 1.1 2006-10-03 11:25:00 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Positioner.H ---
//
// "$Id: Fl_Positioner.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Positioner header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Positioner_H
#define Fl_Positioner_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
class Fl_Positioner : public Fl_Widget {
double xmin, ymin;
double xmax, ymax;
double xvalue_, yvalue_;
double xstep_, ystep_;
protected:
// these allow subclasses to put the dial in a smaller area:
FL_EXPORT void draw(int, int, int, int);
FL_EXPORT int handle(int, int, int, int, int);
FL_EXPORT void draw();
public:
FL_EXPORT int handle(int);
FL_EXPORT Fl_Positioner(int x,int y,int w,int h, const char *l=0);
double xvalue() const {return xvalue_;}
double yvalue() const {return yvalue_;}
FL_EXPORT int xvalue(double);
FL_EXPORT int yvalue(double);
FL_EXPORT int value(double,double);
FL_EXPORT void xbounds(double, double);
double xminimum() const {return xmin;}
void xminimum(double a) {xbounds(a,xmax);}
double xmaximum() const {return xmax;}
void xmaximum(double a) {xbounds(xmin,a);}
FL_EXPORT void ybounds(double, double);
double yminimum() const {return ymin;}
void yminimum(double a) {ybounds(a,ymax);}
double ymaximum() const {return ymax;}
void ymaximum(double a) {ybounds(ymin,a);}
void xstep(double a) {xstep_ = a;}
void ystep(double a) {ystep_ = a;}
};
#endif
//
// End of "$Id: Fl_Positioner.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: filename.H ---
//
// "$Id: filename.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $"
//
// Filename header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef FL_FILENAME_H
#define FL_FILENAME_H
//
// The following is only used when building DLLs under WIN32 with Visual C++...
//
#if defined(FL_DLL) && defined(_MSC_VER)
# ifdef FL_LIBRARY
# define FL_EXPORT __declspec(dllexport)
# else
# define FL_EXPORT __declspec(dllimport)
# endif /* FL_LIBRARY */
#else
# define FL_EXPORT
#endif /* FL_DLL && _MSC_VER */
#define FL_PATH_MAX 256 // all buffers are this length
FL_EXPORT const char *filename_name(const char *); // return pointer to name
FL_EXPORT const char *filename_ext(const char *); // return pointer to .ext
FL_EXPORT char *filename_setext(char *,const char *ext); // clobber .ext
FL_EXPORT int filename_expand(char *, const char *from); // do $x and ~x
FL_EXPORT int filename_absolute(char *, const char *from); // prepend getcwd()
FL_EXPORT int filename_match(const char *, const char *pattern); // glob match
FL_EXPORT int filename_isdir(const char*);
// Portable "scandir" function. Ugly but apparently necessary...
#ifdef WIN32
struct dirent {char d_name[1];};
#else
#include <sys/types.h>
#include <dirent.h>
// warning: on some systems (very few nowadays?) <dirent.h> may not exist.
// The correct information is in one of these files:
//#include <sys/ndir.h>
//#include <sys/dir.h>
//#include <ndir.h>
// plus you must do the following #define:
//#define dirent direct
// It would be best to create a <dirent.h> file that does this...
#endif
FL_EXPORT int filename_list(const char *d, struct dirent ***list);
#endif
//
// End of "$Id: filename.H,v 1.1 2006-10-03 11:24:59 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Hold_Browser.H ---
//
// "$Id: Fl_Hold_Browser.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Hold browser header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Hold_Browser_H
#define Fl_Hold_Browser_H
#include "Fl_Browser.H"
class Fl_Hold_Browser : public Fl_Browser {
public:
Fl_Hold_Browser(int x,int y,int w,int h,const char *l=0)
: Fl_Browser(x,y,w,h,l) {type(FL_HOLD_BROWSER);}
};
#endif
//
// End of "$Id: Fl_Hold_Browser.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Group.H ---
//
// "$Id: Fl_Group.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $"
//
// Group header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Group_H
#define Fl_Group_H
#ifndef Fl_Widget_H
#include "Fl_Widget.H"
#endif
class Fl_Group : public Fl_Widget {
Fl_Widget** array_;
Fl_Widget* savedfocus_;
Fl_Widget* resizable_;
int children_;
short *sizes_; // remembered initial sizes of children
FL_EXPORT int navigation(int);
static FL_EXPORT Fl_Group *current_;
protected:
FL_EXPORT void draw();
FL_EXPORT int handle(int);
FL_EXPORT void draw_child(Fl_Widget&) const;
FL_EXPORT void update_child(Fl_Widget&) const;
FL_EXPORT void draw_outside_label(const Fl_Widget&) const ;
FL_EXPORT short* sizes();
public:
void begin() {current_ = this;}
void end() {current_ = (Fl_Group*)parent();}
static Fl_Group *current() {return current_;}
static void current(Fl_Group *g) {current_ = g;}
int children() const {return children_;}
Fl_Widget* child(int n) const {return array()[n];}
FL_EXPORT int find(const Fl_Widget*) const;
int find(const Fl_Widget& o) const {return find(&o);}
FL_EXPORT Fl_Widget* const* array() const;
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT Fl_Group(int,int,int,int, const char * = 0);
FL_EXPORT virtual ~Fl_Group();
FL_EXPORT void add(Fl_Widget&);
void add(Fl_Widget* o) {add(*o);}
FL_EXPORT void insert(Fl_Widget&, int i);
void insert(Fl_Widget& o, Fl_Widget* before) {insert(o,find(before));}
FL_EXPORT void remove(Fl_Widget&);
void remove(Fl_Widget* o) {remove(*o);}
FL_EXPORT void clear();
void resizable(Fl_Widget& o) {resizable_ = &o;}
void resizable(Fl_Widget* o) {resizable_ = o;}
Fl_Widget* resizable() const {return resizable_;}
void add_resizable(Fl_Widget& o) {resizable_ = &o; add(o);}
FL_EXPORT void init_sizes();
// back compatability function:
void focus(Fl_Widget* o) {o->take_focus();}
Fl_Widget* & _ddfdesign_kludge() {return resizable_;}
FL_EXPORT void forms_end();
};
// dummy class used to end child groups in constructors for complex
// subclasses of Fl_Group:
class Fl_End {
public:
Fl_End() {Fl_Group::current()->end();}
};
#endif
//
// End of "$Id: Fl_Group.H,v 1.1 2006-10-03 11:24:57 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Menu_Window.H ---
//
// "$Id: Fl_Menu_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Menu window header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Menu_Window_H
#define Fl_Menu_Window_H
#include "Fl_Single_Window.H"
class Fl_Menu_Window : public Fl_Single_Window {
enum {NO_OVERLAY = 128};
public:
FL_EXPORT void show();
FL_EXPORT void erase();
FL_EXPORT void flush();
FL_EXPORT void hide();
int overlay() {return !(flags()&NO_OVERLAY);}
void set_overlay() {clear_flag(NO_OVERLAY);}
void clear_overlay() {set_flag(NO_OVERLAY);}
FL_EXPORT ~Fl_Menu_Window();
Fl_Menu_Window(int W, int H, const char *l = 0)
: Fl_Single_Window(W,H,l) {}
Fl_Menu_Window(int X, int Y, int W, int H, const char *l = 0)
: Fl_Single_Window(X,Y,W,H,l) {}
};
#endif
//
// End of "$Id: Fl_Menu_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
--- NEW FILE: Fl_Overlay_Window.H ---
//
// "$Id: Fl_Overlay_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $"
//
// Overlay window header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-1999 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs at easysw.com".
//
#ifndef Fl_Overlay_Window_H
#define Fl_Overlay_Window_H
#include "Fl_Double_Window.H"
class Fl_Overlay_Window : public Fl_Double_Window {
friend class _Fl_Overlay;
virtual FL_EXPORT void draw_overlay() = 0;
Fl_Window *overlay_;
public:
FL_EXPORT void show();
FL_EXPORT void flush();
FL_EXPORT void hide();
FL_EXPORT void resize(int,int,int,int);
FL_EXPORT ~Fl_Overlay_Window();
FL_EXPORT int can_do_overlay();
FL_EXPORT void redraw_overlay();
Fl_Overlay_Window(int W, int H, const char *l=0)
: Fl_Double_Window(W,H,l) {overlay_ = 0;}
Fl_Overlay_Window(int X, int Y, int W, int H, const char *l=0)
: Fl_Double_Window(X,Y,W,H,l) {overlay_ = 0;}
void show(int a, char **b) {Fl_Double_Window::show(a,b);}
};
#endif
//
// End of "$Id: Fl_Overlay_Window.H,v 1.1 2006-10-03 11:24:58 dslinux_amadeus Exp $".
//
More information about the dslinux-commit
mailing list