summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2011-05-24 20:00:56 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2011-05-24 20:00:56 +0000
commit9846e7879c9501658ba2bc15fb325da73cbfd793 (patch)
treea8ec87a322c54939e780b082fb9df7f3ddd6e26b /src
parent203f4d8c7ee41b429bb4dbfabe1e2aef3dcbf85f (diff)
Fix constructors for VC++ DLL builds (STR #2645).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8736 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Browser.cxx30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Fl_Browser.cxx b/src/Fl_Browser.cxx
index febdb6a06..f4fbcfd24 100644
--- a/src/Fl_Browser.cxx
+++ b/src/Fl_Browser.cxx
@@ -32,6 +32,12 @@
#include <stdlib.h>
#include <math.h>
+#if defined(FL_DLL) // really needed for c'tors for MS VC++ only
+#include <FL/Fl_Hold_Browser.H>
+#include <FL/Fl_Multi_Browser.H>
+#include <FL/Fl_Select_Browser.H>
+#endif
+
// I modified this from the original Forms data to use a linked list
// so that the number of items in the browser and size of those items
// is unlimited. The only problem is that the old browser used an
@@ -914,6 +920,30 @@ void Fl_Browser::remove_icon(int line) {
icon(line,0);
}
+/*
+ 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, #2645).
+
+ 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_Hold_Browser::Fl_Hold_Browser(int X,int Y,int W,int H,const char *L)
+ : Fl_Browser(X,Y,W,H,L) {type(FL_HOLD_BROWSER);}
+
+ Fl_Multi_Browser::Fl_Multi_Browser(int X,int Y,int W,int H,const char *L)
+ : Fl_Browser(X,Y,W,H,L) {type(FL_MULTI_BROWSER);}
+
+ Fl_Select_Browser::Fl_Select_Browser(int X,int Y,int W,int H,const char *L)
+ : Fl_Browser(X,Y,W,H,L) {type(FL_SELECT_BROWSER);}
+
+#endif // FL_DLL
+
//
// End of "$Id$".
//