1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
11 #ifndef INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX
12 #define INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX
14 #include <sal/config.h>
15 #include <svx/svxdllapi.h>
16 #include <editeng/editeng.hxx>
17 #include <editeng/editview.hxx>
18 #include <editeng/svxenum.hxx>
19 #include <vcl/customweld.hxx>
23 class ClassificationEditEngine
: public EditEngine
26 ClassificationEditEngine(SfxItemPool
* pItemPool
);
28 virtual OUString
CalcFieldValue(const SvxFieldItem
& rField
, sal_Int32 nPara
, sal_Int32 nPos
, boost::optional
<Color
>& rTxtColor
, boost::optional
<Color
>& rFldColor
) override
;
31 class SVX_DLLPUBLIC ClassificationEditView
: public weld::CustomWidgetController
,
32 public EditViewCallbacks
35 ClassificationEditView();
36 virtual void SetDrawingArea(weld::DrawingArea
* pDrawingArea
) override
;
37 virtual ~ClassificationEditView() override
;
39 void SetCharAttributes();
41 void InsertField(const SvxFieldItem
& rField
);
43 void InvertSelectionWeight();
45 void SetNumType(SvxNumType eNumType
);
47 std::unique_ptr
<ClassificationEditEngine
> pEdEngine
;
48 std::unique_ptr
<EditView
> pEdView
;
50 const ClassificationEditEngine
& getEditEngine()
55 void SetModifyHdl(const Link
<LinkParamNone
*,void>& rLink
)
57 pEdEngine
->SetModifyHdl(rLink
);
61 virtual void Paint( vcl::RenderContext
& rRenderContext
, const tools::Rectangle
& rRect
) override
;
62 virtual bool MouseMove( const MouseEvent
& rMEvt
) override
;
63 virtual bool MouseButtonDown( const MouseEvent
& rMEvt
) override
;
64 virtual bool MouseButtonUp( const MouseEvent
& rMEvt
) override
;
65 virtual bool KeyInput( const KeyEvent
& rKEvt
) override
;
66 virtual void GetFocus() override
;
67 virtual void Resize() override
;
70 virtual void EditViewInvalidate(const tools::Rectangle
& rRect
) const override
72 weld::DrawingArea
* pDrawingArea
= GetDrawingArea();
73 pDrawingArea
->queue_draw_area(rRect
.Left(), rRect
.Top(), rRect
.GetWidth(), rRect
.GetHeight());
76 virtual void EditViewSelectionChange() const override
78 weld::DrawingArea
* pDrawingArea
= GetDrawingArea();
79 pDrawingArea
->queue_draw();
82 virtual OutputDevice
& EditViewOutputDevice() const override
84 return GetDrawingArea()->get_ref_device();
88 } // end svx namespace
90 #endif // INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX
92 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */