📄 bardragpl.h
字号:
/////////////////////////////////////////////////////////////////////////////// Name: bardragpl.h// Purpose: cbBarDragPlugin class// Author: Aleksandras Gluchovas// Modified by:// Created: 23/09/98// RCS-ID: $Id: bardragpl.h,v 1.7 2005/09/23 12:46:55 MR Exp $// Copyright: (c) Aleksandras Gluchovas// Licence: wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef __BARDRAGPL_G__#define __BARDRAGPL_G__#include "wx/fl/controlbar.h"#include "wx/fl/toolwnd.h"/*Plugin class implementing bar dragging.*/class WXDLLIMPEXP_FL cbBarDragPlugin : public cbPluginBase{ DECLARE_DYNAMIC_CLASS( cbBarDragPlugin )protected: // plugin is active only in bar-dragging state bool mBarDragStarted; bool mCanStick; // flag used to prevent "bouncing" of hint-rectangle wxScreenDC* mpScrDc; // created while tracking hint-rect wxCursor* mpCurCursor; // rectangle shows the position/dimensions of the bar, // if it would be docked now wxRect mPrevHintRect; wxRect mHintRect; int mMouseInRectX; int mMouseInRectY; cbDockPane* mpSrcPane; // pane, from which the bar was originally taken int mBarWidthInSrcPane; cbDockPane* mpCurPane; cbBarInfo* mpDraggedBar; // bar, which is being dragged bool mBarWasFloating; wxRect mFloatedBarBounds;public: /*** public properties ***/ int mInClientHintBorder; // when hint-rect moves within client window area, // the thicker rectangle is drawn using hatched brush, // the default border width for this rectangle is 8 pix.protected: // Internal implementation function. void AdjustHintRect( wxPoint& mousePos ); // Internal implementation function. void ClipRectInFrame( wxRect& rect ); // Internal implementation function. void ClipPosInFrame( wxPoint& pos ); // Internal implementation function. Finds the pane // under the specified rectangle. cbDockPane* HitTestPanes( wxRect& rect ); // Internal implementation function. Finds the pane // under the specified point. cbDockPane* HitTestPanes( wxPoint& pos ); // Internal implementation function. bool HitsPane( cbDockPane* pPane, wxRect& rect ); // Internal implementation function. void CalcOnScreenDims( wxRect& rect ); // Internal implementation function. int GetDistanceToPane( cbDockPane* pPane, wxPoint& mousePos ); // Internal implementation function. bool IsInOtherPane ( wxPoint& mousePos ); // Internal implementation function. bool IsInClientArea( wxPoint& mousePos ); // Internal implementation function. bool IsInClientArea( wxRect& rect ); // Internal implementation function. void StickToPane( cbDockPane* pPane, wxPoint& mousePos ); // Internal implementation function. void UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos ); // Internal implementation function. int GetBarWidthInPane( cbDockPane* pPane ); // Internal implementation function. int GetBarHeightInPane( cbDockPane* pPane ); // on-screen hint-tracking related methods // Internal implementation function. // Start showing a visual hint while dragging. void StartTracking(); // Internal implementation function. // Draw the visual hint while dragging. void DrawHintRect ( wxRect& rect, bool isInClientRect); // Internal implementation function. // Erase the visual hint while dragging. void EraseHintRect( wxRect& rect, bool isInClientRect); // Internal implementation function. // Stop showing the visual hint while dragging. void FinishTracking(); // Internal implementation function. // Draw the hint rectangle. void DoDrawHintRect( wxRect& rect, bool isInClientRect); // Internal implementation function. // Converts the given rectangle from window to screen coordinates. void RectToScr( wxRect& frameRect, wxRect& scrRect ); // Internal implementation function. // Show the hint; called within OnMouseMove. void ShowHint( bool prevWasInClient );public: // Default constructor. cbBarDragPlugin(void); // Constructor taking a parent frame, and flag. See cbPluginBase. cbBarDragPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); // Destructor. virtual ~cbBarDragPlugin(); // Handler for plugin event. void OnMouseMove( cbMotionEvent& event ); // Handler for plugin event. void OnLButtonUp( cbLeftUpEvent& event ); // Handler for plugin event. void OnLButtonDown( cbLeftDownEvent& event ); // Handler for plugin event. void OnLDblClick( cbLeftDClickEvent& event ); // Handles event, which originates from itself. void OnDrawHintRect( cbDrawHintRectEvent& event ); // Handler for plugin event. void OnStartBarDragging( cbStartBarDraggingEvent& event ); DECLARE_EVENT_TABLE()};#endif /* __BARDRAGPL_G__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -