diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-02-19 13:32:14 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-02-20 17:32:15 +0100 |
commit | 3832609a238d47375e634cbda4d092b11108fee4 (patch) | |
tree | faf5249b41b05e95487ba912d60891471762b687 | |
parent | 97ac276728a2397a444ae7b1cb402ae741a0b1ee (diff) |
Create header file for SalInstanceBuilder
Change-Id: If8d7578d9a5926cdf565efbf0bc12719e5ef6fc2
Move more declarations for SalInstance to header file
Change-Id: Ib7240ffd003e202be04b462209cfb2abafcc18ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89102
Tested-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
-rw-r--r-- | vcl/inc/salvtables.hxx | 494 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 3401 |
2 files changed, 1970 insertions, 1925 deletions
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx new file mode 100644 index 000000000000..a239f3f3f8b6 --- /dev/null +++ b/vcl/inc/salvtables.hxx @@ -0,0 +1,494 @@ +#ifndef INCLUDED_VCL_INC_SALVTABLES_HXX +#define INCLUDED_VCL_INC_SALVTABLES_HXX + +#include <vcl/weld.hxx> +#include <vcl/svapp.hxx> +#include <vcl/syswin.hxx> +#include <vcl/settings.hxx> +#include <vcl/virdev.hxx> +#include <vcl/ctrl.hxx> + +class SalInstanceBuilder : public weld::Builder +{ +private: + std::unique_ptr<VclBuilder> m_xBuilder; + VclPtr<vcl::Window> m_aOwnedToplevel; + +public: + SalInstanceBuilder(vcl::Window* pParent, const OUString& rUIRoot, const OUString& rUIFile); + + virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::AboutDialog> weld_about_dialog(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Dialog> weld_dialog(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Assistant> weld_assistant(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Window> create_screenshot_window() override; + + virtual std::unique_ptr<weld::Window> weld_window(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Widget> weld_widget(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Container> weld_container(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Box> weld_box(const OString& id, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Frame> weld_frame(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::ScrolledWindow> + weld_scrolled_window(const OString& id, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Notebook> weld_notebook(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Button> weld_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::MenuButton> weld_menu_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::LinkButton> weld_link_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::ToggleButton> weld_toggle_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::RadioButton> weld_radio_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::CheckButton> weld_check_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Scale> weld_scale(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::ProgressBar> weld_progress_bar(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Spinner> weld_spinner(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Image> weld_image(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Calendar> weld_calendar(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Entry> weld_entry(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::SpinButton> weld_spin_button(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::MetricSpinButton> + weld_metric_spin_button(const OString& id, FieldUnit eUnit, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::FormattedSpinButton> + weld_formatted_spin_button(const OString& id, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::TimeSpinButton> + weld_time_spin_button(const OString& id, TimeFieldFormat eFormat, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::ComboBox> weld_combo_box(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::EntryTreeView> weld_entry_tree_view(const OString& containerid, + const OString& entryid, + const OString& treeviewid, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::TreeView> weld_tree_view(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::IconView> weld_icon_view(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Label> weld_label(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::TextView> weld_text_view(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Expander> weld_expander(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::DrawingArea> + weld_drawing_area(const OString& id, const a11yref& rA11yImpl, + FactoryFunction pUITestFactoryFunction, void* pUserData, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Menu> weld_menu(const OString& id, bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::Toolbar> weld_toolbar(const OString& id, + bool bTakeOwnership) override; + + virtual std::unique_ptr<weld::SizeGroup> create_size_group() override; + + OString get_current_page_help_id() const; + + virtual ~SalInstanceBuilder() override; +}; + +class SalInstanceWidget : public virtual weld::Widget +{ +protected: + VclPtr<vcl::Window> m_xWidget; + SalInstanceBuilder* m_pBuilder; + +private: + DECL_LINK(EventListener, VclWindowEvent&, void); + DECL_LINK(KeyEventListener, VclWindowEvent&, bool); + DECL_LINK(MouseEventListener, VclSimpleEvent&, void); + DECL_LINK(MnemonicActivateHdl, vcl::Window&, bool); + + const bool m_bTakeOwnership; + bool m_bEventListener; + bool m_bKeyEventListener; + bool m_bMouseEventListener; + int m_nBlockNotify; + +protected: + void ensure_event_listener(); + + // we want the ability to mark key events as handled, so use this variant + // for those, we get all keystrokes in this case, so we will need to filter + // them later + void ensure_key_listener(); + + // we want the ability to know about mouse events that happen in our children + // so use this variant, we will need to filter them later + void ensure_mouse_listener(); + + virtual void HandleEventListener(VclWindowEvent& rEvent); + virtual bool HandleKeyEventListener(VclWindowEvent& rEvent); + virtual void HandleMouseEventListener(VclSimpleEvent& rEvent); + + void set_background(const Color& rColor); + +public: + SalInstanceWidget(vcl::Window* pWidget, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual void set_sensitive(bool sensitive) override; + + virtual bool get_sensitive() const override; + + virtual bool get_visible() const override; + + virtual bool is_visible() const override; + + virtual void set_can_focus(bool bCanFocus) override; + + virtual void grab_focus() override; + + virtual bool has_focus() const override; + + virtual bool is_active() const override; + + virtual void set_has_default(bool has_default) override; + + virtual bool get_has_default() const override; + + virtual void show() override; + + virtual void hide() override; + + virtual void set_size_request(int nWidth, int nHeight) override; + + virtual Size get_size_request() const override; + + virtual Size get_preferred_size() const override; + + virtual float get_approximate_digit_width() const override; + + virtual int get_text_height() const override; + + virtual Size get_pixel_size(const OUString& rText) const override; + + virtual vcl::Font get_font() override; + + virtual OString get_buildable_name() const override; + + virtual void set_help_id(const OString& rId) override; + + virtual OString get_help_id() const override; + + virtual void set_grid_left_attach(int nAttach) override; + + virtual int get_grid_left_attach() const override; + + virtual void set_grid_width(int nCols) override; + + virtual void set_grid_top_attach(int nAttach) override; + + virtual int get_grid_top_attach() const override; + + virtual void set_hexpand(bool bExpand) override; + + virtual bool get_hexpand() const override; + + virtual void set_vexpand(bool bExpand) override; + + virtual bool get_vexpand() const override; + + virtual void set_secondary(bool bSecondary) override; + + virtual void set_margin_top(int nMargin) override; + + virtual void set_margin_bottom(int nMargin) override; + + virtual void set_margin_left(int nMargin) override; + + virtual void set_margin_right(int nMargin) override; + + virtual int get_margin_top() const override; + + virtual int get_margin_bottom() const override; + + virtual int get_margin_left() const override; + + virtual int get_margin_right() const override; + + virtual void set_accessible_name(const OUString& rName) override; + + virtual OUString get_accessible_name() const override; + + virtual OUString get_accessible_description() const override; + + virtual void set_accessible_relation_labeled_by(weld::Widget* pLabel) override; + + virtual void set_accessible_relation_label_for(weld::Widget* pLabeled) override; + + virtual void + add_extra_accessible_relation(const css::accessibility::AccessibleRelation& rRelation) override; + + virtual void clear_extra_accessible_relations() override; + + virtual void set_tooltip_text(const OUString& rTip) override; + + virtual OUString get_tooltip_text() const override; + + virtual void connect_focus_in(const Link<Widget&, void>& rLink) override; + + virtual void connect_mnemonic_activate(const Link<Widget&, bool>& rLink) override; + + virtual void connect_focus_out(const Link<Widget&, void>& rLink) override; + + virtual void connect_size_allocate(const Link<const Size&, void>& rLink) override; + + virtual void connect_mouse_press(const Link<const MouseEvent&, bool>& rLink) override; + + virtual void connect_mouse_move(const Link<const MouseEvent&, bool>& rLink) override; + + virtual void connect_mouse_release(const Link<const MouseEvent&, bool>& rLink) override; + + virtual void connect_key_press(const Link<const KeyEvent&, bool>& rLink) override; + + virtual void connect_key_release(const Link<const KeyEvent&, bool>& rLink) override; + + virtual bool get_extents_relative_to(Widget& rRelative, int& x, int& y, int& width, + int& height) override; + + virtual void grab_add() override; + + virtual bool has_grab() const override; + + virtual void grab_remove() override; + + virtual bool get_direction() const override; + + virtual void set_direction(bool bRTL) override; + + virtual void freeze() override; + + virtual void thaw() override; + + virtual std::unique_ptr<weld::Container> weld_parent() const override; + + virtual ~SalInstanceWidget() override; + + vcl::Window* getWidget(); + + void disable_notify_events(); + + bool notify_events_disabled(); + + void enable_notify_events(); + + virtual void help_hierarchy_foreach(const std::function<bool(const OString&)>& func) override; + + virtual OUString strip_mnemonic(const OUString& rLabel) const override; + + virtual VclPtr<VirtualDevice> create_virtual_device() const override; + + virtual css::uno::Reference<css::datatransfer::dnd::XDropTarget> get_drop_target() override; + + virtual void + connect_get_property_tree(const Link<boost::property_tree::ptree&, void>& rLink) override; + + virtual void set_stack_background() override; + + virtual void set_toolbar_background() override; + + virtual void set_highlight_background() override; + + SystemWindow* getSystemWindow(); +}; + +class SalInstanceLabel : public SalInstanceWidget, public virtual weld::Label +{ +private: + // Control instead of FixedText so we can also use this for + // SelectableFixedText which is derived from Edit. We just typically need + // [G|S]etText which exists in their shared baseclass + VclPtr<Control> m_xLabel; + +public: + SalInstanceLabel(Control* pLabel, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual void set_label(const OUString& rText) override; + + virtual OUString get_label() const override; + + virtual void set_mnemonic_widget(Widget* pTarget) override; + + virtual void set_message_type(weld::EntryMessageType eType) override; + + virtual void set_font(const vcl::Font& rFont) override; +}; + +class SalInstanceContainer : public SalInstanceWidget, public virtual weld::Container +{ +protected: + VclPtr<vcl::Window> m_xContainer; + +private: + void implResetDefault(const vcl::Window* _pWindow); + +public: + SalInstanceContainer(vcl::Window* pContainer, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); + virtual void move(weld::Widget* pWidget, weld::Container* pNewParent) override; + virtual void recursively_unset_default_buttons() override; + virtual css::uno::Reference<css::awt::XWindow> CreateChildFrame() override; +}; + +class SalInstanceWindow : public SalInstanceContainer, public virtual weld::Window +{ +private: + VclPtr<vcl::Window> m_xWindow; + + DECL_LINK(HelpHdl, vcl::Window&, bool); + + void override_child_help(vcl::Window* pParent); + + void clear_child_help(vcl::Window* pParent); + +public: + SalInstanceWindow(vcl::Window* pWindow, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual void set_title(const OUString& rTitle) override; + + virtual OUString get_title() const override; + + void help(); + + virtual void set_busy_cursor(bool bBusy) override; + + virtual css::uno::Reference<css::awt::XWindow> GetXWindow() override; + + virtual void resize_to_request() override; + + virtual void set_modal(bool bModal) override; + + virtual bool get_modal() const override; + + virtual void window_move(int x, int y) override; + + virtual Size get_size() const override; + + virtual Point get_position() const override; + + virtual tools::Rectangle get_monitor_workarea() const override; + + virtual void set_centered_on_parent(bool /*bTrackGeometryRequests*/) override; + + virtual bool get_resizable() const override; + + virtual bool has_toplevel_focus() const override; + + virtual void present() override; + + virtual void set_window_state(const OString& rStr) override; + + virtual OString get_window_state(WindowStateMask nMask) const override; + + virtual SystemEnvData get_system_data() const override; + + virtual void connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink) override; + + virtual void HandleEventListener(VclWindowEvent& rEvent) override; + + virtual void draw(VirtualDevice& rOutput) override; + + virtual weld::ScreenShotCollection collect_screenshot_data() override; + + virtual ~SalInstanceWindow() override; +}; + +class SalInstanceDialog : public SalInstanceWindow, public virtual weld::Dialog +{ +private: + VclPtr<::Dialog> m_xDialog; + + // for calc ref dialog that shrink to range selection widgets and resize back + VclPtr<vcl::Window> m_xRefEdit; + std::vector<VclPtr<vcl::Window>> m_aHiddenWidgets; // vector of hidden Controls + long m_nOldEditWidthReq; // Original width request of the input field + sal_Int32 m_nOldBorderWidth; // border width for expanded dialog + + DECL_LINK(PopupScreenShotMenuHdl, const CommandEvent&, bool); + +public: + SalInstanceDialog(::Dialog* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual bool runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) override; + + virtual bool runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& rEndDialogFn) override; + + virtual void collapse(weld::Widget* pEdit, weld::Widget* pButton) override; + + virtual void undo_collapse() override; + + virtual void + SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink) override; + + virtual int run() override; + + virtual void response(int nResponse) override; + + virtual void add_button(const OUString& rText, int nResponse, const OString& rHelpId) override; + + virtual void set_modal(bool bModal) override; + + virtual bool get_modal() const override; + + virtual weld::Button* weld_widget_for_response(int nResponse) override; + + virtual void set_default_response(int nResponse) override; + + virtual weld::Container* weld_content_area() override; +}; + +#endif
\ No newline at end of file diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 68347a215ada..4d4e1c6372ef 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -72,6 +72,7 @@ #include <aboutdialog.hxx> #include <bitmaps.hlst> #include <wizdlg.hxx> +#include <salvtables.hxx> #include <boost/property_tree/ptree.hpp> @@ -84,11 +85,9 @@ SalFrame::SalFrame() // this file contains the virtual destructors of the sal interface // compilers usually put their vtables where the destructor is -SalFrame::~SalFrame() -{ -} +SalFrame::~SalFrame() {} -void SalFrame::SetCallback( vcl::Window* pWindow, SALFRAMEPROC pProc ) +void SalFrame::SetCallback(vcl::Window* pWindow, SALFRAMEPROC pProc) { m_pWindow = pWindow; m_pProc = pProc; @@ -96,12 +95,9 @@ void SalFrame::SetCallback( vcl::Window* pWindow, SALFRAMEPROC pProc ) // default to full-frame flushes // on ports where partial-flushes are much cheaper this method should be overridden -void SalFrame::Flush( const tools::Rectangle& ) -{ - Flush(); -} +void SalFrame::Flush(const tools::Rectangle&) { Flush(); } -void SalFrame::SetRepresentedURL( const OUString& ) +void SalFrame::SetRepresentedURL(const OUString&) { // currently this is Mac only functionality } @@ -111,648 +107,436 @@ SalInstance::SalInstance(std::unique_ptr<comphelper::SolarMutex> pMutex) { } -SalInstance::~SalInstance() -{ -} +SalInstance::~SalInstance() {} -comphelper::SolarMutex* SalInstance::GetYieldMutex() -{ - return m_pYieldMutex.get(); -} +comphelper::SolarMutex* SalInstance::GetYieldMutex() { return m_pYieldMutex.get(); } -sal_uInt32 SalInstance::ReleaseYieldMutexAll() -{ - return m_pYieldMutex->release(true); -} +sal_uInt32 SalInstance::ReleaseYieldMutexAll() { return m_pYieldMutex->release(true); } -void SalInstance::AcquireYieldMutex(sal_uInt32 nCount) -{ - m_pYieldMutex->acquire(nCount); -} +void SalInstance::AcquireYieldMutex(sal_uInt32 nCount) { m_pYieldMutex->acquire(nCount); } -std::unique_ptr<SalSession> SalInstance::CreateSalSession() -{ - return nullptr; -} +std::unique_ptr<SalSession> SalInstance::CreateSalSession() { return nullptr; } -std::unique_ptr<SalMenu> SalInstance::CreateMenu( bool, Menu* ) +std::unique_ptr<SalMenu> SalInstance::CreateMenu(bool, Menu*) { // default: no native menus return nullptr; } -std::unique_ptr<SalMenuItem> SalInstance::CreateMenuItem( const SalItemParams & ) -{ - return nullptr; -} +std::unique_ptr<SalMenuItem> SalInstance::CreateMenuItem(const SalItemParams&) { return nullptr; } -bool SalInstance::CallEventCallback( void const * pEvent, int nBytes ) +bool SalInstance::CallEventCallback(void const* pEvent, int nBytes) { - return m_pEventInst.is() && m_pEventInst->dispatchEvent( pEvent, nBytes ); + return m_pEventInst.is() && m_pEventInst->dispatchEvent(pEvent, nBytes); } -SalTimer::~SalTimer() COVERITY_NOEXCEPT_FALSE -{ -} +SalTimer::~SalTimer() COVERITY_NOEXCEPT_FALSE {} void SalBitmap::DropScaledCache() { if (ImplSVData* pSVData = ImplGetSVData()) { auto& rCache = pSVData->maGDIData.maScaleCache; - rCache.remove_if([this] (const o3tl::lru_map<SalBitmap*, BitmapEx>::key_value_pair_t& rKeyValuePair) - { return rKeyValuePair.first == this; }); + rCache.remove_if( + [this](const o3tl::lru_map<SalBitmap*, BitmapEx>::key_value_pair_t& rKeyValuePair) { + return rKeyValuePair.first == this; + }); } } -SalBitmap::~SalBitmap() -{ - DropScaledCache(); -} +SalBitmap::~SalBitmap() { DropScaledCache(); } -SalSystem::~SalSystem() -{ -} +SalSystem::~SalSystem() {} -SalPrinter::~SalPrinter() -{ -} +SalPrinter::~SalPrinter() {} -bool SalPrinter::StartJob( const OUString*, const OUString&, const OUString&, - ImplJobSetup*, vcl::PrinterController& ) +bool SalPrinter::StartJob(const OUString*, const OUString&, const OUString&, ImplJobSetup*, + vcl::PrinterController&) { return false; } -SalInfoPrinter::~SalInfoPrinter() -{ -} +SalInfoPrinter::~SalInfoPrinter() {} -SalVirtualDevice::~SalVirtualDevice() -{ -} +SalVirtualDevice::~SalVirtualDevice() {} -SalObject::~SalObject() -{ -} +SalObject::~SalObject() {} -SalMenu::~SalMenu() -{ -} +SalMenu::~SalMenu() {} -bool SalMenu::ShowNativePopupMenu(FloatingWindow *, const tools::Rectangle&, FloatWinPopupFlags ) +bool SalMenu::ShowNativePopupMenu(FloatingWindow*, const tools::Rectangle&, FloatWinPopupFlags) { return false; } -void SalMenu::ShowCloseButton(bool) -{ -} +void SalMenu::ShowCloseButton(bool) {} -bool SalMenu::AddMenuBarButton( const SalMenuButtonItem& ) -{ - return false; -} +bool SalMenu::AddMenuBarButton(const SalMenuButtonItem&) { return false; } -void SalMenu::RemoveMenuBarButton( sal_uInt16 ) -{ -} +void SalMenu::RemoveMenuBarButton(sal_uInt16) {} -tools::Rectangle SalMenu::GetMenuBarButtonRectPixel( sal_uInt16, SalFrame* ) +tools::Rectangle SalMenu::GetMenuBarButtonRectPixel(sal_uInt16, SalFrame*) { return tools::Rectangle(); } -int SalMenu::GetMenuBarHeight() const -{ - return 0; -} - -void SalMenu::ApplyPersona() -{ -} - -SalMenuItem::~SalMenuItem() -{ -} +int SalMenu::GetMenuBarHeight() const { return 0; } -class SalInstanceBuilder; +void SalMenu::ApplyPersona() {} -namespace { +SalMenuItem::~SalMenuItem() {} -class SalInstanceWidget : public virtual weld::Widget +void SalInstanceWidget::ensure_event_listener() { -protected: - VclPtr<vcl::Window> m_xWidget; - SalInstanceBuilder* m_pBuilder; - -private: - DECL_LINK(EventListener, VclWindowEvent&, void); - DECL_LINK(KeyEventListener, VclWindowEvent&, bool); - DECL_LINK(MouseEventListener, VclSimpleEvent&, void); - DECL_LINK(MnemonicActivateHdl, vcl::Window&, bool); - - const bool m_bTakeOwnership; - bool m_bEventListener; - bool m_bKeyEventListener; - bool m_bMouseEventListener; - int m_nBlockNotify; - -protected: - void ensure_event_listener() - { - if (!m_bEventListener) - { - m_xWidget->AddEventListener(LINK(this, SalInstanceWidget, EventListener)); - m_bEventListener = true; - } - } - - // we want the ability to mark key events as handled, so use this variant - // for those, we get all keystrokes in this case, so we will need to filter - // them later - void ensure_key_listener() - { - if (!m_bKeyEventListener) - { - Application::AddKeyListener(LINK(this, SalInstanceWidget, KeyEventListener)); - m_bKeyEventListener = true; - } - } - - // we want the ability to know about mouse events that happen in our children - // so use this variant, we will need to filter them later - void ensure_mouse_listener() - { - if (!m_bMouseEventListener) - { - Application::AddEventListener(LINK(this, SalInstanceWidget, MouseEventListener)); - m_bMouseEventListener = true; - } - } - - virtual void HandleEventListener(VclWindowEvent& rEvent); - virtual bool HandleKeyEventListener(VclWindowEvent& rEvent); - virtual void HandleMouseEventListener(VclSimpleEvent& rEvent); - - void set_background(const Color& rColor) - { - m_xWidget->SetControlBackground(rColor); - m_xWidget->SetBackground(m_xWidget->GetControlBackground()); - // turn off WB_CLIPCHILDREN otherwise the bg won't extend "under" - // transparent children of the widget - m_xWidget->SetStyle(m_xWidget->GetStyle() & ~WB_CLIPCHILDREN); - } - -public: - SalInstanceWidget(vcl::Window* pWidget, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : m_xWidget(pWidget) - , m_pBuilder(pBuilder) - , m_bTakeOwnership(bTakeOwnership) - , m_bEventListener(false) - , m_bKeyEventListener(false) - , m_bMouseEventListener(false) - , m_nBlockNotify(0) + if (!m_bEventListener) { + m_xWidget->AddEventListener(LINK(this, SalInstanceWidget, EventListener)); + m_bEventListener = true; } +} - virtual void set_sensitive(bool sensitive) override +// we want the ability to mark key events as handled, so use this variant +// for those, we get all keystrokes in this case, so we will need to filter +// them later +void SalInstanceWidget::ensure_key_listener() +{ + if (!m_bKeyEventListener) { - m_xWidget->Enable(sensitive); + Application::AddKeyListener(LINK(this, SalInstanceWidget, KeyEventListener)); + m_bKeyEventListener = true; } +} - virtual bool get_sensitive() const override +// we want the ability to know about mouse events that happen in our children +// so use this variant, we will need to filter them later +void SalInstanceWidget::ensure_mouse_listener() +{ + if (!m_bMouseEventListener) { - return m_xWidget->IsEnabled(); + Application::AddEventListener(LINK(this, SalInstanceWidget, MouseEventListener)); + m_bMouseEventListener = true; } +} - virtual bool get_visible() const override - { - return m_xWidget->IsVisible(); - } +void SalInstanceWidget::set_background(const Color& rColor) +{ + m_xWidget->SetControlBackground(rColor); + m_xWidget->SetBackground(m_xWidget->GetControlBackground()); + // turn off WB_CLIPCHILDREN otherwise the bg won't extend "under" + // transparent children of the widget + m_xWidget->SetStyle(m_xWidget->GetStyle() & ~WB_CLIPCHILDREN); +} - virtual bool is_visible() const override - { - return m_xWidget->IsReallyVisible(); - } +SalInstanceWidget::SalInstanceWidget(vcl::Window* pWidget, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : m_xWidget(pWidget) + , m_pBuilder(pBuilder) + , m_bTakeOwnership(bTakeOwnership) + , m_bEventListener(false) + , m_bKeyEventListener(false) + , m_bMouseEventListener(false) + , m_nBlockNotify(0) +{ +} - virtual void set_can_focus(bool bCanFocus) override - { - auto nStyle = m_xWidget->GetStyle() & ~(WB_TABSTOP | WB_NOTABSTOP); - if (bCanFocus) - nStyle |= WB_TABSTOP; - else - nStyle |= WB_NOTABSTOP; - m_xWidget->SetStyle(nStyle); - } +void SalInstanceWidget::set_sensitive(bool sensitive) { m_xWidget->Enable(sensitive); } - virtual void grab_focus() override - { - m_xWidget->GrabFocus(); - } +bool SalInstanceWidget::get_sensitive() const { return m_xWidget->IsEnabled(); } - virtual bool has_focus() const override - { - return m_xWidget->HasFocus(); - } +bool SalInstanceWidget::get_visible() const { return m_xWidget->IsVisible(); } - virtual bool is_active() const override - { - return m_xWidget->IsActive(); - } +bool SalInstanceWidget::is_visible() const { return m_xWidget->IsReallyVisible(); } - virtual void set_has_default(bool has_default) override - { - m_xWidget->set_property("has-default", OUString::boolean(has_default)); - } +void SalInstanceWidget::set_can_focus(bool bCanFocus) +{ + auto nStyle = m_xWidget->GetStyle() & ~(WB_TABSTOP | WB_NOTABSTOP); + if (bCanFocus) + nStyle |= WB_TABSTOP; + else + nStyle |= WB_NOTABSTOP; + m_xWidget->SetStyle(nStyle); +} - virtual bool get_has_default() const override - { - return m_xWidget->GetStyle() & WB_DEFBUTTON; - } +void SalInstanceWidget::grab_focus() { m_xWidget->GrabFocus(); } - virtual void show() override - { - m_xWidget->Show(); - } +bool SalInstanceWidget::has_focus() const { return m_xWidget->HasFocus(); } - virtual void hide() override - { - m_xWidget->Hide(); - } +bool SalInstanceWidget::is_active() const { return m_xWidget->IsActive(); } - virtual void set_size_request(int nWidth, int nHeight) override - { - m_xWidget->set_width_request(nWidth); - m_xWidget->set_height_request(nHeight); - } +void SalInstanceWidget::set_has_default(bool has_default) +{ + m_xWidget->set_property("has-default", OUString::boolean(has_default)); +} - virtual Size get_size_request() const override - { - return Size(m_xWidget->get_width_request(), - m_xWidget->get_height_request()); - } +bool SalInstanceWidget::get_has_default() const { return m_xWidget->GetStyle() & WB_DEFBUTTON; } - virtual Size get_preferred_size() const override - { - return m_xWidget->get_preferred_size(); - } +void SalInstanceWidget::show() { m_xWidget->Show(); } - virtual float get_approximate_digit_width() const override - { - return m_xWidget->approximate_digit_width(); - } +void SalInstanceWidget::hide() { m_xWidget->Hide(); } - virtual int get_text_height() const override - { - return m_xWidget->GetTextHeight(); - } +void SalInstanceWidget::set_size_request(int nWidth, int nHeight) +{ + m_xWidget->set_width_request(nWidth); + m_xWidget->set_height_request(nHeight); +} - virtual Size get_pixel_size(const OUString& rText) const override - { - //TODO, or do I want GetTextBoundRect ?, just using width at the moment anyway - return Size(m_xWidget->GetTextWidth(rText), m_xWidget->GetTextHeight()); - } +Size SalInstanceWidget::get_size_request() const +{ + return Size(m_xWidget->get_width_request(), m_xWidget->get_height_request()); +} - virtual vcl::Font get_font() override - { - return m_xWidget->GetPointFont(*m_xWidget); - } +Size SalInstanceWidget::get_preferred_size() const { return m_xWidget->get_preferred_size(); } - virtual OString get_buildable_name() const override - { - return m_xWidget->get_id().toUtf8(); - } +float SalInstanceWidget::get_approximate_digit_width() const +{ + return m_xWidget->approximate_digit_width(); +} - virtual void set_help_id(const OString& rId) override - { - return m_xWidget->SetHelpId(rId); - } +int SalInstanceWidget::get_text_height() const { return m_xWidget->GetTextHeight(); } - virtual OString get_help_id() const override - { - return m_xWidget->GetHelpId(); - } +Size SalInstanceWidget::get_pixel_size(const OUString& rText) const +{ + //TODO, or do I want GetTextBoundRect ?, just using width at the moment anyway + return Size(m_xWidget->GetTextWidth(rText), m_xWidget->GetTextHeight()); +} - virtual void set_grid_left_attach(int nAttach) override - { - m_xWidget->set_grid_left_attach(nAttach); - } +vcl::Font SalInstanceWidget::get_font() { return m_xWidget->GetPointFont(*m_xWidget); } - virtual int get_grid_left_attach() const override - { - return m_xWidget->get_grid_left_attach(); - } +OString SalInstanceWidget::get_buildable_name() const { return m_xWidget->get_id().toUtf8(); } - virtual void set_grid_width(int nCols) override - { - m_xWidget->set_grid_width(nCols); - } +void SalInstanceWidget::set_help_id(const OString& rId) { return m_xWidget->SetHelpId(rId); } - virtual void set_grid_top_attach(int nAttach) override - { - m_xWidget->set_grid_top_attach(nAttach); - } +OString SalInstanceWidget::get_help_id() const { return m_xWidget->GetHelpId(); } - virtual int get_grid_top_attach() const override - { - return m_xWidget->get_grid_top_attach(); - } +void SalInstanceWidget::set_grid_left_attach(int nAttach) +{ + m_xWidget->set_grid_left_attach(nAttach); +} - virtual void set_hexpand(bool bExpand) override - { - m_xWidget->set_hexpand(bExpand); - } +int SalInstanceWidget::get_grid_left_attach() const { return m_xWidget->get_grid_left_attach(); } - virtual bool get_hexpand() const override - { - return m_xWidget->get_hexpand(); - } +void SalInstanceWidget::set_grid_width(int nCols) { m_xWidget->set_grid_width(nCols); } - virtual void set_vexpand(bool bExpand) override - { - m_xWidget->set_vexpand(bExpand); - } +void SalInstanceWidget::set_grid_top_attach(int nAttach) +{ + m_xWidget->set_grid_top_attach(nAttach); +} - virtual bool get_vexpand() const override - { - return m_xWidget->get_vexpand(); - } +int SalInstanceWidget::get_grid_top_attach() const { return m_xWidget->get_grid_top_attach(); } - virtual void set_secondary(bool bSecondary) override - { - m_xWidget->set_secondary(bSecondary); - } +void SalInstanceWidget::set_hexpand(bool bExpand) { m_xWidget->set_hexpand(bExpand); } - virtual void set_margin_top(int nMargin) override - { - m_xWidget->set_margin_top(nMargin); - } +bool SalInstanceWidget::get_hexpand() const { return m_xWidget->get_hexpand(); } - virtual void set_margin_bottom(int nMargin) override - { - m_xWidget->set_margin_bottom(nMargin); - } +void SalInstanceWidget::set_vexpand(bool bExpand) { m_xWidget->set_vexpand(bExpand); } - virtual void set_margin_left(int nMargin) override - { - m_xWidget->set_margin_left(nMargin); - } +bool SalInstanceWidget::get_vexpand() const { return m_xWidget->get_vexpand(); } - virtual void set_margin_right(int nMargin) override - { - m_xWidget->set_margin_bottom(nMargin); - } +void SalInstanceWidget::set_secondary(bool bSecondary) { m_xWidget->set_secondary(bSecondary); } - virtual int get_margin_top() const override - { - return m_xWidget->get_margin_top(); - } +void SalInstanceWidget::set_margin_top(int nMargin) { m_xWidget->set_margin_top(nMargin); } - virtual int get_margin_bottom() const override - { - return m_xWidget->get_margin_bottom(); - } +void SalInstanceWidget::set_margin_bottom(int nMargin) { m_xWidget->set_margin_bottom(nMargin); } - virtual int get_margin_left() const override - { - return m_xWidget->get_margin_left(); - } +void SalInstanceWidget::set_margin_left(int nMargin) { m_xWidget->set_margin_left(nMargin); } - virtual int get_margin_right() const override - { - return m_xWidget->get_margin_bottom(); - } +void SalInstanceWidget::set_margin_right(int nMargin) { m_xWidget->set_margin_bottom(nMargin); } - virtual void set_accessible_name(const OUString& rName) override - { - m_xWidget->SetAccessibleName(rName); - } +int SalInstanceWidget::get_margin_top() const { return m_xWidget->get_margin_top(); } - virtual OUString get_accessible_name() const override - { - return m_xWidget->GetAccessibleName(); - } +int SalInstanceWidget::get_margin_bottom() const { return m_xWidget->get_margin_bottom(); } - virtual OUString get_accessible_description() const override - { - return m_xWidget->GetAccessibleDescription(); - } +int SalInstanceWidget::get_margin_left() const { return m_xWidget->get_margin_left(); } - virtual void set_accessible_relation_labeled_by(weld::Widget* pLabel) override - { - vcl::Window* pAtkLabel = pLabel ? dynamic_cast<SalInstanceWidget&>(*pLabel).getWidget() : nullptr; - m_xWidget->SetAccessibleRelationLabeledBy(pAtkLabel); - } +int SalInstanceWidget::get_margin_right() const { return m_xWidget->get_margin_bottom(); } - virtual void set_accessible_relation_label_for(weld::Widget* pLabeled) override - { - vcl::Window* pAtkLabeled = pLabeled ? dynamic_cast<SalInstanceWidget&>(*pLabeled).getWidget() : nullptr; - m_xWidget->SetAccessibleRelationLabelFor(pAtkLabeled); - } +void SalInstanceWidget::set_accessible_name(const OUString& rName) +{ + m_xWidget->SetAccessibleName(rName); +} - virtual void add_extra_accessible_relation(const css::accessibility::AccessibleRelation &rRelation) override - { - m_xWidget->AddExtraAccessibleRelation(rRelation); - } +OUString SalInstanceWidget::get_accessible_name() const { return m_xWidget->GetAccessibleName(); } - virtual void clear_extra_accessible_relations() override - { - m_xWidget->ClearExtraAccessibleRelations(); - } +OUString SalInstanceWidget::get_accessible_description() const +{ + return m_xWidget->GetAccessibleDescription(); +} - virtual void set_tooltip_text(const OUString& rTip) override - { - m_xWidget->SetQuickHelpText(rTip); - } +void SalInstanceWidget::set_accessible_relation_labeled_by(weld::Widget* pLabel) +{ + vcl::Window* pAtkLabel + = pLabel ? dynamic_cast<SalInstanceWidget&>(*pLabel).getWidget() : nullptr; + m_xWidget->SetAccessibleRelationLabeledBy(pAtkLabel); +} - virtual OUString get_tooltip_text() const override - { - return m_xWidget->GetQuickHelpText(); - } +void SalInstanceWidget::set_accessible_relation_label_for(weld::Widget* pLabeled) +{ + vcl::Window* pAtkLabeled + = pLabeled ? dynamic_cast<SalInstanceWidget&>(*pLabeled).getWidget() : nullptr; + m_xWidget->SetAccessibleRelationLabelFor(pAtkLabeled); +} - virtual void connect_focus_in(const Link<Widget&, void>& rLink) override - { - ensure_event_listener(); - weld::Widget::connect_focus_in(rLink); - } +void SalInstanceWidget::add_extra_accessible_relation( + const css::accessibility::AccessibleRelation& rRelation) +{ + m_xWidget->AddExtraAccessibleRelation(rRelation); +} - virtual void connect_mnemonic_activate(const Link<Widget&, bool>& rLink) override - { - m_xWidget->SetMnemonicActivateHdl(LINK(this, SalInstanceWidget, MnemonicActivateHdl)); - weld::Widget::connect_mnemonic_activate(rLink); - } +void SalInstanceWidget::clear_extra_accessible_relations() +{ + m_xWidget->ClearExtraAccessibleRelations(); +} - virtual void connect_focus_out(const Link<Widget&, void>& rLink) override - { - ensure_event_listener(); - weld::Widget::connect_focus_out(rLink); - } +void SalInstanceWidget::set_tooltip_text(const OUString& rTip) +{ + m_xWidget->SetQuickHelpText(rTip); +} - virtual void connect_size_allocate(const Link<const Size&, void>& rLink) override - { - ensure_event_listener(); - weld::Widget::connect_size_allocate(rLink); - } +OUString SalInstanceWidget::get_tooltip_text() const { return m_xWidget->GetQuickHelpText(); } - virtual void connect_mouse_press(const Link<const MouseEvent&, bool>& rLink) override - { - ensure_mouse_listener(); - weld::Widget::connect_mouse_press(rLink); - } +void SalInstanceWidget::connect_focus_in(const Link<Widget&, void>& rLink) +{ + ensure_event_listener(); + weld::Widget::connect_focus_in(rLink); +} - virtual void connect_mouse_move(const Link<const MouseEvent&, bool>& rLink) override - { - ensure_mouse_listener(); - weld::Widget::connect_mouse_move(rLink); - } +void SalInstanceWidget::connect_mnemonic_activate(const Link<Widget&, bool>& rLink) +{ + m_xWidget->SetMnemonicActivateHdl(LINK(this, SalInstanceWidget, MnemonicActivateHdl)); + weld::Widget::connect_mnemonic_activate(rLink); +} - virtual void connect_mouse_release(const Link<const MouseEvent&, bool>& rLink) override - { - ensure_mouse_listener(); - weld::Widget::connect_mouse_release(rLink); - } +void SalInstanceWidget::connect_focus_out(const Link<Widget&, void>& rLink) +{ + ensure_event_listener(); + weld::Widget::connect_focus_out(rLink); +} - virtual void connect_key_press(const Link<const KeyEvent&, bool>& rLink) override - { - ensure_key_listener(); - weld::Widget::connect_key_press(rLink); - } +void SalInstanceWidget::connect_size_allocate(const Link<const Size&, void>& rLink) +{ + ensure_event_listener(); + weld::Widget::connect_size_allocate(rLink); +} - virtual void connect_key_release(const Link<const KeyEvent&, bool>& rLink) override - { - ensure_key_listener(); - weld::Widget::connect_key_release(rLink); - } +void SalInstanceWidget::connect_mouse_press(const Link<const MouseEvent&, bool>& rLink) +{ + ensure_mouse_listener(); + weld::Widget::connect_mouse_press(rLink); +} - virtual bool get_extents_relative_to(Widget& rRelative, int& x, int &y, int& width, int &height) override - { - tools::Rectangle aRect(m_xWidget->GetWindowExtentsRelative(dynamic_cast<SalInstanceWidget&>(rRelative).getWidget())); - x = aRect.Left(); - y = aRect.Top(); - width = aRect.GetWidth(); - height = aRect.GetHeight(); - return true; - } +void SalInstanceWidget::connect_mouse_move(const Link<const MouseEvent&, bool>& rLink) +{ + ensure_mouse_listener(); + weld::Widget::connect_mouse_move(rLink); +} - virtual void grab_add() override - { - m_xWidget->CaptureMouse(); - } +void SalInstanceWidget::connect_mouse_release(const Link<const MouseEvent&, bool>& rLink) +{ + ensure_mouse_listener(); + weld::Widget::connect_mouse_release(rLink); +} - virtual bool has_grab() const override - { - return m_xWidget->IsMouseCaptured(); - } +void SalInstanceWidget::connect_key_press(const Link<const KeyEvent&, bool>& rLink) +{ + ensure_key_listener(); + weld::Widget::connect_key_press(rLink); +} - virtual void grab_remove() override - { - m_xWidget->ReleaseMouse(); - } +void SalInstanceWidget::connect_key_release(const Link<const KeyEvent&, bool>& rLink) +{ + ensure_key_listener(); + weld::Widget::connect_key_release(rLink); +} - virtual bool get_direction() const override - { - return m_xWidget->IsRTLEnabled(); - } +bool SalInstanceWidget::get_extents_relative_to(Widget& rRelative, int& x, int& y, int& width, + int& height) +{ + tools::Rectangle aRect(m_xWidget->GetWindowExtentsRelative( + dynamic_cast<SalInstanceWidget&>(rRelative).getWidget())); + x = aRect.Left(); + y = aRect.Top(); + width = aRect.GetWidth(); + height = aRect.GetHeight(); + return true; +} - virtual void set_direction(bool bRTL) override - { - m_xWidget->EnableRTL(bRTL); - } +void SalInstanceWidget::grab_add() { m_xWidget->CaptureMouse(); } - virtual void freeze() override - { - m_xWidget->SetUpdateMode(false); - } +bool SalInstanceWidget::has_grab() const { return m_xWidget->IsMouseCaptured(); } - virtual void thaw() override - { - m_xWidget->SetUpdateMode(true); - } +void SalInstanceWidget::grab_remove() { m_xWidget->ReleaseMouse(); } - virtual std::unique_ptr<weld::Container> weld_parent() const override; +bool SalInstanceWidget::get_direction() const { return m_xWidget->IsRTLEnabled(); } - virtual ~SalInstanceWidget() override - { - if (m_aMnemonicActivateHdl.IsSet()) - m_xWidget->SetMnemonicActivateHdl(Link<vcl::Window&,bool>()); - if (m_bMouseEventListener) - Application::RemoveEventListener(LINK(this, SalInstanceWidget, MouseEventListener)); - if (m_bKeyEventListener) - Application::RemoveKeyListener(LINK(this, SalInstanceWidget, KeyEventListener)); - if (m_bEventListener) - m_xWidget->RemoveEventListener(LINK(this, SalInstanceWidget, EventListener)); - if (m_bTakeOwnership) - m_xWidget.disposeAndClear(); - } +void SalInstanceWidget::set_direction(bool bRTL) { m_xWidget->EnableRTL(bRTL); } - vcl::Window* getWidget() - { - return m_xWidget; - } +void SalInstanceWidget::freeze() { m_xWidget->SetUpdateMode(false); } - void disable_notify_events() - { - ++m_nBlockNotify; - } +void SalInstanceWidget::thaw() { m_xWidget->SetUpdateMode(true); } - bool notify_events_disabled() - { - return m_nBlockNotify != 0; - } +SalInstanceWidget::~SalInstanceWidget() +{ + if (m_aMnemonicActivateHdl.IsSet()) + m_xWidget->SetMnemonicActivateHdl(Link<vcl::Window&, bool>()); + if (m_bMouseEventListener) + Application::RemoveEventListener(LINK(this, SalInstanceWidget, MouseEventListener)); + if (m_bKeyEventListener) + Application::RemoveKeyListener(LINK(this, SalInstanceWidget, KeyEventListener)); + if (m_bEventListener) + m_xWidget->RemoveEventListener(LINK(this, SalInstanceWidget, EventListener)); + if (m_bTakeOwnership) + m_xWidget.disposeAndClear(); +} - void enable_notify_events() - { - --m_nBlockNotify; - } +vcl::Window* SalInstanceWidget::getWidget() { return m_xWidget; } - virtual void help_hierarchy_foreach(const std::function<bool(const OString&)>& func) override; +void SalInstanceWidget::disable_notify_events() { ++m_nBlockNotify; } - virtual OUString strip_mnemonic(const OUString &rLabel) const override - { - return rLabel.replaceFirst("~", ""); - } +bool SalInstanceWidget::notify_events_disabled() { return m_nBlockNotify != 0; } - virtual VclPtr<VirtualDevice> create_virtual_device() const override - { - // create with (annoying) separate alpha layer that LibreOffice itself uses - return VclPtr<VirtualDevice>::Create(*Application::GetDefaultDevice(), DeviceFormat::DEFAULT, DeviceFormat::DEFAULT); - } +void SalInstanceWidget::enable_notify_events() { --m_nBlockNotify; } - virtual css::uno::Reference<css::datatransfer::dnd::XDropTarget> get_drop_target() override - { - return m_xWidget->GetDropTarget(); - } +OUString SalInstanceWidget::strip_mnemonic(const OUString& rLabel) const +{ + return rLabel.replaceFirst("~", ""); +} - virtual void connect_get_property_tree(const Link<boost::property_tree::ptree&, void>& rLink) override - { - m_xWidget->SetDumpAsPropertyTreeHdl(rLink); - } +VclPtr<VirtualDevice> SalInstanceWidget::create_virtual_device() const +{ + // create with (annoying) separate alpha layer that LibreOffice itself uses + return VclPtr<VirtualDevice>::Create(*Application::GetDefaultDevice(), DeviceFormat::DEFAULT, + DeviceFormat::DEFAULT); +} - virtual void set_stack_background() override - { - set_background(m_xWidget->GetSettings().GetStyleSettings().GetWindowColor()); - } +css::uno::Reference<css::datatransfer::dnd::XDropTarget> SalInstanceWidget::get_drop_target() +{ + return m_xWidget->GetDropTarget(); +} - virtual void set_toolbar_background() override - { - m_xWidget->SetBackground(); - m_xWidget->SetPaintTransparent(true); - } +void SalInstanceWidget::connect_get_property_tree( + const Link<boost::property_tree::ptree&, void>& rLink) +{ + m_xWidget->SetDumpAsPropertyTreeHdl(rLink); +} - virtual void set_highlight_background() override - { - set_background(m_xWidget->GetSettings().GetStyleSettings().GetHighlightColor()); - } +void SalInstanceWidget::set_stack_background() +{ + set_background(m_xWidget->GetSettings().GetStyleSettings().GetWindowColor()); +} - SystemWindow* getSystemWindow() - { - return m_xWidget->GetSystemWindow(); - } -}; +void SalInstanceWidget::set_toolbar_background() +{ + m_xWidget->SetBackground(); + m_xWidget->SetPaintTransparent(true); +} +void SalInstanceWidget::set_highlight_background() +{ + set_background(m_xWidget->GetSettings().GetStyleSettings().GetHighlightColor()); } +SystemWindow* SalInstanceWidget::getSystemWindow() { return m_xWidget->GetSystemWindow(); } + void SalInstanceWidget::HandleEventListener(VclWindowEvent& rEvent) { if (rEvent.GetId() == VclEventId::WindowGetFocus) @@ -834,48 +618,51 @@ IMPL_LINK_NOARG(SalInstanceWidget, MnemonicActivateHdl, vcl::Window&, bool) namespace { - Image createImage(const OUString& rImage) +Image createImage(const OUString& rImage) +{ + if (rImage.isEmpty()) + return Image(); + if (rImage.lastIndexOf('.') != rImage.getLength() - 4) { - if (rImage.isEmpty()) - return Image(); - if (rImage.lastIndexOf('.') != rImage.getLength() - 4) - { - assert((rImage == "dialog-warning" || rImage == "dialog-error" || rImage == "dialog-information") && "unknown stock image"); - if (rImage == "dialog-warning") - return Image(StockImage::Yes, IMG_WARN); - else if (rImage == "dialog-error") - return Image(StockImage::Yes, IMG_ERROR); - else if (rImage == "dialog-information") - return Image(StockImage::Yes, IMG_INFO); - } - return Image(StockImage::Yes, rImage); + assert((rImage == "dialog-warning" || rImage == "dialog-error" + || rImage == "dialog-information") + && "unknown stock image"); + if (rImage == "dialog-warning") + return Image(StockImage::Yes, IMG_WARN); + else if (rImage == "dialog-error") + return Image(StockImage::Yes, IMG_ERROR); + else if (rImage == "dialog-information") + return Image(StockImage::Yes, IMG_INFO); } + return Image(StockImage::Yes, rImage); +} + +Image createImage(const VirtualDevice& rDevice) +{ + return Image(rDevice.GetBitmapEx(Point(), rDevice.GetOutputSizePixel())); +} - Image createImage(const VirtualDevice& rDevice) +sal_uInt16 insert_to_menu(sal_uInt16 nLastId, PopupMenu* pMenu, int pos, const OUString& rId, + const OUString& rStr, const OUString* pIconName, + const VirtualDevice* pImageSurface, bool bCheck) +{ + const sal_uInt16 nNewid = nLastId + 1; + pMenu->InsertItem(nNewid, rStr, bCheck ? MenuItemBits::CHECKABLE : MenuItemBits::NONE, + OUStringToOString(rId, RTL_TEXTENCODING_UTF8), pos == -1 ? MENU_APPEND : pos); + if (pIconName) { - return Image(rDevice.GetBitmapEx(Point(), rDevice.GetOutputSizePixel())); + pMenu->SetItemImage(nNewid, createImage(*pIconName)); } - - sal_uInt16 insert_to_menu(sal_uInt16 nLastId, PopupMenu* pMenu, int pos, const OUString& rId, const OUString& rStr, - const OUString* pIconName, const VirtualDevice* pImageSurface, bool bCheck) + else if (pImageSurface) { - const sal_uInt16 nNewid = nLastId + 1; - pMenu->InsertItem(nNewid, rStr, bCheck ? MenuItemBits::CHECKABLE : MenuItemBits::NONE, - OUStringToOString(rId, RTL_TEXTENCODING_UTF8), pos == -1 ? MENU_APPEND : pos); - if (pIconName) - { - pMenu->SetItemImage(nNewid, createImage(*pIconName)); - } - else if (pImageSurface) - { - pMenu->SetItemImage(nNewid, createImage(*pImageSurface)); - } - return nNewid; + pMenu->SetItemImage(nNewid, createImage(*pImageSurface)); } + return nNewid; +} } -namespace { - +namespace +{ class SalInstanceMenu : public weld::Menu { private: @@ -885,20 +672,22 @@ private: sal_uInt16 m_nLastId; DECL_LINK(SelectMenuHdl, ::Menu*, bool); + public: SalInstanceMenu(PopupMenu* pMenu, bool bTakeOwnership) : m_xMenu(pMenu) , m_bTakeOwnership(bTakeOwnership) { const auto nCount = m_xMenu->GetItemCount(); - m_nLastId = nCount ? pMenu->GetItemId(nCount-1) : 0; + m_nLastId = nCount ? pMenu->GetItemId(nCount - 1) : 0; m_xMenu->SetSelectHdl(LINK(this, SalInstanceMenu, SelectMenuHdl)); } - virtual OString popup_at_rect(weld::Widget* pParent, const tools::Rectangle &rRect) override + virtual OString popup_at_rect(weld::Widget* pParent, const tools::Rectangle& rRect) override { SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pParent); assert(pVclWidget); - m_xMenu->Execute(pVclWidget->getWidget(), rRect, PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose); + m_xMenu->Execute(pVclWidget->getWidget(), rRect, + PopupMenuFlags::ExecuteDown | PopupMenuFlags::NoMouseUpClose); return m_xMenu->GetCurItemIdent(); } virtual void set_sensitive(const OString& rIdent, bool bSensitive) override @@ -921,28 +710,21 @@ public: { m_xMenu->ShowItem(m_xMenu->GetItemId(rIdent), bShow); } - virtual void clear() override - { - m_xMenu->Clear(); - } + virtual void clear() override { m_xMenu->Clear(); } virtual void insert(int pos, const OUString& rId, const OUString& rStr, - const OUString* pIconName, VirtualDevice* pImageSurface, bool bCheck) override + const OUString* pIconName, VirtualDevice* pImageSurface, + bool bCheck) override { - m_nLastId = insert_to_menu(m_nLastId, m_xMenu, pos, rId, rStr, pIconName, pImageSurface, bCheck); + m_nLastId + = insert_to_menu(m_nLastId, m_xMenu, pos, rId, rStr, pIconName, pImageSurface, bCheck); } virtual void insert_separator(int pos, const OUString& rId) override { auto nInsertPos = pos == -1 ? MENU_APPEND : pos; m_xMenu->InsertSeparator(rId.toUtf8(), nInsertPos); } - virtual int n_children() const override - { - return m_xMenu->GetItemCount(); - } - PopupMenu* getMenu() const - { - return m_xMenu.get(); - } + virtual int n_children() const override { return m_xMenu->GetItemCount(); } + PopupMenu* getMenu() const { return m_xMenu.get(); } virtual ~SalInstanceMenu() override { m_xMenu->SetSelectHdl(Link<::Menu*, bool>()); @@ -959,8 +741,8 @@ IMPL_LINK_NOARG(SalInstanceMenu, SelectMenuHdl, ::Menu*, bool) return true; } -namespace { - +namespace +{ class SalInstanceToolbar : public SalInstanceWidget, public virtual weld::Toolbar { private: @@ -1022,7 +804,7 @@ public: void set_menu_item_active(const OString& rIdent, bool bActive) override { sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - assert (m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); + assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); if (bActive) { @@ -1034,7 +816,8 @@ public: if (pFloat) { if (bActive) - vcl::Window::GetDockingManager()->StartPopupMode(m_xToolBox, pFloat, FloatWinPopupFlags::GrabFocus); + vcl::Window::GetDockingManager()->StartPopupMode(m_xToolBox, pFloat, + FloatWinPopupFlags::GrabFocus); else vcl::Window::GetDockingManager()->EndPopupMode(pFloat); } @@ -1056,7 +839,7 @@ public: bool get_menu_item_active(const OString& rIdent) const override { sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - assert (m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); + assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); if (rIdent == m_sStartShowIdent) return true; @@ -1101,7 +884,7 @@ public: { SalInstanceMenu* pInstanceMenu = dynamic_cast<SalInstanceMenu*>(pMenu); - PopupMenu* pPopup = pInstanceMenu? pInstanceMenu->getMenu() : nullptr; + PopupMenu* pPopup = pInstanceMenu ? pInstanceMenu->getMenu() : nullptr; sal_uInt16 nId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); m_aMenus[nId] = pPopup; @@ -1114,10 +897,7 @@ public: m_xToolBox->InsertSeparator(nInsertPos, 5); } - virtual int get_n_items() const override - { - return m_xToolBox->GetItemCount(); - } + virtual int get_n_items() const override { return m_xToolBox->GetItemCount(); } virtual OString get_item_ident(int nIndex) const override { @@ -1126,7 +906,8 @@ public: virtual void set_item_ident(int nIndex, const OString& rIdent) override { - return m_xToolBox->SetItemCommand(m_xToolBox->GetItemId(nIndex), OUString::fromUtf8(rIdent)); + return m_xToolBox->SetItemCommand(m_xToolBox->GetItemId(nIndex), + OUString::fromUtf8(rIdent)); } virtual void set_item_label(int nIndex, const OUString& rLabel) override @@ -1146,10 +927,12 @@ public: virtual void set_item_icon_name(const OString& rIdent, const OUString& rIconName) override { - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(StockImage::Yes, rIconName)); + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), + Image(StockImage::Yes, rIconName)); } - virtual void set_item_image(const OString& rIdent, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override + virtual void set_item_image(const OString& rIdent, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) override { m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(rIcon)); } @@ -1157,12 +940,14 @@ public: virtual void set_item_image(const OString& rIdent, VirtualDevice* pDevice) override { if (pDevice) - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), createImage(*pDevice)); + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), + createImage(*pDevice)); else m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image()); } - virtual void set_item_image(int nIndex, const css::uno::Reference<css::graphic::XGraphic>& rIcon) override + virtual void set_item_image(int nIndex, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) override { m_xToolBox->SetItemImage(m_xToolBox->GetItemId(nIndex), Image(rIcon)); } @@ -1182,10 +967,7 @@ public: return m_xToolBox->GetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); } - virtual vcl::ImageType get_icon_size() const override - { - return m_xToolBox->GetImageSize(); - } + virtual vcl::ImageType get_icon_size() const override { return m_xToolBox->GetImageSize(); } virtual void set_icon_size(vcl::ImageType eType) override { @@ -1246,12 +1028,13 @@ IMPL_LINK(SalInstanceToolbar, MenuToggleListener, VclWindowEvent&, rEvent, void) } } -namespace { - +namespace +{ class SalInstanceSizeGroup : public weld::SizeGroup { private: std::shared_ptr<VclSizeGroup> m_xGroup; + public: SalInstanceSizeGroup() : m_xGroup(std::make_shared<VclSizeGroup>()) @@ -1263,73 +1046,62 @@ public: assert(pVclWidget && pVclWidget->getWidget()); pVclWidget->getWidget()->add_to_size_group(m_xGroup); } - virtual void set_mode(VclSizeGroupMode eMode) override - { - m_xGroup->set_mode(eMode); - } + virtual void set_mode(VclSizeGroupMode eMode) override { m_xGroup->set_mode(eMode); } }; +} -class SalInstanceContainer : public SalInstanceWidget, public virtual weld::Container +void SalInstanceContainer::implResetDefault(const vcl::Window* _pWindow) { -protected: - VclPtr<vcl::Window> m_xContainer; - -private: - void implResetDefault(const vcl::Window* _pWindow) + vcl::Window* pChildLoop = _pWindow->GetWindow(GetWindowType::FirstChild); + while (pChildLoop) { - vcl::Window* pChildLoop = _pWindow->GetWindow(GetWindowType::FirstChild); - while (pChildLoop) - { - // does the window participate in the tabbing order? - if (pChildLoop->GetStyle() & WB_DIALOGCONTROL) - implResetDefault(pChildLoop); - - // is it a button? - WindowType eType = pChildLoop->GetType(); - if ( (WindowType::PUSHBUTTON == eType) - || (WindowType::OKBUTTON == eType) - || (WindowType::CANCELBUTTON == eType) - || (WindowType::HELPBUTTON == eType) - || (WindowType::IMAGEBUTTON == eType) - || (WindowType::MENUBUTTON == eType) - || (WindowType::MOREBUTTON == eType) - ) - { - pChildLoop->SetStyle(pChildLoop->GetStyle() & ~WB_DEFBUTTON); - } + // does the window participate in the tabbing order? + if (pChildLoop->GetStyle() & WB_DIALOGCONTROL) + implResetDefault(pChildLoop); - // the next one ... - pChildLoop = pChildLoop->GetWindow(GetWindowType::Next); + // is it a button? + WindowType eType = pChildLoop->GetType(); + if ((WindowType::PUSHBUTTON == eType) || (WindowType::OKBUTTON == eType) + || (WindowType::CANCELBUTTON == eType) || (WindowType::HELPBUTTON == eType) + || (WindowType::IMAGEBUTTON == eType) || (WindowType::MENUBUTTON == eType) + || (WindowType::MOREBUTTON == eType)) + { + pChildLoop->SetStyle(pChildLoop->GetStyle() & ~WB_DEFBUTTON); } - } -public: - SalInstanceContainer(vcl::Window* pContainer, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceWidget(pContainer, pBuilder, bTakeOwnership) - , m_xContainer(pContainer) - { - } - virtual void move(weld::Widget* pWidget, weld::Container* pNewParent) override - { - SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pWidget); - assert(pVclWidget); - SalInstanceContainer* pNewVclParent = dynamic_cast<SalInstanceContainer*>(pNewParent); - assert(!pNewParent || pNewVclParent); - pVclWidget->getWidget()->SetParent(pNewVclParent ? pNewVclParent->getWidget() : nullptr); - } - virtual void recursively_unset_default_buttons() override - { - implResetDefault(m_xContainer.get()); - } - virtual css::uno::Reference<css::awt::XWindow> CreateChildFrame() override - { - auto xPage = VclPtr<VclBin>::Create(m_xContainer.get()); - xPage->set_expand(true); - xPage->Show(); - return css::uno::Reference<css::awt::XWindow>(xPage->GetComponentInterface(), css::uno::UNO_QUERY); + // the next one ... + pChildLoop = pChildLoop->GetWindow(GetWindowType::Next); } -}; +} +SalInstanceContainer::SalInstanceContainer(vcl::Window* pContainer, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceWidget(pContainer, pBuilder, bTakeOwnership) + , m_xContainer(pContainer) +{ +} + +void SalInstanceContainer::move(weld::Widget* pWidget, weld::Container* pNewParent) +{ + SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pWidget); + assert(pVclWidget); + SalInstanceContainer* pNewVclParent = dynamic_cast<SalInstanceContainer*>(pNewParent); + assert(!pNewParent || pNewVclParent); + pVclWidget->getWidget()->SetParent(pNewVclParent ? pNewVclParent->getWidget() : nullptr); +} + +void SalInstanceContainer::recursively_unset_default_buttons() +{ + implResetDefault(m_xContainer.get()); +} + +css::uno::Reference<css::awt::XWindow> SalInstanceContainer::CreateChildFrame() +{ + auto xPage = VclPtr<VclBin>::Create(m_xContainer.get()); + xPage->set_expand(true); + xPage->Show(); + return css::uno::Reference<css::awt::XWindow>(xPage->GetComponentInterface(), + css::uno::UNO_QUERY); } std::unique_ptr<weld::Container> SalInstanceWidget::weld_parent() const @@ -1340,8 +1112,8 @@ std::unique_ptr<weld::Container> SalInstanceWidget::weld_parent() const return std::make_unique<SalInstanceContainer>(pParent, m_pBuilder, false); } -namespace { - +namespace +{ class SalInstanceBox : public SalInstanceContainer, public virtual weld::Box { public: @@ -1357,441 +1129,386 @@ public: } }; - void CollectChildren(const vcl::Window& rCurrent, const basegfx::B2IPoint& rTopLeft, weld::ScreenShotCollection& rControlDataCollection) +void CollectChildren(const vcl::Window& rCurrent, const basegfx::B2IPoint& rTopLeft, + weld::ScreenShotCollection& rControlDataCollection) +{ + if (rCurrent.IsVisible()) { - if (rCurrent.IsVisible()) - { - const Point aCurrentPos(rCurrent.GetPosPixel()); - const Size aCurrentSize(rCurrent.GetSizePixel()); - const basegfx::B2IPoint aCurrentTopLeft(rTopLeft.getX() + aCurrentPos.X(), rTopLeft.getY() + aCurrentPos.Y()); - const basegfx::B2IRange aCurrentRange(aCurrentTopLeft, aCurrentTopLeft + basegfx::B2IPoint(aCurrentSize.Width(), aCurrentSize.Height())); + const Point aCurrentPos(rCurrent.GetPosPixel()); + const Size aCurrentSize(rCurrent.GetSizePixel()); + const basegfx::B2IPoint aCurrentTopLeft(rTopLeft.getX() + aCurrentPos.X(), + rTopLeft.getY() + aCurrentPos.Y()); + const basegfx::B2IRange aCurrentRange( + aCurrentTopLeft, + aCurrentTopLeft + basegfx::B2IPoint(aCurrentSize.Width(), aCurrentSize.Height())); - if (!aCurrentRange.isEmpty()) - { - rControlDataCollection.emplace_back(rCurrent.GetHelpId(), aCurrentRange); - } + if (!aCurrentRange.isEmpty()) + { + rControlDataCollection.emplace_back(rCurrent.GetHelpId(), aCurrentRange); + } - for (sal_uInt16 a(0); a < rCurrent.GetChildCount(); a++) + for (sal_uInt16 a(0); a < rCurrent.GetChildCount(); a++) + { + vcl::Window* pChild = rCurrent.GetChild(a); + if (nullptr != pChild) { - vcl::Window* pChild = rCurrent.GetChild(a); - if (nullptr != pChild) - { - CollectChildren(*pChild, aCurrentTopLeft, rControlDataCollection); - } + CollectChildren(*pChild, aCurrentTopLeft, rControlDataCollection); } } } +} -class SalInstanceWindow : public SalInstanceContainer, public virtual weld::Window -{ -private: - VclPtr<vcl::Window> m_xWindow; - - DECL_LINK(HelpHdl, vcl::Window&, bool); - - void override_child_help(vcl::Window* pParent) - { - for (vcl::Window *pChild = pParent->GetWindow(GetWindowType::FirstChild); pChild; pChild = pChild->GetWindow(GetWindowType::Next)) - override_child_help(pChild); - pParent->SetHelpHdl(LINK(this, SalInstanceWindow, HelpHdl)); - } +} - void clear_child_help(vcl::Window* pParent) - { - for (vcl::Window *pChild = pParent->GetWindow(GetWindowType::FirstChild); pChild; pChild = pChild->GetWindow(GetWindowType::Next)) - clear_child_help(pChild); - pParent->SetHelpHdl(Link<vcl::Window&,bool>()); - } +void SalInstanceWindow::override_child_help(vcl::Window* pParent) +{ + for (vcl::Window* pChild = pParent->GetWindow(GetWindowType::FirstChild); pChild; + pChild = pChild->GetWindow(GetWindowType::Next)) + override_child_help(pChild); + pParent->SetHelpHdl(LINK(this, SalInstanceWindow, HelpHdl)); +} -public: - SalInstanceWindow(vcl::Window* pWindow, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceContainer(pWindow, pBuilder, bTakeOwnership) - , m_xWindow(pWindow) - { - override_child_help(m_xWindow); - } +void SalInstanceWindow::clear_child_help(vcl::Window* pParent) +{ + for (vcl::Window* pChild = pParent->GetWindow(GetWindowType::FirstChild); pChild; + pChild = pChild->GetWindow(GetWindowType::Next)) + clear_child_help(pChild); + pParent->SetHelpHdl(Link<vcl::Window&, bool>()); +} - virtual void set_title(const OUString& rTitle) override - { - m_xWindow->SetText(rTitle); - } +SalInstanceWindow::SalInstanceWindow(vcl::Window* pWindow, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceContainer(pWindow, pBuilder, bTakeOwnership) + , m_xWindow(pWindow) +{ + override_child_help(m_xWindow); +} - virtual OUString get_title() const override - { - return m_xWindow->GetText(); - } +void SalInstanceWindow::set_title(const OUString& rTitle) { m_xWindow->SetText(rTitle); } - void help(); +OUString SalInstanceWindow::get_title() const { return m_xWindow->GetText(); } - virtual void set_busy_cursor(bool bBusy) override - { - if (bBusy) - m_xWindow->EnterWait(); - else - m_xWindow->LeaveWait(); - } +void SalInstanceWindow::set_busy_cursor(bool bBusy) +{ + if (bBusy) + m_xWindow->EnterWait(); + else + m_xWindow->LeaveWait(); +} - virtual css::uno::Reference<css::awt::XWindow> GetXWindow() override - { - css::uno::Reference<css::awt::XWindow> xWindow(m_xWindow->GetComponentInterface(), css::uno::UNO_QUERY); - return xWindow; - } +css::uno::Reference<css::awt::XWindow> SalInstanceWindow::GetXWindow() +{ + css::uno::Reference<css::awt::XWindow> xWindow(m_xWindow->GetComponentInterface(), + css::uno::UNO_QUERY); + return xWindow; +} - virtual void resize_to_request() override +void SalInstanceWindow::resize_to_request() +{ + if (SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get())) { - if (SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get())) - { - pSysWin->setOptimalLayoutSize(); - return; - } - if (DockingWindow* pDockWin = dynamic_cast<DockingWindow*>(m_xWindow.get())) - { - pDockWin->setOptimalLayoutSize(); - return; - } - assert(false && "must be system or docking window"); + pSysWin->setOptimalLayoutSize(); + return; } - - virtual void set_modal(bool bModal) override + if (DockingWindow* pDockWin = dynamic_cast<DockingWindow*>(m_xWindow.get())) { - m_xWindow->ImplGetFrame()->SetModal(bModal); + pDockWin->setOptimalLayoutSize(); + return; } + assert(false && "must be system or docking window"); +} - virtual bool get_modal() const override - { - return m_xWindow->ImplGetFrame()->GetModal(); - } +void SalInstanceWindow::set_modal(bool bModal) { m_xWindow->ImplGetFrame()->SetModal(bModal); } - virtual void window_move(int x, int y) override - { - m_xWindow->SetPosPixel(Point(x, y)); - } +bool SalInstanceWindow::get_modal() const { return m_xWindow->ImplGetFrame()->GetModal(); } - virtual Size get_size() const override - { - return m_xWindow->GetSizePixel(); - } +void SalInstanceWindow::window_move(int x, int y) { m_xWindow->SetPosPixel(Point(x, y)); } - virtual Point get_position() const override - { - return m_xWindow->GetPosPixel(); - } +Size SalInstanceWindow::get_size() const { return m_xWindow->GetSizePixel(); } - virtual tools::Rectangle get_monitor_workarea() const override - { - return m_xWindow->GetDesktopRectPixel(); - } +Point SalInstanceWindow::get_position() const { return m_xWindow->GetPosPixel(); } - virtual void set_centered_on_parent(bool /*bTrackGeometryRequests*/) override - { - if (vcl::Window* pParent = m_xWidget->GetParent()) - { - Size aParentGeometry(pParent->GetSizePixel()); - Size aGeometry(m_xWidget->get_preferred_size()); - auto nX = (aParentGeometry.Width() - aGeometry.Width()) / 2; - auto nY = (aParentGeometry.Height() - aGeometry.Height()) / 2; - m_xWidget->SetPosPixel(Point(nX, nY)); - } - } +tools::Rectangle SalInstanceWindow::get_monitor_workarea() const +{ + return m_xWindow->GetDesktopRectPixel(); +} - virtual bool get_resizable() const override +void SalInstanceWindow::set_centered_on_parent(bool /*bTrackGeometryRequests*/) +{ + if (vcl::Window* pParent = m_xWidget->GetParent()) { - return m_xWindow->GetStyle() & WB_SIZEABLE; + Size aParentGeometry(pParent->GetSizePixel()); + Size aGeometry(m_xWidget->get_preferred_size()); + auto nX = (aParentGeometry.Width() - aGeometry.Width()) / 2; + auto nY = (aParentGeometry.Height() - aGeometry.Height()) / 2; + m_xWidget->SetPosPixel(Point(nX, nY)); } +} - virtual bool has_toplevel_focus() const override - { - return m_xWindow->HasChildPathFocus(); - } +bool SalInstanceWindow::get_resizable() const { return m_xWindow->GetStyle() & WB_SIZEABLE; } - virtual void present() override - { - m_xWindow->ToTop(ToTopFlags::RestoreWhenMin | ToTopFlags::ForegroundTask); - } +bool SalInstanceWindow::has_toplevel_focus() const { return m_xWindow->HasChildPathFocus(); } - virtual void set_window_state(const OString& rStr) override - { - SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); - assert(pSysWin); - pSysWin->SetWindowState(rStr); - } +void SalInstanceWindow::present() +{ + m_xWindow->ToTop(ToTopFlags::RestoreWhenMin | ToTopFlags::ForegroundTask); +} - virtual OString get_window_state(WindowStateMask nMask) const override - { - SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); - assert(pSysWin); - return pSysWin->GetWindowState(nMask); - } +void SalInstanceWindow::set_window_state(const OString& rStr) +{ + SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); + assert(pSysWin); + pSysWin->SetWindowState(rStr); +} - virtual SystemEnvData get_system_data() const override - { - return *m_xWindow->GetSystemData(); - } +OString SalInstanceWindow::get_window_state(WindowStateMask nMask) const +{ + SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); + assert(pSysWin); + return pSysWin->GetWindowState(nMask); +} - virtual void connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink) override - { - ensure_event_listener(); - weld::Window::connect_toplevel_focus_changed(rLink); - } +SystemEnvData SalInstanceWindow::get_system_data() const { return *m_xWindow->GetSystemData(); } - virtual void HandleEventListener(VclWindowEvent& rEvent) override - { - if (rEvent.GetId() == VclEventId::WindowActivate || rEvent.GetId() == VclEventId::WindowDeactivate) - { - signal_toplevel_focus_changed(); - return; - } - SalInstanceContainer::HandleEventListener(rEvent); - } +void SalInstanceWindow::connect_toplevel_focus_changed(const Link<weld::Widget&, void>& rLink) +{ + ensure_event_listener(); + weld::Window::connect_toplevel_focus_changed(rLink); +} - virtual void draw(VirtualDevice& rOutput) override +void SalInstanceWindow::HandleEventListener(VclWindowEvent& rEvent) +{ + if (rEvent.GetId() == VclEventId::WindowActivate + || rEvent.GetId() == VclEventId::WindowDeactivate) { - SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); - assert(pSysWin); - pSysWin->createScreenshot(rOutput); + signal_toplevel_focus_changed(); + return; } + SalInstanceContainer::HandleEventListener(rEvent); +} - virtual weld::ScreenShotCollection collect_screenshot_data() override - { - weld::ScreenShotCollection aRet; - - // collect all children. Choose start pos to be negative - // of target dialog's position to get all positions relative to (0,0) - const Point aParentPos(m_xWindow->GetPosPixel()); - const basegfx::B2IPoint aTopLeft(-aParentPos.X(), -aParentPos.Y()); - CollectChildren(*m_xWindow, aTopLeft, aRet); +void SalInstanceWindow::draw(VirtualDevice& rOutput) +{ + SystemWindow* pSysWin = dynamic_cast<SystemWindow*>(m_xWindow.get()); + assert(pSysWin); + pSysWin->createScreenshot(rOutput); +} - return aRet; - } +weld::ScreenShotCollection SalInstanceWindow::collect_screenshot_data() +{ + weld::ScreenShotCollection aRet; - virtual ~SalInstanceWindow() override - { - clear_child_help(m_xWindow); - } -}; + // collect all children. Choose start pos to be negative + // of target dialog's position to get all positions relative to (0,0) + const Point aParentPos(m_xWindow->GetPosPixel()); + const basegfx::B2IPoint aTopLeft(-aParentPos.X(), -aParentPos.Y()); + CollectChildren(*m_xWindow, aTopLeft, aRet); + return aRet; } +SalInstanceWindow::~SalInstanceWindow() { clear_child_help(m_xWindow); } + IMPL_LINK_NOARG(SalInstanceWindow, HelpHdl, vcl::Window&, bool) { help(); return false; } -typedef std::set<VclPtr<vcl::Window> > winset; +typedef std::set<VclPtr<vcl::Window>> winset; namespace { - void hideUnless(const vcl::Window *pTop, const winset& rVisibleWidgets, - std::vector<VclPtr<vcl::Window> > &rWasVisibleWidgets) +void hideUnless(const vcl::Window* pTop, const winset& rVisibleWidgets, + std::vector<VclPtr<vcl::Window>>& rWasVisibleWidgets) +{ + for (vcl::Window* pChild = pTop->GetWindow(GetWindowType::FirstChild); pChild; + pChild = pChild->GetWindow(GetWindowType::Next)) { - for (vcl::Window* pChild = pTop->GetWindow(GetWindowType::FirstChild); pChild; - pChild = pChild->GetWindow(GetWindowType::Next)) + if (!pChild->IsVisible()) + continue; + if (rVisibleWidgets.find(pChild) == rVisibleWidgets.end()) { - if (!pChild->IsVisible()) - continue; - if (rVisibleWidgets.find(pChild) == rVisibleWidgets.end()) - { - rWasVisibleWidgets.emplace_back(pChild); - pChild->Hide(); - } - else if (isContainerWindow(pChild)) - { - hideUnless(pChild, rVisibleWidgets, rWasVisibleWidgets); - } + rWasVisibleWidgets.emplace_back(pChild); + pChild->Hide(); } - } - -class SalInstanceDialog : public SalInstanceWindow, public virtual weld::Dialog -{ -private: - VclPtr<::Dialog> m_xDialog; - - // for calc ref dialog that shrink to range selection widgets and resize back - VclPtr<vcl::Window> m_xRefEdit; - std::vector<VclPtr<vcl::Window> > m_aHiddenWidgets; // vector of hidden Controls - long m_nOldEditWidthReq; // Original width request of the input field - sal_Int32 m_nOldBorderWidth; // border width for expanded dialog - - DECL_LINK(PopupScreenShotMenuHdl, const CommandEvent&, bool); - -public: - SalInstanceDialog(::Dialog* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceWindow(pDialog, pBuilder, bTakeOwnership) - , m_xDialog(pDialog) - , m_nOldEditWidthReq(0) - , m_nOldBorderWidth(0) - { - const bool bScreenshotMode(officecfg::Office::Common::Misc::ScreenshotMode::get()); - if (bScreenshotMode) + else if (isContainerWindow(pChild)) { - m_xDialog->SetPopupMenuHdl(LINK(this, SalInstanceDialog, PopupScreenShotMenuHdl)); + hideUnless(pChild, rVisibleWidgets, rWasVisibleWidgets); } } +} +} - virtual bool runAsync(std::shared_ptr<weld::DialogController> aOwner, const std::function<void(sal_Int32)> &rEndDialogFn) override - { - VclAbstractDialog::AsyncContext aCtx; - aCtx.mxOwnerDialogController = aOwner; - aCtx.maEndDialogFn = rEndDialogFn; - VclButtonBox* pActionArea = m_xDialog->get_action_area(); - if (pActionArea) - pActionArea->sort_native_button_order(); - return m_xDialog->StartExecuteAsync(aCtx); - } - - virtual bool runAsync(std::shared_ptr<Dialog> const & rxSelf, const std::function<void(sal_Int32)> &rEndDialogFn) override +SalInstanceDialog::SalInstanceDialog(::Dialog* pDialog, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceWindow(pDialog, pBuilder, bTakeOwnership) + , m_xDialog(pDialog) + , m_nOldEditWidthReq(0) + , m_nOldBorderWidth(0) +{ + const bool bScreenshotMode(officecfg::Office::Common::Misc::ScreenshotMode::get()); + if (bScreenshotMode) { - assert( rxSelf.get() == this ); - VclAbstractDialog::AsyncContext aCtx; - // In order to store a shared_ptr to ourself, we have to have been constructed by make_shared, - // which is that rxSelf enforces. - aCtx.mxOwnerSelf = rxSelf; - aCtx.maEndDialogFn = rEndDialogFn; - VclButtonBox* pActionArea = m_xDialog->get_action_area(); - if (pActionArea) - pActionArea->sort_native_button_order(); - return m_xDialog->StartExecuteAsync(aCtx); + m_xDialog->SetPopupMenuHdl(LINK(this, SalInstanceDialog, PopupScreenShotMenuHdl)); } +} - virtual void collapse(weld::Widget* pEdit, weld::Widget* pButton) override - { - SalInstanceWidget* pVclEdit = dynamic_cast<SalInstanceWidget*>(pEdit); - assert(pVclEdit); - SalInstanceWidget* pVclButton = dynamic_cast<SalInstanceWidget*>(pButton); - - vcl::Window* pRefEdit = pVclEdit->getWidget(); - vcl::Window* pRefBtn = pVclButton ? pVclButton->getWidget() : nullptr; +bool SalInstanceDialog::runAsync(std::shared_ptr<weld::DialogController> aOwner, + const std::function<void(sal_Int32)>& rEndDialogFn) +{ + VclAbstractDialog::AsyncContext aCtx; + aCtx.mxOwnerDialogController = aOwner; + aCtx.maEndDialogFn = rEndDialogFn; + VclButtonBox* pActionArea = m_xDialog->get_action_area(); + if (pActionArea) + pActionArea->sort_native_button_order(); + return m_xDialog->StartExecuteAsync(aCtx); +} - auto nOldEditWidth = pRefEdit->GetSizePixel().Width(); - m_nOldEditWidthReq = pRefEdit->get_width_request(); +bool SalInstanceDialog::runAsync(std::shared_ptr<Dialog> const& rxSelf, + const std::function<void(sal_Int32)>& rEndDialogFn) +{ + assert(rxSelf.get() == this); + VclAbstractDialog::AsyncContext aCtx; + // In order to store a shared_ptr to ourself, we have to have been constructed by make_shared, + // which is that rxSelf enforces. + aCtx.mxOwnerSelf = rxSelf; + aCtx.maEndDialogFn = rEndDialogFn; + VclButtonBox* pActionArea = m_xDialog->get_action_area(); + if (pActionArea) + pActionArea->sort_native_button_order(); + return m_xDialog->StartExecuteAsync(aCtx); +} - //We want just pRefBtn and pRefEdit to be shown - //mark widgets we want to be visible, starting with pRefEdit - //and all its direct parents. - winset aVisibleWidgets; - vcl::Window *pContentArea = m_xDialog->get_content_area(); - for (vcl::Window *pCandidate = pRefEdit; - pCandidate && (pCandidate != pContentArea && pCandidate->IsVisible()); - pCandidate = pCandidate->GetWindow(GetWindowType::RealParent)) - { - aVisibleWidgets.insert(pCandidate); - } - //same again with pRefBtn, except stop if there's a - //shared parent in the existing widgets - for (vcl::Window *pCandidate = pRefBtn; - pCandidate && (pCandidate != pContentArea && pCandidate->IsVisible()); - pCandidate = pCandidate->GetWindow(GetWindowType::RealParent)) - { - if (aVisibleWidgets.insert(pCandidate).second) - break; - } +void SalInstanceDialog::collapse(weld::Widget* pEdit, weld::Widget* pButton) +{ + SalInstanceWidget* pVclEdit = dynamic_cast<SalInstanceWidget*>(pEdit); + assert(pVclEdit); + SalInstanceWidget* pVclButton = dynamic_cast<SalInstanceWidget*>(pButton); - //hide everything except the aVisibleWidgets - hideUnless(pContentArea, aVisibleWidgets, m_aHiddenWidgets); + vcl::Window* pRefEdit = pVclEdit->getWidget(); + vcl::Window* pRefBtn = pVclButton ? pVclButton->getWidget() : nullptr; - // the insert function case has an initially hidden edit widget, so it has - // not start size, so take larger of actual size and size request - pRefEdit->set_width_request(std::max(nOldEditWidth, m_nOldEditWidthReq)); - m_nOldBorderWidth = m_xDialog->get_border_width(); - m_xDialog->set_border_width(0); - if (vcl::Window *pActionArea = m_xDialog->get_action_area()) - pActionArea->Hide(); - m_xDialog->setOptimalLayoutSize(); - m_xRefEdit = pRefEdit; - } + auto nOldEditWidth = pRefEdit->GetSizePixel().Width(); + m_nOldEditWidthReq = pRefEdit->get_width_request(); - virtual void undo_collapse() override + //We want just pRefBtn and pRefEdit to be shown + //mark widgets we want to be visible, starting with pRefEdit + //and all its direct parents. + winset aVisibleWidgets; + vcl::Window* pContentArea = m_xDialog->get_content_area(); + for (vcl::Window* pCandidate = pRefEdit; + pCandidate && (pCandidate != pContentArea && pCandidate->IsVisible()); + pCandidate = pCandidate->GetWindow(GetWindowType::RealParent)) { - // All others: Show(); - for (VclPtr<vcl::Window> const & pWindow : m_aHiddenWidgets) - { - pWindow->Show(); - } - m_aHiddenWidgets.clear(); - - m_xRefEdit->set_width_request(m_nOldEditWidthReq); - m_xRefEdit.clear(); - m_xDialog->set_border_width(m_nOldBorderWidth); - if (vcl::Window *pActionArea = m_xDialog->get_action_area()) - pActionArea->Show(); - m_xDialog->setOptimalLayoutSize(); + aVisibleWidgets.insert(pCandidate); } - - virtual void SetInstallLOKNotifierHdl(const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink) override + //same again with pRefBtn, except stop if there's a + //shared parent in the existing widgets + for (vcl::Window* pCandidate = pRefBtn; + pCandidate && (pCandidate != pContentArea && pCandidate->IsVisible()); + pCandidate = pCandidate->GetWindow(GetWindowType::RealParent)) { - m_xDialog->SetInstallLOKNotifierHdl(rLink); + if (aVisibleWidgets.insert(pCandidate).second) + break; } - virtual int run() override - { - VclButtonBox* pActionArea = m_xDialog->get_action_area(); - if (pActionArea) - pActionArea->sort_native_button_order(); - return m_xDialog->Execute(); - } + //hide everything except the aVisibleWidgets + hideUnless(pContentArea, aVisibleWidgets, m_aHiddenWidgets); + + // the insert function case has an initially hidden edit widget, so it has + // not start size, so take larger of actual size and size request + pRefEdit->set_width_request(std::max(nOldEditWidth, m_nOldEditWidthReq)); + m_nOldBorderWidth = m_xDialog->get_border_width(); + m_xDialog->set_border_width(0); + if (vcl::Window* pActionArea = m_xDialog->get_action_area()) + pActionArea->Hide(); + m_xDialog->setOptimalLayoutSize(); + m_xRefEdit = pRefEdit; +} - virtual void response(int nResponse) override +void SalInstanceDialog::undo_collapse() +{ + // All others: Show(); + for (VclPtr<vcl::Window> const& pWindow : m_aHiddenWidgets) { - m_xDialog->EndDialog(nResponse); + pWindow->Show(); } + m_aHiddenWidgets.clear(); - virtual void add_button(const OUString& rText, int nResponse, const OString& rHelpId) override - { - VclButtonBox* pBox = m_xDialog->get_action_area(); - VclPtr<PushButton> xButton(VclPtr<PushButton>::Create(pBox, WB_CLIPCHILDREN|WB_CENTER|WB_VCENTER)); - xButton->SetText(rText); - xButton->SetHelpId(rHelpId); + m_xRefEdit->set_width_request(m_nOldEditWidthReq); + m_xRefEdit.clear(); + m_xDialog->set_border_width(m_nOldBorderWidth); + if (vcl::Window* pActionArea = m_xDialog->get_action_area()) + pActionArea->Show(); + m_xDialog->setOptimalLayoutSize(); +} - switch (nResponse) - { - case RET_OK: - xButton->set_id("ok"); - break; - case RET_CLOSE: - xButton->set_id("close"); - break; - case RET_CANCEL: - xButton->set_id("cancel"); - break; - case RET_YES: - xButton->set_id("yes"); - break; - case RET_NO: - xButton->set_id("no"); - break; - } +void SalInstanceDialog::SetInstallLOKNotifierHdl( + const Link<void*, vcl::ILibreOfficeKitNotifier*>& rLink) +{ + m_xDialog->SetInstallLOKNotifierHdl(rLink); +} - xButton->Show(); - m_xDialog->add_button(xButton, nResponse, true); - } +int SalInstanceDialog::run() +{ + VclButtonBox* pActionArea = m_xDialog->get_action_area(); + if (pActionArea) + pActionArea->sort_native_button_order(); + return m_xDialog->Execute(); +} - virtual void set_modal(bool bModal) override - { - if (get_modal() == bModal) - return; - m_xDialog->SetModalInputMode(bModal); - } +void SalInstanceDialog::response(int nResponse) { m_xDialog->EndDialog(nResponse); } - virtual bool get_modal() const override +void SalInstanceDialog::add_button(const OUString& rText, int nResponse, const OString& rHelpId) +{ + VclButtonBox* pBox = m_xDialog->get_action_area(); + VclPtr<PushButton> xButton( + VclPtr<PushButton>::Create(pBox, WB_CLIPCHILDREN | WB_CENTER | WB_VCENTER)); + xButton->SetText(rText); + xButton->SetHelpId(rHelpId); + + switch (nResponse) { - return m_xDialog->IsModalInputMode(); + case RET_OK: + xButton->set_id("ok"); + break; + case RET_CLOSE: + xButton->set_id("close"); + break; + case RET_CANCEL: + xButton->set_id("cancel"); + break; + case RET_YES: + xButton->set_id("yes"); + break; + case RET_NO: + xButton->set_id("no"); + break; } - virtual weld::Button* weld_widget_for_response(int nResponse) override; + xButton->Show(); + m_xDialog->add_button(xButton, nResponse, true); +} - virtual void set_default_response(int nResponse) override - { - m_xDialog->set_default_response(nResponse); - } +void SalInstanceDialog::set_modal(bool bModal) +{ + if (get_modal() == bModal) + return; + m_xDialog->SetModalInputMode(bModal); +} - virtual Container* weld_content_area() override - { - return new SalInstanceContainer(m_xDialog->get_content_area(), m_pBuilder, false); - } +bool SalInstanceDialog::get_modal() const { return m_xDialog->IsModalInputMode(); } -}; +void SalInstanceDialog::set_default_response(int nResponse) +{ + m_xDialog->set_default_response(nResponse); +} +weld::Container* SalInstanceDialog::weld_content_area() +{ + return new SalInstanceContainer(m_xDialog->get_content_area(), m_pBuilder, false); } IMPL_LINK(SalInstanceDialog, PopupScreenShotMenuHdl, const CommandEvent&, rCEvt, bool) @@ -1814,7 +1531,8 @@ IMPL_LINK(SalInstanceDialog, PopupScreenShotMenuHdl, const CommandEvent&, rCEvt, { // open screenshot annotation dialog VclAbstractDialogFactory* pFact = VclAbstractDialogFactory::Create(); - VclPtr<AbstractScreenshotAnnotationDlg> pTmp = pFact->CreateScreenshotAnnotationDlg(*this); + VclPtr<AbstractScreenshotAnnotationDlg> pTmp + = pFact->CreateScreenshotAnnotationDlg(*this); ScopedVclPtr<AbstractScreenshotAnnotationDlg> pDialog(pTmp); if (pDialog) @@ -1835,14 +1553,16 @@ IMPL_LINK(SalInstanceDialog, PopupScreenShotMenuHdl, const CommandEvent&, rCEvt, return false; } -namespace { - +namespace +{ class SalInstanceMessageDialog : public SalInstanceDialog, public virtual weld::MessageDialog { private: VclPtr<::MessageDialog> m_xMessageDialog; + public: - SalInstanceMessageDialog(::MessageDialog* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceMessageDialog(::MessageDialog* pDialog, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceDialog(pDialog, pBuilder, bTakeOwnership) , m_xMessageDialog(pDialog) { @@ -1878,8 +1598,10 @@ class SalInstanceAboutDialog : public SalInstanceDialog, public virtual weld::Ab { private: VclPtr<vcl::AboutDialog> m_xAboutDialog; + public: - SalInstanceAboutDialog(vcl::AboutDialog* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceAboutDialog(vcl::AboutDialog* pDialog, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceDialog(pDialog, pBuilder, bTakeOwnership) , m_xAboutDialog(pDialog) { @@ -1948,7 +1670,8 @@ private: DECL_LINK(UpdateRoadmap_Hdl, Timer*, void); public: - SalInstanceAssistant(vcl::RoadmapWizard* pDialog, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceAssistant(vcl::RoadmapWizard* pDialog, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceDialog(pDialog, pBuilder, bTakeOwnership) , m_xWizard(pDialog) { @@ -1958,15 +1681,9 @@ public: m_aUpdateRoadmapIdle.SetPriority(TaskPriority::HIGHEST); } - virtual int get_current_page() const override - { - return find_id(m_xWizard->GetCurLevel()); - } + virtual int get_current_page() const override { return find_id(m_xWizard->GetCurLevel()); } - virtual int get_n_pages() const override - { - return m_aAddedPages.size(); - } + virtual int get_n_pages() const override { return m_aAddedPages.size(); } virtual OString get_page_ident(int nPage) const override { @@ -2102,9 +1819,9 @@ public: virtual ~SalInstanceAssistant() override { - for (auto &rGrid : m_aAddedGrids) + for (auto& rGrid : m_aAddedGrids) rGrid.disposeAndClear(); - for (auto &rPage : m_aAddedPages) + for (auto& rPage : m_aAddedPages) rPage.disposeAndClear(); } }; @@ -2143,12 +1860,13 @@ IMPL_LINK_NOARG(SalInstanceAssistant, UpdateRoadmap_Hdl, Timer*, void) enable_notify_events(); } -namespace { - +namespace +{ class SalInstanceFrame : public SalInstanceContainer, public virtual weld::Frame { private: VclPtr<VclFrame> m_xFrame; + public: SalInstanceFrame(VclFrame* pFrame, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceContainer(pFrame, pBuilder, bTakeOwnership) @@ -2156,15 +1874,9 @@ public: { } - virtual void set_label(const OUString& rText) override - { - m_xFrame->set_label(rText); - } + virtual void set_label(const OUString& rText) override { m_xFrame->set_label(rText); } - virtual OUString get_label() const override - { - return m_xFrame->get_label(); - } + virtual OUString get_label() const override { return m_xFrame->get_label(); } virtual std::unique_ptr<weld::Label> weld_label_widget() const override; }; @@ -2173,15 +1885,16 @@ class SalInstanceScrolledWindow : public SalInstanceContainer, public virtual we { private: VclPtr<VclScrolledWindow> m_xScrolledWindow; - Link<ScrollBar*,void> m_aOrigVScrollHdl; - Link<ScrollBar*,void> m_aOrigHScrollHdl; + Link<ScrollBar*, void> m_aOrigVScrollHdl; + Link<ScrollBar*, void> m_aOrigHScrollHdl; bool m_bUserManagedScrolling; DECL_LINK(VscrollHdl, ScrollBar*, void); DECL_LINK(HscrollHdl, ScrollBar*, void); public: - SalInstanceScrolledWindow(VclScrolledWindow* pScrolledWindow, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceScrolledWindow(VclScrolledWindow* pScrolledWindow, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceContainer(pScrolledWindow, pBuilder, bTakeOwnership) , m_xScrolledWindow(pScrolledWindow) , m_bUserManagedScrolling(false) @@ -2194,9 +1907,8 @@ public: rHorzScrollBar.SetScrollHdl(LINK(this, SalInstanceScrolledWindow, HscrollHdl)); } - virtual void hadjustment_configure(int value, int lower, int upper, - int step_increment, int page_increment, - int page_size) override + virtual void hadjustment_configure(int value, int lower, int upper, int step_increment, + int page_increment, int page_size) override { ScrollBar& rHorzScrollBar = m_xScrolledWindow->getHorzScrollBar(); rHorzScrollBar.SetRangeMin(lower); @@ -2259,7 +1971,7 @@ public: virtual void set_hpolicy(VclPolicyType eHPolicy) override { - WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOHSCROLL|WB_HSCROLL); + WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOHSCROLL | WB_HSCROLL); if (eHPolicy == VclPolicyType::ALWAYS) nWinBits |= WB_HSCROLL; else if (eHPolicy == VclPolicyType::AUTOMATIC) @@ -2283,9 +1995,8 @@ public: return m_xScrolledWindow->getHorzScrollBar().get_preferred_size().Height(); } - virtual void vadjustment_configure(int value, int lower, int upper, - int step_increment, int page_increment, - int page_size) override + virtual void vadjustment_configure(int value, int lower, int upper, int step_increment, + int page_increment, int page_size) override { ScrollBar& rVertScrollBar = m_xScrolledWindow->getVertScrollBar(); rVertScrollBar.SetRangeMin(lower); @@ -2360,7 +2071,7 @@ public: virtual void set_vpolicy(VclPolicyType eVPolicy) override { - WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOVSCROLL|WB_VSCROLL); + WinBits nWinBits = m_xScrolledWindow->GetStyle() & ~(WB_AUTOVSCROLL | WB_VSCROLL); if (eVPolicy == VclPolicyType::ALWAYS) nWinBits |= WB_VSCROLL; else if (eVPolicy == VclPolicyType::AUTOMATIC) @@ -2413,8 +2124,8 @@ IMPL_LINK_NOARG(SalInstanceScrolledWindow, HscrollHdl, ScrollBar*, void) m_aOrigHScrollHdl.Call(&m_xScrolledWindow->getHorzScrollBar()); } -namespace { - +namespace +{ class SalInstanceNotebook : public SalInstanceContainer, public virtual weld::Notebook { private: @@ -2511,10 +2222,7 @@ public: m_aAddedPages.try_emplace(rIdent, xPage, xGrid); } - virtual int get_n_pages() const override - { - return m_xNotebook->GetPageCount(); - } + virtual int get_n_pages() const override { return m_xNotebook->GetPageCount(); } virtual OUString get_tab_label_text(const OString& rIdent) const override { @@ -2528,13 +2236,13 @@ public: virtual ~SalInstanceNotebook() override { - for (auto &rItem : m_aAddedPages) + for (auto& rItem : m_aAddedPages) { rItem.second.second.disposeAndClear(); rItem.second.first.disposeAndClear(); } - m_xNotebook->SetActivatePageHdl(Link<TabControl*,void>()); - m_xNotebook->SetDeactivatePageHdl(Link<TabControl*,bool>()); + m_xNotebook->SetActivatePageHdl(Link<TabControl*, void>()); + m_xNotebook->SetDeactivatePageHdl(Link<TabControl*, bool>()); } }; @@ -2550,8 +2258,8 @@ IMPL_LINK_NOARG(SalInstanceNotebook, ActivatePageHdl, TabControl*, void) m_aEnterPageHdl.Call(get_current_page_ident()); } -namespace { - +namespace +{ class SalInstanceVerticalNotebook : public SalInstanceContainer, public virtual weld::Notebook { private: @@ -2562,12 +2270,14 @@ private: DECL_LINK(ActivatePageHdl, VerticalTabControl*, void); public: - SalInstanceVerticalNotebook(VerticalTabControl* pNotebook, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceVerticalNotebook(VerticalTabControl* pNotebook, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceContainer(pNotebook, pBuilder, bTakeOwnership) , m_xNotebook(pNotebook) { m_xNotebook->SetActivatePageHdl(LINK(this, SalInstanceVerticalNotebook, ActivatePageHdl)); - m_xNotebook->SetDeactivatePageHdl(LINK(this, SalInstanceVerticalNotebook, DeactivatePageHdl)); + m_xNotebook->SetDeactivatePageHdl( + LINK(this, SalInstanceVerticalNotebook, DeactivatePageHdl)); } virtual int get_current_page() const override @@ -2580,10 +2290,7 @@ public: return m_xNotebook->GetPageId(nPage); } - virtual OString get_current_page_ident() const override - { - return m_xNotebook->GetCurPageId(); - } + virtual OString get_current_page_ident() const override { return m_xNotebook->GetCurPageId(); } virtual weld::Container* get_page(const OString& rIdent) const override { @@ -2626,10 +2333,7 @@ public: m_xNotebook->InsertPage(rIdent, rLabel, Image(), "", xGrid, nPos); } - virtual int get_n_pages() const override - { - return m_xNotebook->GetPageCount(); - } + virtual int get_n_pages() const override { return m_xNotebook->GetPageCount(); } virtual void set_tab_label_text(const OString& rIdent, const OUString& rText) override { @@ -2643,8 +2347,8 @@ public: virtual ~SalInstanceVerticalNotebook() override { - m_xNotebook->SetActivatePageHdl(Link<VerticalTabControl*,void>()); - m_xNotebook->SetDeactivatePageHdl(Link<VerticalTabControl*,bool>()); + m_xNotebook->SetActivatePageHdl(Link<VerticalTabControl*, void>()); + m_xNotebook->SetDeactivatePageHdl(Link<VerticalTabControl*, bool>()); } }; @@ -2660,15 +2364,16 @@ IMPL_LINK_NOARG(SalInstanceVerticalNotebook, ActivatePageHdl, VerticalTabControl m_aEnterPageHdl.Call(get_current_page_ident()); } -namespace { - +namespace +{ class SalInstanceButton : public SalInstanceContainer, public virtual weld::Button { private: VclPtr<::Button> m_xButton; - Link<::Button*,void> const m_aOldClickHdl; + Link<::Button*, void> const m_aOldClickHdl; DECL_LINK(ClickHdl, ::Button*, void); + public: SalInstanceButton(::Button* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceContainer(pButton, pBuilder, bTakeOwnership) @@ -2678,10 +2383,7 @@ public: m_xButton->SetClickHdl(LINK(this, SalInstanceButton, ClickHdl)); } - virtual void set_label(const OUString& rText) override - { - m_xButton->SetText(rText); - } + virtual void set_label(const OUString& rText) override { m_xButton->SetText(rText); } virtual void set_image(VirtualDevice* pDevice) override { @@ -2713,15 +2415,9 @@ public: m_xButton->queue_resize(); } - virtual OUString get_label() const override - { - return m_xButton->GetText(); - } + virtual OUString get_label() const override { return m_xButton->GetText(); } - virtual ~SalInstanceButton() override - { - m_xButton->SetClickHdl(Link<::Button*,void>()); - } + virtual ~SalInstanceButton() override { m_xButton->SetClickHdl(Link<::Button*, void>()); } }; } @@ -2765,8 +2461,8 @@ weld::Button* SalInstanceAssistant::weld_widget_for_response(int nResponse) return nullptr; } -namespace { - +namespace +{ class SalInstanceMenuButton : public SalInstanceButton, public virtual weld::MenuButton { private: @@ -2788,7 +2484,7 @@ public: { pMenu->SetMenuFlags(MenuFlags::NoAutoMnemonics); const auto nCount = pMenu->GetItemCount(); - m_nLastId = nCount ? pMenu->GetItemId(nCount-1) : 0; + m_nLastId = nCount ? pMenu->GetItemId(nCount - 1) : 0; } } @@ -2802,25 +2498,21 @@ public: m_xMenuButton->CancelMenu(); } - virtual bool get_active() const override - { - return m_xMenuButton->InPopupMode(); - } + virtual bool get_active() const override { return m_xMenuButton->InPopupMode(); } virtual void set_inconsistent(bool /*inconsistent*/) override { //not available } - virtual bool get_inconsistent() const override - { - return false; - } + virtual bool get_inconsistent() const override { return false; } virtual void insert_item(int pos, const OUString& rId, const OUString& rStr, - const OUString* pIconName, VirtualDevice* pImageSurface, bool bCheck) override + const OUString* pIconName, VirtualDevice* pImageSurface, + bool bCheck) override { - m_nLastId = insert_to_menu(m_nLastId, m_xMenuButton->GetPopupMenu(), pos, rId, rStr, pIconName, pImageSurface, bCheck); + m_nLastId = insert_to_menu(m_nLastId, m_xMenuButton->GetPopupMenu(), pos, rId, rStr, + pIconName, pImageSurface, bCheck); } virtual void insert_separator(int pos, const OUString& rId) override @@ -2910,17 +2602,19 @@ IMPL_LINK_NOARG(SalInstanceMenuButton, ActivateHdl, ::MenuButton*, void) signal_toggled(); } -namespace { - +namespace +{ class SalInstanceLinkButton : public SalInstanceContainer, public virtual weld::LinkButton { private: VclPtr<FixedHyperlink> m_xButton; - Link<FixedHyperlink&,void> m_aOrigClickHdl; + Link<FixedHyperlink&, void> m_aOrigClickHdl; DECL_LINK(ClickHdl, FixedHyperlink&, void); + public: - SalInstanceLinkButton(FixedHyperlink* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceLinkButton(FixedHyperlink* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceContainer(pButton, pBuilder, bTakeOwnership) , m_xButton(pButton) { @@ -2928,30 +2622,15 @@ public: m_xButton->SetClickHdl(LINK(this, SalInstanceLinkButton, ClickHdl)); } - virtual void set_label(const OUString& rText) override - { - m_xButton->SetText(rText); - } + virtual void set_label(const OUString& rText) override { m_xButton->SetText(rText); } - virtual OUString get_label() const override - { - return m_xButton->GetText(); - } + virtual OUString get_label() const override { return m_xButton->GetText(); } - virtual void set_uri(const OUString& rUri) override - { - m_xButton->SetURL(rUri); - } + virtual void set_uri(const OUString& rUri) override { m_xButton->SetURL(rUri); } - virtual OUString get_uri() const override - { - return m_xButton->GetURL(); - } + virtual OUString get_uri() const override { return m_xButton->GetURL(); } - virtual ~SalInstanceLinkButton() override - { - m_xButton->SetClickHdl(m_aOrigClickHdl); - } + virtual ~SalInstanceLinkButton() override { m_xButton->SetClickHdl(m_aOrigClickHdl); } }; } @@ -2963,8 +2642,8 @@ IMPL_LINK(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, rButton, void) m_aOrigClickHdl.Call(rButton); } -namespace { - +namespace +{ class SalInstanceRadioButton : public SalInstanceButton, public virtual weld::RadioButton { private: @@ -2973,7 +2652,8 @@ private: DECL_LINK(ToggleHdl, ::RadioButton&, void); public: - SalInstanceRadioButton(::RadioButton* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceRadioButton(::RadioButton* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceButton(pButton, pBuilder, bTakeOwnership) , m_xRadioButton(pButton) { @@ -2987,10 +2667,7 @@ public: enable_notify_events(); } - virtual bool get_active() const override - { - return m_xRadioButton->IsChecked(); - } + virtual bool get_active() const override { return m_xRadioButton->IsChecked(); } virtual void set_image(VirtualDevice* pDevice) override { @@ -3017,10 +2694,7 @@ public: //not available } - virtual bool get_inconsistent() const override - { - return false; - } + virtual bool get_inconsistent() const override { return false; } virtual ~SalInstanceRadioButton() override { @@ -3037,8 +2711,8 @@ IMPL_LINK_NOARG(SalInstanceRadioButton, ToggleHdl, ::RadioButton&, void) signal_toggled(); } -namespace { - +namespace +{ class SalInstanceToggleButton : public SalInstanceButton, public virtual weld::ToggleButton { private: @@ -3067,10 +2741,7 @@ public: enable_notify_events(); } - virtual bool get_active() const override - { - return m_xToggleButton->IsChecked(); - } + virtual bool get_active() const override { return m_xToggleButton->IsChecked(); } virtual void set_inconsistent(bool inconsistent) override { @@ -3087,7 +2758,8 @@ public: virtual ~SalInstanceToggleButton() override { if (m_aToggleHdl.IsSet()) - m_xToggleButton->RemoveEventListener(LINK(this, SalInstanceToggleButton, ToggleListener)); + m_xToggleButton->RemoveEventListener( + LINK(this, SalInstanceToggleButton, ToggleListener)); } }; @@ -3101,14 +2773,15 @@ IMPL_LINK(SalInstanceToggleButton, ToggleListener, VclWindowEvent&, rEvent, void signal_toggled(); } -namespace { - +namespace +{ class SalInstanceCheckButton : public SalInstanceButton, public virtual weld::CheckButton { private: VclPtr<CheckBox> m_xCheckButton; DECL_LINK(ToggleHdl, CheckBox&, void); + public: SalInstanceCheckButton(CheckBox* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceButton(pButton, pBuilder, bTakeOwnership) @@ -3125,10 +2798,7 @@ public: enable_notify_events(); } - virtual bool get_active() const override - { - return m_xCheckButton->IsChecked(); - } + virtual bool get_active() const override { return m_xCheckButton->IsChecked(); } virtual void set_inconsistent(bool inconsistent) override { @@ -3159,14 +2829,15 @@ IMPL_LINK_NOARG(SalInstanceCheckButton, ToggleHdl, CheckBox&, void) signal_toggled(); } -namespace { - +namespace +{ class SalInstanceScale : public SalInstanceWidget, public virtual weld::Scale { private: VclPtr<Slider> m_xScale; DECL_LINK(SlideHdl, Slider*, void); + public: SalInstanceScale(Slider* pScale, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceWidget(pScale, pBuilder, bTakeOwnership) @@ -3175,10 +2846,7 @@ public: m_xScale->SetSlideHdl(LINK(this, SalInstanceScale, SlideHdl)); } - virtual void set_value(int value) override - { - m_xScale->SetThumbPos(value); - } + virtual void set_value(int value) override { m_xScale->SetThumbPos(value); } virtual void set_range(int min, int max) override { @@ -3186,10 +2854,7 @@ public: m_xScale->SetRangeMax(max); } - virtual int get_value() const override - { - return m_xScale->GetThumbPos(); - } + virtual int get_value() const override { return m_xScale->GetThumbPos(); } virtual void set_increments(int step, int page) override { @@ -3203,21 +2868,15 @@ public: page = m_xScale->GetPageSize(); } - virtual ~SalInstanceScale() override - { - m_xScale->SetSlideHdl(Link<Slider*, void>()); - } + virtual ~SalInstanceScale() override { m_xScale->SetSlideHdl(Link<Slider*, void>()); } }; } -IMPL_LINK_NOARG(SalInstanceScale, SlideHdl, Slider*, void) -{ - signal_value_changed(); -} - -namespace { +IMPL_LINK_NOARG(SalInstanceScale, SlideHdl, Slider*, void) { signal_value_changed(); } +namespace +{ class SalInstanceSpinner : public SalInstanceWidget, public virtual weld::Spinner { private: @@ -3230,15 +2889,9 @@ public: { } - virtual void start() override - { - m_xThrobber->start(); - } + virtual void start() override { m_xThrobber->start(); } - virtual void stop() override - { - m_xThrobber->stop(); - } + virtual void stop() override { m_xThrobber->stop(); } }; class SalInstanceProgressBar : public SalInstanceWidget, public virtual weld::ProgressBar @@ -3247,26 +2900,18 @@ private: VclPtr<::ProgressBar> m_xProgressBar; public: - SalInstanceProgressBar(::ProgressBar* pProgressBar, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceProgressBar(::ProgressBar* pProgressBar, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceWidget(pProgressBar, pBuilder, bTakeOwnership) , m_xProgressBar(pProgressBar) { } - virtual void set_percentage(int value) override - { - m_xProgressBar->SetValue(value); - } + virtual void set_percentage(int value) override { m_xProgressBar->SetValue(value); } - virtual OUString get_text() const override - { - return m_xProgressBar->GetText(); - } + virtual OUString get_text() const override { return m_xProgressBar->GetText(); } - virtual void set_text(const OUString& rText) override - { - m_xProgressBar->SetText(rText); - } + virtual void set_text(const OUString& rText) override { m_xProgressBar->SetText(rText); } }; class SalInstanceImage : public SalInstanceWidget, public virtual weld::Image @@ -3317,15 +2962,9 @@ public: m_xCalendar->SetActivateHdl(LINK(this, SalInstanceCalendar, ActivateHdl)); } - virtual void set_date(const Date& rDate) override - { - m_xCalendar->SetCurDate(rDate); - } + virtual void set_date(const Date& rDate) override { m_xCalendar->SetCurDate(rDate); } - virtual Date get_date() const override - { - return m_xCalendar->GetFirstSelectedDate(); - } + virtual Date get_date() const override { return m_xCalendar->GetFirstSelectedDate(); } virtual ~SalInstanceCalendar() override { @@ -3352,28 +2991,29 @@ IMPL_LINK_NOARG(SalInstanceCalendar, ActivateHdl, ::Calendar*, void) namespace { - class WeldTextFilter : public TextFilter +class WeldTextFilter : public TextFilter +{ +private: + Link<OUString&, bool>& m_rInsertTextHdl; + +public: + WeldTextFilter(Link<OUString&, bool>& rInsertTextHdl) + : TextFilter(OUString()) + , m_rInsertTextHdl(rInsertTextHdl) { - private: - Link<OUString&, bool>& m_rInsertTextHdl; - public: - WeldTextFilter(Link<OUString&, bool>& rInsertTextHdl) - : TextFilter(OUString()) - , m_rInsertTextHdl(rInsertTextHdl) - { - } + } - virtual OUString filter(const OUString &rText) override - { - if (!m_rInsertTextHdl.IsSet()) - return rText; - OUString sText(rText); - const bool bContinue = m_rInsertTextHdl.Call(sText); - if (!bContinue) - return OUString(); - return sText; - } - }; + virtual OUString filter(const OUString& rText) override + { + if (!m_rInsertTextHdl.IsSet()) + return rText; + OUString sText(rText); + const bool bContinue = m_rInsertTextHdl.Call(sText); + if (!bContinue) + return OUString(); + return sText; + } +}; class SalInstanceEntry : public SalInstanceWidget, public virtual weld::Entry { @@ -3385,6 +3025,7 @@ private: DECL_LINK(ActivateHdl, Edit&, bool); WeldTextFilter m_aTextFilter; + public: SalInstanceEntry(Edit* pEntry, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceWidget(pEntry, pBuilder, bTakeOwnership) @@ -3403,25 +3044,13 @@ public: enable_notify_events(); } - virtual OUString get_text() const override - { - return m_xEntry->GetText(); - } + virtual OUString get_text() const override { return m_xEntry->GetText(); } - virtual void set_width_chars(int nChars) override - { - m_xEntry->SetWidthInChars(nChars); - } + virtual void set_width_chars(int nChars) override { m_xEntry->SetWidthInChars(nChars); } - virtual int get_width_chars() const override - { - return m_xEntry->GetWidthInChars(); - } + virtual int get_width_chars() const override { return m_xEntry->GetWidthInChars(); } - virtual void set_max_length(int nChars) override - { - m_xEntry->SetMaxTextLen(nChars); - } + virtual void set_max_length(int nChars) override { m_xEntry->SetMaxTextLen(nChars); } virtual void select_region(int nStartPos, int nEndPos) override { @@ -3430,7 +3059,7 @@ public: enable_notify_events(); } - bool get_selection_bounds(int& rStartPos, int &rEndPos) override + bool get_selection_bounds(int& rStartPos, int& rEndPos) override { const Selection& rSelection = m_xEntry->GetSelection(); rStartPos = rSelection.Min(); @@ -3453,20 +3082,11 @@ public: enable_notify_events(); } - virtual int get_position() const override - { - return m_xEntry->GetSelection().Max(); - } + virtual int get_position() const override { return m_xEntry->GetSelection().Max(); } - virtual void set_editable(bool bEditable) override - { - m_xEntry->SetReadOnly(!bEditable); - } + virtual void set_editable(bool bEditable) override { m_xEntry->SetReadOnly(!bEditable); } - virtual bool get_editable() const override - { - return !m_xEntry->IsReadOnly(); - } + virtual bool get_editable() const override { return !m_xEntry->IsReadOnly(); } virtual void set_message_type(weld::EntryMessageType eType) override { @@ -3512,30 +3132,15 @@ public: m_xEntry->SetPlaceholderText(rText); } - Edit& getEntry() - { - return *m_xEntry; - } + Edit& getEntry() { return *m_xEntry; } - void fire_signal_changed() - { - signal_changed(); - } + void fire_signal_changed() { signal_changed(); } - virtual void cut_clipboard() override - { - m_xEntry->Cut(); - } + virtual void cut_clipboard() override { m_xEntry->Cut(); } - virtual void copy_clipboard() override - { - m_xEntry->Copy(); - } + virtual void copy_clipboard() override { m_xEntry->Copy(); } - virtual void paste_clipboard() override - { - m_xEntry->Paste(); - } + virtual void paste_clipboard() override { m_xEntry->Paste(); } virtual ~SalInstanceEntry() override { @@ -3549,26 +3154,21 @@ public: } -IMPL_LINK_NOARG(SalInstanceEntry, ChangeHdl, Edit&, void) -{ - signal_changed(); -} +IMPL_LINK_NOARG(SalInstanceEntry, ChangeHdl, Edit&, void) { signal_changed(); } IMPL_LINK(SalInstanceEntry, CursorListener, VclWindowEvent&, rEvent, void) { if (notify_events_disabled()) return; - if (rEvent.GetId() == VclEventId::EditSelectionChanged || rEvent.GetId() == VclEventId::EditCaretChanged) + if (rEvent.GetId() == VclEventId::EditSelectionChanged + || rEvent.GetId() == VclEventId::EditCaretChanged) signal_cursor_position(); } -IMPL_LINK_NOARG(SalInstanceEntry, ActivateHdl, Edit&, bool) -{ - return m_aActivateHdl.Call(*this); -} - -namespace { +IMPL_LINK_NOARG(SalInstanceEntry, ActivateHdl, Edit&, bool) { return m_aActivateHdl.Call(*this); } +namespace +{ struct SalInstanceTreeIter : public weld::TreeIter { SalInstanceTreeIter(const SalInstanceTreeIter* pOrig) @@ -3586,33 +3186,33 @@ struct SalInstanceTreeIter : public weld::TreeIter SvTreeListEntry* iter; }; - TriState get_toggle(SvTreeListEntry* pEntry, int col) - { - ++col; //skip dummy/expander column - - if (static_cast<size_t>(col) == pEntry->ItemCount()) - return TRISTATE_FALSE; +TriState get_toggle(SvTreeListEntry* pEntry, int col) +{ + ++col; //skip dummy/expander column - assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); - SvLBoxItem& rItem = pEntry->GetItem(col); - assert(dynamic_cast<SvLBoxButton*>(&rItem)); - SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem); - if (rToggle.IsStateTristate()) - return TRISTATE_INDET; - else if (rToggle.IsStateChecked()) - return TRISTATE_TRUE; + if (static_cast<size_t>(col) == pEntry->ItemCount()) return TRISTATE_FALSE; - } - bool get_text_emphasis(SvTreeListEntry* pEntry, int col) - { - ++col; //skip dummy/expander column + assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); + SvLBoxItem& rItem = pEntry->GetItem(col); + assert(dynamic_cast<SvLBoxButton*>(&rItem)); + SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem); + if (rToggle.IsStateTristate()) + return TRISTATE_INDET; + else if (rToggle.IsStateChecked()) + return TRISTATE_TRUE; + return TRISTATE_FALSE; +} - assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); - SvLBoxItem& rItem = pEntry->GetItem(col); - assert(dynamic_cast<SvLBoxString*>(&rItem)); - return static_cast<SvLBoxString&>(rItem).IsEmphasized(); - } +bool get_text_emphasis(SvTreeListEntry* pEntry, int col) +{ + ++col; //skip dummy/expander column + + assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); + SvLBoxItem& rItem = pEntry->GetItem(col); + assert(dynamic_cast<SvLBoxString*>(&rItem)); + return static_cast<SvLBoxString&>(rItem).IsEmphasized(); +} } class SalInstanceTreeView; @@ -3689,7 +3289,8 @@ public: if (HeaderBar* pHeaderBar = pHeaderBox->GetHeaderBar()) { //make the last entry fill available space - pHeaderBar->SetItemSize(pHeaderBar->GetItemId(pHeaderBar->GetItemCount() - 1 ), HEADERBAR_FULLSIZE); + pHeaderBar->SetItemSize(pHeaderBar->GetItemId(pHeaderBar->GetItemCount() - 1), + HEADERBAR_FULLSIZE); pHeaderBar->SetEndDragHdl(LINK(this, SalInstanceTreeView, EndDragHdl)); pHeaderBar->SetSelectHdl(LINK(this, SalInstanceTreeView, HeaderBarClickedHdl)); } @@ -3698,11 +3299,16 @@ public: } else { - static_cast<LclTabListBox&>(*m_xTreeView).SetModelChangedHdl(LINK(this, SalInstanceTreeView, ModelChangedHdl)); - static_cast<LclTabListBox&>(*m_xTreeView).SetStartDragHdl(LINK(this, SalInstanceTreeView, StartDragHdl)); - static_cast<LclTabListBox&>(*m_xTreeView).SetEndDragHdl(LINK(this, SalInstanceTreeView, FinishDragHdl)); - static_cast<LclTabListBox&>(*m_xTreeView).SetEditingEntryHdl(LINK(this, SalInstanceTreeView, EditingEntryHdl)); - static_cast<LclTabListBox&>(*m_xTreeView).SetEditedEntryHdl(LINK(this, SalInstanceTreeView, EditedEntryHdl)); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetModelChangedHdl(LINK(this, SalInstanceTreeView, ModelChangedHdl)); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetStartDragHdl(LINK(this, SalInstanceTreeView, StartDragHdl)); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetEndDragHdl(LINK(this, SalInstanceTreeView, FinishDragHdl)); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetEditingEntryHdl(LINK(this, SalInstanceTreeView, EditingEntryHdl)); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetEditedEntryHdl(LINK(this, SalInstanceTreeView, EditedEntryHdl)); } m_aCheckButtonData.SetLink(LINK(this, SalInstanceTreeView, ToggleHdl)); m_aRadioButtonData.SetLink(LINK(this, SalInstanceTreeView, ToggleHdl)); @@ -3776,7 +3382,8 @@ public: return pHeaderBar->GetItemSize(pHeaderBar->GetItemId(nColumn)); // GetTab(0) gives the position of the bitmap which is automatically inserted by the TabListBox. // So the first text column's width is Tab(2)-Tab(1). - auto nWidthPixel = m_xTreeView->GetLogicTab(nColumn + 2) - m_xTreeView->GetLogicTab(nColumn + 1); + auto nWidthPixel + = m_xTreeView->GetLogicTab(nColumn + 2) - m_xTreeView->GetLogicTab(nColumn + 1); nWidthPixel -= SV_TAB_BORDER; return nWidthPixel; } @@ -3814,9 +3421,10 @@ public: SalInstanceContainer::hide(); } - virtual void insert(const weld::TreeIter* pParent, int pos, const OUString* pStr, const OUString* pId, - const OUString* pIconName, VirtualDevice* pImageSurface, - const OUString* pExpanderName, bool bChildrenOnDemand, weld::TreeIter* pRet) override + virtual void insert(const weld::TreeIter* pParent, int pos, const OUString* pStr, + const OUString* pId, const OUString* pIconName, + VirtualDevice* pImageSurface, const OUString* pExpanderName, + bool bChildrenOnDemand, weld::TreeIter* pRet) override { disable_notify_events(); const SalInstanceTreeIter* pVclIter = static_cast<const SalInstanceTreeIter*>(pParent); @@ -3867,9 +3475,10 @@ public: enable_notify_events(); } - virtual void bulk_insert_for_each(int nSourceCount, - const std::function<void(weld::TreeIter&, int nSourceIndex)>& func, - const std::vector<int>* pFixedWidths) override + virtual void + bulk_insert_for_each(int nSourceCount, + const std::function<void(weld::TreeIter&, int nSourceIndex)>& func, + const std::vector<int>* pFixedWidths) override { freeze(); clear(); @@ -3925,7 +3534,8 @@ public: virtual int find_text(const OUString& rText) const override { - for (SvTreeListEntry* pEntry = m_xTreeView->First(); pEntry; pEntry = m_xTreeView->Next(pEntry)) + for (SvTreeListEntry* pEntry = m_xTreeView->First(); pEntry; + pEntry = m_xTreeView->Next(pEntry)) { if (SvTabListBox::GetEntryText(pEntry, 0) == rText) return SvTreeList::GetRelPos(pEntry); @@ -3935,7 +3545,8 @@ public: virtual int find_id(const OUString& rId) const override { - for (SvTreeListEntry* pEntry = m_xTreeView->First(); pEntry; pEntry = m_xTreeView->Next(pEntry)) + for (SvTreeListEntry* pEntry = m_xTreeView->First(); pEntry; + pEntry = m_xTreeView->Next(pEntry)) { const OUString* pId = static_cast<const OUString*>(pEntry->GetUserData()); if (!pId) @@ -4043,7 +3654,8 @@ public: std::vector<int> aRows; aRows.reserve(m_xTreeView->GetSelectionCount()); - for (SvTreeListEntry* pEntry = m_xTreeView->FirstSelected(); pEntry; pEntry = m_xTreeView->NextSelected(pEntry)) + for (SvTreeListEntry* pEntry = m_xTreeView->FirstSelected(); pEntry; + pEntry = m_xTreeView->NextSelected(pEntry)) aRows.push_back(SvTreeList::GetRelPos(pEntry)); return aRows; @@ -4082,7 +3694,7 @@ public: ++col; //skip dummy/expander column // blank out missing entries - for (int i = pEntry->ItemCount(); i < col ; ++i) + for (int i = pEntry->ItemCount(); i < col; ++i) pEntry->AddItem(std::make_unique<SvLBoxString>("")); if (static_cast<size_t>(col) == pEntry->ItemCount()) @@ -4162,11 +3774,12 @@ public: void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col) { - bool bRadio = std::find(m_aRadioIndexes.begin(), m_aRadioIndexes.end(), col) != m_aRadioIndexes.end(); + bool bRadio = std::find(m_aRadioIndexes.begin(), m_aRadioIndexes.end(), col) + != m_aRadioIndexes.end(); ++col; //skip dummy/expander column // blank out missing entries - for (int i = pEntry->ItemCount(); i < col ; ++i) + for (int i = pEntry->ItemCount(); i < col; ++i) pEntry->AddItem(std::make_unique<SvLBoxString>("")); if (static_cast<size_t>(col) == pEntry->ItemCount()) @@ -4263,8 +3876,9 @@ public: return ::get_text_emphasis(pEntry, col); } - virtual void connect_editing(const Link<const weld::TreeIter&, bool>& rStartLink, - const Link<const std::pair<const weld::TreeIter&, OUString>&, bool>& rEndLink) override + virtual void connect_editing( + const Link<const weld::TreeIter&, bool>& rStartLink, + const Link<const std::pair<const weld::TreeIter&, OUString>&, bool>& rEndLink) override { m_xTreeView->EnableInplaceEditing(rStartLink.IsSet() || rEndLink.IsSet()); weld::TreeView::connect_editing(rStartLink, rEndLink); @@ -4276,10 +3890,7 @@ public: m_xTreeView->EditEntry(rVclIter.iter); } - virtual void end_editing() override - { - m_xTreeView->EndEditing(); - } + virtual void end_editing() override { m_xTreeView->EndEditing(); } void set_image(SvTreeListEntry* pEntry, const Image& rImage, int col) { @@ -4293,7 +3904,7 @@ public: ++col; //skip dummy/expander column // blank out missing entries - for (int i = pEntry->ItemCount(); i < col ; ++i) + for (int i = pEntry->ItemCount(); i < col; ++i) pEntry->AddItem(std::make_unique<SvLBoxString>("")); if (static_cast<size_t>(col) == pEntry->ItemCount()) @@ -4320,7 +3931,8 @@ public: set_image(m_xTreeView->GetEntry(nullptr, pos), createImage(rImage), col); } - virtual void set_image(int pos, const css::uno::Reference<css::graphic::XGraphic>& rImage, int col) override + virtual void set_image(int pos, const css::uno::Reference<css::graphic::XGraphic>& rImage, + int col) override { set_image(m_xTreeView->GetEntry(nullptr, pos), Image(rImage), col); } @@ -4336,7 +3948,9 @@ public: set_image(rVclIter.iter, createImage(rImage), col); } - virtual void set_image(const weld::TreeIter& rIter, const css::uno::Reference<css::graphic::XGraphic>& rImage, int col) override + virtual void set_image(const weld::TreeIter& rIter, + const css::uno::Reference<css::graphic::XGraphic>& rImage, + int col) override { const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); set_image(rVclIter.iter, Image(rImage), col); @@ -4402,9 +4016,11 @@ public: return OUString(); } - virtual std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig) const override + virtual std::unique_ptr<weld::TreeIter> + make_iterator(const weld::TreeIter* pOrig) const override { - return std::unique_ptr<weld::TreeIter>(new SalInstanceTreeIter(static_cast<const SalInstanceTreeIter*>(pOrig))); + return std::unique_ptr<weld::TreeIter>( + new SalInstanceTreeIter(static_cast<const SalInstanceTreeIter*>(pOrig))); } virtual void copy_iterator(const weld::TreeIter& rSource, weld::TreeIter& rDest) const override @@ -4604,7 +4220,8 @@ public: set_id(rVclIter.iter, rId); } - virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rHelper, sal_uInt8 eDNDConstants) override + virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rHelper, + sal_uInt8 eDNDConstants) override { m_xTreeView->SetDragHelper(rHelper, eDNDConstants); } @@ -4692,17 +4309,17 @@ public: return 0; } - virtual void move_subtree(weld::TreeIter& rNode, const weld::TreeIter* pNewParent, int nIndexInNewParent) override + virtual void move_subtree(weld::TreeIter& rNode, const weld::TreeIter* pNewParent, + int nIndexInNewParent) override { SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rNode); - const SalInstanceTreeIter* pVclParentIter = static_cast<const SalInstanceTreeIter*>(pNewParent); - m_xTreeView->GetModel()->Move(rVclIter.iter, pVclParentIter ? pVclParentIter->iter : nullptr, nIndexInNewParent); + const SalInstanceTreeIter* pVclParentIter + = static_cast<const SalInstanceTreeIter*>(pNewParent); + m_xTreeView->GetModel()->Move( + rVclIter.iter, pVclParentIter ? pVclParentIter->iter : nullptr, nIndexInNewParent); } - virtual int count_selected_rows() const override - { - return m_xTreeView->GetSelectionCount(); - } + virtual int count_selected_rows() const override { return m_xTreeView->GetSelectionCount(); } virtual int get_height_rows(int nRows) const override { @@ -4717,7 +4334,8 @@ public: set_sort_order(true); } - virtual void set_sort_func(const std::function<int(const weld::TreeIter&, const weld::TreeIter&)>& func) override + virtual void set_sort_func( + const std::function<int(const weld::TreeIter&, const weld::TreeIter&)>& func) override { weld::TreeView::set_sort_func(func); SvTreeList* pListModel = m_xTreeView->GetModel(); @@ -4783,10 +4401,7 @@ public: return TRISTATE_INDET; } - virtual int get_sort_column() const override - { - return m_nSortColumn; - } + virtual int get_sort_column() const override { return m_nSortColumn; } virtual void set_sort_column(int nColumn) override { @@ -4804,12 +4419,9 @@ public: } } - SvTabListBox& getTreeView() - { - return *m_xTreeView; - } + SvTabListBox& getTreeView() { return *m_xTreeView; } - virtual bool get_dest_row_at_pos(const Point &rPos, weld::TreeIter* pResult) override + virtual bool get_dest_row_at_pos(const Point& rPos, weld::TreeIter* pResult) override { SvTreeListEntry* pTarget = m_xTreeView->GetDropTarget(rPos); @@ -4827,10 +4439,7 @@ public: return m_xTreeView->GetBoundingRect(static_cast<const SalInstanceTreeIter&>(rIter).iter); } - virtual TreeView* get_drag_source() const override - { - return g_DragSource; - } + virtual TreeView* get_drag_source() const override { return g_DragSource; } virtual ~SalInstanceTreeView() override { @@ -4847,7 +4456,8 @@ public: { static_cast<LclTabListBox&>(*m_xTreeView).SetEndDragHdl(Link<SvTreeListBox*, void>()); static_cast<LclTabListBox&>(*m_xTreeView).SetStartDragHdl(Link<SvTreeListBox*, bool>()); - static_cast<LclTabListBox&>(*m_xTreeView).SetModelChangedHdl(Link<SvTreeListBox*, void>()); + static_cast<LclTabListBox&>(*m_xTreeView) + .SetModelChangedHdl(Link<SvTreeListBox*, void>()); } m_xTreeView->SetPopupMenuHdl(Link<const CommandEvent&, bool>()); m_xTreeView->SetExpandingHdl(Link<SvTreeListBox*, bool>()); @@ -4872,7 +4482,8 @@ IMPL_LINK(SalInstanceTreeView, TooltipHdl, const HelpEvent&, rHEvt, bool) if (aTooltip.isEmpty()) return false; Size aSize(m_xTreeView->GetOutputSizePixel().Width(), m_xTreeView->GetEntryHeight()); - tools::Rectangle aScreenRect(m_xTreeView->OutputToScreenPixel(m_xTreeView->GetEntryPosition(pEntry)), aSize); + tools::Rectangle aScreenRect( + m_xTreeView->OutputToScreenPixel(m_xTreeView->GetEntryPosition(pEntry)), aSize); Help::ShowQuickHelp(m_xTreeView, aScreenRect, aTooltip); } return true; @@ -4899,14 +4510,16 @@ IMPL_LINK(SalInstanceTreeView, CompareHdl, const SvSortData&, rSortData, sal_Int if (col < pLHS->ItemCount()) { - const SvLBoxString& rLeftTextItem = static_cast<const SvLBoxString&>(pLHS->GetItem(col)); + const SvLBoxString& rLeftTextItem + = static_cast<const SvLBoxString&>(pLHS->GetItem(col)); pLeftTextItem = &rLeftTextItem; } else pLeftTextItem = nullptr; if (col < pRHS->ItemCount()) { - const SvLBoxString& rRightTextItem = static_cast<const SvLBoxString&>(pRHS->GetItem(col)); + const SvLBoxString& rRightTextItem + = static_cast<const SvLBoxString&>(pRHS->GetItem(col)); pRightTextItem = &rRightTextItem; } else @@ -4914,8 +4527,10 @@ IMPL_LINK(SalInstanceTreeView, CompareHdl, const SvSortData&, rSortData, sal_Int } else { - pLeftTextItem = static_cast<const SvLBoxString*>(pLHS->GetFirstItem(SvLBoxItemType::String)); - pRightTextItem = static_cast<const SvLBoxString*>(pRHS->GetFirstItem(SvLBoxItemType::String)); + pLeftTextItem + = static_cast<const SvLBoxString*>(pLHS->GetFirstItem(SvLBoxItemType::String)); + pRightTextItem + = static_cast<const SvLBoxString*>(pRHS->GetFirstItem(SvLBoxItemType::String)); } return m_xTreeView->DefaultCompare(pLeftTextItem, pRightTextItem); @@ -5006,7 +4621,8 @@ IMPL_LINK(SalInstanceTreeView, EndDragHdl, HeaderBar*, pHeaderBar, void) std::vector<long> aTabPositions; aTabPositions.push_back(0); for (int i = 0; i < pHeaderBar->GetItemCount() - 1; ++i) - aTabPositions.push_back(aTabPositions[i] + pHeaderBar->GetItemSize(pHeaderBar->GetItemId(i))); + aTabPositions.push_back(aTabPositions[i] + + pHeaderBar->GetItemSize(pHeaderBar->GetItemId(i))); m_xTreeView->SetTabs(aTabPositions.size(), aTabPositions.data(), MapUnit::MapPixel); } @@ -5057,7 +4673,8 @@ IMPL_LINK(SalInstanceTreeView, EditingEntryHdl, SvTreeListEntry*, pEntry, bool) IMPL_LINK(SalInstanceTreeView, EditedEntryHdl, IterString, rIterString, bool) { - return signal_editing_done(std::pair<const weld::TreeIter&, OUString>(SalInstanceTreeIter(rIterString.first), rIterString.second)); + return signal_editing_done(std::pair<const weld::TreeIter&, OUString>( + SalInstanceTreeIter(rIterString.first), rIterString.second)); } class SalInstanceIconView : public SalInstanceContainer, public virtual weld::IconView @@ -5151,10 +4768,7 @@ public: return OUString(); } - virtual int count_selected_items() const override - { - return m_xIconView->GetSelectionCount(); - } + virtual int count_selected_items() const override { return m_xIconView->GetSelectionCount(); } virtual void select(int pos) override { @@ -5190,9 +4804,11 @@ public: return m_xIconView->GetModel()->GetChildList(nullptr).size(); } - virtual std::unique_ptr<weld::TreeIter> make_iterator(const weld::TreeIter* pOrig) const override + virtual std::unique_ptr<weld::TreeIter> + make_iterator(const weld::TreeIter* pOrig) const override { - return std::unique_ptr<weld::TreeIter>(new SalInstanceTreeIter(static_cast<const SalInstanceTreeIter*>(pOrig))); + return std::unique_ptr<weld::TreeIter>( + new SalInstanceTreeIter(static_cast<const SalInstanceTreeIter*>(pOrig))); } virtual bool get_selected(weld::TreeIter* pIter) const override @@ -5296,8 +4912,8 @@ IMPL_LINK_NOARG(SalInstanceIconView, DoubleClickHdl, SvTreeListBox*, bool) return !signal_item_activated(); } -namespace { - +namespace +{ class SalInstanceSpinButton : public SalInstanceEntry, public virtual weld::SpinButton { private: @@ -5309,22 +4925,17 @@ private: DECL_LINK(InputHdl, sal_Int64*, TriState); DECL_LINK(ActivateHdl, Edit&, bool); - double toField(int nValue) const - { - return static_cast<double>(nValue) / Power10(get_digits()); - } + double toField(int nValue) const { return static_cast<double>(nValue) / Power10(get_digits()); } - int fromField(double fValue) const - { - return FRound(fValue * Power10(get_digits())); - } + int fromField(double fValue) const { return FRound(fValue * Power10(get_digits())); } public: - SalInstanceSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceEntry(pButton, pBuilder, bTakeOwnership) , m_xButton(pButton) { - m_xButton->SetThousandsSep(false); //off by default, MetricSpinButton enables it + m_xButton->SetThousandsSep(false); //off by default, MetricSpinButton enables it m_xButton->SetUpHdl(LINK(this, SalInstanceSpinButton, UpDownHdl)); m_xButton->SetDownHdl(LINK(this, SalInstanceSpinButton, UpDownHdl)); m_xButton->SetLoseFocusHdl(LINK(this, SalInstanceSpinButton, LoseFocusHdl)); @@ -5336,15 +4947,9 @@ public: m_xButton->SetActivateHdl(LINK(this, SalInstanceSpinButton, ActivateHdl)); } - virtual int get_value() const override - { - return fromField(m_xButton->GetValue()); - } + virtual int get_value() const override { return fromField(m_xButton->GetValue()); } - virtual void set_value(int value) override - { - m_xButton->SetValue(toField(value)); - } + virtual void set_value(int value) override { m_xButton->SetValue(toField(value)); } virtual void set_range(int min, int max) override { @@ -5369,34 +4974,19 @@ public: page = fromField(m_xButton->GetSpinSize()); } - virtual void set_digits(unsigned int digits) override - { - m_xButton->SetDecimalDigits(digits); - } + virtual void set_digits(unsigned int digits) override { m_xButton->SetDecimalDigits(digits); } // SpinButton may be comprised of multiple subwidgets, consider the lot as // one thing for focus - virtual bool has_focus() const override - { - return m_xWidget->HasChildPathFocus(); - } + virtual bool has_focus() const override { return m_xWidget->HasChildPathFocus(); } //so with hh::mm::ss, incrementing mm will not reset ss - void DisableRemainderFactor() - { - m_xButton->DisableRemainderFactor(); - } + void DisableRemainderFactor() { m_xButton->DisableRemainderFactor(); } //off by default for direct SpinButtons, MetricSpinButton enables it - void SetUseThousandSep() - { - m_xButton->SetThousandsSep(true); - } + void SetUseThousandSep() { m_xButton->SetThousandsSep(true); } - virtual unsigned int get_digits() const override - { - return m_xButton->GetDecimalDigits(); - } + virtual unsigned int get_digits() const override { return m_xButton->GetDecimalDigits(); } virtual ~SalInstanceSpinButton() override { @@ -5421,20 +5011,11 @@ IMPL_LINK_NOARG(SalInstanceSpinButton, ActivateHdl, Edit&, bool) return false; } -IMPL_LINK_NOARG(SalInstanceSpinButton, UpDownHdl, SpinField&, void) -{ - signal_value_changed(); -} +IMPL_LINK_NOARG(SalInstanceSpinButton, UpDownHdl, SpinField&, void) { signal_value_changed(); } -IMPL_LINK_NOARG(SalInstanceSpinButton, LoseFocusHdl, Control&, void) -{ - signal_value_changed(); -} +IMPL_LINK_NOARG(SalInstanceSpinButton, LoseFocusHdl, Control&, void) { signal_value_changed(); } -IMPL_LINK_NOARG(SalInstanceSpinButton, OutputHdl, Edit&, bool) -{ - return signal_output(); -} +IMPL_LINK_NOARG(SalInstanceSpinButton, OutputHdl, Edit&, bool) { return signal_output(); } IMPL_LINK(SalInstanceSpinButton, InputHdl, sal_Int64*, pResult, TriState) { @@ -5445,15 +5026,17 @@ IMPL_LINK(SalInstanceSpinButton, InputHdl, sal_Int64*, pResult, TriState) return eRet; } -namespace { - -class SalInstanceFormattedSpinButton : public SalInstanceEntry, public virtual weld::FormattedSpinButton +namespace +{ +class SalInstanceFormattedSpinButton : public SalInstanceEntry, + public virtual weld::FormattedSpinButton { private: VclPtr<FormattedField> m_xButton; public: - SalInstanceFormattedSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceFormattedSpinButton(FormattedField* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceEntry(pButton, pBuilder, bTakeOwnership) , m_xButton(pButton) { @@ -5464,15 +5047,9 @@ public: m_xButton->UseInputStringForFormatting(); } - virtual double get_value() const override - { - return m_xButton->GetValue(); - } + virtual double get_value() const override { return m_xButton->GetValue(); } - virtual void set_value(double value) override - { - m_xButton->SetValue(value); - } + virtual void set_value(double value) override { m_xButton->SetValue(value); } virtual void set_range(double min, double max) override { @@ -5491,81 +5068,56 @@ public: m_xButton->SetFormatter(pFormatter); } - virtual SvNumberFormatter* get_formatter() override - { - return m_xButton->GetFormatter(); - } + virtual SvNumberFormatter* get_formatter() override { return m_xButton->GetFormatter(); } - virtual sal_Int32 get_format_key() const override - { - return m_xButton->GetFormatKey(); - } + virtual sal_Int32 get_format_key() const override { return m_xButton->GetFormatKey(); } virtual void set_format_key(sal_Int32 nFormatKey) override { m_xButton->SetFormatKey(nFormatKey); } - virtual void treat_as_number(bool bSet) override - { - m_xButton->TreatAsNumber(bSet); - } + virtual void treat_as_number(bool bSet) override { m_xButton->TreatAsNumber(bSet); } - virtual void set_digits(unsigned int digits) override - { - m_xButton->SetDecimalDigits(digits); - } + virtual void set_digits(unsigned int digits) override { m_xButton->SetDecimalDigits(digits); } }; -class SalInstanceLabel : public SalInstanceWidget, public virtual weld::Label -{ -private: - // Control instead of FixedText so we can also use this for - // SelectableFixedText which is derived from Edit. We just typically need - // [G|S]etText which exists in their shared baseclass - VclPtr<Control> m_xLabel; -public: - SalInstanceLabel(Control* pLabel, SalInstanceBuilder *pBuilder, bool bTakeOwnership) - : SalInstanceWidget(pLabel, pBuilder, bTakeOwnership) - , m_xLabel(pLabel) - { - } +} - virtual void set_label(const OUString& rText) override - { - m_xLabel->SetText(rText); - } +SalInstanceLabel::SalInstanceLabel(Control* pLabel, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceWidget(pLabel, pBuilder, bTakeOwnership) + , m_xLabel(pLabel) +{ +} - virtual OUString get_label() const override - { - return m_xLabel->GetText(); - } +void SalInstanceLabel::set_label(const OUString& rText) { m_xLabel->SetText(rText); } - virtual void set_mnemonic_widget(Widget* pTarget) override - { - FixedText* pLabel = dynamic_cast<FixedText*>(m_xLabel.get()); - assert(pLabel && "can't use set_mnemonic_widget on SelectableFixedText"); - SalInstanceWidget* pTargetWidget = dynamic_cast<SalInstanceWidget*>(pTarget); - pLabel->set_mnemonic_widget(pTargetWidget ? pTargetWidget->getWidget() : nullptr); - } +OUString SalInstanceLabel::get_label() const { return m_xLabel->GetText(); } - virtual void set_message_type(weld::EntryMessageType eType) override - { - if (eType == weld::EntryMessageType::Error) - m_xLabel->SetControlBackground(m_xLabel->GetSettings().GetStyleSettings().GetHighlightColor()); - else if (eType == weld::EntryMessageType::Warning) - m_xLabel->SetControlBackground(COL_YELLOW); - else - m_xLabel->SetControlBackground(); - } +void SalInstanceLabel::set_mnemonic_widget(Widget* pTarget) +{ + FixedText* pLabel = dynamic_cast<FixedText*>(m_xLabel.get()); + assert(pLabel && "can't use set_mnemonic_widget on SelectableFixedText"); + SalInstanceWidget* pTargetWidget = dynamic_cast<SalInstanceWidget*>(pTarget); + pLabel->set_mnemonic_widget(pTargetWidget ? pTargetWidget->getWidget() : nullptr); +} - virtual void set_font(const vcl::Font& rFont) override - { - m_xLabel->SetPointFont(*m_xLabel, rFont); - m_xLabel->Invalidate(); - } -}; +void SalInstanceLabel::set_message_type(weld::EntryMessageType eType) +{ + if (eType == weld::EntryMessageType::Error) + m_xLabel->SetControlBackground( + m_xLabel->GetSettings().GetStyleSettings().GetHighlightColor()); + else if (eType == weld::EntryMessageType::Warning) + m_xLabel->SetControlBackground(COL_YELLOW); + else + m_xLabel->SetControlBackground(); +} +void SalInstanceLabel::set_font(const vcl::Font& rFont) +{ + m_xLabel->SetPointFont(*m_xLabel, rFont); + m_xLabel->Invalidate(); } std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const @@ -5576,19 +5128,21 @@ std::unique_ptr<weld::Label> SalInstanceFrame::weld_label_widget() const return std::make_unique<SalInstanceLabel>(pLabel, m_pBuilder, false); } -namespace { - +namespace +{ class SalInstanceTextView : public SalInstanceContainer, public virtual weld::TextView { private: VclPtr<VclMultiLineEdit> m_xTextView; - Link<ScrollBar*,void> m_aOrigVScrollHdl; + Link<ScrollBar*, void> m_aOrigVScrollHdl; DECL_LINK(ChangeHdl, Edit&, void); DECL_LINK(VscrollHdl, ScrollBar*, void); DECL_LINK(CursorListener, VclWindowEvent&, void); + public: - SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceTextView(VclMultiLineEdit* pTextView, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceContainer(pTextView, pBuilder, bTakeOwnership) , m_xTextView(pTextView) { @@ -5612,12 +5166,9 @@ public: enable_notify_events(); } - virtual OUString get_text() const override - { - return m_xTextView->GetText(); - } + virtual OUString get_text() const override { return m_xTextView->GetText(); } - bool get_selection_bounds(int& rStartPos, int &rEndPos) override + bool get_selection_bounds(int& rStartPos, int& rEndPos) override { const Selection& rSelection = m_xTextView->GetSelection(); rStartPos = rSelection.Min(); @@ -5632,17 +5183,15 @@ public: enable_notify_events(); } - virtual void set_editable(bool bEditable) override - { - m_xTextView->SetReadOnly(!bEditable); - } + virtual void set_editable(bool bEditable) override { m_xTextView->SetReadOnly(!bEditable); } virtual void set_monospace(bool bMonospace) override { vcl::Font aOrigFont = m_xTextView->GetControlFont(); vcl::Font aFont; if (bMonospace) - aFont = OutputDevice::GetDefaultFont(DefaultFontType::UI_FIXED, LANGUAGE_DONTKNOW, GetDefaultFontFlags::OnlyOne, m_xTextView); + aFont = OutputDevice::GetDefaultFont(DefaultFontType::UI_FIXED, LANGUAGE_DONTKNOW, + GetDefaultFontFlags::OnlyOne, m_xTextView); else aFont = Application::GetSettings().GetStyleSettings().GetFieldFont(); aFont.SetFontHeight(aOrigFont.GetFontHeight()); @@ -5709,21 +5258,19 @@ IMPL_LINK(SalInstanceTextView, VscrollHdl, ScrollBar*, pScrollBar, void) m_aOrigVScrollHdl.Call(pScrollBar); } -IMPL_LINK_NOARG(SalInstanceTextView, ChangeHdl, Edit&, void) -{ - signal_changed(); -} +IMPL_LINK_NOARG(SalInstanceTextView, ChangeHdl, Edit&, void) { signal_changed(); } IMPL_LINK(SalInstanceTextView, CursorListener, VclWindowEvent&, rEvent, void) { if (notify_events_disabled()) return; - if (rEvent.GetId() == VclEventId::EditSelectionChanged || rEvent.GetId() == VclEventId::EditCaretChanged) + if (rEvent.GetId() == VclEventId::EditSelectionChanged + || rEvent.GetId() == VclEventId::EditCaretChanged) signal_cursor_position(); } -namespace { - +namespace +{ class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander { private: @@ -5739,15 +5286,9 @@ public: m_xExpander->SetExpandedHdl(LINK(this, SalInstanceExpander, ExpandedHdl)); } - virtual bool get_expanded() const override - { - return m_xExpander->get_expanded(); - } + virtual bool get_expanded() const override { return m_xExpander->get_expanded(); } - virtual void set_expanded(bool bExpand) override - { - m_xExpander->set_expanded(bExpand); - } + virtual void set_expanded(bool bExpand) override { m_xExpander->set_expanded(bExpand); } virtual ~SalInstanceExpander() override { @@ -5757,13 +5298,10 @@ public: } -IMPL_LINK_NOARG(SalInstanceExpander, ExpandedHdl, VclExpander&, void) -{ - signal_expanded(); -} - -namespace { +IMPL_LINK_NOARG(SalInstanceExpander, ExpandedHdl, VclExpander&, void) { signal_expanded(); } +namespace +{ class SalInstanceDrawingArea : public SalInstanceWidget, public virtual weld::DrawingArea { private: @@ -5794,24 +5332,21 @@ private: virtual void HandleMouseEventListener(VclSimpleEvent& rEvent) override { - if (rEvent.GetId() == VclEventId::WindowMouseButtonDown || - rEvent.GetId() == VclEventId::WindowMouseButtonUp || - rEvent.GetId() == VclEventId::WindowMouseMove) + if (rEvent.GetId() == VclEventId::WindowMouseButtonDown + || rEvent.GetId() == VclEventId::WindowMouseButtonUp + || rEvent.GetId() == VclEventId::WindowMouseMove) { return; } SalInstanceWidget::HandleMouseEventListener(rEvent); } - - virtual bool HandleKeyEventListener(VclWindowEvent& /*rEvent*/) override - { - return false; - } + virtual bool HandleKeyEventListener(VclWindowEvent& /*rEvent*/) override { return false; } public: - SalInstanceDrawingArea(VclDrawingArea* pDrawingArea, SalInstanceBuilder* pBuilder, const a11yref& rAlly, - FactoryFunction pUITestFactoryFunction, void* pUserData, bool bTakeOwnership) + SalInstanceDrawingArea(VclDrawingArea* pDrawingArea, SalInstanceBuilder* pBuilder, + const a11yref& rAlly, FactoryFunction pUITestFactoryFunction, + void* pUserData, bool bTakeOwnership) : SalInstanceWidget(pDrawingArea, pBuilder, bTakeOwnership) , m_xDrawingArea(pDrawingArea) { @@ -5830,20 +5365,14 @@ public: m_xDrawingArea->SetStartDragHdl(LINK(this, SalInstanceDrawingArea, StartDragHdl)); } - virtual void queue_draw() override - { - m_xDrawingArea->Invalidate(); - } + virtual void queue_draw() override { m_xDrawingArea->Invalidate(); } virtual void queue_draw_area(int x, int y, int width, int height) override { m_xDrawingArea->Invalidate(tools::Rectangle(Point(x, y), Size(width, height))); } - virtual void queue_resize() override - { - m_xDrawingArea->queue_resize(); - } + virtual void queue_resize() override { m_xDrawingArea->queue_resize(); } virtual void connect_size_allocate(const Link<const Size&, void>& rLink) override { @@ -5876,21 +5405,27 @@ public: virtual a11yrelationset get_accessible_relation_set() override { utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper; - css::uno::Reference< css::accessibility::XAccessibleRelationSet > xSet = pRelationSetHelper; + css::uno::Reference<css::accessibility::XAccessibleRelationSet> xSet = pRelationSetHelper; vcl::Window* pWindow = m_xDrawingArea.get(); if (pWindow) { - vcl::Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy(); + vcl::Window* pLabeledBy = pWindow->GetAccessibleRelationLabeledBy(); if (pLabeledBy && pLabeledBy != pWindow) { - css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> aSequence { pLabeledBy->GetAccessible() }; - pRelationSetHelper->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::LABELED_BY, aSequence ) ); + css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> aSequence{ + pLabeledBy->GetAccessible() + }; + pRelationSetHelper->AddRelation(css::accessibility::AccessibleRelation( + css::accessibility::AccessibleRelationType::LABELED_BY, aSequence)); } vcl::Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf(); if (pMemberOf && pMemberOf != pWindow) { - css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> aSequence { pMemberOf->GetAccessible() }; - pRelationSetHelper->AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) ); + css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> aSequence{ + pMemberOf->GetAccessible() + }; + pRelationSetHelper->AddRelation(css::accessibility::AccessibleRelation( + css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence)); } } return xSet; @@ -5901,7 +5436,8 @@ public: return m_xDrawingArea->OutputToAbsoluteScreenPixel(Point()); } - virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rHelper, sal_uInt8 eDNDConstants) override + virtual void enable_drag_source(rtl::Reference<TransferDataContainer>& rHelper, + sal_uInt8 eDNDConstants) override { m_xDrawingArea->SetDragHelper(rHelper, eDNDConstants); } @@ -5917,13 +5453,11 @@ public: m_xDrawingArea->SetKeyPressHdl(Link<const KeyEvent&, bool>()); m_xDrawingArea->SetKeyReleaseHdl(Link<const KeyEvent&, bool>()); m_xDrawingArea->SetResizeHdl(Link<const Size&, void>()); - m_xDrawingArea->SetPaintHdl(Link<std::pair<vcl::RenderContext&, const tools::Rectangle&>, void>()); + m_xDrawingArea->SetPaintHdl( + Link<std::pair<vcl::RenderContext&, const tools::Rectangle&>, void>()); } - virtual OutputDevice& get_ref_device() override - { - return *m_xDrawingArea; - } + virtual OutputDevice& get_ref_device() override { return *m_xDrawingArea; } }; } @@ -5988,8 +5522,8 @@ IMPL_LINK_NOARG(SalInstanceDrawingArea, StartDragHdl, VclDrawingArea*, bool) return false; } -namespace { - +namespace +{ //ComboBox and ListBox have similar apis, ComboBoxes in LibreOffice have an edit box and ListBoxes //don't. This distinction isn't there in Gtk. Use a template to sort this problem out. template <class vcl_type> @@ -6022,10 +5556,7 @@ public: // ComboBoxes are comprised of multiple subwidgets, consider the lot as // one thing for focus - virtual bool has_focus() const override - { - return m_xWidget->HasChildPathFocus(); - } + virtual bool has_focus() const override { return m_xWidget->HasChildPathFocus(); } virtual OUString get_active_id() const override { @@ -6062,10 +5593,7 @@ public: m_xComboBox->SelectEntryPos(pos); } - virtual OUString get_text(int pos) const override - { - return m_xComboBox->GetEntry(pos); - } + virtual OUString get_text(int pos) const override { return m_xComboBox->GetEntry(pos); } virtual OUString get_id(int pos) const override { @@ -6081,7 +5609,8 @@ public: m_xComboBox->SetEntryData(row, m_aUserData.back().get()); } - virtual void insert_vector(const std::vector<weld::ComboBoxEntry>& rItems, bool bKeepExisting) override + virtual void insert_vector(const std::vector<weld::ComboBoxEntry>& rItems, + bool bKeepExisting) override { freeze(); if (!bKeepExisting) @@ -6094,10 +5623,7 @@ public: thaw(); } - virtual int get_count() const override - { - return m_xComboBox->GetEntryCount(); - } + virtual int get_count() const override { return m_xComboBox->GetEntryCount(); } virtual int find_text(const OUString& rStr) const override { @@ -6131,10 +5657,7 @@ public: m_xComboBox->SetStyle(m_xComboBox->GetStyle() | WB_SORT); } - virtual bool get_popup_shown() const override - { - return m_xComboBox->IsInDropDown(); - } + virtual bool get_popup_shown() const override { return m_xComboBox->IsInDropDown(); } virtual void connect_popup_toggled(const Link<ComboBox&, void>& rLink) override { @@ -6144,8 +5667,8 @@ public: virtual void HandleEventListener(VclWindowEvent& rEvent) override { - if (rEvent.GetId() == VclEventId::DropdownPreOpen || - rEvent.GetId() == VclEventId::DropdownClose) + if (rEvent.GetId() == VclEventId::DropdownPreOpen + || rEvent.GetId() == VclEventId::DropdownClose) { signal_popup_toggled(); return; @@ -6160,23 +5683,19 @@ private: DECL_LINK(SelectHdl, ListBox&, void); public: - SalInstanceComboBoxWithoutEdit(ListBox* pListBox, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceComboBoxWithoutEdit(ListBox* pListBox, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceComboBox<ListBox>(pListBox, pBuilder, bTakeOwnership) { m_xComboBox->SetSelectHdl(LINK(this, SalInstanceComboBoxWithoutEdit, SelectHdl)); } - virtual OUString get_active_text() const override - { - return m_xComboBox->GetSelectedEntry(); - } + virtual OUString get_active_text() const override { return m_xComboBox->GetSelectedEntry(); } - virtual void remove(int pos) override - { - m_xComboBox->RemoveEntry(pos); - } + virtual void remove(int pos) override { m_xComboBox->RemoveEntry(pos); } - virtual void insert(int pos, const OUString& rStr, const OUString* pId, const OUString* pIconName, VirtualDevice* pImageSurface) override + virtual void insert(int pos, const OUString& rStr, const OUString* pId, + const OUString* pIconName, VirtualDevice* pImageSurface) override { auto nInsertPos = pos == -1 ? COMBOBOX_APPEND : pos; sal_Int32 nInsertedAt; @@ -6199,30 +5718,18 @@ public: m_xComboBox->AddSeparator(nInsertPos - 1); } - virtual bool has_entry() const override - { - return false; - } + virtual bool has_entry() const override { return false; } - virtual bool changed_by_direct_pick() const override - { - return true; - } + virtual bool changed_by_direct_pick() const override { return true; } virtual void set_entry_message_type(weld::EntryMessageType /*eType*/) override { assert(false); } - virtual void set_entry_text(const OUString& /*rText*/) override - { - assert(false); - } + virtual void set_entry_text(const OUString& /*rText*/) override { assert(false); } - virtual void select_entry_region(int /*nStartPos*/, int /*nEndPos*/) override - { - assert(false); - } + virtual void select_entry_region(int /*nStartPos*/, int /*nEndPos*/) override { assert(false); } virtual bool get_entry_selection_bounds(int& /*rStartPos*/, int& /*rEndPos*/) override { @@ -6230,25 +5737,13 @@ public: return false; } - virtual void set_entry_width_chars(int /*nChars*/) override - { - assert(false); - } + virtual void set_entry_width_chars(int /*nChars*/) override { assert(false); } - virtual void set_entry_max_length(int /*nChars*/) override - { - assert(false); - } + virtual void set_entry_max_length(int /*nChars*/) override { assert(false); } - virtual void set_entry_completion(bool, bool) override - { - assert(false); - } + virtual void set_entry_completion(bool, bool) override { assert(false); } - virtual void set_entry_placeholder_text(const OUString&) override - { - assert(false); - } + virtual void set_entry_placeholder_text(const OUString&) override { assert(false); } virtual ~SalInstanceComboBoxWithoutEdit() override { @@ -6263,8 +5758,8 @@ IMPL_LINK_NOARG(SalInstanceComboBoxWithoutEdit, SelectHdl, ListBox&, void) return signal_changed(); } -namespace { - +namespace +{ class SalInstanceComboBoxWithEdit : public SalInstanceComboBox<ComboBox> { private: @@ -6274,7 +5769,8 @@ private: WeldTextFilter m_aTextFilter; bool m_bInSelect; public: - SalInstanceComboBoxWithEdit(::ComboBox* pComboBox, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + SalInstanceComboBoxWithEdit(::ComboBox* pComboBox, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) : SalInstanceComboBox<::ComboBox>(pComboBox, pBuilder, bTakeOwnership) , m_aTextFilter(m_aEntryInsertTextHdl) , m_bInSelect(false) @@ -6285,10 +5781,7 @@ public: m_xComboBox->SetTextFilter(&m_aTextFilter); } - virtual bool has_entry() const override - { - return true; - } + virtual bool has_entry() const override { return true; } virtual bool changed_by_direct_pick() const override { @@ -6305,26 +5798,23 @@ public: m_xComboBox->SetControlForeground(); } - virtual OUString get_active_text() const override - { - return m_xComboBox->GetText(); - } + virtual OUString get_active_text() const override { return m_xComboBox->GetText(); } - virtual void remove(int pos) override - { - m_xComboBox->RemoveEntryAt(pos); - } + virtual void remove(int pos) override { m_xComboBox->RemoveEntryAt(pos); } - virtual void insert(int pos, const OUString& rStr, const OUString* pId, const OUString* pIconName, VirtualDevice* pImageSurface) override + virtual void insert(int pos, const OUString& rStr, const OUString* pId, + const OUString* pIconName, VirtualDevice* pImageSurface) override { auto nInsertPos = pos == -1 ? COMBOBOX_APPEND : pos; sal_Int32 nInsertedAt; if (!pIconName && !pImageSurface) nInsertedAt = m_xComboBox->InsertEntry(rStr, nInsertPos); else if (pIconName) - nInsertedAt = m_xComboBox->InsertEntryWithImage(rStr, createImage(*pIconName), nInsertPos); + nInsertedAt + = m_xComboBox->InsertEntryWithImage(rStr, createImage(*pIconName), nInsertPos); else - nInsertedAt = m_xComboBox->InsertEntryWithImage(rStr, createImage(*pImageSurface), nInsertPos); + nInsertedAt + = m_xComboBox->InsertEntryWithImage(rStr, createImage(*pImageSurface), nInsertPos); if (pId) { m_aUserData.emplace_back(std::make_unique<OUString>(*pId)); @@ -6338,20 +5828,14 @@ public: m_xComboBox->AddSeparator(nInsertPos - 1); } - virtual void set_entry_text(const OUString& rText) override - { - m_xComboBox->SetText(rText); - } + virtual void set_entry_text(const OUString& rText) override { m_xComboBox->SetText(rText); } virtual void set_entry_width_chars(int nChars) override { m_xComboBox->SetWidthInChars(nChars); } - virtual void set_entry_max_length(int nChars) override - { - m_xComboBox->SetMaxTextLen(nChars); - } + virtual void set_entry_max_length(int nChars) override { m_xComboBox->SetMaxTextLen(nChars); } virtual void set_entry_completion(bool bEnable, bool bCaseSensitive) override { @@ -6413,9 +5897,11 @@ private: SalInstanceEntry* m_pEntry; SalInstanceTreeView* m_pTreeView; bool m_bTreeChange; + public: - SalInstanceEntryTreeView(vcl::Window *pContainer, SalInstanceBuilder* pBuilder, bool bTakeOwnership, - std::unique_ptr<weld::Entry> xEntry, std::unique_ptr<weld::TreeView> xTreeView) + SalInstanceEntryTreeView(vcl::Window* pContainer, SalInstanceBuilder* pBuilder, + bool bTakeOwnership, std::unique_ptr<weld::Entry> xEntry, + std::unique_ptr<weld::TreeView> xTreeView) : EntryTreeView(std::move(xEntry), std::move(xTreeView)) , SalInstanceContainer(pContainer, pBuilder, bTakeOwnership) , m_pEntry(dynamic_cast<SalInstanceEntry*>(m_xEntry.get())) @@ -6429,20 +5915,18 @@ public: rEntry.AddEventListener(LINK(this, SalInstanceEntryTreeView, KeyPressListener)); } - virtual void insert_separator(int /*pos*/, const OUString& /*rId*/) override - { - assert(false); - } + virtual void insert_separator(int /*pos*/, const OUString& /*rId*/) override { assert(false); } virtual void make_sorted() override { - vcl::Window *pTreeView = m_pTreeView->getWidget(); + vcl::Window* pTreeView = m_pTreeView->getWidget(); pTreeView->SetStyle(pTreeView->GetStyle() | WB_SORT); } virtual void set_entry_completion(bool bEnable, bool /*bCaseSensitive*/) override { - assert(!bEnable && "not implemented yet"); (void) bEnable; + assert(!bEnable && "not implemented yet"); + (void)bEnable; Edit& rEntry = m_pEntry->getEntry(); rEntry.SetAutocompleteHdl(Link<Edit&, void>()); } @@ -6465,10 +5949,7 @@ public: m_xEntry->connect_focus_out(rLink); } - virtual bool changed_by_direct_pick() const override - { - return m_bTreeChange; - } + virtual bool changed_by_direct_pick() const override { return m_bTreeChange; } virtual ~SalInstanceEntryTreeView() override { @@ -6484,7 +5965,8 @@ IMPL_LINK(SalInstanceEntryTreeView, KeyPressListener, VclWindowEvent&, rEvent, v return; const KeyEvent& rKeyEvent = *static_cast<KeyEvent*>(rEvent.GetData()); sal_uInt16 nKeyCode = rKeyEvent.GetKeyCode().GetCode(); - if (nKeyCode == KEY_UP || nKeyCode == KEY_DOWN || nKeyCode == KEY_PAGEUP || nKeyCode == KEY_PAGEDOWN) + if (nKeyCode == KEY_UP || nKeyCode == KEY_DOWN || nKeyCode == KEY_PAGEUP + || nKeyCode == KEY_PAGEDOWN) { m_pTreeView->disable_notify_events(); auto& rListBox = m_pTreeView->getTreeView(); @@ -6532,361 +6014,425 @@ IMPL_LINK(SalInstanceEntryTreeView, AutocompleteHdl, Edit&, rEdit, void) } } -class SalInstanceBuilder : public weld::Builder +SalInstanceBuilder::SalInstanceBuilder(vcl::Window* pParent, const OUString& rUIRoot, + const OUString& rUIFile) + : weld::Builder(rUIFile) + , m_xBuilder(new VclBuilder(pParent, rUIRoot, rUIFile, OString(), + css::uno::Reference<css::frame::XFrame>(), false)) { -private: - std::unique_ptr<VclBuilder> m_xBuilder; - VclPtr<vcl::Window> m_aOwnedToplevel; -public: - SalInstanceBuilder(vcl::Window* pParent, const OUString& rUIRoot, const OUString& rUIFile) - : weld::Builder(rUIFile) - , m_xBuilder(new VclBuilder(pParent, rUIRoot, rUIFile, OString(), css::uno::Reference<css::frame::XFrame>(), false)) - { - } +} - virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OString &id, bool bTakeOwnership) override +std::unique_ptr<weld::MessageDialog> SalInstanceBuilder::weld_message_dialog(const OString& id, + bool bTakeOwnership) +{ + MessageDialog* pMessageDialog = m_xBuilder->get<MessageDialog>(id); + std::unique_ptr<weld::MessageDialog> pRet( + pMessageDialog ? new SalInstanceMessageDialog(pMessageDialog, this, false) : nullptr); + if (bTakeOwnership && pMessageDialog) { - MessageDialog* pMessageDialog = m_xBuilder->get<MessageDialog>(id); - std::unique_ptr<weld::MessageDialog> pRet(pMessageDialog ? new SalInstanceMessageDialog(pMessageDialog, this, false) : nullptr); - if (bTakeOwnership && pMessageDialog) - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - m_aOwnedToplevel.set(pMessageDialog); - m_xBuilder->drop_ownership(pMessageDialog); - } - return pRet; + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pMessageDialog); + m_xBuilder->drop_ownership(pMessageDialog); } + return pRet; +} - virtual std::unique_ptr<weld::AboutDialog> weld_about_dialog(const OString &id, bool bTakeOwnership) override +std::unique_ptr<weld::AboutDialog> SalInstanceBuilder::weld_about_dialog(const OString& id, + bool bTakeOwnership) +{ + vcl::AboutDialog* pAboutDialog = m_xBuilder->get<vcl::AboutDialog>(id); + std::unique_ptr<weld::AboutDialog> pRet( + pAboutDialog ? new SalInstanceAboutDialog(pAboutDialog, this, false) : nullptr); + if (bTakeOwnership && pAboutDialog) { - vcl::AboutDialog* pAboutDialog = m_xBuilder->get<vcl::AboutDialog>(id); - std::unique_ptr<weld::AboutDialog> pRet(pAboutDialog ? new SalInstanceAboutDialog(pAboutDialog, this, false) : nullptr); - if (bTakeOwnership && pAboutDialog) - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - m_aOwnedToplevel.set(pAboutDialog); - m_xBuilder->drop_ownership(pAboutDialog); - } - return pRet; + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pAboutDialog); + m_xBuilder->drop_ownership(pAboutDialog); } + return pRet; +} - virtual std::unique_ptr<weld::Dialog> weld_dialog(const OString &id, bool bTakeOwnership) override +std::unique_ptr<weld::Dialog> SalInstanceBuilder::weld_dialog(const OString& id, + bool bTakeOwnership) +{ + Dialog* pDialog = m_xBuilder->get<Dialog>(id); + std::unique_ptr<weld::Dialog> pRet(pDialog ? new SalInstanceDialog(pDialog, this, false) + : nullptr); + if (bTakeOwnership && pDialog) { - Dialog* pDialog = m_xBuilder->get<Dialog>(id); - std::unique_ptr<weld::Dialog> pRet(pDialog ? new SalInstanceDialog(pDialog, this, false) : nullptr); - if (bTakeOwnership && pDialog) - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - m_aOwnedToplevel.set(pDialog); - m_xBuilder->drop_ownership(pDialog); - } - return pRet; + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pDialog); + m_xBuilder->drop_ownership(pDialog); } + return pRet; +} - virtual std::unique_ptr<weld::Assistant> weld_assistant(const OString &id, bool bTakeOwnership) override +std::unique_ptr<weld::Assistant> SalInstanceBuilder::weld_assistant(const OString& id, + bool bTakeOwnership) +{ + vcl::RoadmapWizard* pDialog = m_xBuilder->get<vcl::RoadmapWizard>(id); + std::unique_ptr<weld::Assistant> pRet(pDialog ? new SalInstanceAssistant(pDialog, this, false) + : nullptr); + if (bTakeOwnership && pDialog) { - vcl::RoadmapWizard* pDialog = m_xBuilder->get<vcl::RoadmapWizard>(id); - std::unique_ptr<weld::Assistant> pRet(pDialog ? new SalInstanceAssistant(pDialog, this, false) : nullptr); - if (bTakeOwnership && pDialog) - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - m_aOwnedToplevel.set(pDialog); - m_xBuilder->drop_ownership(pDialog); - } - return pRet; + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pDialog); + m_xBuilder->drop_ownership(pDialog); } + return pRet; +} - virtual std::unique_ptr<weld::Window> create_screenshot_window() override - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); +std::unique_ptr<weld::Window> SalInstanceBuilder::create_screenshot_window() +{ + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - vcl::Window *pRoot = m_xBuilder->get_widget_root(); - if (SystemWindow *pWindow = dynamic_cast<SystemWindow*>(pRoot)) - { - std::unique_ptr<weld::Window> xRet(new SalInstanceWindow(pWindow, this, false)); - m_aOwnedToplevel.set(pWindow); - m_xBuilder->drop_ownership(pWindow); - return xRet; - } + vcl::Window* pRoot = m_xBuilder->get_widget_root(); + if (SystemWindow* pWindow = dynamic_cast<SystemWindow*>(pRoot)) + { + std::unique_ptr<weld::Window> xRet(new SalInstanceWindow(pWindow, this, false)); + m_aOwnedToplevel.set(pWindow); + m_xBuilder->drop_ownership(pWindow); + return xRet; + } - VclPtrInstance<Dialog> xDialog(nullptr, WB_HIDE | WB_STDDIALOG | WB_SIZEABLE | WB_CLOSEABLE, Dialog::InitFlag::NoParent); - xDialog->SetText(utl::ConfigManager::getProductName()); + VclPtrInstance<Dialog> xDialog(nullptr, WB_HIDE | WB_STDDIALOG | WB_SIZEABLE | WB_CLOSEABLE, + Dialog::InitFlag::NoParent); + xDialog->SetText(utl::ConfigManager::getProductName()); - auto xContentArea = VclPtr<VclVBox>::Create(xDialog, false, 12); - pRoot->SetParent(xContentArea); - assert(pRoot == xContentArea->GetWindow(GetWindowType::FirstChild)); - xContentArea->Show(); - pRoot->Show(); - xDialog->SetHelpId(pRoot->GetHelpId()); + auto xContentArea = VclPtr<VclVBox>::Create(xDialog, false, 12); + pRoot->SetParent(xContentArea); + assert(pRoot == xContentArea->GetWindow(GetWindowType::FirstChild)); + xContentArea->Show(); + pRoot->Show(); + xDialog->SetHelpId(pRoot->GetHelpId()); - m_aOwnedToplevel.set(xDialog); + m_aOwnedToplevel.set(xDialog); - return std::unique_ptr<weld::Dialog>(new SalInstanceDialog(xDialog, this, false)); - } + return std::unique_ptr<weld::Dialog>(new SalInstanceDialog(xDialog, this, false)); +} - virtual std::unique_ptr<weld::Window> weld_window(const OString &id, bool bTakeOwnership) override - { - SystemWindow* pWindow = m_xBuilder->get<SystemWindow>(id); - return pWindow ? std::make_unique<SalInstanceWindow>(pWindow, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Window> SalInstanceBuilder::weld_window(const OString& id, + bool bTakeOwnership) +{ + SystemWindow* pWindow = m_xBuilder->get<SystemWindow>(id); + return pWindow ? std::make_unique<SalInstanceWindow>(pWindow, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::Widget> weld_widget(const OString &id, bool bTakeOwnership) override - { - vcl::Window* pWidget = m_xBuilder->get<vcl::Window>(id); - return pWidget ? std::make_unique<SalInstanceWidget>(pWidget, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Widget> SalInstanceBuilder::weld_widget(const OString& id, + bool bTakeOwnership) +{ + vcl::Window* pWidget = m_xBuilder->get<vcl::Window>(id); + return pWidget ? std::make_unique<SalInstanceWidget>(pWidget, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::Container> weld_container(const OString &id, bool bTakeOwnership) override - { - vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(id); - return pContainer ? std::make_unique<SalInstanceContainer>(pContainer, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Container> SalInstanceBuilder::weld_container(const OString& id, + bool bTakeOwnership) +{ + vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(id); + return pContainer ? std::make_unique<SalInstanceContainer>(pContainer, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Box> weld_box(const OString &id, bool bTakeOwnership) override - { - vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(id); - return pContainer ? std::make_unique<SalInstanceBox>(pContainer, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Box> SalInstanceBuilder::weld_box(const OString& id, bool bTakeOwnership) +{ + vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(id); + return pContainer ? std::make_unique<SalInstanceBox>(pContainer, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Frame> weld_frame(const OString &id, bool bTakeOwnership) override +std::unique_ptr<weld::Frame> SalInstanceBuilder::weld_frame(const OString& id, bool bTakeOwnership) +{ + VclFrame* pFrame = m_xBuilder->get<VclFrame>(id); + std::unique_ptr<weld::Frame> pRet(pFrame ? new SalInstanceFrame(pFrame, this, false) : nullptr); + if (bTakeOwnership && pFrame) { - VclFrame* pFrame = m_xBuilder->get<VclFrame>(id); - std::unique_ptr<weld::Frame> pRet(pFrame ? new SalInstanceFrame(pFrame, this, false) : nullptr); - if (bTakeOwnership && pFrame) - { - assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); - m_aOwnedToplevel.set(pFrame); - m_xBuilder->drop_ownership(pFrame); - } - return pRet; + assert(!m_aOwnedToplevel && "only one toplevel per .ui allowed"); + m_aOwnedToplevel.set(pFrame); + m_xBuilder->drop_ownership(pFrame); } + return pRet; +} - virtual std::unique_ptr<weld::ScrolledWindow> weld_scrolled_window(const OString &id, bool bTakeOwnership) override - { - VclScrolledWindow* pScrolledWindow = m_xBuilder->get<VclScrolledWindow>(id); - return pScrolledWindow ? std::make_unique<SalInstanceScrolledWindow>(pScrolledWindow, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::ScrolledWindow> SalInstanceBuilder::weld_scrolled_window(const OString& id, + bool bTakeOwnership) +{ + VclScrolledWindow* pScrolledWindow = m_xBuilder->get<VclScrolledWindow>(id); + return pScrolledWindow + ? std::make_unique<SalInstanceScrolledWindow>(pScrolledWindow, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Notebook> weld_notebook(const OString &id, bool bTakeOwnership) override - { - vcl::Window* pNotebook = m_xBuilder->get<vcl::Window>(id); - if (!pNotebook) - return nullptr; - if (pNotebook->GetType() == WindowType::TABCONTROL) - return std::make_unique<SalInstanceNotebook>(static_cast<TabControl*>(pNotebook), this, bTakeOwnership); - if (pNotebook->GetType() == WindowType::VERTICALTABCONTROL) - return std::make_unique<SalInstanceVerticalNotebook>(static_cast<VerticalTabControl*>(pNotebook), this, bTakeOwnership); +std::unique_ptr<weld::Notebook> SalInstanceBuilder::weld_notebook(const OString& id, + bool bTakeOwnership) +{ + vcl::Window* pNotebook = m_xBuilder->get<vcl::Window>(id); + if (!pNotebook) return nullptr; - } + if (pNotebook->GetType() == WindowType::TABCONTROL) + return std::make_unique<SalInstanceNotebook>(static_cast<TabControl*>(pNotebook), this, + bTakeOwnership); + if (pNotebook->GetType() == WindowType::VERTICALTABCONTROL) + return std::make_unique<SalInstanceVerticalNotebook>( + static_cast<VerticalTabControl*>(pNotebook), this, bTakeOwnership); + return nullptr; +} - virtual std::unique_ptr<weld::Button> weld_button(const OString &id, bool bTakeOwnership) override - { - Button* pButton = m_xBuilder->get<Button>(id); - return pButton ? std::make_unique<SalInstanceButton>(pButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Button> SalInstanceBuilder::weld_button(const OString& id, + bool bTakeOwnership) +{ + Button* pButton = m_xBuilder->get<Button>(id); + return pButton ? std::make_unique<SalInstanceButton>(pButton, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::MenuButton> weld_menu_button(const OString &id, bool bTakeOwnership) override - { - MenuButton* pButton = m_xBuilder->get<MenuButton>(id); - return pButton ? std::make_unique<SalInstanceMenuButton>(pButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::MenuButton> SalInstanceBuilder::weld_menu_button(const OString& id, + bool bTakeOwnership) +{ + MenuButton* pButton = m_xBuilder->get<MenuButton>(id); + return pButton ? std::make_unique<SalInstanceMenuButton>(pButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::LinkButton> weld_link_button(const OString &id, bool bTakeOwnership) override - { - FixedHyperlink* pButton = m_xBuilder->get<FixedHyperlink>(id); - return pButton ? std::make_unique<SalInstanceLinkButton>(pButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::LinkButton> SalInstanceBuilder::weld_link_button(const OString& id, + bool bTakeOwnership) +{ + FixedHyperlink* pButton = m_xBuilder->get<FixedHyperlink>(id); + return pButton ? std::make_unique<SalInstanceLinkButton>(pButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::ToggleButton> weld_toggle_button(const OString &id, bool bTakeOwnership) override - { - PushButton* pToggleButton = m_xBuilder->get<PushButton>(id); - return pToggleButton ? std::make_unique<SalInstanceToggleButton>(pToggleButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::ToggleButton> SalInstanceBuilder::weld_toggle_button(const OString& id, + bool bTakeOwnership) +{ + PushButton* pToggleButton = m_xBuilder->get<PushButton>(id); + return pToggleButton + ? std::make_unique<SalInstanceToggleButton>(pToggleButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::RadioButton> weld_radio_button(const OString &id, bool bTakeOwnership) override - { - RadioButton* pRadioButton = m_xBuilder->get<RadioButton>(id); - return pRadioButton ? std::make_unique<SalInstanceRadioButton>(pRadioButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::RadioButton> SalInstanceBuilder::weld_radio_button(const OString& id, + bool bTakeOwnership) +{ + RadioButton* pRadioButton = m_xBuilder->get<RadioButton>(id); + return pRadioButton + ? std::make_unique<SalInstanceRadioButton>(pRadioButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::CheckButton> weld_check_button(const OString &id, bool bTakeOwnership) override - { - CheckBox* pCheckButton = m_xBuilder->get<CheckBox>(id); - return pCheckButton ? std::make_unique<SalInstanceCheckButton>(pCheckButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::CheckButton> SalInstanceBuilder::weld_check_button(const OString& id, + bool bTakeOwnership) +{ + CheckBox* pCheckButton = m_xBuilder->get<CheckBox>(id); + return pCheckButton + ? std::make_unique<SalInstanceCheckButton>(pCheckButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Scale> weld_scale(const OString &id, bool bTakeOwnership) override - { - Slider* pSlider = m_xBuilder->get<Slider>(id); - return pSlider ? std::make_unique<SalInstanceScale>(pSlider, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Scale> SalInstanceBuilder::weld_scale(const OString& id, bool bTakeOwnership) +{ + Slider* pSlider = m_xBuilder->get<Slider>(id); + return pSlider ? std::make_unique<SalInstanceScale>(pSlider, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::ProgressBar> weld_progress_bar(const OString &id, bool bTakeOwnership) override - { - ::ProgressBar* pProgress = m_xBuilder->get<::ProgressBar>(id); - return pProgress ? std::make_unique<SalInstanceProgressBar>(pProgress, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::ProgressBar> SalInstanceBuilder::weld_progress_bar(const OString& id, + bool bTakeOwnership) +{ + ::ProgressBar* pProgress = m_xBuilder->get<::ProgressBar>(id); + return pProgress ? std::make_unique<SalInstanceProgressBar>(pProgress, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Spinner> weld_spinner(const OString &id, bool bTakeOwnership) override - { - Throbber* pThrobber = m_xBuilder->get<Throbber>(id); - return pThrobber ? std::make_unique<SalInstanceSpinner>(pThrobber, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Spinner> SalInstanceBuilder::weld_spinner(const OString& id, + bool bTakeOwnership) +{ + Throbber* pThrobber = m_xBuilder->get<Throbber>(id); + return pThrobber ? std::make_unique<SalInstanceSpinner>(pThrobber, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Image> weld_image(const OString &id, bool bTakeOwnership) override - { - FixedImage* pImage = m_xBuilder->get<FixedImage>(id); - return pImage ? std::make_unique<SalInstanceImage>(pImage, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Image> SalInstanceBuilder::weld_image(const OString& id, bool bTakeOwnership) +{ + FixedImage* pImage = m_xBuilder->get<FixedImage>(id); + return pImage ? std::make_unique<SalInstanceImage>(pImage, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::Calendar> weld_calendar(const OString &id, bool bTakeOwnership) override - { - Calendar* pCalendar = m_xBuilder->get<Calendar>(id); - return pCalendar ? std::make_unique<SalInstanceCalendar>(pCalendar, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Calendar> SalInstanceBuilder::weld_calendar(const OString& id, + bool bTakeOwnership) +{ + Calendar* pCalendar = m_xBuilder->get<Calendar>(id); + return pCalendar ? std::make_unique<SalInstanceCalendar>(pCalendar, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Entry> weld_entry(const OString &id, bool bTakeOwnership) override - { - Edit* pEntry = m_xBuilder->get<Edit>(id); - return pEntry ? std::make_unique<SalInstanceEntry>(pEntry, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Entry> SalInstanceBuilder::weld_entry(const OString& id, bool bTakeOwnership) +{ + Edit* pEntry = m_xBuilder->get<Edit>(id); + return pEntry ? std::make_unique<SalInstanceEntry>(pEntry, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::SpinButton> weld_spin_button(const OString &id, bool bTakeOwnership) override - { - FormattedField* pSpinButton = m_xBuilder->get<FormattedField>(id); - return pSpinButton ? std::make_unique<SalInstanceSpinButton>(pSpinButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::SpinButton> SalInstanceBuilder::weld_spin_button(const OString& id, + bool bTakeOwnership) +{ + FormattedField* pSpinButton = m_xBuilder->get<FormattedField>(id); + return pSpinButton ? std::make_unique<SalInstanceSpinButton>(pSpinButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::MetricSpinButton> weld_metric_spin_button(const OString& id, FieldUnit eUnit, - bool bTakeOwnership) override +std::unique_ptr<weld::MetricSpinButton> +SalInstanceBuilder::weld_metric_spin_button(const OString& id, FieldUnit eUnit, bool bTakeOwnership) +{ + std::unique_ptr<weld::SpinButton> xButton(weld_spin_button(id, bTakeOwnership)); + if (xButton) { - std::unique_ptr<weld::SpinButton> xButton(weld_spin_button(id, bTakeOwnership)); - if (xButton) - { - SalInstanceSpinButton& rButton = dynamic_cast<SalInstanceSpinButton&>(*xButton); - rButton.SetUseThousandSep(); - } - return std::make_unique<weld::MetricSpinButton>(std::move(xButton), eUnit); + SalInstanceSpinButton& rButton = dynamic_cast<SalInstanceSpinButton&>(*xButton); + rButton.SetUseThousandSep(); } + return std::make_unique<weld::MetricSpinButton>(std::move(xButton), eUnit); +} - virtual std::unique_ptr<weld::FormattedSpinButton> weld_formatted_spin_button(const OString& id, - bool bTakeOwnership) override - { - FormattedField* pSpinButton = m_xBuilder->get<FormattedField>(id); - return pSpinButton ? std::make_unique<SalInstanceFormattedSpinButton>(pSpinButton, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::FormattedSpinButton> +SalInstanceBuilder::weld_formatted_spin_button(const OString& id, bool bTakeOwnership) +{ + FormattedField* pSpinButton = m_xBuilder->get<FormattedField>(id); + return pSpinButton + ? std::make_unique<SalInstanceFormattedSpinButton>(pSpinButton, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::TimeSpinButton> weld_time_spin_button(const OString& id, TimeFieldFormat eFormat, - bool bTakeOwnership) override - { - std::unique_ptr<weld::TimeSpinButton> pRet(new weld::TimeSpinButton(weld_spin_button(id, bTakeOwnership), eFormat)); - SalInstanceSpinButton& rButton = dynamic_cast<SalInstanceSpinButton&>(pRet->get_widget()); - rButton.DisableRemainderFactor(); //so with hh::mm::ss, incrementing mm will not reset ss - return pRet; - } +std::unique_ptr<weld::TimeSpinButton> +SalInstanceBuilder::weld_time_spin_button(const OString& id, TimeFieldFormat eFormat, + bool bTakeOwnership) +{ + std::unique_ptr<weld::TimeSpinButton> pRet( + new weld::TimeSpinButton(weld_spin_button(id, bTakeOwnership), eFormat)); + SalInstanceSpinButton& rButton = dynamic_cast<SalInstanceSpinButton&>(pRet->get_widget()); + rButton.DisableRemainderFactor(); //so with hh::mm::ss, incrementing mm will not reset ss + return pRet; +} - virtual std::unique_ptr<weld::ComboBox> weld_combo_box(const OString &id, bool bTakeOwnership) override - { - vcl::Window* pWidget = m_xBuilder->get<vcl::Window>(id); - ::ComboBox* pComboBox = dynamic_cast<::ComboBox*>(pWidget); - if (pComboBox) - return std::make_unique<SalInstanceComboBoxWithEdit>(pComboBox, this, bTakeOwnership); - ListBox* pListBox = dynamic_cast<ListBox*>(pWidget); - return pListBox ? std::make_unique<SalInstanceComboBoxWithoutEdit>(pListBox, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::ComboBox> SalInstanceBuilder::weld_combo_box(const OString& id, + bool bTakeOwnership) +{ + vcl::Window* pWidget = m_xBuilder->get<vcl::Window>(id); + ::ComboBox* pComboBox = dynamic_cast<::ComboBox*>(pWidget); + if (pComboBox) + return std::make_unique<SalInstanceComboBoxWithEdit>(pComboBox, this, bTakeOwnership); + ListBox* pListBox = dynamic_cast<ListBox*>(pWidget); + return pListBox + ? std::make_unique<SalInstanceComboBoxWithoutEdit>(pListBox, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::EntryTreeView> weld_entry_tree_view(const OString& containerid, const OString& entryid, const OString& treeviewid, bool bTakeOwnership) override - { - vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(containerid); - return pContainer ? std::make_unique<SalInstanceEntryTreeView>(pContainer, this, bTakeOwnership, - weld_entry(entryid, bTakeOwnership), - weld_tree_view(treeviewid, bTakeOwnership)) : nullptr; - } +std::unique_ptr<weld::EntryTreeView> +SalInstanceBuilder::weld_entry_tree_view(const OString& containerid, const OString& entryid, + const OString& treeviewid, bool bTakeOwnership) +{ + vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(containerid); + return pContainer ? std::make_unique<SalInstanceEntryTreeView>( + pContainer, this, bTakeOwnership, weld_entry(entryid, bTakeOwnership), + weld_tree_view(treeviewid, bTakeOwnership)) + : nullptr; +} - virtual std::unique_ptr<weld::TreeView> weld_tree_view(const OString &id, bool bTakeOwnership) override - { - SvTabListBox* pTreeView = m_xBuilder->get<SvTabListBox>(id); - return pTreeView ? std::make_unique<SalInstanceTreeView>(pTreeView, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::TreeView> SalInstanceBuilder::weld_tree_view(const OString& id, + bool bTakeOwnership) +{ + SvTabListBox* pTreeView = m_xBuilder->get<SvTabListBox>(id); + return pTreeView ? std::make_unique<SalInstanceTreeView>(pTreeView, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::IconView> weld_icon_view(const OString &id, bool bTakeOwnership) override - { - IconView* pIconView = m_xBuilder->get<IconView>(id); - return pIconView ? std::make_unique<SalInstanceIconView>(pIconView, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::IconView> SalInstanceBuilder::weld_icon_view(const OString& id, + bool bTakeOwnership) +{ + IconView* pIconView = m_xBuilder->get<IconView>(id); + return pIconView ? std::make_unique<SalInstanceIconView>(pIconView, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Label> weld_label(const OString &id, bool bTakeOwnership) override - { - Control* pLabel = m_xBuilder->get<Control>(id); - return pLabel ? std::make_unique<SalInstanceLabel>(pLabel, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Label> SalInstanceBuilder::weld_label(const OString& id, bool bTakeOwnership) +{ + Control* pLabel = m_xBuilder->get<Control>(id); + return pLabel ? std::make_unique<SalInstanceLabel>(pLabel, this, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::TextView> weld_text_view(const OString &id, bool bTakeOwnership) override - { - VclMultiLineEdit* pTextView = m_xBuilder->get<VclMultiLineEdit>(id); - return pTextView ? std::make_unique<SalInstanceTextView>(pTextView, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::TextView> SalInstanceBuilder::weld_text_view(const OString& id, + bool bTakeOwnership) +{ + VclMultiLineEdit* pTextView = m_xBuilder->get<VclMultiLineEdit>(id); + return pTextView ? std::make_unique<SalInstanceTextView>(pTextView, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Expander> weld_expander(const OString &id, bool bTakeOwnership) override - { - VclExpander* pExpander = m_xBuilder->get<VclExpander>(id); - return pExpander ? std::make_unique<SalInstanceExpander>(pExpander, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Expander> SalInstanceBuilder::weld_expander(const OString& id, + bool bTakeOwnership) +{ + VclExpander* pExpander = m_xBuilder->get<VclExpander>(id); + return pExpander ? std::make_unique<SalInstanceExpander>(pExpander, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::DrawingArea> weld_drawing_area(const OString &id, const a11yref& rA11yImpl, - FactoryFunction pUITestFactoryFunction, void* pUserData, bool bTakeOwnership) override - { - VclDrawingArea* pDrawingArea = m_xBuilder->get<VclDrawingArea>(id); - return pDrawingArea ? std::make_unique<SalInstanceDrawingArea>(pDrawingArea, this, rA11yImpl, - pUITestFactoryFunction, pUserData, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::DrawingArea> +SalInstanceBuilder::weld_drawing_area(const OString& id, const a11yref& rA11yImpl, + FactoryFunction pUITestFactoryFunction, void* pUserData, + bool bTakeOwnership) +{ + VclDrawingArea* pDrawingArea = m_xBuilder->get<VclDrawingArea>(id); + return pDrawingArea ? std::make_unique<SalInstanceDrawingArea>(pDrawingArea, this, rA11yImpl, + pUITestFactoryFunction, + pUserData, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::Menu> weld_menu(const OString &id, bool bTakeOwnership) override - { - PopupMenu* pMenu = m_xBuilder->get_menu(id); - return pMenu ? std::make_unique<SalInstanceMenu>(pMenu, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Menu> SalInstanceBuilder::weld_menu(const OString& id, bool bTakeOwnership) +{ + PopupMenu* pMenu = m_xBuilder->get_menu(id); + return pMenu ? std::make_unique<SalInstanceMenu>(pMenu, bTakeOwnership) : nullptr; +} - virtual std::unique_ptr<weld::Toolbar> weld_toolbar(const OString &id, bool bTakeOwnership) override - { - ToolBox* pToolBox = m_xBuilder->get<ToolBox>(id); - return pToolBox ? std::make_unique<SalInstanceToolbar>(pToolBox, this, bTakeOwnership) : nullptr; - } +std::unique_ptr<weld::Toolbar> SalInstanceBuilder::weld_toolbar(const OString& id, + bool bTakeOwnership) +{ + ToolBox* pToolBox = m_xBuilder->get<ToolBox>(id); + return pToolBox ? std::make_unique<SalInstanceToolbar>(pToolBox, this, bTakeOwnership) + : nullptr; +} - virtual std::unique_ptr<weld::SizeGroup> create_size_group() override - { - return std::make_unique<SalInstanceSizeGroup>(); - } +std::unique_ptr<weld::SizeGroup> SalInstanceBuilder::create_size_group() +{ + return std::make_unique<SalInstanceSizeGroup>(); +} - OString get_current_page_help_id() const - { - TabControl *pCtrl = m_xBuilder->get<TabControl>("tabcontrol"); - TabPage* pTabPage = pCtrl ? pCtrl->GetTabPage(pCtrl->GetCurPageId()) : nullptr; - vcl::Window *pTabChild = pTabPage ? pTabPage->GetWindow(GetWindowType::FirstChild) : nullptr; - pTabChild = pTabChild ? pTabChild->GetWindow(GetWindowType::FirstChild) : nullptr; - if (pTabChild) - return pTabChild->GetHelpId(); - return OString(); - } +OString SalInstanceBuilder::get_current_page_help_id() const +{ + TabControl* pCtrl = m_xBuilder->get<TabControl>("tabcontrol"); + TabPage* pTabPage = pCtrl ? pCtrl->GetTabPage(pCtrl->GetCurPageId()) : nullptr; + vcl::Window* pTabChild = pTabPage ? pTabPage->GetWindow(GetWindowType::FirstChild) : nullptr; + pTabChild = pTabChild ? pTabChild->GetWindow(GetWindowType::FirstChild) : nullptr; + if (pTabChild) + return pTabChild->GetHelpId(); + return OString(); +} - virtual ~SalInstanceBuilder() override - { - if (VclBuilderContainer* pOwnedToplevel = dynamic_cast<VclBuilderContainer*>(m_aOwnedToplevel.get())) - pOwnedToplevel->m_pUIBuilder = std::move(m_xBuilder); - else - m_xBuilder.reset(); - m_aOwnedToplevel.disposeAndClear(); - } -}; +SalInstanceBuilder::~SalInstanceBuilder() +{ + if (VclBuilderContainer* pOwnedToplevel + = dynamic_cast<VclBuilderContainer*>(m_aOwnedToplevel.get())) + pOwnedToplevel->m_pUIBuilder = std::move(m_xBuilder); + else + m_xBuilder.reset(); + m_aOwnedToplevel.disposeAndClear(); +} -weld::Builder* SalInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIRoot, const OUString& rUIFile) +weld::Builder* SalInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIRoot, + const OUString& rUIFile) { SalInstanceWidget* pParentInstance = dynamic_cast<SalInstanceWidget*>(pParent); vcl::Window* pParentWidget = pParentInstance ? pParentInstance->getWidget() : nullptr; return new SalInstanceBuilder(pParentWidget, rUIRoot, rUIFile); } -weld::Builder* SalInstance::CreateInterimBuilder(vcl::Window* pParent, const OUString& rUIRoot, const OUString& rUIFile) +weld::Builder* SalInstance::CreateInterimBuilder(vcl::Window* pParent, const OUString& rUIRoot, + const OUString& rUIFile) { return new SalInstanceBuilder(pParent, rUIRoot, rUIFile); } @@ -6905,7 +6451,8 @@ void SalInstanceWindow::help() break; sHelpId = pWidget->GetHelpId(); } - std::unique_ptr<weld::Widget> xTemp(pWidget != m_xWindow ? new SalInstanceWidget(pWidget, m_pBuilder, false) : nullptr); + std::unique_ptr<weld::Widget> xTemp( + pWidget != m_xWindow ? new SalInstanceWidget(pWidget, m_pBuilder, false) : nullptr); weld::Widget* pSource = xTemp ? xTemp.get() : this; bool bRunNormalHelpRequest = !m_aHelpRequestHdl.IsSet() || m_aHelpRequestHdl.Call(*pSource); Help* pHelp = bRunNormalHelpRequest ? Application::GetHelp() : nullptr; @@ -6927,7 +6474,7 @@ void SalInstanceWindow::help() { // tdf#129068 likewise the help for the wrapping dialog is less // helpful than the help for the content area could be - vcl::Window *pContentArea = nullptr; + vcl::Window* pContentArea = nullptr; if (::Dialog* pDialog = dynamic_cast<::Dialog*>(m_xWindow.get())) pContentArea = pDialog->get_content_area(); if (pContentArea) @@ -6954,11 +6501,15 @@ void SalInstanceWidget::help_hierarchy_foreach(const std::function<bool(const OS } } -weld::MessageDialog* SalInstance::CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, VclButtonsType eButtonsType, const OUString& rPrimaryMessage) +weld::MessageDialog* SalInstance::CreateMessageDialog(weld::Widget* pParent, + VclMessageType eMessageType, + VclButtonsType eButtonsType, + const OUString& rPrimaryMessage) { SalInstanceWidget* pParentInstance = dynamic_cast<SalInstanceWidget*>(pParent); SystemWindow* pParentWidget = pParentInstance ? pParentInstance->getSystemWindow() : nullptr; - VclPtrInstance<MessageDialog> xMessageDialog(pParentWidget, rPrimaryMessage, eMessageType, eButtonsType); + VclPtrInstance<MessageDialog> xMessageDialog(pParentWidget, rPrimaryMessage, eMessageType, + eButtonsType); return new SalInstanceMessageDialog(xMessageDialog, nullptr, true); } |