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

📄 actiondnd.h

📁 Linux下的基于X11的图形开发环境。
💻 H
字号:
/************************************************************************ Copyright (C) 2000-2002 Trolltech AS.  All rights reserved.**** This file is part of Qt Designer.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef ACTIONDND_H#define ACTIONDND_H#include <qaction.h>#include <qmap.h>#include <qmenubar.h>#include <qpixmap.h>#include <qpopupmenu.h>#include <qptrlist.h>#include <qtoolbar.h>#include <qguardedptr.h>#include "../shared/widgetdatabase.h"class QDesignerPopupMenu;class QDesignerIndicatorWidget;class FormWindow;class QPopupMenu;class QDesignerActionGroup : public QActionGroup{    Q_OBJECTpublic:    QDesignerActionGroup( QObject *parent )	: QActionGroup( !parent || parent->inherits( "QActionGroup" ) ? parent : 0 ), wid( 0 ), idx( -1 ) { init(); }    void init();    QWidget *widget() const { return wid; }    QWidget *widget( QAction *a ) const { return *widgets.find( a ); }    int index() const { return idx; }protected:#if !defined(Q_NO_USING_KEYWORD)    using QActionGroup::addedTo;#endif    void addedTo( QWidget *w, QWidget * ) {	wid = w;    }    void addedTo( QWidget *w, QWidget *, QAction *a ) {	widgets.insert( a, w );    }    void addedTo( int index, QPopupMenu * ) {	idx = index;    }private:    QWidget *wid;    QMap<QAction *, QWidget *> widgets;    int idx;};class QDesignerAction : public QAction{    Q_OBJECTpublic:    QDesignerAction( QObject *parent )	: QAction( !parent || parent->inherits( "QActionGroup" ) ? parent : 0 ), wid( 0 ), idx( -1 ), widgetToInsert( 0 ) { init(); }    QDesignerAction( QWidget *w, QObject *parent )	: QAction( !parent || parent->inherits( "QActionGroup" ) ? parent : 0 ), wid( 0 ), idx( -1 ), widgetToInsert( w ) { init(); }    void init();    QWidget *widget() const { return wid; }    int index() const { return idx; }    bool addTo( QWidget *w );    bool removeFrom( QWidget *w );    void remove();    bool supportsMenu() const { return !widgetToInsert; }protected:    void addedTo( QWidget *w, QWidget * ) {	wid = w;    }    void addedTo( int index, QPopupMenu * ) {	idx = index;    }private:    QWidget *wid;    int idx;    QWidget *widgetToInsert;};class QDesignerToolBarSeparator : public QWidget{    Q_OBJECTpublic:    QDesignerToolBarSeparator( Orientation, QToolBar *parent, const char* name=0 );    QSize sizeHint() const;    Orientation orientation() const { return orient; }public slots:   void setOrientation( Orientation );protected:    void styleChange( QStyle& );    void paintEvent( QPaintEvent * );private:    Orientation orient;};class QSeparatorAction : public QAction{    Q_OBJECTpublic:    QSeparatorAction( QObject *parent );    bool addTo( QWidget *w );    bool removeFrom( QWidget *w );    QWidget *widget() const;    int index() const;private:    QWidget *wid;    int idx;};class QSubMenuAction : public QAction{    Q_OBJECTpublic:    QSubMenuAction( QObject *parent );    bool addTo( QWidget *w );    bool removeFrom( QWidget *w );    QPopupMenu *popupMenu() const;    int index() const;private:    QPopupMenu *popup;    int idx;};class QDesignerToolBar : public QToolBar{    Q_OBJECTpublic:    QDesignerToolBar( QMainWindow *mw );    QDesignerToolBar( QMainWindow *mw, Dock dock );    QPtrList<QAction> insertedActions() const { return actionList; }    void addAction( QAction *a );    void clear();    void installEventFilters( QWidget *w );    void insertAction( QWidget *w, QAction *a ) { actionMap.insert( w, a ); }    void insertAction( int index, QAction *a ) { actionList.insert( index, a ); }    void appendAction( QAction *a ) { actionList.append( a ); }    void removeAction( QAction *a ) { actionList.remove( a ); }    void reInsert();    void removeWidget( QWidget *w );protected:    bool eventFilter( QObject *, QEvent * );    void paintEvent( QPaintEvent * );#ifndef QT_NO_DRAGANDDROP    void dragEnterEvent( QDragEnterEvent * );    void dragMoveEvent( QDragMoveEvent * );    void dragLeaveEvent( QDragLeaveEvent * );    void dropEvent( QDropEvent * );#endif    void contextMenuEvent( QContextMenuEvent *e );    void mousePressEvent( QMouseEvent *e );    void mouseReleaseEvent( QMouseEvent *e );private slots:    void actionRemoved();private:    void drawIndicator( const QPoint &pos );    QPoint calcIndicatorPos( const QPoint &pos );    void buttonContextMenuEvent( QContextMenuEvent *e, QObject *o );    void buttonMousePressEvent( QMouseEvent *e, QObject *o );    void buttonMouseMoveEvent( QMouseEvent *e, QObject *o );    void buttonMouseReleaseEvent( QMouseEvent *e, QObject *o );    void doInsertWidget( const QPoint &p );    void findFormWindow();private:    QPoint lastIndicatorPos;    QWidget *insertAnchor;    bool afterAnchor;    QPtrList<QAction> actionList;    QMap<QWidget*, QAction*> actionMap;    QPoint dragStartPos;    QDesignerIndicatorWidget *indicator;    bool widgetInserting;    FormWindow *formWindow;};class QDesignerMenuBar : public QMenuBar{    Q_OBJECT    friend class QDesignerPopupMenu;    Q_PROPERTY( int itemNumber WRITE setItemNumber READ itemNumber )    Q_PROPERTY( QString itemText WRITE setItemText READ itemText )    Q_PROPERTY( QCString itemName WRITE setItemName READ itemName )public:    QDesignerMenuBar( QWidget *mw );    void setItemNumber( int num );    int itemNumber() const;    void setItemText( const QString &s );    QString itemText() const;    void setItemName( const QCString &s );    QCString itemName() const;protected:    void mousePressEvent( QMouseEvent *e );    void mouseMoveEvent( QMouseEvent *e );    void mouseReleaseEvent( QMouseEvent *e );    void contextMenuEvent( QContextMenuEvent *e );#ifndef QT_NO_DRAGANDDROP    void dragEnterEvent( QDragEnterEvent * );    void dragMoveEvent( QDragMoveEvent * );    void dragLeaveEvent( QDragLeaveEvent * );    void dropEvent( QDropEvent * );#endifprivate:    void drawIndicator( const QPoint &pos );    QPoint calcIndicatorPos( const QPoint &pos );    void findFormWindow();private:    int itemNum;    QPoint dragStartPos;    bool mousePressed;    QPoint lastIndicatorPos;    int insertAt;    QDesignerIndicatorWidget *indicator;    FormWindow *formWindow;    int oldPos;};class QDesignerPopupMenu : public QPopupMenu{    Q_OBJECTpublic:    QDesignerPopupMenu( QWidget *w );    QPtrList<QAction> insertedActions() const { return actionList; }    void addAction( QAction *a );    void reInsert();    void insertAction( int index, QAction *a ) { actionList.insert( index, a ); }    void removeAction( QAction *a ) { actionList.remove( a ); }protected:    void mousePressEvent( QMouseEvent *e );    void mouseMoveEvent( QMouseEvent *e );    void mouseReleaseEvent( QMouseEvent *e );    void contextMenuEvent( QContextMenuEvent *e );    void paintEvent( QPaintEvent * );#ifndef QT_NO_DRAGANDDROP    void dragEnterEvent( QDragEnterEvent * );    void dragMoveEvent( QDragMoveEvent * );    void dragLeaveEvent( QDragLeaveEvent * );    void dropEvent( QDropEvent * );#endifprivate slots:    void actionRemoved();    void createPopupMenu();private:    void drawIndicator( const QPoint &pos );    QPoint calcIndicatorPos( const QPoint &pos );    void findFormWindow();private:    QPoint lastIndicatorPos;    int insertAt;    QPtrList<QAction> actionList;    QPoint dragStartPos;    bool mousePressed;    QDesignerIndicatorWidget *indicator;    FormWindow *formWindow;    QGuardedPtr<QPopupMenu> popupMenu;    QPoint popupPos;    QPoint popupLocalPos;};#endif

⌨️ 快捷键说明

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