/*************************************************************************** kmag.h - description ------------------- begin : Mon Feb 12 23:45:41 EST 2001 copyright : (C) 2001 by Sarang Lakare email : sarang@users.sourceforge.net copyright : (C) 2003-2004 by Olaf Schmidt email : ojschmidt@kde.org ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KMAG_H #define KMAG_H #ifdef HAVE_CONFIG_H #include <config.h> #endif #include "kmagzoomview.h" #include <vector> // include files for TQt #include <tqstringlist.h> // include files for KDE #include <tdeapplication.h> #include <tdemainwindow.h> #include <kdockwidget.h> #include <tdeaction.h> #include <tdeaccel.h> #include <knuminput.h> /** * The base class for Kmag application windows. It sets up the main * window and reads the config file as well as providing a menubar, toolbar * and statusbar. An instance of KmagView creates your center view, which is connected * to the window's Doc object. * KmagApp reimplements the methods that TDEMainWindow provides for main window handling and supports * full session management as well as using TDEActions. * @see TDEMainWindow * @see TDEApplication * @see TDEConfig * * @author Source Framework Automatically Generated by KDevelop, (c) The KDevelop Team. * @version KDevelop version 1.2 code generation */ class KmagApp : public TDEMainWindow { Q_OBJECT public: /** * Construtor of KmagApp, calls all init functions to create the application. */ KmagApp(TQWidget* parent=0, const char* name=0); /// Default destructor ~KmagApp(); protected: /** save general Options like all bar positions and status as well as the geometry and the recent file list to the configuration * file */ void saveOptions(); /** read general Options again and initialize all variables like the recent file list */ void readOptions(); /** initializes the TDEActions of the application */ void initActions(); /** creates the centerwidget of the KTMainWindow instance and sets it as the view */ void initView(); /// Initialize all connections void initConnections(); virtual bool queryClose(); /** queryExit is called by KTMainWindow when the last window of the application is going to be closed during the closeEvent(). * Against the default implementation that just returns true, this calls saveOptions() to save the settings of the last window's * properties. * @see KTMainWindow#queryExit * @see KTMainWindow#closeEvent */ virtual bool queryExit(); public slots: /** open a new application window by creating a new instance of KmagApp */ void slotFileNewWindow(); /** print the actual file */ void slotFilePrint(); void slotFileQuit(); /** put the marked text/object into the clipboard */ void copyToClipBoard(); /// Toggle the refreshing of the window void slotToggleRefresh(); void slotModeFollowMouse(); void slotModeSelWin(); void slotModeEdgeTop(); void slotModeEdgeLeft(); void slotModeEdgeRight(); void slotModeEdgeBottom(); /// Zooms in void zoomIn(); /// Zooms out void zoomOut(); /// Save the zoomed image void saveZoomPixmap(); /// Sets the zoom index to index void setZoomIndex(int index); /// Sets the invertation mode void slotToggleInvert(); /// Sets the rotation index to index void setRotationIndex(int index); /// Sets the fps index to index void setFPSIndex(int index); /// Shows/hides the mouse cursor void showMouseCursor(bool show); void slotShowMenu(); void slotShowMainToolBar(); void slotShowViewToolBar(); void slotShowSettingsToolBar(); void slotToggleHideCursor(); /// Opens shortcut key configuration dialogue void slotConfKeys(); /// Called when toolbar config is updated void slotNewToolbarConfig(); /// Called when "configure toolbar" is clicked void slotEditToolbars(); void contextMenu(TQPoint pos); signals: /// This signal is raised whenever the index into the zoom array is changed void updateZoomIndex(int); /// This signal is raised whenever the zoom value changes void updateZoomValue(float); /// This signal is raised whenever the index into the rotation array is changed void updateRotationIndex(int); /// This signal is raised whenever the rotation value changes void updateRotationValue(int); /// This signal is raised whenever the index into the fps array is changed void updateFPSIndex(int); /// This signal is raised whenever the fps value changes void updateFPSValue(float); private: void setEdgeMode (TDEToggleAction *mode); void unsetEdgeMode (TDEToggleAction *mode); int edgesize; /// the configuration object of the application TDEConfig *config; // TDEAction pointers to enable/disable actions TDEAction *fileNewWindow, *m_pSnapshot, *m_pCopy, *m_keyConf, *m_toolConf; TDEAction *m_pPrint; TDEAction *m_pZoomIn; TDEAction *m_pZoomOut; TDEAction *m_pQuit; TDEAction *refreshSwitch; TDEToggleAction *m_pInvert, *m_pShowMenu, *m_pShowMainToolBar, *m_pShowViewToolBar, *m_pShowSettingsToolBar; TDESelectAction *m_pZoomBox, *m_pRotationBox, *m_pFPSBox; /// zoom slider KIntNumInput *m_zoomSlider; /// Current index into the zoomArray unsigned int m_zoomIndex; /// Current index into the rotationArray unsigned int m_rotationIndex; /// Current index into the fpsArray unsigned int m_fpsIndex; TQStringList zoomArrayString; std::vector<float> zoomArray; TQStringList rotationArrayString; std::vector<int> rotationArray; TQStringList fpsArrayString; std::vector<float> fpsArray; KMagZoomView* m_zoomView; TDEToggleAction *m_hideCursor; TDERadioAction *m_modeFollowMouse, *m_modeSelWin; TDERadioAction *m_modeEdgeTop, *m_modeEdgeLeft, *m_modeEdgeRight, *m_modeEdgeBottom; /// Stores the non-zero cursor type to be used unsigned int m_mouseCursorType; unsigned int m_defaultMouseCursorType; }; #endif // KMAG_H