/koffice-trinity-20100511/karbon/karbon_view.h
C Header | 284 lines | 191 code | 63 blank | 30 comment | 0 complexity | 0b68bd69c350535288931ed1bea76cd4 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, LGPL-2.1
- /* 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