1 // Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 // File : VTKViewer_MarkerDlg.cxx
20 // Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com)
22 #include "VTKViewer_MarkerDlg.h"
23 #include "VTKViewer_MarkerWidget.h"
25 #include <SUIT_Application.h>
26 #include <SUIT_MessageBox.h>
27 #include <SUIT_ResourceMgr.h>
28 #include <SUIT_Session.h>
31 #include <QVBoxLayout>
35 \class VTKViewer_MarkerDlg
36 \brief Dialog for specifying of point marker parameters
41 \param parent parent widget
43 VTKViewer_MarkerDlg::VTKViewer_MarkerDlg( QWidget* parent )
44 : QtxDialog( parent, true, true )
47 setWindowTitle( tr( "SET_MARKER_TLT" ) );
50 QFrame* frame = new QFrame( mainFrame() );
51 frame->setFrameStyle( QFrame::Sunken | QFrame::Box );
52 myMarkerWidget = new VTKViewer_MarkerWidget( frame );
55 QBoxLayout* vl = new QVBoxLayout( frame );
58 vl->addWidget( myMarkerWidget );
60 QBoxLayout* topLayout = new QVBoxLayout( mainFrame() );
61 topLayout->setSpacing( 0 ) ;
62 topLayout->setMargin( 0 );
63 topLayout->addWidget( frame );
65 // connect signals / slots
66 connect( this, SIGNAL( dlgHelp() ), this, SLOT( onHelp() ) );
72 VTKViewer_MarkerDlg::~VTKViewer_MarkerDlg()
77 \brief Associate documentation page with the dialog box
78 \param module module name
79 \param helpFile reference help file
81 void VTKViewer_MarkerDlg::setHelpData( const QString& module,
82 const QString& helpFile )
85 myHelpFile = helpFile;
89 \brief Process key press event
90 \param e key press event
92 void VTKViewer_MarkerDlg::keyPressEvent( QKeyEvent* e )
94 QtxDialog::keyPressEvent( e );
95 if ( e->isAccepted() )
98 // invoke Help on <F1> key presss
99 if ( e->key() == Qt::Key_F1 ) {
106 \brief Activate help for the dialog box
108 void VTKViewer_MarkerDlg::onHelp()
110 if ( !myModule.isEmpty() && !myHelpFile.isEmpty() ) {
111 SUIT_Session::session()->activeApplication()->onHelpContextModule( myModule, myHelpFile );
116 \brief Set custom markers data
117 \param markerMap custom marker data (a map {index:texture})
119 void VTKViewer_MarkerDlg::setCustomMarkers( const VTK::MarkerMap& markerMap )
121 myMarkerWidget->setCustomMarkers( markerMap );
125 \brief Get custom markers data
126 \return custom marker data
128 VTK::MarkerMap VTKViewer_MarkerDlg::customMarkers() const
130 return myMarkerWidget->customMarkers();
134 \brief Add standard marker
135 The marker type specified with \a type must be > VTK::MT_USER
136 \param type marker type
137 \param icon marker icon
139 void VTKViewer_MarkerDlg::addMarker( VTK::MarkerType type, const QPixmap& icon )
141 myMarkerWidget->addMarker( type, icon );
145 \brief Select specified standard marker as current one
146 \param type marker type
147 \param scale marker scale (optional parameter; can be omitted for extended markers)
149 void VTKViewer_MarkerDlg::setMarker( VTK::MarkerType type, VTK::MarkerScale scale )
151 myMarkerWidget->setMarker( type, scale );
155 \brief Select specified custom marker as current one
156 \param id custom marker identifier
158 void VTKViewer_MarkerDlg::setCustomMarker( int id )
160 myMarkerWidget->setCustomMarker( id );
164 \brief Get current marker's type.
165 For custom marker, VTK::MT_USER is returned and markerId() function
166 then returns its identifier.
167 \return currently selected marker type
169 VTK::MarkerType VTKViewer_MarkerDlg::markerType() const
171 return myMarkerWidget->markerType();
175 \brief Get current marker's scale size.
176 For custom marker return value is undefined.
177 \return currently selected marker scale size
179 VTK::MarkerScale VTKViewer_MarkerDlg::markerScale() const
181 return myMarkerWidget->markerScale();
185 \bried Get currently selected custom marker's identifier.
186 For standard markers return value is VTK::MT_NONE.
188 int VTKViewer_MarkerDlg::markerId() const
190 return myMarkerWidget->markerId();