summaryrefslogtreecommitdiffstats
path: root/kmag/kmag.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmag/kmag.h')
-rw-r--r--kmag/kmag.h237
1 files changed, 237 insertions, 0 deletions
diff --git a/kmag/kmag.h b/kmag/kmag.h
new file mode 100644
index 0000000..bfd2e31
--- /dev/null
+++ b/kmag/kmag.h
@@ -0,0 +1,237 @@
+/***************************************************************************
+ 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 Qt
+#include <qstringlist.h>
+
+// include files for KDE
+#include <kapplication.h>
+#include <kmainwindow.h>
+#include <kdockwidget.h>
+#include <kaction.h>
+#include <kaccel.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 KMainWindow provides for main window handling and supports
+ * full session management as well as using KActions.
+ * @see KMainWindow
+ * @see KApplication
+ * @see KConfig
+ *
+ * @author Source Framework Automatically Generated by KDevelop, (c) The KDevelop Team.
+ * @version KDevelop version 1.2 code generation
+ */
+class KmagApp : public KMainWindow
+{
+ Q_OBJECT
+
+ public:
+ /**
+ * Construtor of KmagApp, calls all init functions to create the application.
+ */
+ KmagApp(QWidget* 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 KActions 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(QPoint 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 (KToggleAction *mode);
+ void unsetEdgeMode (KToggleAction *mode);
+
+ int edgesize;
+
+ /// the configuration object of the application
+ KConfig *config;
+
+ // KAction pointers to enable/disable actions
+ KAction *fileNewWindow, *m_pSnapshot, *m_pCopy, *m_keyConf, *m_toolConf;
+ KAction *m_pPrint;
+ KAction *m_pZoomIn;
+ KAction *m_pZoomOut;
+ KAction *m_pQuit;
+ KAction *refreshSwitch;
+ KToggleAction *m_pInvert, *m_pShowMenu, *m_pShowMainToolBar, *m_pShowViewToolBar, *m_pShowSettingsToolBar;
+ KSelectAction *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;
+
+ QStringList zoomArrayString;
+ std::vector<float> zoomArray;
+
+ QStringList rotationArrayString;
+ std::vector<int> rotationArray;
+
+ QStringList fpsArrayString;
+ std::vector<float> fpsArray;
+
+ KMagZoomView* m_zoomView;
+ KToggleAction *m_hideCursor;
+ KRadioAction *m_modeFollowMouse, *m_modeSelWin;
+ KRadioAction *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