summaryrefslogtreecommitdiffstats
path: root/karbon/karbon_view.h
diff options
context:
space:
mode:
Diffstat (limited to 'karbon/karbon_view.h')
-rw-r--r--karbon/karbon_view.h284
1 files changed, 284 insertions, 0 deletions
diff --git a/karbon/karbon_view.h b/karbon/karbon_view.h
new file mode 100644
index 00000000..2e1e4dc0
--- /dev/null
+++ b/karbon/karbon_view.h
@@ -0,0 +1,284 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001, 2002, 2003 The Karbon Developers
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef __KARBON_VIEW__
+#define __KARBON_VIEW__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <KoView.h>
+#include <KoPoint.h>
+#include <ksharedptr.h>
+#include <kxmlguibuilder.h>
+#include <kdualcolorbutton.h>
+#include <KoUnit.h>
+#include <koffice_export.h>
+class DCOPObject;
+class QLabel;
+
+class KAction;
+class KarbonPart;
+class KSelectAction;
+class KToggleAction;
+class KoContextHelpAction;
+class KoLineStyleAction;
+
+class KoUnitDoubleSpinComboBox;
+class KoRect;
+class VRuler;
+
+class KoPaletteManager;
+class VDocumentTab;
+class VLayersTab;
+class VHistoryTab;
+class VStrokeDocker;
+class VColorDocker;
+class VStyleDocker;
+class VTransformDocker;
+
+class VFill;
+class VPainterFactory;
+class VSelectToolBar;
+class VSmallPreview;
+class VStateButton;
+class VStroke;
+class VStrokeFillPreview;
+class VCanvas;
+class VStrokeFillPreview;
+class VTypeButtonBox;
+
+class VTool;
+class VToolBox;
+class VToolController;
+
+class VCommand;
+
+class KARBONCOMMON_EXPORT KarbonView : public KoView, public KXMLGUIBuilder
+{
+ Q_OBJECT
+
+public:
+ KarbonView( KarbonPart* part, QWidget* parent = 0L,
+ const char* name = 0L );
+ virtual ~KarbonView();
+
+ virtual DCOPObject* dcopObject();
+
+ KarbonPart *part() const { return m_part; }
+
+ virtual void paintEverything( QPainter &p, const QRect &rect, bool transparent = false );
+
+ bool mouseEvent( QMouseEvent* event, const KoPoint & );
+ bool keyEvent( QEvent* event );
+ void dropEvent( QDropEvent *e );
+
+ virtual QWidget* canvas() const;
+
+ VCanvas* canvasWidget() const { return m_canvas; }
+
+ virtual VPainterFactory* painterFactory() const { return m_painterFactory; }
+
+ KoPaletteManager* paletteManager() { return m_pPaletteManager; };
+
+ // printing support, override from KoView
+ virtual void setupPrinter( KPrinter &/*printer*/ ) {}
+ virtual void print( KPrinter& printer );
+
+ KoContextHelpAction* contextHelpAction() const { return m_contextHelpAction; }
+
+ void reorganizeGUI();
+ void setNumberOfRecentFiles( unsigned int number );
+ void setLineWidth( double val );
+
+ QLabel* statusMessage() const { return m_status; }
+
+ void setCursor( const QCursor & );
+
+ void repaintAll( const KoRect & );
+ void repaintAll( bool = true );
+
+ void setPos( const KoPoint& p );
+
+ void setViewportRect( const KoRect &rect );
+ void setZoomAt( double zoom, const KoPoint & = KoPoint() );
+
+ VToolController *toolController();
+
+ VStrokeFillPreview* strokeFillPreview()
+ { return m_strokeFillPreview; }
+
+public slots:
+ // editing:
+ void editCut();
+ void editCopy();
+ void editPaste();
+ void editSelectAll();
+ void editDeselectAll();
+ void editDeleteSelection();
+ void editPurgeHistory();
+
+ void selectionDuplicate();
+ void selectionBringToFront();
+ void selectionSendToBack();
+ void selectionMoveUp();
+ void selectionMoveDown();
+ void selectionAlignHorizontalLeft();
+ void selectionAlignHorizontalCenter();
+ void selectionAlignHorizontalRight();
+ void selectionAlignVerticalTop();
+ void selectionAlignVerticalCenter();
+ void selectionAlignVerticalBottom();
+
+ void selectionDistributeHorizontalCenter();
+ void selectionDistributeHorizontalGap();
+ void selectionDistributeHorizontalLeft();
+ void selectionDistributeHorizontalRight();
+ void selectionDistributeVerticalCenter();
+ void selectionDistributeVerticalGap();
+ void selectionDistributeVerticalBottom();
+ void selectionDistributeVerticalTop();
+
+ void fileImportGraphic();
+
+ void groupSelection();
+ void ungroupSelection();
+
+ void closePath();
+
+ //View:
+ void viewZoomIn();
+ void viewZoomOut();
+
+ void setUnit( KoUnit::Unit _unit );
+
+ void configure();
+
+ void pageLayout();
+
+ void setLineWidth();
+ void selectionChanged();
+
+ void slotActiveToolChanged( VTool * );
+
+ void togglePageMargins(bool);
+ void showRuler();
+ void showGrid();
+ bool showPageMargins();
+ void snapToGrid();
+
+ void showSelectionPopupMenu( const QPoint &pos );
+
+protected slots:
+ // Object related operations.
+
+ // View.
+ void viewModeChanged();
+ void zoomChanged( const KoPoint & = KoPoint() );
+ void setLineStyle( int );
+
+ // Toolbox dialogs.
+ void slotStrokeChanged( const VStroke& );
+ void slotFillChanged( const VFill & );
+
+ void canvasContentsMoving( int x, int y );
+ void commandExecuted( VCommand *command );
+ void strokeFillSelectionChanged( KDualColorButton::DualColor s );
+ void colorChanged( const QColor &c );
+signals:
+ void zoomChanged( double );
+ void selectionChange();
+ void pageLayoutChanged();
+
+protected:
+ virtual void updateReadWrite( bool ) {}
+ virtual void resizeEvent( QResizeEvent* event );
+
+ void createDocumentTabDock();
+ void createLayersTabDock();
+ void createHistoryTabDock();
+ void createStrokeDock();
+ void createColorDock();
+ void createTransformDock();
+ void createResourceDock();
+
+ //KXMLGUIBuilder
+ virtual QWidget *createContainer( QWidget *parent, int index, const QDomElement &element, int &id );
+ virtual void removeContainer( QWidget *container, QWidget *parent, QDomElement &element, int id );
+ void addSelectionToClipboard() const;
+
+private:
+ void initActions();
+ void updateRuler();
+
+ KarbonPart *m_part;
+ VCanvas *m_canvas;
+ VRuler *m_horizRuler;
+ VRuler *m_vertRuler;
+
+ VPainterFactory *m_painterFactory;
+ VStrokeFillPreview *m_strokeFillPreview;
+ VTypeButtonBox *m_typeButtonBox;
+
+ VToolBox *m_toolbox;
+
+ KAction *m_groupObjects;
+ KAction *m_ungroupObjects;
+
+ KAction *m_closePath;
+
+ // actions:
+ KSelectAction *m_zoomAction;
+ KSelectAction *m_viewAction;
+ KAction *m_configureAction;
+ KToggleAction *m_showRulerAction;
+ KToggleAction *m_showGridAction;
+ KToggleAction *m_snapGridAction;
+ KToggleAction *m_showPageMargins;
+ KoContextHelpAction *m_contextHelpAction;
+ KAction *m_deleteSelectionAction;
+ // line width
+ KoUnitDoubleSpinComboBox *m_setLineWidth;
+ KoLineStyleAction *m_lineStyleAction;
+
+ //dockers
+ KoPaletteManager *m_pPaletteManager;
+ VDocumentTab *m_DocumentTab;
+ VLayersTab *m_LayersTab;
+ VHistoryTab *m_HistoryTab;
+ VColorDocker *m_ColorManager;
+ VStrokeDocker *m_strokeDocker;
+ VStyleDocker *m_styleDocker;
+ VTransformDocker *m_TransformDocker;
+
+ VSelectToolBar *m_selectToolBar;
+
+ // dcop
+ DCOPObject *m_dcop;
+
+ //Status Bar
+ QLabel *m_status; // Ordinary status
+ QLabel *m_cursorCoords; // Cursor coordinates
+ VSmallPreview *m_smallPreview; // Stroke and Fill
+ VToolController *m_toolController;
+};
+
+#endif
+