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

📄 formwindow.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the Qt Designer of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef FORMWINDOW_H#define FORMWINDOW_H#include "formeditor_global.h"#include "formeditor.h"// sdk#include <QtDesigner/QtDesigner>// Qt#include <QtCore/QHash>#include <QtCore/QList>#include <QtCore/QMap>#include <QtCore/QSet>#include <QtGui/QWidget>#include <QtGui/QPixmap>class DomConnections;class QLabel;class QTimer;class QAction;class QMenu;class QtUndoStack;class QRubberBand;namespace qdesigner_internal {class FormEditor;class FormWindowCursor;class WidgetSelection;class WidgetEditorTool;class FormWindowWidgetStack;class FormWindowManager;class FormWindowDnDItem;class SetPropertyCommand;class BreakLayoutCommand;class Connection;class QT_FORMEDITOR_EXPORT FormWindow: public QDesignerFormWindowInterface{    Q_OBJECTpublic:    enum HighlightMode    {        Restore,        Highlight    };public:    FormWindow(FormEditor *core, QWidget *parent = 0, Qt::WindowFlags flags = 0);    virtual ~FormWindow();    virtual QDesignerFormEditorInterface *core() const;    virtual QDesignerFormWindowCursorInterface *cursor() const;    virtual int toolCount() const;    virtual int currentTool() const;    virtual void setCurrentTool(int index);    virtual QDesignerFormWindowToolInterface *tool(int index) const;    virtual void registerTool(QDesignerFormWindowToolInterface *tool);    virtual bool hasFeature(Feature f) const;    virtual Feature features() const;    virtual void setFeatures(Feature f);    virtual QString author() const;    virtual void setAuthor(const QString &author);    virtual QString comment() const;    virtual void setComment(const QString &comment);    virtual void layoutDefault(int *margin, int *spacing);    virtual void setLayoutDefault(int margin, int spacing);    virtual void layoutFunction(QString *margin, QString *spacing);    virtual void setLayoutFunction(const QString &margin, const QString &spacing);    virtual QString pixmapFunction() const;    virtual void setPixmapFunction(const QString &pixmapFunction);    virtual QString exportMacro() const;    virtual void setExportMacro(const QString &exportMacro);    virtual QStringList includeHints() const;    virtual void setIncludeHints(const QStringList &includeHints);    virtual QString fileName() const;    virtual void setFileName(const QString &fileName);    virtual QString contents() const;    virtual void setContents(const QString &contents);    virtual void setContents(QIODevice *dev);    virtual QDir absoluteDir() const;    virtual QPoint grid() const { return m_grid; }    virtual void setGrid(const QPoint &grid) { m_grid = grid; }    virtual void simplifySelection(QList<QWidget*> *sel) const;    virtual void ensureUniqueObjectName(QObject *object);    virtual QWidget *mainContainer() const;    void setMainContainer(QWidget *mainContainer);    bool isMainContainer(const QWidget *w) const;    QWidget *currentWidget() const;    void setCurrentWidget(QWidget *currentWidget);    virtual QSize sizeHint() const;    bool hasInsertedChildren(QWidget *w) const;    QList<QWidget *> selectedWidgets() const;    void clearSelection(bool changePropertyDisplay=true);    bool isWidgetSelected(QWidget *w) const;    void selectWidget(QWidget *w, bool select=true);    void selectWidgets();    void repaintSelection();    void repaintSelection(QWidget *w);    void updateSelection(QWidget *w);    void updateChildSelections(QWidget *w);    void raiseChildSelections(QWidget *w);    void raiseSelection(QWidget *w);    void hideSelection(QWidget *w);    inline QList<QWidget *> widgets() const { return m_widgets; }    inline int widgetCount() const { return m_widgets.count(); }    inline QWidget *widgetAt(int index) const { return m_widgets.at(index); }    QList<QWidget *> widgets(QWidget *widget) const;    QWidget *createWidget(DomUI *ui, const QRect &rect, QWidget *target);    void deleteWidgets(const QList<QWidget*> &widget_list);    bool isManaged(QWidget *w) const;    void manageWidget(QWidget *w);    void unmanageWidget(QWidget *w);    inline QtUndoStack *commandHistory() const    { return m_commandHistory; }    void beginCommand(const QString &description);    void endCommand();    bool blockSelectionChanged(bool blocked);    void emitSelectionChanged();    bool unify(QObject *w, QString &s, bool changeIt);    bool isDirty() const;    void setDirty(bool dirty);    static FormWindow *findFormWindow(QWidget *w);    virtual QWidget *containerAt(const QPoint &pos);    virtual QWidget *widgetAt(const QPoint &pos);    virtual void highlightWidget(QWidget *w, const QPoint &pos,                                    HighlightMode mode = Highlight);    void updateOrderIndicators();    bool handleEvent(QWidget *widget, QWidget *managedWidget, QEvent *event);    QStringList resourceFiles() const;    void addResourceFile(const QString &path);    void removeResourceFile(const QString &path);    void resizeWidget(QWidget *widget, const QRect &geometry);    void dropWidgets(QList<QDesignerDnDItemInterface*> &item_list, QWidget *target,                        const QPoint &global_mouse_pos);signals:    void contextMenuRequested(QMenu *menu, QWidget *widget);public slots:    void deleteWidgets();    void raiseWidgets();    void lowerWidgets();    void copy();    void cut();    void paste();    void selectAll();    void layoutHorizontal();    void layoutVertical();    void layoutGrid();    void layoutHorizontalSplit();    void layoutVerticalSplit();    void layoutHorizontalContainer(QWidget *w);    void layoutVerticalContainer(QWidget *w);    void layoutGridContainer(QWidget *w);    void breakLayout(QWidget *w);    void breakLayout();    void editContents();protected:    virtual QMenu *createPopupMenu(QWidget *w);    virtual void resizeEvent(QResizeEvent *e);    void insertWidget(QWidget *w, const QRect &rect, QWidget *target, bool already_in_form = false);private slots:    void selectionChangedTimerDone();    void updateDirty();    void checkSelection();    void checkSelectionNow();private:    void init();    void initializeCoreTools();    QPoint gridPoint(const QPoint &p) const;    enum RectType { Insert, Rubber };    void startRectDraw(const QPoint &global, QWidget *, RectType t);    void continueRectDraw(const QPoint &global, QWidget *, RectType t);    void endRectDraw();    QWidget *containerAt(const QPoint &pos, QWidget *notParentOf);    void checkPreviewGeometry(QRect &r);    void finishContextMenu(QWidget *w, QWidget *menuParent, QContextMenuEvent *e);    bool handleContextMenu(QWidget *widget, QWidget *managedWidget, QContextMenuEvent *e);    bool handleMouseButtonDblClickEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);    bool handleMousePressEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);    bool handleMouseMoveEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);    bool handleMouseReleaseEvent(QWidget *widget, QWidget *managedWidget, QMouseEvent *e);    bool handleKeyPressEvent(QWidget *widget, QWidget *managedWidget, QKeyEvent *e);    bool handleKeyReleaseEvent(QWidget *widget, QWidget *managedWidget, QKeyEvent *e);    bool isCentralWidget(QWidget *w) const;    QWidget *designerWidget(QWidget *w) const;    BreakLayoutCommand *breakLayoutCommand(QWidget *w);    void setCursorToAll(const QCursor &c, QWidget *start);    QPoint mapToForm(const QWidget *w, const QPoint &pos) const;    bool canBeBuddy(QWidget *w) const;    QWidget *findContainer(QWidget *w, bool excludeLayout) const;    QWidget *findTargetContainer(QWidget *widget) const;    bool isPageOfContainerWidget(QWidget *widget) const;    static int widgetDepth(QWidget *w);    static bool isChildOf(QWidget *c, const QWidget *p);    void editWidgets();    void updateWidgets();    void handleArrowKeyEvent(int key, bool modifier);private:    Feature m_feature;    FormEditor *m_core;    FormWindowCursor *m_cursor;    QWidget *m_mainContainer;    QWidget *m_currentWidget;    QPoint m_grid;    uint m_blockSelectionChanged: 1;    uint drawRubber: 1;    uint oldRectValid: 1;    uint hadOwnPalette: 1;    uint pad[28];    QPoint rectAnchor;    QRect currRect;    QList<QWidget*> m_widgets;    QSet<QWidget*> m_insertedWidgets;    QList<WidgetSelection *> selections;    QHash<QWidget *, WidgetSelection *> usedSelections;    QPoint startPos;    QPoint currentPos;    QRect widgetGeom;    QPoint oldPressPos;    QPoint origPressPos;    QWidget *startWidget;    QWidget *endWidget;    QWidget *targetContainer;    QPalette restorePalette;    QtUndoStack *m_commandHistory;    QString m_fileName;    QList<QWidget*> orderedWidgets;    QList<QWidget*> stackedWidgets;    QMap<QWidget*, QPair<QPalette ,bool> > palettesBeforeHighlight;    QRubberBand *m_rubberBand;    QTimer *m_selectionChangedTimer;    QTimer *m_checkSelectionTimer;    QTimer *m_geometryChangedTimer;    int m_dirty;    int m_lastIndex;    FormWindowWidgetStack *m_widgetStack;    WidgetEditorTool *m_widgetEditor;    QStringList m_resourceFiles;    QString m_comment;    QString m_author;    QString m_pixmapFunction;    int m_defaultMargin, m_defaultSpacing;    QString m_marginFunction, m_spacingFunction;    QString m_exportMacro;    QStringList m_includeHints;    QList<QPointer<SetPropertyCommand> > m_moveSelection;    int m_lastUndoIndex;private://    friend class FormWindowManager;    friend class WidgetHandle;    friend class WidgetSelection;    friend class QDesignerWidget;    friend class WidgetEditorTool;};}  // namespace qdesigner_internal#endif // FORMWINDOW_H

⌨️ 快捷键说明

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