summaryrefslogtreecommitdiff
path: root/src/Fl_Input.cxx
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2011-05-23 18:32:47 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2011-05-23 18:32:47 +0000
commit0c8f264df05e6a35e04f0a54b12be7629a2ec5e4 (patch)
treec4bd22aed8b3ff8c3a3851d0220a31800aba4c0f /src/Fl_Input.cxx
parentea020f0081381d674b173759664dd6297e0acea6 (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/Fl_Input.cxx')
-rw-r--r--src/Fl_Input.cxx56
1 files changed, 55 insertions, 1 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$".
//