diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-01-31 09:57:37 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-01-31 21:21:37 +0000 |
commit | 344a1abd2f28f4556746f72a06358a08dd23abbe (patch) | |
tree | 299581c3fe10457dbb9809e74a0f1f491e0be40a /cui/source/inc/cuigrfflt.hxx | |
parent | GraphicFilterDialog->oldGraphicFilterDialog (diff) | |
download | core-344a1abd2f28f4556746f72a06358a08dd23abbe.tar.gz core-344a1abd2f28f4556746f72a06358a08dd23abbe.zip |
introduce a layout aware GraphicFilterDialog
Change-Id: I932e4be6b7f4a2717748de561c424302ef429d63
Diffstat (limited to 'cui/source/inc/cuigrfflt.hxx')
-rw-r--r-- | cui/source/inc/cuigrfflt.hxx | 62 |
1 files changed, 58 insertions, 4 deletions
diff --git a/cui/source/inc/cuigrfflt.hxx b/cui/source/inc/cuigrfflt.hxx index b4fcfac12fa1..04d8da269bd7 100644 --- a/cui/source/inc/cuigrfflt.hxx +++ b/cui/source/inc/cuigrfflt.hxx @@ -32,10 +32,6 @@ #include <svx/dlgctrl.hxx> #include <svx/rectenum.hxx> -// ----------------------- -// - oldGraphicFilterDialog - -// ----------------------- - class oldGraphicFilterDialog : public ModalDialog { private: @@ -84,6 +80,64 @@ public: virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) = 0; }; +class GraphicFilterDialog : public ModalDialog +{ +private: + + class PreviewWindow : public Control + { + private: + const Graphic* mpOrigGraphic; + Graphic maScaledOrig; + Graphic maPreview; + double mfScaleX; + double mfScaleY; + + virtual void Paint(const Rectangle& rRect); + virtual void Resize(); + virtual Size GetOptimalSize() const; + + void ScaleImageToFit(); + + public: + + PreviewWindow(Window* pParent, WinBits nStyle); + void init(const Graphic *pOrigGraphic) + { + mpOrigGraphic = pOrigGraphic; + ScaleImageToFit(); + } + + void SetPreview(const Graphic& rGraphic); + const Graphic& GetScaledOriginal() const { return maScaledOrig; } + double GetScaleX() const { return mfScaleX; } + double GetScaleY() const { return mfScaleY; } + }; + +private: + + Timer maTimer; + Link maModifyHdl; + Size maSizePixel; + bool bIsBitmap; + + DECL_LINK(ImplPreviewTimeoutHdl, void *); + DECL_LINK( ImplModifyHdl, void* p ); + +protected: + PreviewWindow* mpPreview; + + const Link& GetModifyHdl() const { return maModifyHdl; } + const Size& GetGraphicSizePixel() const { return maSizePixel; } + +public: + + GraphicFilterDialog(Window* pParent, const OString& rID, const OUString& rUIXMLDescription, const Graphic& rGraphic); + + virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) = 0; +}; + + // ------------------------- // - GraphicFilterSmooth - // ------------------------- |