Salome HOME
Enter processing from object browser.
[modules/shaper.git] / src / XGUI / XGUI_PropertyPanel.h
index bc0934af53f26d7cc31e7aeecf190622bff259da..a85af1e09c71783160d69ef76f17475efb6a3469 100644 (file)
@@ -22,6 +22,7 @@ class QKeyEvent;
 class QGridLayout;
 class ModuleBase_PageBase;
 class ModuleBase_PageWidget;
+class XGUI_OperationMgr;
 
 /// Internal name of property panel widget
 const static char* PROP_PANEL = "property_panel_dock";
@@ -46,10 +47,13 @@ Q_OBJECT
 
   /// Constructor
   /// \param theParent is a parent of the property panel
-  XGUI_PropertyPanel(QWidget* theParent);
+  XGUI_PropertyPanel(QWidget* theParent, XGUI_OperationMgr* theMgr);
 
   virtual ~XGUI_PropertyPanel();
 
+  /// Returns header widget
+  virtual QWidget* headerWidget() const { return myHeaderWidget; }
+
   /// Returns main widget of the property panel, which children will be created
   /// by WidgetFactory using the XML definition
   ModuleBase_PageBase* contentWidget();
@@ -74,6 +78,9 @@ Q_OBJECT
   /// Activate the next from current widget in the property panel
   virtual void activateNextWidget();
 
+  /// Set focus on the Ok button
+  virtual void setFocusOnOkButton();
+
   /// Set Enable/Disable state of Cancel button
   /// \param theEnabled Enable/Disable state of Cancel button
   virtual void setCancelEnabled(bool theEnabled);
@@ -88,7 +95,16 @@ Q_OBJECT
   //! Allows to set predefined actions for the property panel fetched from the ActionsMgr
   void setupActions(XGUI_ActionsMgr* theMgr);
 
- public slots:
+  /// Returns widget processed by preselection
+  virtual ModuleBase_ModelWidget* preselectionWidget() const;
+
+  /// Sets widget processed by preselection
+  virtual void setPreselectionWidget(ModuleBase_ModelWidget* theWidget);
+
+  /// Returns operation manager
+  XGUI_OperationMgr* operationMgr() const { return myOperationMgr; }
+
+public slots:
 
    /// \brief Update all widgets in property panel with values from the given feature
    /// \param theFeature a Feature to update values in widgets
@@ -102,12 +118,36 @@ Q_OBJECT
   */
   virtual void activateWidget(ModuleBase_ModelWidget* theWidget);
 
+  void onFocusNextPrev();
+
+protected:
+  /// Makes the widget active, deactivate the previous, activate and hightlight the given one
+  /// \param theWidget a widget
+  void setActiveWidget(ModuleBase_ModelWidget* theWidget);
+
+  /// The parent method that processes the "Tab"/"SHIF + Tab" keyboard events
+  /// Emits a signal about focus change
+  /// If theIsNext is true, this function searches forward, if next is false, it searches backward.
+  virtual bool focusNextPrevChild(bool theIsNext);
+
+ protected:
+   /// A method called on the property panel closed
+   /// \param theEvent a close event
+   void closeEvent(QCloseEvent* theEvent);
+
+  /// A header widget
+  QWidget* myHeaderWidget;
+
  private:
   ModuleBase_PageWidget* myPanelPage;
   QList<ModuleBase_ModelWidget*> myWidgets;
 
   /// Currently active widget
   ModuleBase_ModelWidget* myActiveWidget;
+  /// Currently widget processed by preselection
+  ModuleBase_ModelWidget* myPreselectionWidget;
+
+  XGUI_OperationMgr* myOperationMgr;
 };
 
 #endif /* XGUI_PROPERTYPANEL_H_ */