| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | 
							- /*=========================================================================
 
-   Library:   CTK
 
-   Copyright (c) Kitware Inc.
 
-   Licensed under the Apache License, Version 2.0 (the "License");
 
-   you may not use this file except in compliance with the License.
 
-   You may obtain a copy of the License at
 
-       http://www.apache.org/licenses/LICENSE-2.0.txt
 
-   Unless required by applicable law or agreed to in writing, software
 
-   distributed under the License is distributed on an "AS IS" BASIS,
 
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-   See the License for the specific language governing permissions and
 
-   limitations under the License.
 
- =========================================================================*/
 
- #ifndef __ctkWorkflowButtonBoxWidget_h
 
- #define __ctkWorkflowButtonBoxWidget_h
 
- // QT includes
 
- #include <QBoxLayout>
 
- #include <QWidget>
 
- // CTK includes
 
- #include "ctkPimpl.h"
 
- #include "ctkWidgetsExport.h"
 
- class ctkPushButton;
 
- class ctkWorkflow;
 
- class ctkWorkflowStep;
 
- class ctkWorkflowButtonBoxWidgetPrivate;
 
- /// \ingroup Widgets
 
- ///
 
- /// \brief A widget that controls a workflow
 
- ///
 
- /// Creates:
 
- /// - a 'back' button to go to the previous step
 
- /// - a 'next' button to go the next step
 
- /// - 'goTo' buttons to go to finish steps, i.e. those steps in the workflow that do not have any
 
- /// steps following them
 
- ///
 
- /// The updateButtons() slot updates the buttons to reflect the current status of the workflow, and
 
- /// should be called whenever the workflow's current step has changed
 
- class CTK_WIDGETS_EXPORT ctkWorkflowButtonBoxWidget : public QWidget
 
- {
 
-   Q_OBJECT
 
-   /// This property controls the text, icon and tooltip of the back button.
 
-   /// "[<-]{backButtonText|\"Back\"}(back:description)" by default.
 
-   /// \sa backButtonFormat(), setBackButtonFormat(),
 
-   /// ctkWorkflow::formatButton(), nextButtonFormat, goToButtonFormat
 
-   Q_PROPERTY(QString backButtonFormat
 
-              READ backButtonFormat WRITE setBackButtonFormat)
 
-   /// This property controls the text, icon and tooltip of the next button.
 
-   /// "{nextButtonText|\"Next\"}(next:description)[->]" by default.
 
-   /// \sa nextButtonFormat(), setNextButtonFormat(),
 
-   /// ctkWorkflow::formatButton(), backButtonFormat, goToButtonFormat
 
-   Q_PROPERTY(QString nextButtonFormat
 
-              READ nextButtonFormat WRITE setNextButtonFormat)
 
-   /// This property controls the text, icon and tooltip of the goTo/finish
 
-   /// button.
 
-   /// "[icon]{stepid|\"Finish\"}" by default.
 
-   /// \sa goToButtonsFormat(), setGoToButtonsFormat(),
 
-   /// ctkWorkflow::formatButton(), backButtonFormat, nextButtonFormat
 
-   Q_PROPERTY(QString goToButtonsFormat
 
-              READ goToButtonsFormat WRITE setGoToButtonsFormat)
 
-   /// This property controls whether the goTo buttons are visible or hidden.
 
-   /// False (visible) by default.
 
-   /// \sa hideInvalidButtons
 
-   Q_PROPERTY(bool hideGoToButtons READ hideGoToButtons WRITE setHideGoToButtons)
 
-   /// This property controls whether the back, next or goTo buttons are hidden when disabled.
 
-   /// Note that buttons can also be hidden via ctkWorkflowWidgetStep::buttonHints.
 
-   /// \sa ctkWofklowWidgetStep::buttonBoxHints
 
-   Q_PROPERTY(bool hideInvalidButtons READ hideInvalidButtons WRITE setHideInvalidButtons)
 
- public:
 
-   typedef QWidget Superclass;
 
-   explicit ctkWorkflowButtonBoxWidget(ctkWorkflow* newWorkflow, QWidget* newParent = 0);
 
-   explicit ctkWorkflowButtonBoxWidget(QWidget* newParent = 0);
 
-   virtual ~ctkWorkflowButtonBoxWidget();
 
-   /// Get the workflow associated with the widget
 
-   ctkWorkflow* workflow()const;
 
-   /// Set the workflow associated with the widget
 
-   void setWorkflow(ctkWorkflow * newWorkflow);
 
-   /// Get the 'back' button
 
-   Q_INVOKABLE ctkPushButton* backButton()const;
 
-   /// Return the backButtonFormat property value.
 
-   /// \sa backButtonFormat, setBackButtonFormat()
 
-   QString backButtonFormat()const;
 
-   /// Set the backButtonFormat property value.
 
-   /// \sa backButtonFormat, backButtonFormat()
 
-   void setBackButtonFormat(const QString& format);
 
-   /// Get the 'next' button
 
-   Q_INVOKABLE ctkPushButton* nextButton()const;
 
-   /// Return the nextButtonFormat property value.
 
-   /// \sa nextButtonFormat, setNextButtonFormat()
 
-   QString nextButtonFormat()const;
 
-   /// Set the nextButtonFormat property value.
 
-   /// \sa nextButtonFormat, nextButtonFormat()
 
-   void setNextButtonFormat(const QString& format);
 
-   /// Return the goToButtonsFormat property value.
 
-   /// \sa goToButtonsFormat, setGoToButtonsFormat()
 
-   QString goToButtonsFormat()const;
 
-   /// Set the goToButtonsFormat property value.
 
-   /// \sa goToButtonsFormat, goToButtonsFormat()
 
-   void setGoToButtonsFormat(const QString& format);
 
-   /// Get a list of the 'goTo' buttons
 
-   QList<ctkPushButton*> goToButtons()const;
 
-   /// Sets the direction of the QBoxLayout that manages this widget (default is
 
-   /// QBoxLayout::LeftToRight)
 
-   QBoxLayout::Direction direction()const;
 
-   void setDirection(const QBoxLayout::Direction& newDirection);
 
-   /// Return the hideGoToButtons property value.
 
-   /// \sa hideGoToButtons
 
-   bool hideGoToButtons()const;
 
-   /// Set the hideGoToButtons property value.
 
-   /// \sa hideGoToButtons
 
-   void setHideGoToButtons(bool hide);
 
-   /// If true, invalid buttons are hidden.  If false, invalid buttons are shown but disabled.
 
-   /// Default is false.
 
-   bool hideInvalidButtons()const;
 
-   void setHideInvalidButtons(bool newHide);
 
- public Q_SLOTS:
 
-   /// Updates the buttons to reflect the current status of the workflow, and should be called
 
-   /// whenever the workflow's current step has changed
 
-   virtual void updateButtons(ctkWorkflowStep* currentStep);
 
- protected Q_SLOTS:
 
-   /// is called when a 'goTo' button is clicked, and retrieves the corresponding goTo step's id to
 
-   /// send to the workflow
 
-   virtual void prepareGoToStep();
 
- protected:
 
-   QScopedPointer<ctkWorkflowButtonBoxWidgetPrivate> d_ptr;
 
- private:
 
-   Q_DECLARE_PRIVATE(ctkWorkflowButtonBoxWidget);
 
-   Q_DISABLE_COPY(ctkWorkflowButtonBoxWidget);
 
- };
 
- #endif
 
 
  |