diff options
| -rw-r--r-- | FL/Fl_Float_Input.H | 13 | ||||
| -rw-r--r-- | FL/Fl_Hor_Slider.H | 22 | ||||
| -rw-r--r-- | FL/Fl_Int_Input.H | 12 | ||||
| -rw-r--r-- | FL/Fl_Multiline_Input.H | 9 | ||||
| -rw-r--r-- | FL/Fl_Multiline_Output.H | 14 | ||||
| -rw-r--r-- | FL/Fl_Output.H | 9 | ||||
| -rw-r--r-- | FL/Fl_Secret_Input.H | 18 | ||||
| -rw-r--r-- | FL/win32.H | 2 | ||||
| -rw-r--r-- | src/Fl_Input.cxx | 56 | ||||
| -rw-r--r-- | src/Fl_Slider.cxx | 25 |
10 files changed, 153 insertions, 27 deletions
diff --git a/FL/Fl_Float_Input.H b/FL/Fl_Float_Input.H index c564d746a..754ce1bf3 100644 --- a/FL/Fl_Float_Input.H +++ b/FL/Fl_Float_Input.H @@ -3,7 +3,7 @@ // // Floating point input header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -39,15 +39,20 @@ that only allows the user to type floating point numbers (sign, digits, decimal point, more digits, 'E' or 'e', sign, digits). */ -class Fl_Float_Input : public Fl_Input { // don't use FL_EXPORT here ! +class FL_EXPORT Fl_Float_Input : public Fl_Input { public: /** - Creates a new Fl_Float_Input widget using the given position, + Creates a new Fl_Float_Input widget using the given position, size, and label string. The default boxtype is FL_DOWN_BOX. - <P> Inherited destructor destroys the widget and any value associated with it + + Inherited destructor destroys the widget and any value associated with it. */ +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Float_Input(int X,int Y,int W,int H,const char *l = 0); +#else 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 }; #endif diff --git a/FL/Fl_Hor_Slider.H b/FL/Fl_Hor_Slider.H index 6732748de..68e98fb05 100644 --- a/FL/Fl_Hor_Slider.H +++ b/FL/Fl_Hor_Slider.H @@ -3,7 +3,7 @@ // // Horizontal slider header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -33,10 +33,24 @@ #include "Fl_Slider.H" -class Fl_Hor_Slider : public Fl_Slider { +/** Horizontal Slider class. + + \see class Fl_Slider. +*/ +class FL_EXPORT 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);} + + /** + Creates a new Fl_Hor_Slider widget using the given position, + size, and label string. + */ + +#if defined(FL_DLL) // implementation in src/Fl_Slider.cxx + Fl_Hor_Slider(int X,int Y,int W,int H,const char *l=0); +#else + 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 }; #endif diff --git a/FL/Fl_Int_Input.H b/FL/Fl_Int_Input.H index 37dc24222..e5d9b5c81 100644 --- a/FL/Fl_Int_Input.H +++ b/FL/Fl_Int_Input.H @@ -34,18 +34,24 @@ #include "Fl_Input.H" /** - The Fl_Int_Input class is a subclass of Fl_Input - that only allows the user to type decimal digits (or hex numbers of the form 0xaef). + The Fl_Int_Input class is a subclass of Fl_Input that only allows + the user to type decimal digits (or hex numbers of the form 0xaef). */ class FL_EXPORT Fl_Int_Input : public Fl_Input { public: /** Creates a new Fl_Int_Input widget using the given position, size, and label string. The default boxtype is FL_DOWN_BOX. - <P>Inherited destructor Destroys the widget and any value associated with it. + + Inherited destructor destroys the widget and any value associated with it. */ + +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Int_Input(int X,int Y,int W,int H,const char *l = 0); +#else 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 }; #endif diff --git a/FL/Fl_Multiline_Input.H b/FL/Fl_Multiline_Input.H index 2657d6db2..eca05a700 100644 --- a/FL/Fl_Multiline_Input.H +++ b/FL/Fl_Multiline_Input.H @@ -3,7 +3,7 @@ // // Multiline input header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -57,10 +57,15 @@ public: /** Creates a new Fl_Multiline_Input widget using the given position, size, and label string. The default boxtype is FL_DOWN_BOX. - <P>Inherited destructor destroys the widget and any value associated with it. + + Inherited destructor destroys the widget and any value associated with it. */ +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Multiline_Input(int X,int Y,int W,int H,const char *l = 0); +#else 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 }; #endif diff --git a/FL/Fl_Multiline_Output.H b/FL/Fl_Multiline_Output.H index a8de41614..eb80888f9 100644 --- a/FL/Fl_Multiline_Output.H +++ b/FL/Fl_Multiline_Output.H @@ -3,7 +3,7 @@ // // Multi line output header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -48,13 +48,19 @@ */ class FL_EXPORT Fl_Multiline_Output : public Fl_Output { public: + /** - Creates a new Fl_Multiline_Output widget using the given - position, size, and label string. The default boxtype is FL_DOWN_BOX - <P> Inherited destructor destroys the widget and any value associated with it. + Creates a new Fl_Multiline_Output widget using the given position, + size, and label string. The default boxtype is FL_DOWN_BOX. + + Inherited destructor destroys the widget and any value associated with it. */ +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Multiline_Output(int X,int Y,int W,int H,const char *l = 0); +#else 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_OUTPUT);} +#endif }; #endif diff --git a/FL/Fl_Output.H b/FL/Fl_Output.H index 64ee5e34a..f7fab5951 100644 --- a/FL/Fl_Output.H +++ b/FL/Fl_Output.H @@ -53,16 +53,21 @@ and \\nnn notation for unprintable characters with the high bit set. It assumes the font can draw any characters in the ISO-Latin1 character set. */ -class Fl_Output : public Fl_Input { // don't use FL_EXPORT here ! +class FL_EXPORT Fl_Output : public Fl_Input { public: /** Creates a new Fl_Output widget using the given position, size, and label string. The default boxtype is FL_DOWN_BOX. - Inherited destrucor destroys the widget and any value associated with it. + Inherited destructor destroys the widget and any value associated with it. */ + +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Output(int X,int Y,int W,int H, const char *l = 0); +#else Fl_Output(int X,int Y,int W,int H, const char *l = 0) : Fl_Input(X, Y, W, H, l) {type(FL_NORMAL_OUTPUT);} +#endif }; #endif diff --git a/FL/Fl_Secret_Input.H b/FL/Fl_Secret_Input.H index f5ef5e6be..0c81181af 100644 --- a/FL/Fl_Secret_Input.H +++ b/FL/Fl_Secret_Input.H @@ -3,7 +3,7 @@ // // Secret input header file for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -34,19 +34,27 @@ #include "Fl_Input.H" /** - The Fl_Secret_Input class is a subclass of Fl_Input - that displays its input as a string of asterisks. This subclass is - usually used to receive passwords and other "secret" information. + The Fl_Secret_Input class is a subclass of Fl_Input that displays its + input as a string of placeholders. Depending on the platform this + placeholder is either the asterisk ('*') or the Unicode bullet + character (U+2022). + + This subclass is usually used to receive passwords and other "secret" information. */ class FL_EXPORT Fl_Secret_Input : public Fl_Input { public: /** Creates a new Fl_Secret_Input widget using the given position, size, and label string. The default boxtype is FL_DOWN_BOX. - <P>Inherited destructor destroys the widget and any value associated with it. + + Inherited destructor destroys the widget and any value associated with it. */ +#if defined(FL_DLL) // implementation in src/Fl_Input.cxx + Fl_Secret_Input(int X,int Y,int W,int H,const char *l = 0); +#else 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 }; #endif diff --git a/FL/win32.H b/FL/win32.H index 03646a228..44c171e6b 100644 --- a/FL/win32.H +++ b/FL/win32.H @@ -110,7 +110,7 @@ FL_EXPORT Window fl_xid_(const Fl_Window* w); #endif // FL_LIBRARY || FL_INTERNALS FL_EXPORT Fl_Window* fl_find(Window xid); -FL_EXPORT void fl_clip_region(Fl_Region); +void fl_clip_region(Fl_Region); // most recent fl_color() or fl_rgbcolor() points at one of these: extern FL_EXPORT struct Fl_XMap { diff --git a/src/Fl_Input.cxx b/src/Fl_Input.cxx index e8c0edeff..be32bc04a 100644 --- a/src/Fl_Input.cxx +++ b/src/Fl_Input.cxx @@ -3,7 +3,7 @@ // // Input widget for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -40,6 +40,15 @@ #include <FL/fl_ask.H> #include "flstring.h" +#if defined(FL_DLL) // really needed for c'tors for MS VC++ only +#include <FL/Fl_Float_Input.H> +#include <FL/Fl_Int_Input.H> +#include <FL/Fl_Multiline_Input.H> +#include <FL/Fl_Output.H> +#include <FL/Fl_Multiline_Output.H> +#include <FL/Fl_Secret_Input.H> +#endif + #ifdef HAVE_LOCALE_H # include <locale.h> #endif @@ -763,6 +772,51 @@ Fl_Input::Fl_Input(int X, int Y, int W, int H, const char *l) : Fl_Input_(X, Y, W, H, l) { } +/* + The following constructors must not be in the header file(s) if we + build a shared object (DLL). Instead they are defined here to force + the constructor (and default destructor as well) to be defined in + the DLL and exported (STR #2632). + + Note: if you change any of them, do the same changes in the specific + header file as well. This redundant definition was chosen to enable + inline constructors in the header files (for static linking) as well + as those here for dynamic linking (Windows DLL). +*/ +#if defined(FL_DLL) + +Fl_Float_Input::Fl_Float_Input(int X,int Y,int W,int H,const char *l) + : Fl_Input(X,Y,W,H,l) { + type(FL_FLOAT_INPUT); +} + +Fl_Int_Input::Fl_Int_Input(int X,int Y,int W,int H,const char *l) + : Fl_Input(X,Y,W,H,l) { + type(FL_INT_INPUT); +} + +Fl_Multiline_Input::Fl_Multiline_Input(int X,int Y,int W,int H,const char *l) + : Fl_Input(X,Y,W,H,l) { + type(FL_MULTILINE_INPUT); +} + +Fl_Output::Fl_Output(int X,int Y,int W,int H, const char *l) + : Fl_Input(X, Y, W, H, l) { + type(FL_NORMAL_OUTPUT); +} + +Fl_Multiline_Output::Fl_Multiline_Output(int X,int Y,int W,int H,const char *l) + : Fl_Output(X,Y,W,H,l) { + type(FL_MULTILINE_OUTPUT); +} + +Fl_Secret_Input::Fl_Secret_Input(int X,int Y,int W,int H,const char *l) + : Fl_Input(X,Y,W,H,l) { + type(FL_SECRET_INPUT); +} + +#endif // FL_DLL + // // End of "$Id$". // diff --git a/src/Fl_Slider.cxx b/src/Fl_Slider.cxx index 7a1e5772f..357e24581 100644 --- a/src/Fl_Slider.cxx +++ b/src/Fl_Slider.cxx @@ -3,7 +3,7 @@ // // Slider widget for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2011 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 @@ -31,6 +31,10 @@ #include <math.h> #include "flstring.h" +#if defined(FL_DLL) // really needed for c'tors for MS VC++ only +#include <FL/Fl_Hor_Slider.H> +#endif + void Fl_Slider::_Fl_Slider() { slider_size_ = 0; slider_ = 0; // FL_UP_BOX; @@ -364,6 +368,25 @@ int Fl_Slider::handle(int event) { h()-Fl::box_dh(box())); } +/* + The following constructor must not be in the header file if we + build a shared object (DLL). Instead it is defined here to force + the constructor (and default destructor as well) to be defined + in the DLL and exported (STR #2632). + + Note: if you the ctor here, do the same changes in the specific + header file as well. This redundant definition was chosen to enable + inline constructors in the header files (for static linking) as well + as the one here for dynamic linking (Windows DLL). +*/ + +#if defined(FL_DLL) + +Fl_Hor_Slider::Fl_Hor_Slider(int X,int Y,int W,int H,const char *l) + : Fl_Slider(X,Y,W,H,l) {type(FL_HOR_SLIDER);} + +#endif // FL_DLL + // // End of "$Id$". // |
