diff options
Diffstat (limited to 'svtools/source/brwbox/ebbcontrols.cxx')
-rw-r--r-- | svtools/source/brwbox/ebbcontrols.cxx | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx index 32c29784ce7b..e83911750ec5 100644 --- a/svtools/source/brwbox/ebbcontrols.cxx +++ b/svtools/source/brwbox/ebbcontrols.cxx @@ -32,6 +32,10 @@ namespace svt m_xWidget->connect_changed(LINK(this, ComboBoxControl, SelectHdl)); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); + m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); + m_xWidget->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); + m_xWidget->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); } void ComboBoxControl::dispose() @@ -118,6 +122,10 @@ namespace svt m_xWidget->connect_changed(LINK(this, ListBoxControl, SelectHdl)); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); + m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); + m_xWidget->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); + m_xWidget->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); } void ListBoxControl::dispose() @@ -187,6 +195,10 @@ namespace svt InitControlBase(m_xBox.get()); m_xBox->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); m_xBox->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); + m_xBox->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + m_xBox->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); + m_xBox->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); + m_xBox->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); m_xBox->connect_toggled(LINK(this, CheckBoxControl, OnToggle)); } @@ -339,6 +351,10 @@ namespace svt m_pEntry->set_width_chars(1); // so a smaller than default width can be used m_pEntry->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); m_pEntry->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); + connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + m_pEntry->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); + m_pEntry->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); + m_pEntry->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); } bool ControlBase::ProcessKey(const KeyEvent& rKEvt) @@ -353,7 +369,32 @@ namespace svt IMPL_LINK_NOARG(ControlBase, FocusInHdl, weld::Widget&, void) { - return static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn(); + m_aFocusInHdl.Call(nullptr); + static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusIn(); + } + + IMPL_LINK_NOARG(ControlBase, FocusOutHdl, weld::Widget&, void) + { + m_aFocusOutHdl.Call(nullptr); + static_cast<BrowserDataWin*>(GetParent())->GetParent()->ChildFocusOut(); + } + + IMPL_LINK(ControlBase, MousePressHdl, const MouseEvent&, rEvent, bool) + { + m_aMousePressHdl.Call(rEvent); + return false; + } + + IMPL_LINK(ControlBase, MouseReleaseHdl, const MouseEvent&, rEvent, bool) + { + m_aMouseReleaseHdl.Call(rEvent); + return false; + } + + IMPL_LINK(ControlBase, MouseMoveHdl, const MouseEvent&, rEvent, bool) + { + m_aMouseMoveHdl.Call(rEvent); + return false; } void EditControlBase::dispose() @@ -393,6 +434,11 @@ namespace svt get_formatter().connect_changed(rLink); } + void FormattedControlBase::connect_focus_out(const Link<weld::Widget&, void>& rLink) + { + get_formatter().connect_focus_out(rLink); + } + weld::EntryFormatter& FormattedControlBase::get_formatter() { return *m_xEntryFormatter; @@ -531,6 +577,11 @@ namespace svt m_xEntryFormatter->connect_changed(rLink); } + void PatternControl::connect_focus_out(const Link<weld::Widget&, void>& rLink) + { + m_xEntryFormatter->connect_focus_out(rLink); + } + void PatternControl::dispose() { m_xEntryFormatter.reset(); @@ -619,6 +670,10 @@ namespace svt InitControlBase(m_xWidget.get()); m_xWidget->connect_key_press(LINK(this, ControlBase, KeyInputHdl)); m_xWidget->connect_focus_in(LINK(this, ControlBase, FocusInHdl)); + m_xWidget->connect_focus_out(LINK(this, ControlBase, FocusOutHdl)); + m_xWidget->connect_mouse_press(LINK(this, ControlBase, MousePressHdl)); + m_xWidget->connect_mouse_release(LINK(this, ControlBase, MouseReleaseHdl)); + m_xWidget->connect_mouse_move(LINK(this, ControlBase, MouseMoveHdl)); // so any the natural size doesn't have an effect m_xWidget->set_size_request(1, 1); } |