diff options
Diffstat (limited to 'include/sfx2/charwin.hxx')
-rw-r--r-- | include/sfx2/charwin.hxx | 69 |
1 files changed, 61 insertions, 8 deletions
diff --git a/include/sfx2/charwin.hxx b/include/sfx2/charwin.hxx index f8c01a141ecc..197812142f07 100644 --- a/include/sfx2/charwin.hxx +++ b/include/sfx2/charwin.hxx @@ -22,27 +22,78 @@ #include <sfx2/tbxctrl.hxx> #include <sfx2/dllapi.h> +#include <vcl/weld.hxx> -class SFX2_DLLPUBLIC SvxCharView : public Control +class SFX2_DLLPUBLIC SvxCharView { +private: + VclPtr<VirtualDevice> mxVirDev; + std::unique_ptr<weld::DrawingArea> mxDrawingArea; + Size m_aSize; + long mnY; + Point maPosition; + vcl::Font maFont; + bool maHasInsert; + OUString m_sText; + + Link<SvxCharView*, void> maMouseClickHdl; + Link<SvxCharView*, void> maClearClickHdl; + Link<SvxCharView*, void> maClearAllClickHdl; + + + DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void); + DECL_LINK(DoResize, const Size& rSize, void); + DECL_LINK(DoMouseButtonDown, const MouseEvent&, void); + DECL_LINK(DoKeyDown, const KeyEvent&, bool); public: - SvxCharView(vcl::Window* pParent); + SvxCharView(weld::Builder& rBuilder, const OString& rId, const VclPtr<VirtualDevice>& rVirDev); void SetFont( const vcl::Font& rFont ); - void SetText( const OUString& rText ) override; + vcl::Font GetFont() const { return maFont; } + void SetText( const OUString& rText ); + OUString GetText() const { return m_sText; } + void Show() { mxDrawingArea->show(); } + void Hide() { mxDrawingArea->hide(); } void SetHasInsert( bool bInsert ); void InsertCharToDoc(); void createContextMenu(); - virtual void Resize() override; + void grab_focus() { mxDrawingArea->grab_focus(); } + void queue_draw() { mxDrawingArea->queue_draw(); } + Size get_preferred_size() const { return mxDrawingArea->get_preferred_size(); } + + void connect_focus_in(const Link<weld::Widget&, void>& rLink) { mxDrawingArea->connect_focus_in(rLink); } + void connect_focus_out(const Link<weld::Widget&, void>& rLink) { mxDrawingArea->connect_focus_out(rLink); } - virtual Size GetOptimalSize() const override; void setMouseClickHdl(const Link<SvxCharView*,void> &rLink); void setClearClickHdl(const Link<SvxCharView*,void> &rLink); void setClearAllClickHdl(const Link<SvxCharView*,void> &rLink); + void ContextMenuSelect(const OString& rIdent); +}; + +class SFX2_DLLPUBLIC SvxCharViewControl : public Control +{ +public: + SvxCharViewControl(vcl::Window* pParent); + + void SetFont( const vcl::Font& rFont ); + void SetText( const OUString& rText ) override; + void SetHasInsert( bool bInsert ); + void InsertCharToDoc(); + + void createContextMenu(); + + virtual void Resize() override; + + virtual Size GetOptimalSize() const override; + + void setMouseClickHdl(const Link<SvxCharViewControl*,void> &rLink); + void setClearClickHdl(const Link<SvxCharViewControl*,void> &rLink); + void setClearAllClickHdl(const Link<SvxCharViewControl*,void> &rLink); + DECL_LINK(ContextMenuSelectHdl, Menu*, bool); protected: @@ -58,9 +109,11 @@ private: vcl::Font maFont; bool maHasInsert; - Link<SvxCharView*, void> maMouseClickHdl; - Link<SvxCharView*, void> maClearClickHdl; - Link<SvxCharView*, void> maClearAllClickHdl; + Link<SvxCharViewControl*, void> maMouseClickHdl; + Link<SvxCharViewControl*, void> maClearClickHdl; + Link<SvxCharViewControl*, void> maClearAllClickHdl; }; #endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ |