diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2011-05-23 18:32:47 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2011-05-23 18:32:47 +0000 |
| commit | 0c8f264df05e6a35e04f0a54b12be7629a2ec5e4 (patch) | |
| tree | c4bd22aed8b3ff8c3a3851d0220a31800aba4c0f /src | |
| parent | ea020f0081381d674b173759664dd6297e0acea6 (diff) | |
Add FL_EXPORT to several classes to fix MS VC++ dll builds (STR #2632).
Remove FL_EXPORT from fl_clip_region() since this is an inline function
on all platforms (and issued a warning when building fltkdll with MS VC++).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8726 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Input.cxx | 56 | ||||
| -rw-r--r-- | src/Fl_Slider.cxx | 25 |
2 files changed, 79 insertions, 2 deletions
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$". // |
