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
162 lines
5.5 KiB
C++
162 lines
5.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: panedrawpl.h
|
|
// Purpose: cbPaneDrawPlugin class header.
|
|
// Author: Aleksandras Gluchovas <mailto:alex@soften.ktu.lt>
|
|
// Modified by:
|
|
// Created: 06/09/98
|
|
// RCS-ID: $Id$
|
|
// Copyright: (c) Aleksandras Gluchovas
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __PANEDRAWPL_G__
|
|
#define __PANEDRAWPL_G__
|
|
|
|
#if defined(__GNUG__) && !defined(__APPLE__)
|
|
#pragma interface "panedrawpl.h"
|
|
#endif
|
|
|
|
#include "wx/fl/controlbar.h"
|
|
|
|
/*
|
|
Simple but all-in-one plugin implementation. Resembles the look and feel of
|
|
MFC control-bars. The class handles painting of the pane and the items in it;
|
|
it generates bar/layout customization events, when the user right-clicks the bar/pane.
|
|
Hooking an instance of this and row-layout plugins for each pane
|
|
would be enough for the frame layout to function properly
|
|
(they are plugged in automatically by the wxFrameLayout class).
|
|
*/
|
|
|
|
class WXFL_DECLSPEC cbPaneDrawPlugin : public cbPluginBase
|
|
{
|
|
public:
|
|
DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin )
|
|
protected:
|
|
|
|
// resizing bars/rows state variables
|
|
bool mResizeStarted;
|
|
bool mResizeCursorOn;
|
|
wxPoint mDragOrigin;
|
|
|
|
cbBarInfo* mpDraggedBar; // also used when in bar-drag action
|
|
cbRowInfo* mpResizedRow;
|
|
|
|
bool mRowHandleHitted;
|
|
bool mIsUpperHandle;
|
|
bool mBarHandleHitted;
|
|
bool mIsLeftHandle;
|
|
bool mBarContentHitted;
|
|
|
|
// contstraints for dragging the handle
|
|
wxRect mHandleDragArea;
|
|
bool mHandleIsVertical;
|
|
int mHandleOfs;
|
|
int mDraggedDelta;
|
|
wxPoint mPrevPos;
|
|
|
|
// used for handling, start-draw-in-area events
|
|
wxClientDC* mpClntDc;
|
|
|
|
cbDockPane* mpPane; // is set up temorary short-cut, while handling event
|
|
|
|
protected:
|
|
// Internal helper: draws the dragged handle.
|
|
void DrawDraggedHandle( const wxPoint& pos, cbDockPane& pane );
|
|
|
|
// Internal helper: draws the pane shading.
|
|
virtual void DrawPaneShade( wxDC& dc, int alignment );
|
|
|
|
// Internal helper: draws the pane shading for a row.
|
|
virtual void DrawPaneShadeForRow( cbRowInfo* pRow, wxDC& dc );
|
|
|
|
// Internal helper: draws the upper row handle.
|
|
virtual void DrawUpperRowHandle( cbRowInfo* pRow, wxDC& dc );
|
|
|
|
// Internal helper: draws the lower row handle.
|
|
virtual void DrawLowerRowHandle( cbRowInfo* pRow, wxDC& dc );
|
|
|
|
// Internal helper: draws the upper row shading.
|
|
virtual void DrawUpperRowShades( cbRowInfo* pRow, wxDC& dc, int level );
|
|
|
|
// Internal helper: draws the lower row shading.
|
|
virtual void DrawLowerRowShades( cbRowInfo* pRow, wxDC& dc, int level );
|
|
|
|
// Internal helper: draws the inner bar shading.
|
|
virtual void DrawBarInnerShadeRect( cbBarInfo* pBar, wxDC& dc );
|
|
|
|
// Internal helper: draws shading.
|
|
virtual void DrawShade( int level, wxRect& rect, int alignment, wxDC& dc );
|
|
|
|
// Internal helper: draws shading.
|
|
virtual void DrawShade1( int level, wxRect& rect, int alignment, wxDC& dc );
|
|
|
|
// Internal helper: sets a light pixel at the given location.
|
|
inline void SetLightPixel( int x, int y, wxDC& dc );
|
|
|
|
// Internal helper: sets a dark pixel at the given location.
|
|
inline void SetDarkPixel ( int x, int y, wxDC& dc );
|
|
|
|
public:
|
|
// Default constructor.
|
|
cbPaneDrawPlugin();
|
|
|
|
// Constructor taking frame layout pane and a pane mask.
|
|
cbPaneDrawPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );
|
|
|
|
// Destructor.
|
|
virtual ~cbPaneDrawPlugin();
|
|
|
|
// Clone function, returning a new instance of this class.
|
|
virtual cbPluginBase* Clone() { return new cbPaneDrawPlugin(0,0); }
|
|
|
|
// Handler for left mouse button down events.
|
|
void OnLButtonDown( cbLeftDownEvent& event );
|
|
|
|
// Handler for left double-click mouse button down events.
|
|
void OnLDblClick ( cbLeftDClickEvent& event );
|
|
|
|
// Handler for left mouse button up events.
|
|
void OnLButtonUp ( cbLeftUpEvent& event );
|
|
|
|
// Handler for right mouse button up events.
|
|
void OnRButtonUp ( cbRightUpEvent& event );
|
|
|
|
// Handler for mouse move events.
|
|
void OnMouseMove ( cbMotionEvent& event );
|
|
|
|
// Handler for draw pane background events.
|
|
void OnDrawPaneBackground ( cbDrawPaneBkGroundEvent& event );
|
|
|
|
// Handler for draw pane decoration events.
|
|
void OnDrawPaneDecorations( cbDrawPaneDecorEvent& event );
|
|
|
|
// Handler for draw row decoration events.
|
|
void OnDrawRowDecorations ( cbDrawRowDecorEvent& event );
|
|
|
|
// Handler for draw row handles events.
|
|
void OnDrawRowHandles ( cbDrawRowHandlesEvent& event );
|
|
|
|
// Handler for draw row background events.
|
|
void OnDrawRowBackground ( cbDrawRowBkGroundEvent& event );
|
|
|
|
// Handler for bar size events.
|
|
void OnSizeBarWindow ( cbSizeBarWndEvent& event );
|
|
|
|
// Handler for draw bar decorations events.
|
|
void OnDrawBarDecorations ( cbDrawBarDecorEvent& event );
|
|
|
|
// Handler for draw bar handles events.
|
|
void OnDrawBarHandles ( cbDrawBarHandlesEvent& event );
|
|
|
|
// Handler for start draw in area events.
|
|
void OnStartDrawInArea ( cbStartDrawInAreaEvent& event );
|
|
|
|
// Handler for finish draw in area events.
|
|
void OnFinishDrawInArea ( cbFinishDrawInAreaEvent& event );
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif /* __PANEDRAWPL_G__ */
|
|
|