1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #pragma once 21 22 #include "TimerTriggeredControllerLock.hxx" 23 #include "TabPageNotifiable.hxx" 24 25 #include <vcl/roadmapwizard.hxx> 26 27 #include <memory> 28 29 namespace com::sun::star::chart2 30 { 31 class XChartDocument; 32 } 33 namespace com::sun::star::uno 34 { 35 class XComponentContext; 36 } 37 38 using vcl::WizardTypes::WizardState; 39 using vcl::WizardTypes::CommitPageReason; 40 41 namespace chart 42 { 43 class DialogModel; 44 class ChartTypeTemplateProvider; 45 46 class CreationWizard : public vcl::RoadmapWizardMachine, public TabPageNotifiable 47 { 48 public: 49 CreationWizard(weld::Window* pParent, 50 const css::uno::Reference<css::frame::XModel>& xChartModel, 51 const css::uno::Reference<css::uno::XComponentContext>& xContext); 52 53 CreationWizard() = delete; 54 virtual ~CreationWizard() override; 55 56 // TabPageNotifiable 57 virtual void setInvalidPage(BuilderPage* pTabPage) override; 58 virtual void setValidPage(BuilderPage* pTabPage) override; 59 60 protected: 61 virtual bool leaveState(WizardState _nState) override; 62 virtual WizardState determineNextState(WizardState nCurrentState) const override; 63 virtual void enterState(WizardState nState) override; 64 65 virtual OUString getStateDisplayName(WizardState nState) const override; 66 67 private: 68 virtual std::unique_ptr<BuilderPage> createPage(WizardState nState) override; 69 70 css::uno::Reference<css::chart2::XChartDocument> m_xChartModel; 71 css::uno::Reference<css::uno::XComponentContext> m_xComponentContext; 72 ChartTypeTemplateProvider* m_pTemplateProvider; 73 std::unique_ptr<DialogModel> m_pDialogModel; 74 75 TimerTriggeredControllerLock m_aTimerTriggeredControllerLock; 76 77 bool m_bCanTravel; 78 }; 79 80 } //namespace chart 81 82 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 83