diff options
Diffstat (limited to 'karbon/karbon_view.h')
-rw-r--r-- | karbon/karbon_view.h | 284 |
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 + |