diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:17:53 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-07-10 15:17:53 -0500 |
commit | 37e3f157c7d76f13de807fa66e36df209e1005fb (patch) | |
tree | 7a4f131b2ee065337dac341bff34515310efba4f /experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h | |
parent | 16630c3eff313238fa8412275555285c9195981b (diff) | |
download | tde-37e3f157c7d76f13de807fa66e36df209e1005fb.tar.gz tde-37e3f157c7d76f13de807fa66e36df209e1005fb.zip |
Added TQt4 HEAD
Diffstat (limited to 'experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h')
-rw-r--r-- | experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h | 329 |
1 files changed, 329 insertions, 0 deletions
diff --git a/experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h b/experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h new file mode 100644 index 000000000..bacc45fb5 --- /dev/null +++ b/experimental/tqtinterface/qt4/tools/designer/designer/formwindow.h @@ -0,0 +1,329 @@ +/********************************************************************** +** Copyright (C) 2005-2008 Trolltech ASA. All rights reserved. +** +** This file is part of TQt Designer. +** +** This file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free +** Software Foundation and appearing in the files LICENSE.GPL2 +** and LICENSE.GPL3 included in the packaging of this file. +** Alternatively you may (at your option) use any later version +** of the GNU General Public License if such license has been +** publicly approved by Trolltech ASA (or its successors, if any) +** and the KDE Free TQt Foundation. +** +** Please review the following information to ensure GNU General +** Public Licensing requirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/. +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at sales@trolltech.com. +** +** Licensees holding valid TQt Commercial licenses may use this file in +** accordance with the TQt Commercial License Agreement provided with +** the Software. +** +** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, +** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +** herein. +** +**********************************************************************/ + +#ifndef FORMWINDOW_H +#define FORMWINDOW_H + +#include "command.h" +#include "metadatabase.h" +#include "sizehandle.h" +#include "actiondnd.h" + +#include <tqwidget.h> +#include <tqptrdict.h> +#include <tqpixmap.h> +#include <tqwidgetlist.h> +#include <tqmap.h> + +class TQPaintEvent; +class TQMouseEvent; +class TQKeyEvent; +class TQPainter; +class TQLabel; +class MainWindow; +class TQTimer; +class TQFocusEvent; +class TQCloseEvent; +class Resource; +class TQResizeEvent; +class BreakLayoutCommand; +class TQPixmap; +class TQSizeGrip; +class Project; +struct DesignerFormWindow; +class FormFile; + +#if defined(TQ_CC_MSVC) || defined(TQ_FULL_TEMPLATE_INSTANTIATION) +#include "orderindicator.h" +#else +class OrderIndicator; +#endif + +class FormWindow : public TQWidget +{ + Q_OBJECT + TQ_OBJECT + Q_PROPERTY( TQString fileName READ fileName WRITE setFileName ) + +public: + FormWindow( FormFile *f, MainWindow *mw, TQWidget *tqparent, const char *name = 0 ); + FormWindow( FormFile *f, TQWidget *tqparent, const char *name = 0 ); + ~FormWindow(); + + void init(); + virtual void setMainWindow( MainWindow *w ); + + virtual TQString fileName() const; + virtual void setFileName( const TQString &fn ); + + virtual TQPoint grid() const; + virtual TQPoint gridPoint( const TQPoint &p ); + + virtual CommandHistory *commandHistory(); + + virtual void undo(); + virtual void redo(); + virtual TQString copy(); + virtual void paste( const TQString &cb, TQWidget *tqparent ); + virtual void lowerWidgets(); + virtual void raiseWidgets(); + virtual void checkAccels(); + + virtual void layoutHorizontal(); + virtual void layoutVertical(); + virtual void layoutHorizontalSplit(); + virtual void layoutVerticalSplit(); + virtual void layoutGrid(); + + virtual void layoutHorizontalContainer( TQWidget *w ); + virtual void layoutVerticalContainer( TQWidget *w ); + virtual void layoutGridContainer( TQWidget *w ); + + virtual void breakLayout( TQWidget *w ); + + virtual void selectWidget( TQT_BASE_OBJECT_NAME *w, bool select = TRUE ); + virtual void selectAll(); + virtual void updateSelection( QWidget *w ); + virtual void raiseSelection( QWidget *w ); + virtual void repaintSelection( TQWidget *w ); + virtual void clearSelection( bool changePropertyDisplay = TRUE ); + virtual void selectWidgets(); + bool isWidgetSelected( TQT_BASE_OBJECT_NAME *w ); + virtual void updateChildSelections( TQWidget *w ); + virtual void raiseChildSelections( TQWidget *w ); + + virtual void emitUpdateProperties( TQT_BASE_OBJECT_NAME *w ); + virtual void emitShowProperties( TQT_BASE_OBJECT_NAME *w = 0 ); + virtual void emitSelectionChanged(); + + virtual void setPropertyShowingBlocked( bool b ); + bool isPropertyShowingBlocked() const; + + virtual TQLabel *sizePreview() const; + virtual void checkPreviewGeometry( TQRect &r ); + + virtual TQPtrDict<TQWidget> *widgets(); + virtual TQWidgetList selectedWidgets() const; + + virtual TQWidget *designerWidget( TQT_BASE_OBJECT_NAME *o ) const; + + virtual void handleContextMenu( TQContextMenuEvent *e, TQWidget *w ); + virtual void handleMousePress( TQMouseEvent *e, TQWidget *w ); + virtual void handleMouseRelease( TQMouseEvent *e, TQWidget *w ); + virtual void handleMouseDblClick( TQMouseEvent *e, TQWidget *w ); + virtual void handleMouseMove( TQMouseEvent *e, TQWidget *w ); + virtual void handleKeyPress( TQKeyEvent *e, TQWidget *w ); + virtual void handleKeyRelease( TQKeyEvent *e, TQWidget *w ); + + virtual void updateUndoInfo(); + + virtual MainWindow *mainWindow() const { return mainwindow; } + + bool checkCustomWidgets(); + virtual void insertWidget( TQWidget *w, bool checkName = FALSE ); + virtual void removeWidget( TQWidget *w ); + virtual void deleteWidgets(); + virtual void editAdjustSize(); + virtual void editConnections(); + + virtual int numSelectedWidgets() const; + virtual int numVisibleWidgets() const; + + virtual bool hasInsertedChildren( TQWidget *w ) const; + + virtual TQWidget *currentWidget() const { return propertyWidget && propertyWidget->isWidgetType() ? (TQWidget*)propertyWidget : 0; } // ##### + virtual bool unify( TQT_BASE_OBJECT_NAME *w, TQString &s, bool changeIt ); + + virtual bool isCustomWidgetUsed( MetaDataBase::CustomWidget *w ); + virtual bool isDatabaseWidgetUsed() const; + virtual bool isDatabaseAware() const; + + virtual TQPoint mapToForm( const TQWidget* w, const TQPoint& ) const; + + bool isMainContainer( TQT_BASE_OBJECT_NAME *w ) const; + bool isCentralWidget( TQT_BASE_OBJECT_NAME *w ) const; + TQWidget *mainContainer() const { return mContainer; } + void setMainContainer( TQWidget *w ); + + void paintGrid( TQWidget *w, TQPaintEvent *e ); + + bool savePixmapInline() const; + TQString pixmapLoaderFunction() const; + void setSavePixmapInline( bool b ); + void setPixmapLoaderFunction( const TQString &func ); + + bool savePixmapInProject() const; + void setSavePixmapInProject( bool b ); + + void setToolFixed() { toolFixed = TRUE; } + + void setActiveObject( TQT_BASE_OBJECT_NAME *o ); + + TQPtrList<TQAction> &actionList() { return actions; } + TQAction *tqfindAction( const TQString &name ); + + void setProject( Project *pro ); + Project *project() const; + + void killAccels( TQT_BASE_OBJECT_NAME *top ); + + DesignerFormWindow *iFace(); + + int layoutDefaultSpacing() const; + int layoutDefaultMargin() const; + void setLayoutDefaultSpacing( int s ); + void setLayoutDefaultMargin( int s ); + TQString spacingFunction() const; + TQString marginFunction() const; + void setSpacingFunction( const TQString &func ); + void setMarginFunction( const TQString &func ); + bool hasLayoutFunctions() const; + void hasLayoutFunctions( bool b ); + + void initSlots(); + FormFile *formFile() const; + void setFormFile( FormFile *f ); + + bool isFake() const { return fake; } + bool canBeBuddy( const TQWidget* ) const; + +public Q_SLOTS: + virtual void widgetChanged( TQT_BASE_OBJECT_NAME *w ); + virtual void currentToolChanged(); + virtual void visibilityChanged(); + virtual void modificationChanged( bool m ); + +Q_SIGNALS: + void showProperties( TQObject *w ); + void updateProperties( TQObject *w ); + void undoRedoChanged( bool undoAvailable, bool redoAvailable, + const TQString &undoCmd, const TQString &redoCmd ); + void selectionChanged(); + void modificationChanged( bool m, FormWindow *fw ); + void modificationChanged( bool m, const TQString &s ); + void fileNameChanged( const TQString &s, FormWindow *fw ); + +protected: + virtual void closeEvent( TQCloseEvent *e ); + virtual void focusInEvent( TQFocusEvent *e ); + virtual void focusOutEvent( TQFocusEvent *e ); + virtual void resizeEvent( TQResizeEvent *e ); + void mouseDoubleClickEvent( TQMouseEvent *e ) { handleMouseDblClick( e, mainContainer() ); } + +private: + enum RectType { Insert, Rubber }; + + void beginUnclippedPainter( bool doNot ); + void endUnclippedPainter(); + void drawConnectionLine(); + void drawSizePreview( const TQPoint &pos, const TQString& text ); + + void insertWidget(); + void moveSelectedWidgets( int dx, int dy ); + + void startRectDraw( const TQPoint &p, const TQPoint &global, TQWidget *w, RectType t ); + void continueRectDraw( const TQPoint &p, const TQPoint &global, TQWidget *w, RectType t ); + void endRectDraw(); + + void checkSelectionsForMove( TQWidget *w ); + BreakLayoutCommand *breakLayoutCommand( TQWidget *w ); + + bool allowMove( TQWidget *w ); + + void saveBackground(); + void restoreConnectionLine(); + void restoreRect( const TQRect &rect ) ; + + void showOrderIndicators(); + void updateOrderIndicators(); + void repositionOrderIndicators(); + void hideOrderIndicators(); + + TQWidget *containerAt( const TQPoint &pos, TQWidget *notParentOf ); + +private Q_SLOTS: + void invalidCheckedSelections(); + void updatePropertiesTimerDone(); + void showPropertiesTimerDone(); + void selectionChangedTimerDone(); + void windowsRepaintWorkaroundTimerTimeout(); + +private: + int currTool; + bool oldRectValid, widgetPressed, drawRubber, checkedSelectionsForMove; + bool validForBuddy; + TQRect currRect; + TQPoint rectAnchor; + TQPainter *unclippedPainter; + TQPoint sizePreviewPos; + TQPixmap sizePreviewPixmap; + MainWindow *mainwindow; + TQPtrList<WidgetSelection> selections; + TQPtrDict<WidgetSelection> usedSelections; + TQRect widgetGeom, rubber; + TQPoint oldPressPos, origPressPos; + CommandHistory commands; + TQMap<TQWidget*, TQPoint> moving; + TQWidget *insertParent; + TQObject *propertyWidget; + TQLabel *sizePreviewLabel; + TQTimer *checkSelectionsTimer; + TQPtrDict<TQWidget> insertedWidgets; + bool propShowBlocked; + TQTimer* updatePropertiesTimer, *showPropertiesTimer, *selectionChangedTimer, + *windowsRepaintWorkaroundTimer; + TQPoint startPos, currentPos; + TQWidget *startWidget, *endWidget; + TQPixmap *buffer; + TQPtrList<OrderIndicator> orderIndicators; + TQWidgetList orderedWidgets; + TQWidgetList stackedWidgets; + TQWidget *mContainer; + bool pixInline, pixProject; + TQString pixLoader; + bool toolFixed; + TQPtrList<TQAction> actions; + Project *proj; + DesignerFormWindow *iface; + TQWidget* targetContainer; + TQPalette restorePalette; + bool hadOwnPalette; + int defSpacing, defMargin; + TQString spacFunction, margFunction; + bool hasLayoutFunc; + FormFile *ff; + bool fake; + +}; + +#endif |