+++ /dev/null
-// VISU VISUGUI : GUI of VISU component
-//
-// Copyright (C) 2003 CEA/DEN, EDF R&D
-//
-//
-//
-// File : SALOMEGUI_NonIsometricDlg.cxx
-// Author : Vasily Rusyaev
-// Module : VISU
-// $Header$
-
-#include "VisuGUI_NonIsometricDlg.h"
-
-#include "VisuGUI_Tools.h"
-
-#include "VISU_Actor.h"
-#include "VISU_PipeLine.hxx"
-
-#include "SalomeApp_Application.h"
-#include "LightApp_SelectionMgr.h"
-
-#include "SVTK_ViewWindow.h"
-#include "SVTK_RenderWindowInteractor.h"
-
-#include "SUIT_Desktop.h"
-#include "SUIT_Session.h"
-#include "SUIT_ViewWindow.h"
-
-#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SALOME_ListIO.hxx"
-
-#include "QtxDblSpinBox.h"
-
-#include "utilities.h"
-
-#include <qgroupbox.h>
-#include <qlabel.h>
-#include <qpushbutton.h>
-#include <qlayout.h>
-
-using namespace std;
-
-/*!
- Constructor
-*/
-VisuGUI_NonIsometricDlg::VisuGUI_NonIsometricDlg (QWidget* parent, const char* name, bool modal, WFlags fl)
- : QDialog(parent, name, modal, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
-{
- if (!name)
- setName("NonIsometricDlg");
- setCaption(tr("DLG_TITLE"));
- setSizeGripEnabled(TRUE);
-
- SVTK_ViewWindow* aViewWnd = VISU::GetViewWindow();
-
- // Create layout for this dialog
- QGridLayout* layoutDlg = new QGridLayout (this);
- layoutDlg->setSpacing(6);
- layoutDlg->setMargin(11);
-
- // Create croup box with grid layout
- QGroupBox* GroupBox = new QGroupBox(this, "GroupBox");
- QGridLayout* glGroupBox = new QGridLayout(GroupBox);
- glGroupBox->setMargin(11);
- glGroupBox->setSpacing(6);
-
- // "X" scaling
- QLabel* TextLabelX = new QLabel (tr("LBL_X"), GroupBox, "TextLabelX");
- m_sbXcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
- m_sbXcoeff->setMinimumWidth(80);
- m_sbXcoeff->setValue(1.0);
-
- // "Y" scaling
- QLabel* TextLabelY = new QLabel (tr("LBL_Y"), GroupBox, "TextLabelY");
- m_sbYcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
- m_sbYcoeff->setMinimumWidth(80);
- m_sbYcoeff->setValue(1.0);
-
- // "Z" scaling
- QLabel* TextLabelZ = new QLabel (tr("LBL_Z"), GroupBox, "TextLabelZ");
- m_sbZcoeff = new QtxDblSpinBox(-DBL_MAX, DBL_MAX, 0.1, GroupBox);
- m_sbZcoeff->setMinimumWidth(80);
- m_sbZcoeff->setValue(1.0);
-
- // Get initial values from the current VTK viewer
- if (aViewWnd) {
- double aScaleFactor[3];
- aViewWnd->GetScale(aScaleFactor);
- m_sbXcoeff -> setValue(aScaleFactor[0]);
- m_sbYcoeff -> setValue(aScaleFactor[1]);
- m_sbZcoeff -> setValue(aScaleFactor[2]);
- }
-
- // Create <Reset> button
- m_bReset = new QPushButton(tr("&Reset"), GroupBox, "m_bReset");
-
- // Layout widgets in the group box
- glGroupBox->addWidget(TextLabelX, 0, 0);
- glGroupBox->addWidget(m_sbXcoeff, 0, 1);
- glGroupBox->addWidget(TextLabelY, 0, 2);
- glGroupBox->addWidget(m_sbYcoeff, 0, 3);
- glGroupBox->addWidget(TextLabelZ, 0, 4);
- glGroupBox->addWidget(m_sbZcoeff, 0, 5);
- glGroupBox->addWidget(m_bReset, 0, 6);
-
- // OK, CANCEL, Apply button
- QGroupBox* aWgt = new QGroupBox(this);
- QHBoxLayout* aHBoxLayout = new QHBoxLayout(aWgt);
- aHBoxLayout->setMargin(11);
- aHBoxLayout->setSpacing(6);
- // Create <OK> button
- QPushButton* m_bOk = new QPushButton(tr("O&K"), aWgt, "m_bOk");
- m_bOk->setDefault(TRUE);
- m_bOk->setAutoDefault(TRUE);
- // Create <Apply> button
- QPushButton* m_bApply = new QPushButton(tr("&Apply"), aWgt, "m_bApply");
- m_bApply->setAutoDefault(TRUE);
- // Create <Cancel> button
- QPushButton* m_bCancel = new QPushButton(tr("&Cancel"), aWgt, "m_bCancel");
- m_bCancel->setAutoDefault(TRUE);
-
- // Layout buttons
- aHBoxLayout->addWidget(m_bOk);
- aHBoxLayout->addWidget(m_bApply);
- aHBoxLayout->addStretch();
- aHBoxLayout->addWidget(m_bCancel);
-
- // Layout top level widgets
- layoutDlg->addWidget(GroupBox,0,0);
- layoutDlg->addWidget(aWgt,1,0);
-
- // signals and slots connections
- connect(m_bCancel, SIGNAL(clicked()), this, SLOT(reject()));
- connect(m_bOk, SIGNAL(clicked()), this, SLOT(onClickOk()));
- connect(m_bApply, SIGNAL(clicked()), this, SLOT(onClickApply()));
- connect(m_bReset, SIGNAL(clicked()), this, SLOT(onClickReset()));
-
- this->resize(100, this->sizeHint().height());
-}
-
-/*
- * Destroys the object and frees any allocated resources
- */
-VisuGUI_NonIsometricDlg::~VisuGUI_NonIsometricDlg()
-{
- // no need to delete child widgets, Qt does it all for us
-}
-
-void VisuGUI_NonIsometricDlg::onClickOk()
-{
- //apply changes
- onClickApply();
- //Close dialog
- accept();
-}
-
-void VisuGUI_NonIsometricDlg::onClickApply()
-{
- SalomeApp_Application* anApp = dynamic_cast<SalomeApp_Application*>
- (SUIT_Session::session()->activeApplication());
- LightApp_SelectionMgr* mgr = anApp->selectionMgr();
-
- SVTK_ViewWindow* vf = VISU::GetViewWindow();
- if (!vf)
- return;
-
- double aScale[3] = {m_sbXcoeff->value(), m_sbYcoeff->value(), m_sbZcoeff->value()};
- vf->SetScale(aScale);
-
- SALOME_ListIO selected;
- mgr->selectedObjects(selected);
- SALOME_ListIteratorOfListIO Itinit(selected);
-
- if (vf)
- for (; Itinit.More(); Itinit.Next()) {
- vf->highlight(Itinit.Value(), true);
- }
-}
-
-void VisuGUI_NonIsometricDlg::onClickReset()
-{
- m_bReset->setFocus();
- m_sbXcoeff->setValue(1.0);
- m_sbYcoeff->setValue(1.0);
- m_sbZcoeff->setValue(1.0);
-}