summaryrefslogtreecommitdiffstats
path: root/krita/ui/kis_view.h
diff options
context:
space:
mode:
Diffstat (limited to 'krita/ui/kis_view.h')
-rw-r--r--krita/ui/kis_view.h664
1 files changed, 0 insertions, 664 deletions
diff --git a/krita/ui/kis_view.h b/krita/ui/kis_view.h
deleted file mode 100644
index 134d934a..00000000
--- a/krita/ui/kis_view.h
+++ /dev/null
@@ -1,664 +0,0 @@
-/*
- * Copyright (c) 1999 Matthias Elter <[email protected]>
- * 1999 Michael Koch <[email protected]>
- * 1999 Carsten Pfeiffer <[email protected]>
- * 2002 Patrick Julien <[email protected]>
- * 2004 Clarence Dang <[email protected]>
- *
- * 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.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KIS_VIEW_H_
-#define KIS_VIEW_H_
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <list>
-
-#include <tqdatetime.h>
-#include <tqpixmap.h>
-#include <tqstringlist.h>
-#include <tqtimer.h>
-
-#include <ksqueezedtextlabel.h>
-#include <kdebug.h>
-#include <kxmlguibuilder.h>
-#include <kxmlguiclient.h>
-#include <KoView.h>
-
-#include "kis_canvas_controller.h"
-#include "kis_canvas_subject.h"
-#include "kis_global.h"
-// #include "kis_debug_areas.h"
-#include "kis_types.h"
-#include "kis_profile.h"
-#include "kis_opengl_image_context.h"
-#include "kis_id.h"
-#include "koffice_export.h"
-#include "kis_color.h"
-#include "kis_input_device.h"
-
-class TQButton;
-class TQLabel;
-class TQPaintEvent;
-class TQScrollBar;
-class TQWidget;
-class TQPopup;
-class TQPopupMenu;
-
-class DCOPObject;
-class KAction;
-class KActionMenu;
-class KPrinter;
-class KToggleAction;
-class KToolBar;
-
-class KoPartSelectAction;
-class KoDocumentEntry;
-class KoIconItem;
-class KoTabBar;
-class KoPaletteManager;
-class KoGrayWidget;
-class KoHSVWidget;
-class KoRGBWidget;
-
-class KisBirdEyeBox;
-class KisBrush;
-class KisButtonPressEvent;
-class KisButtonReleaseEvent;
-class KisCanvas;
-class KisCanvasObserver;
-class KisCompositeOp;
-class KisControlFrame;
-class KisDoc;
-class KisDoubleClickEvent;
-class KisFilterManager;
-class KisFilterStrategy;
-class KisGradient;
-class KisGridManager;
-class KisPerspectiveGridManager;
-class KisLabelProgress;
-class KisLayerBox;
-class KisMoveEvent;
-class KisPaletteWidget;
-class KisPattern;
-class KisPoint;
-class KisRect;
-class KisResource;
-class KisResourceMediator;
-class KisRuler;
-class KisSelectionManager;
-class KoToolBox;
-class KisToolControllerInterface;
-class KisToolManager;
-class KisUndoAdapter;
-class KisFilterConfiguration;
-class KisPartLayerHandler;
-class KisPaintOpSettings;
-
-class KRITA_EXPORT KisView
- : public KoView,
- public KisCanvasSubject,
- public KXMLGUIBuilder,
- private KisCanvasController
-{
-
- Q_OBJECT
- TQ_OBJECT
-
- typedef KoView super;
-
- typedef std::list<KisCanvasObserver*> vKisCanvasObserver;
- typedef vKisCanvasObserver::iterator vKisCanvasObserver_it;
- typedef vKisCanvasObserver::const_iterator vKisCanvasObserver_cit;
-
-public:
- KisView(KisDoc *doc, KisUndoAdapter *adapter, TQWidget *tqparent = 0, const char *name = 0);
- virtual ~KisView();
-
-public: // KXMLGUIBuilder implementation
-
- virtual TQWidget *createContainer( TQWidget *tqparent, int index, const TQDomElement &element, int &id );
- virtual void removeContainer( TQWidget *container, TQWidget *tqparent, TQDomElement &element, int id );
-
-public: // KoView implementation
- virtual bool eventFilter(TQObject *o, TQEvent *e);
-
- virtual DCOPObject* dcopObject();
-
- virtual void print(KPrinter &printer);
- virtual void setupPrinter(KPrinter &printer);
-
- virtual void updateReadWrite(bool readwrite);
- virtual void guiActivateEvent(KParts::GUIActivateEvent *event);
-
- virtual int leftBorder() const;
- virtual int rightBorder() const;
- virtual int topBorder() const;
- virtual int bottomBorder() const;
-
- TQ_INT32 docWidth() const;
- TQ_INT32 docHeight() const;
-
- void updateStatusBarSelectionLabel();
-
- virtual TQPoint applyViewTransformations(const TQPoint& p) const;
- virtual TQPoint reverseViewTransformations( const TQPoint& p) const;
- virtual void canvasAddChild(KoViewChild *child);
-
-signals:
-
- void brushChanged(KisBrush * brush);
- void gradientChanged(KisGradient * gradient);
- void patternChanged(KisPattern * pattern);
- void paintopChanged(KisID paintop, const KisPaintOpSettings *paintopSettings);
- /**
- * Indicates when the current layer changed so that the current colorspace could have
- * changed.
- **/
- void currentColorSpaceChanged(KisColorSpace* cs);
- void cursorPosition(TQ_INT32 xpos, TQ_INT32 ypos);
-
- void sigFGTQColorChanged(const TQColor &);
- void sigBGTQColorChanged(const TQColor &);
-
- void sigInputDeviceChanged(const KisInputDevice& inputDevice);
-
- /*
- * Emitted whenever the zoom or scroll values change.
- */
- void viewTransformationsChanged();
-
-public slots:
-
- void slotSetFGColor(const KisColor& c);
- void slotSetBGColor(const KisColor& c);
-
- void rotateLayer180();
- void rotateLayerLeft90();
- void rotateLayerRight90();
- void mirrorLayerX();
- void mirrorLayerY();
- void scaleLayer(double sx, double sy, KisFilterStrategy *filterStrategy);
- void rotateLayer(double radians);
- void shearLayer(double angleX, double angleY);
-
- void slotCreateMask();
- void slotMaskFromSelection();
- void slotMaskToSelection();
- void slotApplyMask();
- void slotRemoveMask();
- void slotEditMask();
- void slotShowMask();
-
- void brushActivated(KisResource *brush);
- void patternActivated(KisResource *pattern);
- void gradientActivated(KisResource *gradient);
- void paintopActivated(const KisID & paintop, const KisPaintOpSettings *paintopSettings);
-
-
-public:
- virtual void mouseMoveEvent(TQMouseEvent *e);
-
- void resizeCurrentImage(TQ_INT32 w, TQ_INT32 h, bool cropLayers = false);
- void scaleCurrentImage(double sx, double sy, KisFilterStrategy *filterStrategy);
- void rotateCurrentImage(double radians);
- void shearCurrentImage(double angleX, double angleY);
-
- void insertPart(const TQRect& viewRect, const KoDocumentEntry& entry,
- KisGroupLayerSP tqparent, KisLayerSP above);
-
- /**
- * Import an image as a layer. If there is more than
- * one layer in the image, import all of them as separate
- * layers.
- *
- * @param url the url to the image file
- * @return the number of layers added
- */
- TQ_INT32 importImage(const KURL& url = KURL());
-protected:
-
- virtual void resizeEvent(TQResizeEvent*); // From TQWidget
- virtual void styleChange(TQStyle& oldStyle); // From TQWidget
- virtual void paletteChange(const TQPalette& oldPalette); // From TQWidget
- virtual void showEvent(TQShowEvent *);
-
-protected slots:
- virtual void slotChildActivated(bool a); // from KoView
-
-// -------------------------------------------------------------------------//
-// KisCanvasSubject implementation
-// -------------------------------------------------------------------------//
-public:
-
- KisCanvasSubject * canvasSubject() { return this; };
-
-private:
-
- virtual KisImageSP currentImg() const;
-
- virtual void attach(KisCanvasObserver *observer);
- virtual void detach(KisCanvasObserver *observer);
- virtual void notifyObservers();
-
- virtual KisColor bgColor() const;
- virtual void setBGColor(const KisColor& c);
-
- virtual KisColor fgColor() const;
- virtual void setFGColor(const KisColor& c);
-
- float HDRExposure() const;
- void setHDRExposure(float exposure);
-
- virtual KisBrush *currentBrush() const;
- virtual KisPattern *currentPattern() const;
- virtual KisGradient *currentGradient() const;
- virtual KisID currentPaintop() const;
- virtual const KisPaintOpSettings *currentPaintopSettings() const;
-
- virtual double zoomFactor() const;
-
- virtual KisUndoAdapter *undoAdapter() const;
-
- virtual KisCanvasController *canvasController() const;
- virtual KisToolControllerInterface *toolController() const;
-
- virtual KisProgressDisplayInterface *progressDisplay() const;
-
- virtual KisDoc * document() const;
-
- inline KisGridManager * gridManager() { return m_gridManager; }
- inline KisPerspectiveGridManager* perspectiveGridManager() { return m_perspectiveGridManager; }
-
- inline KisSelectionManager * selectionManager() { return m_selectionManager; }
-
- KoPaletteManager * paletteManager();
-
- KisProfile * monitorProfile();
-
-
-// -------------------------------------------------------------------------//
-// KisCanvasController implementation
-// -------------------------------------------------------------------------//
-
-public:
-
- KisCanvasController * getCanvasController() { return this; };
-
-
-private slots:
- virtual void updateCanvas();
-
- void updateStatusBarZoomLabel();
- void updateStatusBarProfileLabel();
-
-private:
- virtual KisCanvas *kiscanvas() const;
-
- virtual TQ_INT32 horzValue() const;
- virtual TQ_INT32 vertValue() const;
-
- virtual void scrollTo(TQ_INT32 x, TQ_INT32 y);
-
- virtual void updateCanvas(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
- virtual void updateCanvas(const TQRect& imageRect);
-
- virtual void zoomIn();
- virtual void zoomIn(TQ_INT32 x, TQ_INT32 y);
-
- virtual void zoomOut();
- virtual void zoomOut(TQ_INT32 x, TQ_INT32 y);
-
- virtual void zoomTo(TQ_INT32 x, TQ_INT32 y, TQ_INT32 w, TQ_INT32 h);
- virtual void zoomTo(const TQRect& r);
- virtual void zoomTo(const KisRect& r);
- virtual void zoomAroundPoint(double x, double y, double zf);
-
- virtual TQPoint viewToWindow(const TQPoint& pt);
- virtual TQPoint viewToWindow(const TQPoint& pt) const;
- virtual KisPoint viewToWindow(const KisPoint& pt);
- virtual TQRect viewToWindow(const TQRect& rc);
- virtual KisRect viewToWindow(const KisRect& rc);
- virtual void viewToWindow(TQ_INT32 *x, TQ_INT32 *y);
-
- virtual TQPoint windowToView(const TQPoint& pt);
- virtual TQPoint windowToView(const TQPoint& pt) const;
- virtual KisPoint windowToView(const KisPoint& pt);
- virtual TQRect windowToView(const TQRect& rc);
- virtual KisRect windowToView(const KisRect& rc);
- virtual void windowToView(TQ_INT32 *x, TQ_INT32 *y);
-
- virtual TQCursor setCanvasCursor(const TQCursor & cursor);
-
- void setInputDevice(KisInputDevice inputDevice);
- KisInputDevice currentInputDevice() const;
-
-// -------------------------------------------------------------------------//
-// KisView internals
-// -------------------------------------------------------------------------//
-
-private:
-
- void connectCurrentImg();
- void disconnectCurrentImg();
-// void eraseGuides();
-// void paintGuides();
-// void updateGuides();
-// void viewGuideLines();
-
- void imgUpdateGUI();
-
- void layerUpdateGUI(bool enable);
- void createLayerBox();
- void createDockers();
-
- void paintToolOverlay(const TQRegion& region);
-
- void paintTQPaintDeviceView(const TQRegion& canvasRegion);
- void paintOpenGLView(const TQRect& canvasRect);
-
- void updateTQPaintDeviceCanvas(const TQRect& imageRect);
- void updateOpenGLCanvas(const TQRect& imageRect);
-
- /**
- * Update the whole of the KisCanvas, including areas outside the image.
- */
- void refreshKisCanvas();
-
- void selectionDisplayToggled(bool displaySelection);
-
- bool activeLayerHasSelection();
-
- /**
- * Reset the monitor profile to the new settings.
- */
- void resetMonitorProfile();
-
- void setupActions();
- void setupCanvas();
- void setupRulers();
- void setupScrollBars();
- void setupStatusBar();
-
-
- KisFilterManager * filterManager() { return m_filterManager; }
- void setCurrentImage(KisImageSP image);
-
- /**
- * Returns the next zoom level when zooming in from the current level.
- */
- double nextZoomInLevel() const;
-
- /**
- * Returns the next zoom level when zooming out from the current level.
- */
- double nextZoomOutLevel() const;
-
- /**
- * Returns the next zoom level when zooming out from the given level.
- */
- double nextZoomOutLevel(double zoomLevel) const;
-
- /**
- * Returns the zoom level that fits the image to the canvas.
- */
- double fitToCanvasZoomLevel() const;
-
- /**
- * Set the zoom level on first creating the view.
- */
- void setInitialZoomLevel();
-
- void startInitialZoomTimerIfReady();
-
-private slots:
- void layersUpdated(); // Used in the channel separation to notify the view that we have added a few layers.
- void tqmaskUpdated(); // To update the enabled or disabled status of the tqmask entries
-
- void slotSetFGTQColor(const TQColor & c);
- void slotSetBGTQColor(const TQColor & c);
-
- void imgUpdated(TQRect rc);
- void slotOpenGLImageUpdated(TQRect rc);
-
- void imgResizeToActiveLayer();
-
- void canvasGotMoveEvent(KisMoveEvent *e);
- void canvasGotButtonPressEvent(KisButtonPressEvent *e);
- void canvasGotButtonReleaseEvent(KisButtonReleaseEvent *e);
- void canvasGotDoubleClickEvent(KisDoubleClickEvent *e);
- void canvasGotPaintEvent(TQPaintEvent *e);
- void canvasGotEnterEvent(TQEvent *e);
- void canvasGotLeaveEvent(TQEvent *e);
- void canvasGotMouseWheelEvent(TQWheelEvent *e);
- void canvasGotKeyPressEvent(TQKeyEvent*);
- void canvasGotKeyReleaseEvent(TQKeyEvent*);
- void canvasGotDragEnterEvent(TQDragEnterEvent*);
- void canvasGotDropEvent(TQDropEvent*);
-
- void reconnectAfterPartInsert();
-
- TQPoint mapToScreen(const TQPoint& pt);
- void slotImageProperties();
-
- void layerCompositeOp(const KisCompositeOp& compositeOp);
- void layerOpacity(int opacity, bool dontundo);
- void layerOpacityFinishedChanging(int previous, int opacity);
-
- void layerToggleVisible();
- void layerToggleLocked();
- void actLayerVisChanged(int show);
- void layerProperties();
- void showLayerProperties(KisLayerSP layer);
- void layerAdd();
- void addLayer(KisGroupLayerSP tqparent, KisLayerSP above);
- void addGroupLayer(KisGroupLayerSP tqparent, KisLayerSP above);
- void addPartLayer();
- void addPartLayer(KisGroupLayerSP tqparent, KisLayerSP above, const KoDocumentEntry& entry);
- void addAdjustmentLayer();
- void addAdjustmentLayer(KisGroupLayerSP tqparent, KisLayerSP above);
- void addAdjustmentLayer(KisGroupLayerSP tqparent, KisLayerSP above, const TQString & name, KisFilterConfiguration * filter, KisSelectionSP selection = 0);
- void layerRemove();
- void layerDuplicate();
- void layerRaise();
- void layerLower();
- void layerFront();
- void layerBack();
- void flattenImage();
- void mergeLayer();
- void saveLayerAsImage();
-
- void slotUpdateFullScreen(bool toggle);
- void showRuler();
-
- void slotZoomIn();
- void slotZoomOut();
- void slotActualPixels();
- void slotActualSize();
- void slotFitToCanvas();
-
- void slotImageSizeChanged(TQ_INT32 w, TQ_INT32 h);
-
- void scrollH(int value);
- void scrollV(int value);
-
- void slotInsertImageAsLayer();
- void profileChanged(KisProfile * profile);
-
- void slotAddPalette();
- void slotEditPalette();
-
- void preferences();
-
- void slotAutoScroll(const TQPoint &p);
-
- void handlePartLayerAdded(KisLayerSP layer);
-
- /// Is called when the file is loaded
- void slotLoadingFinished();
-
- void slotInitialZoomTimeout();
-
-private:
-
- bool m_panning;
-
- KisTool * m_oldTool;
-
- KisDoc *m_doc;
- KisCanvas *m_canvas;
- KisPartLayerHandler* m_partHandler;
-
- KisGridManager * m_gridManager;
- KisPerspectiveGridManager * m_perspectiveGridManager;
- KisSelectionManager * m_selectionManager;
- KisFilterManager * m_filterManager;
- KoPaletteManager * m_paletteManager;
- KisToolManager * m_toolManager;
- bool m_actLayerVis;
-
- // Fringe benefits
- KisRuler *m_hRuler;
- KisRuler *m_vRuler;
- TQ_INT32 m_rulerThickness;
- TQ_INT32 m_vScrollBarExtent;
- TQ_INT32 m_hScrollBarExtent;
-
- // Actions
- KAction *m_imgFlatten;
- KAction *m_imgMergeLayer;
- KAction *m_imgRename;
- KAction *m_imgResizeToLayer;
- KAction *m_imgScan;
-
- KoPartSelectAction * m_actionPartLayer;
- KAction * m_actionAdjustmentLayer;
- KAction *m_layerAdd;
- KAction *m_layerBottom;
- KAction *m_layerDup;
- KToggleAction *m_layerHide;
- KAction *m_layerLower;
- KAction *m_layerProperties;
- KAction *m_layerRaise;
- KAction *m_layerRm;
- KAction *m_layerSaveAs;
- KAction *m_layerTop;
-
- KAction *m_createMask;
- KAction *m_tqmaskFromSelection;
- KAction *m_tqmaskToSelection;
- KAction *m_applyMask;
- KAction *m_removeMask;
- KToggleAction *m_editMask;
- KToggleAction *m_showMask;
-
- KAction *m_zoomIn;
- KAction *m_zoomOut;
- KAction *m_actualPixels;
- KAction *m_actualSize;
- KAction *m_fitToCanvas;
-
- KAction *m_fullScreen;
- KAction *m_imgProperties;
-
- KToggleAction *m_RulerAction;
- KToggleAction *m_guideAction;
-
- DCOPObject *m_dcop;
-
- // Widgets
- TQScrollBar *m_hScroll; // XXX: the sizing of the scrollthumbs
- TQScrollBar *m_vScroll; // is not right yet.
- int m_scrollX;
- int m_scrollY;
- int m_canvasXOffset;
- int m_canvasYOffset;
-
- bool m_paintViewEnabled;
- bool m_guiActivateEventReceived;
- bool m_showEventReceived;
- bool m_imageLoaded;
-
- TQTimer m_initialZoomTimer;
-
-
-// KisGuideSP m_currentGuide;
-// TQPoint m_lastGuidePoint;
- KisUndoAdapter *m_adapter;
- vKisCanvasObserver m_observers;
- TQLabel *m_statusBarZoomLabel;
- KSqueezedTextLabel *m_statusBarSelectionLabel;
- KSqueezedTextLabel *m_statusBarProfileLabel;
- KisLabelProgress *m_progress;
-
-
- KisLayerBox *m_layerBox;
- KoToolBox * m_toolBox;
- KisControlFrame * m_brushesAndStuffToolBar;
-
- // Current colours, brushes, patterns etc.
-
- KisColor m_fg;
- KisColor m_bg;
-
- KisBrush *m_brush;
- KisPattern *m_pattern;
- KisGradient *m_gradient;
-
- KisID m_paintop;
- const KisPaintOpSettings *m_paintopSettings;
-
- TQTime m_tabletEventTimer;
- TQTabletEvent::TabletDevice m_lastTabletEventDevice;
-
- TQPixmap m_canvasPixmap;
- bool m_toolIsPainting;
-
-#ifdef HAVE_GL
- // OpenGL context for the current image, containing textures
- // shared between multiple views.
- KisOpenGLImageContextSP m_OpenGLImageContext;
-#endif
-
- // Monitorprofile for this view
- KisProfile * m_monitorProfile;
-
- float m_HDRExposure;
-
- // Currently active input device (mouse, stylus, eraser...)
- KisInputDevice m_inputDevice;
-
- KisBirdEyeBox * m_birdEyeBox;
- KoHSVWidget *m_hsvwidget;
- KoRGBWidget *m_rgbwidget;
- KoGrayWidget *m_graywidget;
- KisPaletteWidget *m_palettewidget;
- KisID m_currentColorChooserDisplay;
-
-private:
- KisImageSP m_image;
-
-protected:
-
- friend class KisSelectionManager;
- friend class KisFilterManager;
- friend class KisGridManager;
- friend class KisPerspectiveGridManager;
-};
-
-#endif // KIS_VIEW_H_