Applied patch [ 623736 ] Build and use FL as DLL

This patch allows FL to be build as a DLL with the VC
project files, I was only able to at chief it with the VC
projects because the make file for building libs doesn't
have any rule to build DLLs (at least I didn't see how to
do it).

However the FL demo applications can be build using FL
in DLL form with MSVC project files and VC make files
(as mentioned before the FL DLL it self can only be build
using VC projects).

This patch includes 2 files; 1 to change current FL files
to work in DLL form and 1 extra include file that needs to
be added in the FL include directory.

Small note: if you want to use FL as a DLL you need to
use wxWin as a DLL.

Thanks,
Hans.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-10-24 11:21:47 +00:00
parent 0ea0ed4778
commit 9a713b1149
30 changed files with 602 additions and 124 deletions

View File

@@ -26,7 +26,7 @@ antiflicker plugins within the application.
Locking for multithreaded applications is not yet implemented.
*/
class cbAntiflickerPlugin : public cbPluginBase
class WXFL_DECLSPEC cbAntiflickerPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin )
protected:

View File

@@ -23,7 +23,7 @@
Plugin class implementing bar dragging.
*/
class cbBarDragPlugin : public cbPluginBase
class WXFL_DECLSPEC cbBarDragPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbBarDragPlugin )
protected:

View File

@@ -24,7 +24,7 @@ This class intercepts bar-decoration and sizing events, and draws 3D hints
around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x
*/
class cbBarHintsPlugin : public cbPluginBase
class WXFL_DECLSPEC cbBarHintsPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin )

View File

