1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
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/.
12 #include <vcl/ctrl.hxx>
13 #include <vcl/weld.hxx>
23 * This button is shown when the cursor is on a form field with drop-down capability.
25 class FormFieldButton
: public Control
28 FormFieldButton(SwEditWin
* pEditWin
, sw::mark::Fieldmark
& rFieldMark
);
29 virtual ~FormFieldButton() override
;
30 virtual void dispose() override
;
32 void CalcPosAndSize(const SwRect
& rPortionPaintArea
);
34 virtual void MouseButtonDown(const MouseEvent
& rMEvt
) override
;
35 DECL_LINK(FieldPopupModeEndHdl
, weld::Popover
&, void);
37 virtual void Paint(vcl::RenderContext
& rRenderContext
, const tools::Rectangle
& rRect
) override
;
38 virtual WindowHitTest
ImplHitTest(const Point
& rFramePos
) override
;
40 virtual void LaunchPopup();
41 virtual void DestroyPopup();
44 tools::Rectangle m_aFieldFramePixel
;
47 sw::mark::Fieldmark
& m_rFieldmark
;
48 std::unique_ptr
<weld::Builder
> m_xFieldPopupBuilder
;
49 std::unique_ptr
<weld::Popover
> m_xFieldPopup
;
52 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */