summaryrefslogtreecommitdiff
path: root/include/sfx2/charwin.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/sfx2/charwin.hxx')
-rw-r--r--include/sfx2/charwin.hxx69
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: */