@@ -24,7 +24,7 @@ menu and handling basic customization such as floating
and horizontal/vertical alignment of the bar.
*/
class cbSimpleCustomizationPlugin : public cbPluginBase
class WXFL_DECLSPEC cbSimpleCustomizationPlugin : public cbPluginBase
{
public:
DECLARE_DYNAMIC_CLASS( cbSimpleCustomizationPlugin )

View File

@@ -21,30 +21,31 @@
#include "wx/string.h"
#include "wx/window.h"
#include "wx/dynarray.h"
#include "wx/fl/fldefs.h"
#define WXCONTROLBAR_VERSION 1.3
// forward declarations
class wxFrameLayout;
class WXFL_DECLSPEC wxFrameLayout;
class cbDockPane;
class cbUpdatesManagerBase;
class cbBarDimHandlerBase;
class cbPluginBase;
class cbPluginEvent;
class cbPaneDrawPlugin;
class WXFL_DECLSPEC cbDockPane;
class WXFL_DECLSPEC cbUpdatesManagerBase;
class WXFL_DECLSPEC cbBarDimHandlerBase;
class WXFL_DECLSPEC cbPluginBase;
class WXFL_DECLSPEC cbPluginEvent;
class WXFL_DECLSPEC cbPaneDrawPlugin;
class cbBarInfo;
class cbRowInfo;
class cbDimInfo;
class cbCommonPaneProperties;
class WXFL_DECLSPEC cbBarInfo;
class WXFL_DECLSPEC cbRowInfo;
class WXFL_DECLSPEC cbDimInfo;
class WXFL_DECLSPEC cbCommonPaneProperties;
typedef cbBarInfo* BarInfoPtrT;
typedef cbRowInfo* RowInfoPtrT;
WX_DEFINE_ARRAY( BarInfoPtrT, BarArrayT );
WX_DEFINE_ARRAY( RowInfoPtrT, RowArrayT );
WXFL_DEFINE_ARRAY( BarInfoPtrT, BarArrayT );
WXFL_DEFINE_ARRAY( RowInfoPtrT, RowArrayT );
// control bar states
@@ -97,7 +98,7 @@ Helper class, used for spying for unhandled mouse events on control bars
and forwarding them to the frame layout.
*/
class cbBarSpy : public wxEvtHandler
class WXFL_DECLSPEC cbBarSpy : public wxEvtHandler
{
public:
DECLARE_DYNAMIC_CLASS( cbBarSpy )
@@ -129,7 +130,7 @@ which can be docked along the top, bottom, right, or left side of the
parent frame.
*/
class wxFrameLayout : public wxEvtHandler
class WXFL_DECLSPEC wxFrameLayout : public wxEvtHandler
{
public:
// Default constructor, used only for serialization.
@@ -647,7 +648,7 @@ used by any particular updates-manager to store
auxiliary information to be used by its updating algorithm.
*/
class cbUpdateMgrData : public wxObject
class WXFL_DECLSPEC cbUpdateMgrData : public wxObject
{
DECLARE_DYNAMIC_CLASS( cbUpdateMgrData )
public:
@@ -687,7 +688,7 @@ to adjust the values in cbDimInfo::mSizes accordingly.
Specific handlers can be hooked up to specific types of bar.
*/
class cbBarDimHandlerBase : public wxObject
class WXFL_DECLSPEC cbBarDimHandlerBase : public wxObject
{
DECLARE_ABSTRACT_CLASS( cbBarDimHandlerBase )
@@ -725,7 +726,7 @@ Helper class used internally by the wxFrameLayout class.
Holds and manages information about bar dimensions.
*/
class cbDimInfo : public wxObject
class WXFL_DECLSPEC cbDimInfo : public wxObject
{
DECLARE_DYNAMIC_CLASS( cbDimInfo )
public:
@@ -824,7 +825,7 @@ public:
};
// FIXME: this array definition compiles but probably doesn't do what was intended (GD)
WX_DEFINE_ARRAY_LONG(float, cbArrayFloat);
WXFL_DEFINE_ARRAY_LONG(float, cbArrayFloat);
/*
Helper class used internally by the wxFrameLayout class.

View File

@@ -18,12 +18,13 @@
#include "wx/tbarbase.h"
#include "wx/dynarray.h"
#include "wx/fl/fldefs.h"
/*
Tool layout item.
*/
class wxToolLayoutItem : public wxObject
class WXFL_DECLSPEC wxToolLayoutItem : public wxObject
{
DECLARE_DYNAMIC_CLASS(wxToolLayoutItem)
@@ -32,19 +33,19 @@ public:
bool mIsSeparator;
};
class wxDynToolInfo;
class WXFL_DECLSPEC wxDynToolInfo;
typedef wxToolLayoutItem* wxToolLayoutItemPtrT;
typedef wxDynToolInfo* wxDynToolInfoPtrT;
WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT );
WX_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT );
WXFL_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT );
WXFL_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT );
/*
This is a base class for layout algorithm implementations.
*/
class LayoutManagerBase
class WXFL_DECLSPEC LayoutManagerBase
{
public:
// Constructor.
@@ -63,7 +64,7 @@ BagLayout lays out items in left-to-right order from
top to bottom.
*/
class BagLayout : public LayoutManagerBase
class WXFL_DECLSPEC BagLayout : public LayoutManagerBase
{
public:
// Constructor.
@@ -78,7 +79,7 @@ public:
This class holds dynamic toolbar item information.
*/
class wxDynToolInfo : public wxToolLayoutItem
class WXFL_DECLSPEC wxDynToolInfo : public wxToolLayoutItem
{
DECLARE_DYNAMIC_CLASS(wxDynToolInfo)
@@ -98,7 +99,7 @@ public:
wxDynamicToolBar manages containment and layout of tool windows.
*/
class wxDynamicToolBar : public wxToolBarBase
class WXFL_DECLSPEC wxDynamicToolBar : public wxToolBarBase
{
protected:
friend class wxDynamicToolBarSerializer;

View File

@@ -23,7 +23,7 @@
Dynamic toolbar dimension handler.
*/
class cbDynToolBarDimHandler : public cbBarDimHandlerBase
class WXFL_DECLSPEC cbDynToolBarDimHandler : public cbBarDimHandlerBase
{
DECLARE_DYNAMIC_CLASS( cbDynToolBarDimHandler )
public:

View File

@@ -0,0 +1,50 @@
/////////////////////////////////////////////////////////////////////////////
// Name: fldefs.h
// Purpose: Declaration of global types and defines.
// Author: David M. Falkinder (david_falkinder@hp.com)
// Modified by:
// Created: 18/09/2002
// RCS-ID: $Id$
// Copyright: (c) David M. Falkinder
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef __fldefs_H_INCLUDED__
#define __fldefs_H_INCLUDED__
#include "wx/defs.h"
/*
* If we're using wx in Dynamic Library format do we
* want FL to be in DLL form as well?
*/
#if defined(WXUSINGDLL) && \
(defined(WXMAKING_FL_DLL) || defined(WXUSING_FL_DLL))
#if defined(WXMAKING_FL_DLL)
// When building the DLL WXFLDECLSPEC exports classes
# define WXFL_DECLSPEC WXEXPORT
#elif defined(WXUSING_FL_DLL)
// When building the DLL WXFLDECLSPEC imports classes
# define WXFL_DECLSPEC WXIMPORT
#endif // defined(WXBUILD_FL_DLL)
#else
// When building the static library nullify the effect of WXFL_DECLSPEC
#define WXFL_DECLSPEC
#endif // WXUSINGDLL && (WXMAKING_FL_DLL || WXUSING_FL_DLL)
///////////////////////////////////////////////////////////////////////////////
// Override some of the wxArray functions to
// include our definitions
///////////////////////////////////////////////////////////////////////////////
#define WXFL_DEFINE_ARRAY(c,l) \
class WXFL_DECLSPEC l; \
WX_DEFINE_ARRAY(c,l)
#define WXFL_DEFINE_ARRAY_LONG(t,l) \
class WXFL_DECLSPEC l; \
WX_DEFINE_ARRAY_LONG(t,l)
#endif // __fldefs_H_INCLUDED__

View File

@@ -32,7 +32,7 @@ class wxFrameManager;
It is not clear what this class does. It is not used elsewhere in FL.
*/
class wxFrameView : public wxEvtHandler
class WXFL_DECLSPEC wxFrameView : public wxEvtHandler
{
protected:
wxStringList mTopMenus;
@@ -87,7 +87,7 @@ class wxFrame;
It is not clear what this class does. It is not used elsewhere in FL.
*/
class wxFrameManager : wxObject
class WXFL_DECLSPEC wxFrameManager : wxObject
{
protected:
wxList mViews;

View File

@@ -17,6 +17,7 @@
#endif
#include "wx/list.h"
#include "wx/fl/fldefs.h"
struct GCItem
{
@@ -33,7 +34,7 @@ inline void* gc_node_to_obj( wxNode* pGCNode )
This class implements an extremely slow but simple garbage collection algorithm.
*/
class GarbageCollector
class WXFL_DECLSPEC GarbageCollector
{
protected:
wxList mAllNodes;

View File

@@ -93,7 +93,7 @@ to avoid dirty non-client areas of moved windows
in some special cases of 'overlapping anomalies'.
*/
class cbGCUpdatesMgr : public cbSimpleUpdatesMgr
class WXFL_DECLSPEC cbGCUpdatesMgr : public cbSimpleUpdatesMgr
{
DECLARE_DYNAMIC_CLASS( cbGCUpdatesMgr )
protected:

View File

@@ -20,13 +20,13 @@
#include "wx/timer.h"
class cbHintAnimTimer;
class WXFL_DECLSPEC cbHintAnimTimer;
/*
A plugin to draw animated hints when the user drags a pane.
*/
class cbHintAnimationPlugin : public cbPluginBase
class WXFL_DECLSPEC cbHintAnimationPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin )
protected:
@@ -101,7 +101,7 @@ public:
A private helper class.
*/
struct MorphInfoT
struct WXFL_DECLSPEC MorphInfoT
{
wxPoint mFrom;
wxPoint mTill;
@@ -111,7 +111,7 @@ struct MorphInfoT
A private helper class.
*/
class cbHintAnimTimer : public wxTimer
class WXFL_DECLSPEC cbHintAnimTimer : public wxTimer
{
protected:

View File

@@ -18,6 +18,7 @@
#include "wx/button.h"
#include "wx/string.h"
#include "wx/fl/fldefs.h"
// defaults
#define NB_DEFAULT_MARGIN 2
@@ -31,8 +32,8 @@
// classes declared in this header file
class wxNewBitmapButton;
class wxBorderLessBitmapButton;
class WXFL_DECLSPEC wxNewBitmapButton;
class WXFL_DECLSPEC wxBorderLessBitmapButton;
/*
This is an alternative class to wxBitmapButton. It is used
@@ -194,11 +195,6 @@ public:
// Responds to a kill focus event.
void OnKillFocus( wxFocusEvent& event );
// Maps bitmap to current system colours on Windows
#ifdef __WXMSW__
WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
#endif
DECLARE_EVENT_TABLE()
};

View File

@@ -27,7 +27,7 @@ would be enough for the frame layout to function properly
(they are plugged in automatically by the wxFrameLayout class).
*/
class cbPaneDrawPlugin : public cbPluginBase
class WXFL_DECLSPEC cbPaneDrawPlugin : public cbPluginBase
{
public:
DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin )

View File

@@ -25,7 +25,7 @@ The behaviour and appearance resembles drag and drop positioning
of the toolbar rows in Netscape Communicator 4.xx.
*/
class cbRowDragPlugin : public cbPluginBase
class WXFL_DECLSPEC cbRowDragPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbRowDragPlugin )
public:
@@ -217,7 +217,7 @@ public:
Internal helper class.
*/
class cbHiddenBarInfo : public wxObject
class WXFL_DECLSPEC cbHiddenBarInfo : public wxObject
{
DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo )
public:

View File

@@ -23,7 +23,7 @@ Simple implementation of a plugin which handles row layout
requests sent from a frame layout.
*/
class cbRowLayoutPlugin : public cbPluginBase
class WXFL_DECLSPEC cbRowLayoutPlugin : public cbPluginBase
{
DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin )
protected:

View File

@@ -19,6 +19,7 @@
#include "wx/frame.h"
#include "wx/dynarray.h"
#include "wx/fl/fldefs.h"
// fixed settings
@@ -26,18 +27,18 @@
#define BTN_BOX_WIDTH 12
#define BTN_X_WIEGHT 2
class cbMiniButton;
class WXFL_DECLSPEC cbMiniButton;
typedef cbMiniButton* cbMinitButtonPtrT;
WX_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT );
WXFL_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT );
/*
A tool window is a special kind of frame that paints its own title, and
can be used to implement small floating windows.
*/
class wxToolWindow : public wxFrame
class WXFL_DECLSPEC wxToolWindow : public wxFrame
{
DECLARE_DYNAMIC_CLASS( wxToolWindow )
@@ -221,7 +222,7 @@ public:
cbCloseBox is a window close button, used in a wxToolWindow titlebar.
*/
class cbCloseBox : public cbMiniButton
class WXFL_DECLSPEC cbCloseBox : public cbMiniButton
{
public:
// Draws the close button appearance.
@@ -232,7 +233,7 @@ public:
cbCollapseBox is a window collapse button, used in a wxToolWindow titlebar.
*/
class cbCollapseBox : public cbMiniButton
class WXFL_DECLSPEC cbCollapseBox : public cbMiniButton
{
public:
bool mIsAtLeft;
@@ -245,7 +246,7 @@ public:
cbDockBox is a window dock button, used in a wxToolWindow titlebar.
*/
class cbDockBox : public cbMiniButton
class WXFL_DECLSPEC cbDockBox : public cbMiniButton
{
public:
// Draws the dock button appearance.
@@ -257,7 +258,7 @@ cbFloatedBarWindow is a kind of wxToolWindow,
implementing floating toolbars.
*/
class cbFloatedBarWindow : public wxToolWindow
class WXFL_DECLSPEC cbFloatedBarWindow : public wxToolWindow
{
DECLARE_DYNAMIC_CLASS( cbFloatedBarWindow )
protected:

View File

@@ -23,7 +23,7 @@ This class implements slightly optimized logic for refreshing
the areas of frame layout that actually need to be updated.
*/
class cbSimpleUpdatesMgr : public cbUpdatesManagerBase
class WXFL_DECLSPEC cbSimpleUpdatesMgr : public cbUpdatesManagerBase
{
DECLARE_DYNAMIC_CLASS( cbSimpleUpdatesMgr )
protected: