X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FBooleanGUI%2FBooleanGUI.cxx;h=75f95f2a57c39061987232a5fe025decc27a4695;hb=ccaa4673b9493057cce545295f1d9023024eb72d;hp=da6531ff2455d9909607fac3fc4308120fb76dae;hpb=c577ca78d7a6e286526662cf54df6de1f4f2f449;p=modules%2Fgeom.git diff --git a/src/BooleanGUI/BooleanGUI.cxx b/src/BooleanGUI/BooleanGUI.cxx index da6531ff2..75f95f2a5 100644 --- a/src/BooleanGUI/BooleanGUI.cxx +++ b/src/BooleanGUI/BooleanGUI.cxx @@ -1,54 +1,45 @@ -// 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, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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 +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// File : BooleanGUI.cxx -// Author : Damien COQUERET -// Module : GEOM -// $Header: -using namespace std; +// GEOM GEOMGUI : GUI for Geometry component +// File : BooleanGUI.cxx +// Author : Damien COQUERET, Open CASCADE S.A.S. +// #include "BooleanGUI.h" +#include "BooleanGUI_Dialog.h" -#include "SALOMEGUI_QtCatchCorbaException.hxx" - -#include "BooleanGUI_FuseDlg.h" // Method FUSE -#include "BooleanGUI_CommonDlg.h" // Method COMMON -#include "BooleanGUI_CutDlg.h" // Method CUT -#include "BooleanGUI_SectionDlg.h" // Method SECTION +#include +#include "GeometryGUI_Operations.h" +#include //======================================================================= // function : BooleanGUI() // purpose : Constructor //======================================================================= -BooleanGUI::BooleanGUI() : - QObject() +BooleanGUI::BooleanGUI( GeometryGUI* parent ) + : GEOMGUI( parent ) { - myGeomBase = new GEOMBase(); - myGeomGUI = GEOMContext::GetGeomGUI(); - myGeom = myGeomGUI->myComponentGeom; } - //======================================================================= // function : ~BooleanGUI() // purpose : Destructor @@ -62,77 +53,40 @@ BooleanGUI::~BooleanGUI() // function : OnGUIEvent() // purpose : //======================================================================= -bool BooleanGUI::OnGUIEvent(int theCommandID, QAD_Desktop* parent) -{ - BooleanGUI* myBooleanGUI = new BooleanGUI(); - myBooleanGUI->myGeomGUI->EmitSignalDeactivateDialog(); - SALOME_Selection* Sel = SALOME_Selection::Selection(QAD_Application::getDesktop()->getActiveStudy()->getSelection()); - - switch (theCommandID) - { - case 5011: // FUSE - { - BooleanGUI_FuseDlg *aDlg = new BooleanGUI_FuseDlg(parent, "", myBooleanGUI, Sel); - break; - } - case 5012: // COMMON - { - BooleanGUI_CommonDlg *aDlg = new BooleanGUI_CommonDlg(parent, "", myBooleanGUI, Sel); - break; - } - case 5013: // CUT - { - BooleanGUI_CutDlg *aDlg = new BooleanGUI_CutDlg(parent, "", myBooleanGUI, Sel); - break; - } - case 5014: // SECTION - { - BooleanGUI_SectionDlg *aDlg = new BooleanGUI_SectionDlg(parent, "", myBooleanGUI, Sel); - break; - } - default: - { - parent->putInfo(tr("GEOM_PRP_COMMAND").arg(theCommandID)); - break; - } - } - return true; -} - - -//======================================================================= -// function : MakeBooleanAndDisplay() -// purpose : -//======================================================================= -void BooleanGUI::MakeBooleanAndDisplay(GEOM::GEOM_Shape_ptr Shape1, GEOM::GEOM_Shape_ptr Shape2, const short operation) +bool BooleanGUI::OnGUIEvent( int theCommandID, SUIT_Desktop* parent ) { - try { - GEOM::GEOM_Shape_ptr result = myGeom->MakeBoolean(Shape1, Shape2, operation); - if(result->_is_nil()) { - QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_NULLSHAPE")); - return; - } - - TopoDS_Shape S = myGeomGUI->GetShapeReader().GetShape(myGeom, result); - Standard_CString type; - myGeomBase->GetShapeTypeString(S,type); - result->NameType(type); + getGeometryGUI()->EmitSignalDeactivateDialog(); - if (myGeomBase->Display(result)) - QAD_Application::getDesktop()->putInfo(tr("GEOM_PRP_DONE")); + int anOperation = 0; + switch ( theCommandID ) { + case GEOMOp::OpFuse: + anOperation = FUSE; break; + case GEOMOp::OpCommon: + anOperation = COMMON; break; + case GEOMOp::OpCut: + anOperation = CUT; break; + case GEOMOp::OpSection: + anOperation = SECTION; break; + default: + return false; } - catch (const SALOME::SALOME_Exception& S_ex) { - QtCatchCorbaException(S_ex); - } - return; -} + + QDialog* aDlg = new BooleanGUI_Dialog( anOperation, getGeometryGUI(), parent ); + aDlg->show(); + return true; +} //===================================================================================== // EXPORTED METHODS //===================================================================================== extern "C" { - bool OnGUIEvent(int theCommandID, QAD_Desktop* parent) - {return BooleanGUI::OnGUIEvent(theCommandID, parent);} +#ifdef WIN32 + __declspec( dllexport ) +#endif + GEOMGUI* GetLibGUI( GeometryGUI* parent ) + { + return new BooleanGUI( parent ); + } }