diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-05-02 12:39:43 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-05-03 21:55:24 +0200 |
commit | 7e64aaebce8667f7ab173ea3807c62f81138b4af (patch) | |
tree | 0fe1c975221f32b742a8a09aa05ed431b55f8d9a /include/vcl | |
parent | 55fcb23ea5caa509d8254910c581d234f7ec9199 (diff) |
weld SvxTextAttrPage
with a a11y rework to be more like the insert special char a11y
also, route a11y questions about a custom widgets parent to the gtk toolkits
underlying default implementation, keeping only questions about ourself to
be handled by the XAccessible
focus rectangles in RectCtl work again, seems that got lost somewhere
along the way
Change-Id: I62237d45668f4438aec6031cc5a48c38de21bf98
Reviewed-on: https://gerrit.libreoffice.org/53767
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include/vcl')
-rw-r--r-- | include/vcl/layout.hxx | 14 | ||||
-rw-r--r-- | include/vcl/weld.hxx | 6 |
2 files changed, 17 insertions, 3 deletions
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx index 9aff1794a53c..31ff24e2d2ee 100644 --- a/include/vcl/layout.hxx +++ b/include/vcl/layout.hxx @@ -623,6 +623,7 @@ private: Link<const MouseEvent&, void> m_aMouseReleaseHdl; Link<const KeyEvent&, bool> m_aKeyPressHdl; Link<const KeyEvent&, bool> m_aKeyReleaseHdl; + Link<VclDrawingArea&, void> m_aStyleUpdatedHdl; virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override { @@ -655,21 +656,24 @@ private: if (!m_aKeyReleaseHdl.Call(rKEvt)) Control::KeyUp(rKEvt); } - virtual void StateChanged(StateChangedType nType) override { Control::StateChanged(nType); if (nType == StateChangedType::ControlForeground || nType == StateChangedType::ControlBackground) + { + m_aStyleUpdatedHdl.Call(*this); Invalidate(); + } } - virtual void DataChanged(const DataChangedEvent& rDCEvt) override { Control::DataChanged(rDCEvt); if ((rDCEvt.GetType() == DataChangedEventType::SETTINGS) && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) + { + m_aStyleUpdatedHdl.Call(*this); Invalidate(); + } } - virtual FactoryFunction GetUITestFactory() const override { if (m_pFactoryFunction) @@ -721,6 +725,10 @@ public: { m_aKeyReleaseHdl = rLink; } + void SetStyleUpdatedHdl(const Link<VclDrawingArea&, void>& rLink) + { + m_aStyleUpdatedHdl = rLink; + } }; //Get first window of a pTopLevel window as diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 93f8657e6852..309c1447a80d 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -17,7 +17,10 @@ #include <vcl/field.hxx> #include <vcl/virdev.hxx> +#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp> + typedef css::uno::Reference<css::accessibility::XAccessible> a11yref; +typedef css::uno::Reference<css::accessibility::XAccessibleRelationSet> a11yrelationset; namespace weld { @@ -697,6 +700,7 @@ protected: Link<const MouseEvent&, void> m_aMouseReleaseHdl; Link<const KeyEvent&, bool> m_aKeyPressHdl; Link<const KeyEvent&, bool> m_aKeyReleaseHdl; + Link<Widget&, void> m_aStyleUpdatedHdl; public: void connect_draw(const Link<draw_args, void>& rLink) { m_aDrawHdl = rLink; } @@ -715,9 +719,11 @@ public: } void connect_key_press(const Link<const KeyEvent&, bool>& rLink) { m_aKeyPressHdl = rLink; } void connect_key_release(const Link<const KeyEvent&, bool>& rLink) { m_aKeyReleaseHdl = rLink; } + void connect_style_updated(const Link<Widget&, void>& rLink) { m_aStyleUpdatedHdl = rLink; } virtual void queue_draw() = 0; virtual void queue_draw_area(int x, int y, int width, int height) = 0; virtual a11yref get_accessible_parent() = 0; + virtual a11yrelationset get_accessible_relation_set() = 0; }; class VCL_DLLPUBLIC Menu |