⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rowdragpl.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        rowdragpl.h// Purpose:     cbRowDragPlugin class header.// Author:      Aleksandras Gluchovas// Modified by:// Created:     06/10/98// RCS-ID:      $Id: rowdragpl.h,v 1.7 2006/04/26 16:27:12 PC Exp $// Copyright:   (c) Aleksandras Gluchovas// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////#ifndef __ROWDRAGPL_G__#define __ROWDRAGPL_G__#include "wx/fl/controlbar.h"/*This plugin adds row-dragging functionality to the pane.It handles mouse movement and pane background-erasing plugin events.The behaviour and appearance resembles drag and drop positioningof the toolbar rows in Netscape Communicator 4.xx.*/class WXDLLIMPEXP_FL cbRowDragPlugin : public cbPluginBase{    DECLARE_DYNAMIC_CLASS( cbRowDragPlugin )public:    // background colours for the highlighted/unhighlighted icons    wxColour mHightColor;      // light-blue for NC-look    wxColour mLowColor;        // light-gray -/-    wxColour mTrianInnerColor; // blue       -/-    wxPen    mTrianInnerPen;   // black      -/-protected:    friend class cbRowDragPluginSerializer;    // drag & drop state variables    bool    mDragStarted;    bool    mDecisionMode;    wxPoint mDragOrigin;    int     mCurDragOfs;    bool    mCaptureIsOn;    // saved margins of the pane    int mSvTopMargin;    int mSvBottomMargin;    int mSvLeftMargin;    int mSvRightMargin;    // on-screen drawing state variables    wxBitmap* mpPaneImage;    wxBitmap* mpRowImage;    wxBitmap* mpCombinedImage;    wxScreenDC* mpScrDc;    wxRect    mCombRect;    wxSize    mRowImgDim;    int       mInitialRowOfs;    // NOTE:: if mpRowInFocus is not NULL, then mCollapsedIconInFocus is -1,    //        and v.v. (two different items cannot be in focus at the same time)    cbRowInfo* mpRowInFocus;    int        mCollapsedIconInFocus;    cbDockPane* mpPane; // is set up temorarely, while handling event    wxList      mHiddenBars;        // Helper for drag and drop.    wxBitmap* CaptureDCArea( wxDC& dc, wxRect& area );        // Helper for drag and drop.    int GetHRowsCountForPane( cbDockPane* pPane );        // Helper for drag and drop.    void SetMouseCapture( bool captureOn );        // Helper for drag and drop.    void PrepareForRowDrag();        // Helper for drag and drop.    void ShowDraggedRow( int offset );        // Helper for drag and drop.    void ShowPaneImage();        // Helper for drag and drop.    void FinishOnScreenDraw();        // Helper for drag and drop.    void CollapseRow( cbRowInfo* pRow );        // Helper for drag and drop.    void ExpandRow( int collapsedIconIdx );        // Helper for drag and drop.    void InsertDraggedRowBefore( cbRowInfo* pBeforeRow );        // Helper for drag and drop.    bool ItemIsInFocus();        // Helper for drag and drop.    void CheckPrevItemInFocus( cbRowInfo* pRow, int iconIdx );        // Helper for drag and drop.    void UnhighlightItemInFocus();        // Helper for drag and drop.    cbRowInfo* GetFirstRow();        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawTrianUp( wxRect& inRect, wxDC& dc );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawTrianDown( wxRect& inRect, wxDC& dc );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawTrianRight( wxRect& inRect, wxDC& dc );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void Draw3DPattern( wxRect& inRect, wxDC& dc );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawRombShades( wxPoint& p1, wxPoint& p2, wxPoint& p3, wxPoint& p4, wxDC& dc );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawOrtoRomb( wxRect& inRect, wxDC& dc, const wxBrush& bkBrush );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawRomb( wxRect& inRect, wxDC& dc, const wxBrush& bkBrush );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void Draw3DRect( wxRect& inRect, wxDC& dc, const wxBrush& bkBrush );        // Implements 'hard-coded metafile' for Netscape Navigator look.    virtual void DrawRectShade( wxRect& inRect, wxDC& dc,                                int level, const wxPen& upperPen, const wxPen& lowerPen );        // Helper for drag and drop.    virtual void GetRowHintRect( cbRowInfo* pRow, wxRect& rect );        // Helper for drag and drop.    virtual void GetCollapsedInconRect( int iconIdx, wxRect& rect );        // Helper for drag and drop.    virtual int GetCollapsedIconsPos();public:        // Default constructor.    cbRowDragPlugin();        // Constructor, taking paren layout frame and pane mask.    cbRowDragPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES );        // Destructor.    virtual ~cbRowDragPlugin();        // Clone function, returning a new instance of this class.    virtual cbPluginBase* Clone() { return new cbRowDragPlugin(NULL,0); }        // Called to initialize this plugin.    virtual void OnInitPlugin();        // Handles mouse move plugin events (appearance-independent logic).    void OnMouseMove  ( cbMotionEvent& event );        // Handles left button down plugin events (appearance-independent logic).    void OnLButtonDown( cbLeftDownEvent& event );        // Handles left button up plugin events (appearance-independent logic).    void OnLButtonUp  ( cbLeftUpEvent& event );        // Handles pane drawing plugin events (appearance-independent logic).    void OnDrawPaneBackground( cbDrawPaneDecorEvent& event );        // Draws collapsed row icon (appearance-dependent).    virtual void DrawCollapsedRowIcon( int index, wxDC& dc, bool isHighlighted );        // Draws collapsed rows border (appearance-dependent).    virtual void DrawCollapsedRowsBorder( wxDC& dc );        // Draws rows drag hints border (appearance-dependent).    virtual void DrawRowsDragHintsBorder( wxDC& dc );        // Draws row drag hint (appearance-dependent).    virtual void DrawRowDragHint( cbRowInfo* pRow, wxDC& dc, bool isHighlighted );        // Draws empty row (appearance-dependent).    virtual void DrawEmptyRow( wxDC& dc, wxRect& rowBounds );        // Gets the collapsed row icon height.    virtual int GetCollapsedRowIconHeight();        // Gets the row drag hint width.    virtual int GetRowDragHintWidth();        // Sets the pane margins.    virtual void SetPaneMargins();        // Test for the collapsed row icon position.    virtual bool HitTestCollapsedRowIcon( int iconIdx, const wxPoint& pos );        // Test for the row drag hint position.    virtual bool HitTestRowDragHint( cbRowInfo* pRow, const wxPoint& pos );    DECLARE_EVENT_TABLE()};/*Internal helper class.*/class WXDLLIMPEXP_FL cbHiddenBarInfo : public wxObject{    DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo )public:    cbBarInfo* mpBar;    int        mRowNo;    int        mIconNo;    int        mAlignment;};#endif /* __ROWDRAGPL_G__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -