diff options
Diffstat (limited to 'sdext/source/minimizer/optimizerdialog.hxx')
-rw-r--r-- | sdext/source/minimizer/optimizerdialog.hxx | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/sdext/source/minimizer/optimizerdialog.hxx b/sdext/source/minimizer/optimizerdialog.hxx new file mode 100644 index 000000000..4ea28eb75 --- /dev/null +++ b/sdext/source/minimizer/optimizerdialog.hxx @@ -0,0 +1,203 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you 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 . + */ + +#ifndef INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX +#define INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX +#include <vector> +#include "unodialog.hxx" +#include "optimizationstats.hxx" +#include "configurationaccess.hxx" +#include <com/sun/star/awt/XItemListener.hpp> +#include <com/sun/star/awt/XSpinListener.hpp> +#include <com/sun/star/awt/XTextListener.hpp> +#include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/frame/XDispatch.hpp> +#include <cppuhelper/implbase.hxx> + +#define MAX_STEP 4 +#define OD_DIALOG_WIDTH 330 +#define DIALOG_HEIGHT 210 +#define BUTTON_WIDTH 50 +#define BUTTON_HEIGHT 14 +#define BUTTON_POS_Y DIALOG_HEIGHT - BUTTON_HEIGHT - 6 + +#define PAGE_POS_X 91 +#define PAGE_POS_Y 8 +#define PAGE_WIDTH OD_DIALOG_WIDTH - PAGE_POS_X + +#define ITEM_ID_INTRODUCTION 0 +#define ITEM_ID_SLIDES 1 +#define ITEM_ID_GRAPHIC_OPTIMIZATION 2 +#define ITEM_ID_OLE_OPTIMIZATION 3 +#define ITEM_ID_SUMMARY 4 + +class OptimizerDialog : public UnoDialog, public ConfigurationAccess +{ +public: + + OptimizerDialog( const css::uno::Reference< css::uno::XComponentContext >& rxContext, css::uno::Reference< css::frame::XFrame > const & rxFrame, + css::uno::Reference< css::frame::XDispatch > const & rxStatusDispatcher ); + ~OptimizerDialog(); + + void execute(); + + sal_Int16 mnCurrentStep; + sal_Int16 mnTabIndex; + bool mbIsReadonly; + +private: + css::uno::Reference< css::frame::XFrame > mxFrame; + + css::uno::Reference< css::uno::XInterface > mxRoadmapControl; + css::uno::Reference< css::uno::XInterface > mxRoadmapControlModel; + + css::uno::Reference< css::awt::XItemListener > mxItemListener; + css::uno::Reference< css::awt::XActionListener > mxActionListener; + css::uno::Reference< css::awt::XActionListener > mxActionListenerListBox0Pg0; + css::uno::Reference< css::awt::XTextListener > mxTextListenerFormattedField0Pg1; + css::uno::Reference< css::awt::XTextListener > mxTextListenerComboBox0Pg1; + css::uno::Reference< css::awt::XSpinListener > mxSpinListenerFormattedField0Pg1; + css::uno::Reference< css::frame::XDispatch > mxStatusDispatcher; + + std::vector< std::vector< OUString > > maControlPages; + + void InitDialog(); + void InitRoadmap(); + void InitNavigationBar(); + void InitPage0(); + void InitPage1(); + void InitPage2(); + void InitPage3(); + void InitPage4(); + void UpdateControlStatesPage0(); + void UpdateControlStatesPage1(); + void UpdateControlStatesPage2(); + void UpdateControlStatesPage3(); + void UpdateControlStatesPage4(); + + void ActivatePage( sal_Int16 nStep ); + void DeactivatePage( sal_Int16 nStep ); + void InsertRoadmapItem( const sal_Int32 nIndex, const OUString& rLabel, const sal_Int32 nItemID ); + +public: + + OptimizationStats maStats; + + void UpdateStatus( const css::uno::Sequence< css::beans::PropertyValue >& rStatus ); + + // the ConfigurationAccess is updated to actual control settings + void UpdateConfiguration(); + + void EnablePage( sal_Int16 nStep ); + void DisablePage( sal_Int16 nStep ); + + void SwitchPage( sal_Int16 nNewStep ); + void UpdateControlStates( sal_Int16 nStep = -1 ); + + OUString GetSelectedString( OUString const & token ); + css::uno::Reference< css::frame::XDispatch >& GetStatusDispatcher() { return mxStatusDispatcher; }; + css::uno::Reference< css::frame::XFrame>& GetFrame() { return mxFrame; }; + const css::uno::Reference< css::uno::XComponentContext >& GetComponentContext() const { return UnoDialog::mxContext; }; +}; + + +class ItemListener : public ::cppu::WeakImplHelper< css::awt::XItemListener > +{ +public: + explicit ItemListener( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL itemStateChanged( const css::awt::ItemEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + + +class ActionListener : public ::cppu::WeakImplHelper< css::awt::XActionListener > +{ +public: + explicit ActionListener( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + + +class ActionListenerListBox0Pg0 : public ::cppu::WeakImplHelper< css::awt::XActionListener > +{ +public: + explicit ActionListenerListBox0Pg0( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL actionPerformed( const css::awt::ActionEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + + +class TextListenerFormattedField0Pg1 : public ::cppu::WeakImplHelper< css::awt::XTextListener > +{ +public: + explicit TextListenerFormattedField0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL textChanged( const css::awt::TextEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + + +class TextListenerComboBox0Pg1 : public ::cppu::WeakImplHelper< css::awt::XTextListener > +{ +public: + explicit TextListenerComboBox0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL textChanged( const css::awt::TextEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + + +class SpinListenerFormattedField0Pg1 : public ::cppu::WeakImplHelper< css::awt::XSpinListener > +{ +public: + explicit SpinListenerFormattedField0Pg1( OptimizerDialog& rOptimizerDialog ) : mrOptimizerDialog( rOptimizerDialog ){} + + virtual void SAL_CALL up( const css::awt::SpinEvent& Event ) override; + virtual void SAL_CALL down( const css::awt::SpinEvent& Event ) override; + virtual void SAL_CALL first( const css::awt::SpinEvent& Event ) override; + virtual void SAL_CALL last( const css::awt::SpinEvent& Event ) override; + virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override; +private: + + OptimizerDialog& mrOptimizerDialog; +}; + +#endif // INCLUDED_SDEXT_SOURCE_MINIMIZER_OPTIMIZERDIALOG_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |