26#include <com/sun/star/ui/dialogs/WizardTravelType.hpp>
34 using css::uno::Reference;
35 using css::uno::Exception;
36 using css::uno::Sequence;
37 using css::ui::dialogs::XWizardController;
38 using css::ui::dialogs::XWizardPage;
40 namespace WizardTravelType = css::ui::dialogs::WizardTravelType;
46 sal_Int16 lcl_determineFirstPageID(
const Sequence< Sequence< sal_Int16 > >& i_rPaths )
48 ENSURE_OR_THROW( i_rPaths.hasElements() && i_rPaths[0].hasElements(),
"illegal paths" );
49 return i_rPaths[0][0];
55 const Sequence< Sequence< sal_Int16 > >& i_rPaths)
57 ,m_xController( i_rController )
58 ,m_nFirstPageID( lcl_determineFirstPageID( i_rPaths ) )
63 for ( sal_Int32
i=0;
i<i_rPaths.getLength(); ++
i )
65 const Sequence< sal_Int16 >& rPath( i_rPaths[
i] );
67 std::transform(rPath.begin(), rPath.end(), aPath.begin(),
68 [
this](
const sal_Int16
nPageId) -> WizardPath::value_type { return impl_pageIdToState(nPageId); });
101 return WizardTravelType::FORWARD;
104 return WizardTravelType::BACKWARD;
107 return WizardTravelType::FINISH;
112 OSL_FAIL(
"WizardShell::convertCommitReasonToTravelType: unsupported CommitPageReason!" );
113 return WizardTravelType::FINISH;
169 ENSURE_OR_RETURN( pController,
"WizardShell::getCurrentWizardPage: invalid page/controller!",
nullptr );
171 return pController->getWizardPage();
185 :
BuilderPage(pParent, pController,
"svt/ui/emptypage.ui",
"EmptyPage")
200 OUString sIdent(OUString::number(
nPageId));
203 auto xPage = std::make_unique<EmptyPage>(pPageContainer,
this);
204 auto pController = std::make_shared<WizardPageController>(xPage->GetContainer(),
m_xController,
nPageId);
228 return OUString::number(i_nState);
virtual bool leaveState(WizardState i_nState) override
WizardState impl_pageIdToState(const sal_Int16 i_nPageId) const
css::uno::Reference< css::ui::dialogs::XWizardPage > getCurrentWizardPage() const
virtual vcl::IWizardPageController * getPageController(BuilderPage *pCurrentPage) const override
virtual std::unique_ptr< BuilderPage > createPage(WizardState i_nState) override
virtual OUString getStateDisplayName(WizardState i_nState) const override
const css::uno::Reference< css::ui::dialogs::XWizardController > m_xController
virtual WizardState getStateFromPageIdent(const OUString &rIdent) const override
virtual bool onFinish() override
Page2ControllerMap m_aPageControllers
virtual OUString getPageIdentForState(WizardState nState) const override
sal_Int16 impl_stateToPageId(const WizardState i_nState) const
PWizardPageController impl_getController(BuilderPage *i_pPage) const
virtual void enterState(WizardState i_nState) override
WizardShell(weld::Window *pParent, const css::uno::Reference< css::ui::dialogs::XWizardController > &i_rController, const css::uno::Sequence< css::uno::Sequence< sal_Int16 > > &i_rPaths)
virtual short run() override
void enablePage(const sal_Int16 i_PageID, const bool i_Enable)
static sal_Int16 convertCommitReasonToTravelType(const CommitPageReason i_eReason)
virtual bool canAdvance() const override
void declarePath(RoadmapWizardTypes::PathId _nPathId, const RoadmapWizardTypes::WizardPath &_lWizardStates)
virtual void enterState(WizardTypes::WizardState nState) override
virtual bool canAdvance() const override
void enableState(WizardTypes::WizardState nState, bool _bEnable=true)
virtual bool leaveState(WizardTypes::WizardState nState)
void enableAutomaticNextButtonState()
virtual void ActivatePage()
BuilderPage * GetOrCreatePage(const WizardTypes::WizardState i_nState)
WizardTypes::WizardState getCurrentState() const
BuilderPage * GetPage(WizardTypes::WizardState eState) const
std::unique_ptr< weld::Assistant > m_xAssistant
#define ENSURE_OR_THROW(c, m)
#define ENSURE_OR_RETURN(c, m, r)
#define DBG_UNHANDLED_EXCEPTION(...)
std::shared_ptr< WizardPageController > PWizardPageController
::std::vector< WizardTypes::WizardState > WizardPath
Reference< XNameAccess > m_xContainer