1 // SPDX-FileCopyrightText: 2002 Dominique Devriese <devriese@kde.org> 2 3 // SPDX-License-Identifier: GPL-2.0-or-later 4 5 #ifndef KIG_MODES_MACRO_H 6 #define KIG_MODES_MACRO_H 7 8 #include "base_mode.h" 9 10 #include <QObject> 11 12 class MacroWizard; 13 14 class DefineMacroMode 15 : public BaseMode 16 { 17 public: 18 explicit DefineMacroMode( KigPart& ); 19 ~DefineMacroMode(); 20 21 void dragRect( const QPoint& p, KigWidget& w ) override; 22 void leftClickedObject( ObjectHolder* o, const QPoint& p, 23 KigWidget& w, bool ctrlOrShiftDown ) override; 24 using BaseMode::midClicked; 25 using BaseMode::rightClicked; 26 using BaseMode::mouseMoved; 27 28 // called by MacroWizard class 29 void givenPageEntered(); 30 void finalPageEntered(); 31 bool validateObjects(); 32 void finishPressed(); 33 void cancelPressed(); 34 35 bool hasGivenArgs() const; 36 bool hasFinalArgs() const; 37 38 protected: 39 void rightClicked( const std::vector<ObjectHolder*>& oco, const QPoint& p, KigWidget& w ) override; 40 void midClicked( const QPoint& p, KigWidget& w ) override; 41 void mouseMoved( const std::vector<ObjectHolder*>& os, const QPoint& p, KigWidget& w, bool shiftpressed ) override; 42 void enableActions() override; 43 /** 44 * quit this mode... 45 */ 46 void abandonMacro(); 47 48 QPoint plc; 49 MacroWizard* mwizard; 50 51 // we can't use a set for this because the order is important 52 std::vector<ObjectHolder*> mgiven; 53 std::vector<ObjectHolder*> mfinal; 54 }; 55 56 #endif 57