X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FEntityGUI%2FEntityGUI_SketcherDlg.h;h=63cf7d5dbbb07fd4d32d3e379c81ada5173179e7;hb=8f2d0b5697219b8b53289bd9c25a60ddc354ab53;hp=64260b2ae166c2bd28a3a6fc4cd3506ca24effb9;hpb=239f8109c64fa0c5a2e1d87a420bad5529b57f48;p=modules%2Fgeom.git diff --git a/src/EntityGUI/EntityGUI_SketcherDlg.h b/src/EntityGUI/EntityGUI_SketcherDlg.h index 64260b2ae..63cf7d5db 100644 --- a/src/EntityGUI/EntityGUI_SketcherDlg.h +++ b/src/EntityGUI/EntityGUI_SketcherDlg.h @@ -1,6 +1,6 @@ -// GEOM GEOMGUI : GUI for Geometry component +// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -19,144 +19,190 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// -// -// File : EntityGUI_SketcherDlg.h -// Author : Damine COQUERET -// Module : GEOM +// GEOM GEOMGUI : GUI for Geometry component +// File : EntityGUI_SketcherDlg.h +// Author : Damien COQUERET, Open CASCADE S.A.S. +// #ifndef ENTITYGUI_SKETCHERDLG_H #define ENTITYGUI_SKETCHERDLG_H -#include "GEOM_EntityGUI.hxx" - -#include "GEOMBase_Helper.h" - -#include "EntityGUI_Skeleton_QTD.h" -#include "EntityGUI_Point_QTD.h" -#include "EntityGUI_Dir1_QTD.h" -#include "EntityGUI_Dir2_QTD.h" - -#include "EntityGUI_1Sel_QTD.h" -#include "EntityGUI_1Spin.h" -#include "EntityGUI_2Spin.h" -#include "EntityGUI_3Spin.h" -#include "EntityGUI_4Spin.h" - -#include "EntityGUI.h" -#include "GeometryGUI.h" - -#include - -#include -#include -#include -#include -#include -#include +#include + +#include +#include +#include +#include + +#include + +class QLineEdit; +class SalomeApp_DoubleSpinBox; +class EntityGUI_1Sel; +class EntityGUI_2Sel1Check; +class EntityGUI_1Sel1Spin1Check; +class EntityGUI_1Spin; +class EntityGUI_2Spin; +class EntityGUI_3Spin1Check; +class EntityGUI_4Spin1Check; +class EntityGUI_Point; +class EntityGUI_Dir1; +class EntityGUI_Dir2; +class EntityGUI_Skeleton; +class GeometryGUI; + +#ifndef COORD_MIN +# define COORD_MIN -1e+15 +# define COORD_MAX +1e+15 +# define MAX_NUMBER 100000 +# define DBL_DIGITS_DISPLAY 16 +#endif // COORD_MIN //================================================================================= // class : EntityGUI_Dlg // purpose : //================================================================================= -class GEOM_ENTITYGUI_EXPORT EntityGUI_SketcherDlg : public EntityGUI_Skeleton_QTD, public GEOMBase_Helper +class EntityGUI_SketcherDlg : public QDialog, GEOMBase_Helper { - Q_OBJECT + Q_OBJECT public: - EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent = 0, - const char* name = 0, bool modal = FALSE, WFlags fl = 0, - const double lineWidth = 2.); - ~EntityGUI_SketcherDlg(); + EntityGUI_SketcherDlg( GeometryGUI*, QWidget* = 0, bool = false, Qt::WindowFlags = 0, + const double = 2. ); + ~EntityGUI_SketcherDlg(); - bool eventFilter (QObject* object, QEvent* event); + bool eventFilter (QObject* object, QEvent* event); protected: - // redefined from GEOMBase_Helper - virtual GEOM::GEOM_IOperations_ptr createOperation(); - virtual bool isValid( QString& ); - virtual bool execute( ObjectList& objects ); - - void closeEvent( QCloseEvent* e ); - void keyPressEvent( QKeyEvent* e ); - -private : - void Init(); - void enterEvent(QEvent* e); - void InitClick(); - void setEnabledUndo(bool value); - void setEnabledRedo(bool value); - - QString GetNewCommand(); - - int myConstructorId; - int myConstructorDirId; - int mySketchType; - int mySketchState; - - bool myIsAllAdded; - - QLineEdit* myEditCurrentArgument; /* Current LineEdit */ - - QStringList myCommand; - QStringList myUndoCommand; - - Standard_Real myX, myY, myDX, myDY; - Standard_Real myLength, myAngle, myRadius; - Standard_Real myLastX1, myLastY1; - Standard_Real myLastX2, myLastY2; - - EntityGUI_Point_QTD* GroupPt; - EntityGUI_Dir1_QTD* GroupD1; - EntityGUI_Dir2_QTD* GroupD2; - - EntityGUI_1Sel_QTD* Group1Sel; - EntityGUI_1Spin* Group1Spin; - EntityGUI_2Spin* Group2Spin; - EntityGUI_3Spin* Group3Spin; - EntityGUI_4Spin* Group4Spin; - - GeometryGUI* myGeometryGUI; - - QString myHelpFileName; - - enum SketchState {FIRST_POINT, NEXT_POINT}; - - enum SketchType {PT_ABS, PT_RELATIVE, PT_SEL, - DIR_ANGLE_LENGTH, DIR_ANGLE_X, DIR_ANGLE_Y, - DIR_PER_LENGTH, DIR_PER_X, DIR_PER_Y, - DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y, - DIR_DXDY_LENGTH, DIR_DXDY_X, DIR_DXDY_Y}; - - double myLineWidth; - virtual void displayPreview ( GEOM::GEOM_Object_ptr obj, - const bool append = false, - const bool activate = false, - const bool update = true, - const double lineWidth = -1 ); - - bool createShapes( GEOM::GEOM_Object_ptr theObject, - TopoDS_Shape& theApplyedWire, - TopoDS_Shape& theLastSegment ); - + void initSpinBox( SalomeApp_DoubleSpinBox*, + double, double, double = 0.1, + const char* quantity = "length_precision" ); + + // redefined from GEOMBase_Helper + virtual GEOM::GEOM_IOperations_ptr createOperation(); + virtual bool isValid( QString& ); + virtual bool execute( ObjectList& ); + + void closeEvent( QCloseEvent* ); + void keyPressEvent( QKeyEvent* ); + +private: + void Init(); + void enterEvent( QEvent* ); + void InitClick(); + void setEnabledUndo( bool ); + void setEnabledRedo( bool ); + + QString GetNewCommand( QString& ); + + virtual void displayPreview( GEOM::GEOM_Object_ptr, + const bool = false, + const bool = false, + const bool = true, + const double = -1, + const int = -1, + const int = -1); + + bool createShapes( GEOM::GEOM_Object_ptr, + TopoDS_Shape&, + TopoDS_Shape& ); + +private: + int myConstructorId; + int myConstructorDirId; + int myConstructorPntId; + int mySketchType; + int mySketchState; + + bool myIsAllAdded; + bool myIsApply; + + QLineEdit* myEditCurrentArgument; /* Current LineEdit */ + + QStringList myCommand; + QStringList myUndoCommand; + + QStringList myParameters; + QStringList myUndoParameters; + + Standard_Real myX, myY, myDX, myDY; + Standard_Real myXc, myYc, myDXc, myDYc; + Standard_Real myLength, myAngle, myRadius; + Standard_Real myLastX1, myLastY1; + Standard_Real myLastX2, myLastY2; + + QString myXStr, myYStr, myDXStr, myDYStr; + QString myXcStr, myYcStr, myDXcStr, myDYcStr; + QString myLengthStr, myAngleStr, myRadiusStr; + QString myLastX1Str, myLastY1Str; + QString myLastX2Str, myLastY2Str; + + EntityGUI_Skeleton* MainWidget; + + EntityGUI_Point* GroupPt; + EntityGUI_Point* GroupPt2; + EntityGUI_Dir1* GroupD1; + EntityGUI_Dir2* GroupD2; + + EntityGUI_1Sel* Group1Sel; + EntityGUI_2Sel1Check* Group2Sel; + EntityGUI_1Sel1Spin1Check* Group1Sel1Spin; + EntityGUI_1Spin* Group1Spin; + EntityGUI_2Spin* Group2Spin; + EntityGUI_3Spin1Check* Group3Spin; + EntityGUI_4Spin1Check* Group4Spin; + + QLabel* myErrLabel; + + QGroupBox* GroupBox1; + QComboBox* ComboBox1; + QPushButton* planeButton; + + GeometryGUI* myGeometryGUI; + + QString myHelpFileName; + + double myLineWidth; + + QList myLCSList; + + int myCheckFlag; + +private: + enum SketchState { FIRST_POINT, NEXT_POINT }; + + enum SketchType { PT_ABS, PT_RELATIVE, PT_SEL, + PT_ABS_RADIUS,PT_REL_RADIUS,PT_SEL_RADIUS, + PT_ABS_CENTER,PT_REL_CENTER,PT_SEL_CENTER, + DIR_ANGLE_LENGTH, DIR_ANGLE_X, DIR_ANGLE_Y, + DIR_PER_LENGTH, DIR_PER_X, DIR_PER_Y, + DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y, + DIR_DXDY_LENGTH, DIR_DXDY_X, DIR_DXDY_Y }; + private slots: - void ClickOnEnd(); - void ClickOnCancel(); - bool ClickOnApply(); - void ClickOnUndo(); - void ClickOnRedo(); - void ClickOnHelp(); - void LineEditReturnPressed(); - void SelectionIntoArgument(); - void SetEditCurrentArgument(); - void DeactivateActiveDialog(); - void ActivateThisDialog(); - void TypeClicked(int constructorId); - void DestClicked(int constructorId); - void PointClicked(int constructorId); - void Dir1Clicked(int constructorId); - void Dir2Clicked(int constructorId); - void ValueChangedInSpinBox(double newValue); + void ClickOnEnd(); + void ClickOnCancel(); + bool ClickOnApply(); + void ClickOnUndo(); + void ClickOnRedo(); + void ClickOnHelp(); + void LineEditReturnPressed(); + void SelectionIntoArgument(); + void SetEditCurrentArgument(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void TypeClicked( int ); + void DestClicked( int ); + void PointClicked( int ); + void Point2Clicked( int ); + void Dir1Clicked( int ); + void Dir2Clicked( int ); + void CheckBoxClicked( int ); + void ValueChangedInSpinBox( double ); + void SetDoubleSpinBoxStep( double ); + void FindLocalCS(); + gp_Ax3 GetActiveLocalCS(); + void ActivateLocalCS(); }; #endif // ENTITYGUI_SKETCHERDLG_H