29 #include <osl/diagnose.h>
34 : mpOrigGraphic(nullptr)
42 CustomWidgetController::SetDrawingArea(pDrawingArea);
51 rRenderContext.
Erase();
58 const Point aGraphicPosition((aOutputSize.
Width() - aGraphicSize.
Width() ) >> 1,
65 const Point aGraphicPosition((aOutputSize.
Width() - aGraphicSize.Width()) >> 1,
66 (aOutputSize.
Height() - aGraphicSize.Height()) >> 1);
67 maPreview.
Draw(&rRenderContext, aGraphicPosition, aGraphicSize);
91 const double fGrfWH =
static_cast<double>(aGrfSize.
Width()) / aGrfSize.
Height();
92 const double fPreWH =
static_cast<double>(aPreviewSize.
Width()) / aPreviewSize.
Height();
96 aGrfSize.
setWidth( static_cast<tools::Long>( aPreviewSize.
Height() * fGrfWH ) );
102 aGrfSize.
setHeight( static_cast<tools::Long>( aPreviewSize.
Width() / fGrfWH ) );
112 if( aBmpEx.Scale( aGrfSize ) )
127 const OUString& rUIXMLDescription,
const OString& rID,
129 : GenericDialogController(pParent, rUIXMLDescription, rID)
131 , mxPreview(new
weld::CustomWeld(*m_xBuilder,
"preview", maPreview))
144 maPreview.SetPreview(GetFilteredGraphic(maPreview.GetScaledOriginal(),
145 maPreview.GetScaleX(), maPreview.GetScaleY()));
158 sal_uInt16 nTileWidth, sal_uInt16 nTileHeight,
bool bEnhanceEdges)
160 , mxMtrWidth(m_xBuilder->weld_metric_spin_button(
"width",
FieldUnit::
PIXEL))
161 , mxMtrHeight(m_xBuilder->weld_metric_spin_button(
"height",
FieldUnit::
PIXEL))
162 , mxCbxEdges(m_xBuilder->weld_check_button(
"edges"))
164 mxMtrWidth->set_value(nTileWidth, FieldUnit::PIXEL);
168 mxMtrHeight->set_value(nTileHeight, FieldUnit::PIXEL);
180 GetModifyHdl().Call(
nullptr);
185 GetModifyHdl().Call(
nullptr);
189 double fScaleX,
double fScaleY )
227 , mxMtrRadius(m_xBuilder->weld_spin_button(
"radius"))
236 GetModifyHdl().Call(
nullptr);
269 , mxMtrThreshold(m_xBuilder->weld_metric_spin_button(
"value",
FieldUnit::
PERCENT))
270 , mxCbxInvert(m_xBuilder->weld_check_button(
"invert"))
281 GetModifyHdl().Call(
nullptr);
286 GetModifyHdl().Call(
nullptr);
323 sal_uInt16 nSepiaPercent)
325 , mxMtrSepia(m_xBuilder->weld_metric_spin_button(
"value",
FieldUnit::
PERCENT))
327 mxMtrSepia->set_value(nSepiaPercent, FieldUnit::PERCENT);
333 GetModifyHdl().Call(
nullptr);
339 sal_uInt16 nSepiaPct = sal::static_int_cast< sal_uInt16 >(
mxMtrSepia->get_value(FieldUnit::PERCENT));
360 sal_uInt16 nPosterCount)
362 , mxNumPoster(m_xBuilder->weld_spin_button(
"value"))
371 GetModifyHdl().Call(
nullptr);
377 const sal_uInt16 nPosterCount =
static_cast<sal_uInt16
>(
mxNumPoster->get_value());
383 if( aAnim.ReduceColors( nPosterCount ) )
419 , mxCtlLight(new
weld::CustomWeld(*m_xBuilder,
"lightsource", maCtlLight))
433 sal_uInt16 nAzim, nElev;
437 default: OSL_FAIL(
"svx::GraphicFilterEmboss::GetFilteredGraphic(), unknown Reference Point!" );
439 case RectPoint::LT: nAzim = 4500; nElev = 4500;
break;
440 case RectPoint::MT: nAzim = 9000; nElev = 4500;
break;
441 case RectPoint::RT: nAzim = 13500; nElev = 4500;
break;
442 case RectPoint::LM: nAzim = 0; nElev = 4500;
break;
443 case RectPoint::MM: nAzim = 0; nElev = 9000;
break;
444 case RectPoint::RM: nAzim = 18000; nElev = 4500;
break;
445 case RectPoint::LB: nAzim = 31500; nElev = 4500;
break;
446 case RectPoint::MB: nAzim = 27000; nElev = 4500;
break;
447 case RectPoint::RB: nAzim = 22500; nElev = 4500;
break;
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
#define LINK(Instance, Class, Member)
const Link< LinkParamNone *, void > & GetModifyHdl() const
void SetActualRP(RectPoint eNewRP)
GraphicFilterEmboss(weld::Window *pParent, const Graphic &rGraphic, RectPoint eLightSource)
GraphicFilterPoster(weld::Window *pParent, const Graphic &rGraphic, sal_uInt16 nPosterColorCount)
void SetModifyHdl(const Link< LinkParamNone *, void > &rHdl)
void init(const Graphic *pOrigGraphic, const Link< LinkParamNone *, void > &rLink)
void setWidth(tools::Long nWidth)
GraphicFilterSolarize(weld::Window *pParent, const Graphic &rGraphic, sal_uInt8 nGreyThreshold, bool bInvert)
Size GetSizePixel(const OutputDevice *pRefDevice=nullptr) const
Link< LinkParamNone *, void > maModifyHdl
tools::Long getWidth() const
virtual void SetDrawingArea(weld::DrawingArea *pDrawingArea) override
static const AllSettings & GetSettings()
constexpr OUStringLiteral PERCENT(u"Percent")
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
std::unique_ptr< weld::MetricSpinButton > mxMtrHeight
RectPoint GetActualRP() const
virtual void Paint(vcl::RenderContext &rRenderContext, const ::tools::Rectangle &rRect) override
GraphicFilterSmooth(weld::Window *pParent, const Graphic &rGraphic, double nRadius)
std::unique_ptr< weld::MetricSpinButton > mxMtrWidth
GraphicFilterSepia(weld::Window *pParent, const Graphic &rGraphic, sal_uInt16 nSepiaPercent)
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
static bool Filter(BitmapEx &rBmpEx, BitmapFilter const &rFilter)
std::unique_ptr< weld::CheckButton > mxCbxEdges
virtual ~GraphicFilterEmboss() override
virtual OutputDevice & get_ref_device()=0
Link< LinkParamNone *, void > maModifyHdl
Animation GetAnimation() const
tools::Long getHeight() const
virtual void SetDrawingArea(weld::DrawingArea *pDrawingArea) override
void Draw(OutputDevice *pOutDev, const Point &rDestPt) const
IMPL_LINK_NOARG(GraphicFilterDialog, ImplPreviewTimeoutHdl, Timer *, void)
GraphicType GetType() const
tools::Long FRound(double fVal)
const Graphic * mpOrigGraphic
Link< ColorFieldControl &, void > maModifyHdl
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
tools::Long Width() const
Link< LinkParamNone *, void > maModifyHdl
BitmapEx GetBitmapEx(const GraphicConversionParameters &rParameters=GraphicConversionParameters()) const
void SetTimeout(sal_uInt64 nTimeoutMs)
void SetPreview(const Graphic &rGraphic)
sal_uInt16 GetBitCount() const
std::unique_ptr< weld::CheckButton > mxCbxInvert
Point LogicToPixel(const Point &rLogicPt) const
void StartAnimation(OutputDevice *pOutDev, const Point &rDestPt, const Size &rDestSize, tools::Long nExtraData=0, OutputDevice *pFirstFrameOutDev=nullptr)
std::unique_ptr< weld::MetricSpinButton > mxMtrSepia
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
std::unique_ptr< weld::SpinButton > mxMtrRadius
CuiGraphicPreviewWindow()
MapMode GetPrefMapMode() const
CuiGraphicPreviewWindow maPreview
virtual void SetDrawingArea(weld::DrawingArea *pDrawingArea) override
virtual bool MouseButtonDown(const MouseEvent &) override
GraphicFilterDialog(weld::Window *pParent, const OUString &rUIXMLDescription, const OString &rID, const Graphic &rGraphic)
const Size & GetGraphicSizePixel() const
tools::Long Height() const
void SetInvokeHandler(const Link< Timer *, void > &rLink)
virtual Graphic GetFilteredGraphic(const Graphic &rGraphic, double fScaleX, double fScaleY) override
virtual bool MouseButtonDown(const MouseEvent &rEvt) override
std::unique_ptr< weld::SpinButton > mxNumPoster
void setHeight(tools::Long nHeight)
virtual void Resize() override
bool IsEnhanceEdges() const
GraphicFilterMosaic(weld::Window *pParent, const Graphic &rGraphic, sal_uInt16 nTileWidth, sal_uInt16 nTileHeight, bool bEnhanceEdges)
std::unique_ptr< weld::MetricSpinButton > mxMtrThreshold
Size maOrigGraphicSizePixel