cui/source/options/optaccessibility.cxx |   38 +++++-
 cui/source/options/optaccessibility.hxx |    7 +
 cui/uiconfig/ui/optaccessibilitypage.ui |  180 ++++++++++++++++++++++++--------
 3 files changed, 174 insertions(+), 51 deletions(-)

New commits:
commit 916ea4b0aadc61c2fdb89ac18e3e8327406bcd37
Author:     Balazs Varga <[email protected]>
AuthorDate: Wed Oct 25 16:03:14 2023 +0200
Commit:     Balazs Varga <[email protected]>
CommitDate: Thu Oct 26 09:23:06 2023 +0200

    tdf#157846 - UI: Part 9 - Unify lockdown behavior of Options dialog
    
    for Accessibility Page.
    
    Change-Id: I4705904200715c1e41849a47a3dd684ddfa219c4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158425
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <[email protected]>

diff --git a/cui/source/options/optaccessibility.cxx 
b/cui/source/options/optaccessibility.cxx
index f81c893673ca..008a4a273502 100644
--- a/cui/source/options/optaccessibility.cxx
+++ b/cui/source/options/optaccessibility.cxx
@@ -27,11 +27,18 @@ 
SvxAccessibilityOptionsTabPage::SvxAccessibilityOptionsTabPage(weld::Container*
     : SfxTabPage(pPage, pController, "cui/ui/optaccessibilitypage.ui", 
"OptAccessibilityPage", &rSet)
     , m_xAccessibilityTool(m_xBuilder->weld_check_button("acctool"))
     , 
m_xTextSelectionInReadonly(m_xBuilder->weld_check_button("textselinreadonly"))
+    , 
m_xTextSelectionInReadonlyImg(m_xBuilder->weld_widget("locktextselinreadonly"))
     , m_xAnimatedGraphics(m_xBuilder->weld_check_button("animatedgraphics"))
+    , m_xAnimatedGraphicsImg(m_xBuilder->weld_widget("lockanimatedgraphics"))
     , m_xAnimatedTexts(m_xBuilder->weld_check_button("animatedtext"))
+    , m_xAnimatedTextsImg(m_xBuilder->weld_widget("lockanimatedtext"))
     , m_xHighContrast(m_xBuilder->weld_combo_box("highcontrast"))
+    , m_xHighContrastImg(m_xBuilder->weld_widget("lockhighcontrast"))
+    , m_xHighContrastLabel(m_xBuilder->weld_label("label13"))
     , m_xAutomaticFontColor(m_xBuilder->weld_check_button("autofontcolor"))
+    , m_xAutomaticFontColorImg(m_xBuilder->weld_widget("lockautofontcolor"))
     , m_xPagePreviews(m_xBuilder->weld_check_button("systempagepreviewcolor"))
+    , m_xPagePreviewsImg(m_xBuilder->weld_widget("locksystempagepreviewcolor"))
 {
 #ifdef UNX
     // UNIX: read the gconf2 setting instead to use the checkbox
@@ -103,28 +110,47 @@ bool SvxAccessibilityOptionsTabPage::FillItemSet( 
SfxItemSet* )
 void SvxAccessibilityOptionsTabPage::Reset( const SfxItemSet* )
 {
     m_xPagePreviews->set_active( 
officecfg::Office::Common::Accessibility::IsForPagePreviews::get() );
-    if( 
officecfg::Office::Common::Accessibility::IsForPagePreviews::isReadOnly() )
+    if 
(officecfg::Office::Common::Accessibility::IsForPagePreviews::isReadOnly())
+    {
         m_xPagePreviews->set_sensitive(false);
+        m_xPagePreviewsImg->set_visible(true);
+    }
 
     m_xAnimatedGraphics->set_active( 
officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::get() );
-    if( 
officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::isReadOnly() 
)
+    if 
(officecfg::Office::Common::Accessibility::IsAllowAnimatedGraphics::isReadOnly())
+    {
         m_xAnimatedGraphics->set_sensitive(false);
+        m_xAnimatedGraphicsImg->set_visible(true);
+    }
 
     m_xAnimatedTexts->set_active( 
officecfg::Office::Common::Accessibility::IsAllowAnimatedText::get() );
-    if( 
officecfg::Office::Common::Accessibility::IsAllowAnimatedText::isReadOnly() )
+    if 
(officecfg::Office::Common::Accessibility::IsAllowAnimatedText::isReadOnly())
+    {
         m_xAnimatedTexts->set_sensitive(false);
+        m_xAnimatedTextsImg->set_visible(true);
+    }
 
     m_xAutomaticFontColor->set_active( 
officecfg::Office::Common::Accessibility::IsAutomaticFontColor::get() );
-    if( 
officecfg::Office::Common::Accessibility::IsAutomaticFontColor::isReadOnly() )
+    if 
(officecfg::Office::Common::Accessibility::IsAutomaticFontColor::isReadOnly())
+    {
         m_xAutomaticFontColor->set_sensitive(false);
+        m_xAutomaticFontColorImg->set_visible(true);
+    }
 
     m_xTextSelectionInReadonly->set_active( 
officecfg::Office::Common::Accessibility::IsSelectionInReadonly::get() );
-    if( 
officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly() )
+    if 
(officecfg::Office::Common::Accessibility::IsSelectionInReadonly::isReadOnly())
+    {
         m_xTextSelectionInReadonly->set_sensitive(false);
+        m_xTextSelectionInReadonlyImg->set_visible(true);
+    }
 
     m_xHighContrast->set_active( 
officecfg::Office::Common::Accessibility::HighContrast::get() );
-    if( officecfg::Office::Common::Accessibility::HighContrast::isReadOnly() )
+    if (officecfg::Office::Common::Accessibility::HighContrast::isReadOnly())
+    {
         m_xHighContrast->set_sensitive(false);
+        m_xHighContrastLabel->set_sensitive(false);
+        m_xHighContrastImg->set_visible(true);
+    }
 
     AllSettings aAllSettings = Application::GetSettings();
     const MiscSettings& aMiscSettings = aAllSettings.GetMiscSettings();
diff --git a/cui/source/options/optaccessibility.hxx 
b/cui/source/options/optaccessibility.hxx
index 4481dd8993af..73fe167c1679 100644
--- a/cui/source/options/optaccessibility.hxx
+++ b/cui/source/options/optaccessibility.hxx
@@ -24,11 +24,18 @@ class SvxAccessibilityOptionsTabPage : public SfxTabPage
 {
     std::unique_ptr<weld::CheckButton> m_xAccessibilityTool;
     std::unique_ptr<weld::CheckButton> m_xTextSelectionInReadonly;
+    std::unique_ptr<weld::Widget> m_xTextSelectionInReadonlyImg;
     std::unique_ptr<weld::CheckButton> m_xAnimatedGraphics;
+    std::unique_ptr<weld::Widget> m_xAnimatedGraphicsImg;
     std::unique_ptr<weld::CheckButton> m_xAnimatedTexts;
+    std::unique_ptr<weld::Widget> m_xAnimatedTextsImg;
     std::unique_ptr<weld::ComboBox> m_xHighContrast;
+    std::unique_ptr<weld::Widget> m_xHighContrastImg;
+    std::unique_ptr<weld::Label> m_xHighContrastLabel;
     std::unique_ptr<weld::CheckButton> m_xAutomaticFontColor;
+    std::unique_ptr<weld::Widget> m_xAutomaticFontColorImg;
     std::unique_ptr<weld::CheckButton> m_xPagePreviews;
+    std::unique_ptr<weld::Widget> m_xPagePreviewsImg;
 
 public:
     SvxAccessibilityOptionsTabPage(weld::Container* pPage, 
weld::DialogController* pController, const SfxItemSet& rSet);
diff --git a/cui/uiconfig/ui/optaccessibilitypage.ui 
b/cui/uiconfig/ui/optaccessibilitypage.ui
index 2148ee39bc03..2cae4b5267ea 100644
--- a/cui/uiconfig/ui/optaccessibilitypage.ui
+++ b/cui/uiconfig/ui/optaccessibilitypage.ui
@@ -15,13 +15,14 @@
         <property name="label-xalign">0</property>
         <property name="shadow-type">none</property>
         <child>
-          <object class="GtkBox" id="box2">
+          <!-- n-columns=2 n-rows=4 -->
+          <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
             <property name="margin-start">12</property>
             <property name="margin-top">6</property>
             <property name="orientation">vertical</property>
-            <property name="spacing">6</property>
+            <property name="row-spacing">6</property>
             <child>
               <object class="GtkCheckButton" id="acctool">
                 <property name="label" translatable="yes" 
context="optaccessibilitypage|acctool">Support _assistive technology tools 
(program restart required)</property>
@@ -37,9 +38,8 @@
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">0</property>
+                <property name="left-attach">1</property>
+                <property name="top-attach">0</property>
               </packing>
             </child>
             <child>
@@ -57,9 +57,8 @@
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
+                <property name="left-attach">1</property>
+                <property name="top-attach">1</property>
               </packing>
             </child>
             <child>
@@ -77,9 +76,8 @@
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="left-attach">1</property>
+                <property name="top-attach">2</property>
               </packing>
             </child>
             <child>
@@ -97,11 +95,52 @@
                 </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">3</property>
+                <property name="left-attach">1</property>
+                <property name="top-attach">3</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkImage" id="locktextselinreadonly">
+                <property name="can-focus">False</property>
+                <property name="no-show-all">True</property>
+                <property name="halign">center</property>
+                <property name="valign">center</property>
+                <property name="icon-name">res/lock.png</property>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage" id="lockanimatedgraphics">
+                <property name="can-focus">False</property>
+                <property name="no-show-all">True</property>
+                <property name="halign">center</property>
+                <property name="valign">center</property>
+                <property name="icon-name">res/lock.png</property>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkImage" id="lockanimatedtext">
+                <property name="can-focus">False</property>
+                <property name="no-show-all">True</property>
+                <property name="halign">center</property>
+                <property name="valign">center</property>
+                <property name="icon-name">res/lock.png</property>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">3</property>
+              </packing>
+            </child>
+            <child>
+              <placeholder/>
+            </child>
           </object>
         </child>
         <child type="label">
@@ -136,7 +175,7 @@
             <property name="orientation">vertical</property>
             <property name="spacing">6</property>
             <child>
-              <!-- n-columns=2 n-rows=1 -->
+              <!-- n-columns=3 n-rows=1 -->
               <object class="GtkGrid" id="highcontrastbox">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
@@ -152,7 +191,7 @@
                     <property name="xalign">0</property>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -174,7 +213,20 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">1</property>
+                    <property name="left-attach">2</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="lockhighcontrast">
+                    <property name="can-focus">False</property>
+                    <property name="no-show-all">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon-name">res/lock.png</property>
+                  </object>
+                  <packing>
+                    <property name="left-attach">0</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -186,43 +238,81 @@
               </packing>
             </child>
             <child>
-              <object class="GtkCheckButton" id="autofontcolor">
-                <property name="label" translatable="yes" 
context="optaccessibilitypage|autofontcolor">Use automatic font _color for 
screen display</property>
+              <!-- n-columns=2 n-rows=2 -->
+              <object class="GtkGrid" id="grid3">
                 <property name="visible">True</property>
-                <property name="can-focus">True</property>
-                <property name="receives-default">False</property>
-                <property name="use-underline">True</property>
-                <property name="draw-indicator">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" id="autofontcolor-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|autofontcolor">Displays fonts in the 
office suite using the system color settings. This option only affects the 
screen display.</property>
+                <property name="can-focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="row-spacing">6</property>
+                <child>
+                  <object class="GtkCheckButton" id="autofontcolor">
+                    <property name="label" translatable="yes" 
context="optaccessibilitypage|autofontcolor">Use automatic font _color for 
screen display</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">False</property>
+                    <property name="use-underline">True</property>
+                    <property name="draw-indicator">True</property>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" id="autofontcolor-atkobject">
+                        <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|autofontcolor">Displays fonts in the 
office suite using the system color settings. This option only affects the 
screen display.</property>
+                      </object>
+                    </child>
                   </object>
+                  <packing>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">0</property>
+                  </packing>
                 </child>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkCheckButton" id="systempagepreviewcolor">
-                <property name="label" translatable="yes" 
context="optaccessibilitypage|systempagepreviewcolor">_Use system colors for 
page previews</property>
-                <property name="visible">True</property>
-                <property name="can-focus">True</property>
-                <property name="receives-default">False</property>
-                <property name="use-underline">True</property>
-                <property name="draw-indicator">True</property>
-                <child internal-child="accessible">
-                  <object class="AtkObject" 
id="systempagepreviewcolor-atkobject">
-                    <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|systempagepreviewcolor">Applies the 
high contrast settings of the operating system to page previews.</property>
+                <child>
+                  <object class="GtkCheckButton" id="systempagepreviewcolor">
+                    <property name="label" translatable="yes" 
context="optaccessibilitypage|systempagepreviewcolor">_Use system colors for 
page previews</property>
+                    <property name="visible">True</property>
+                    <property name="can-focus">True</property>
+                    <property name="receives-default">False</property>
+                    <property name="use-underline">True</property>
+                    <property name="draw-indicator">True</property>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" 
id="systempagepreviewcolor-atkobject">
+                        <property name="AtkObject::accessible-description" 
translatable="yes" context="extended_tip|systempagepreviewcolor">Applies the 
high contrast settings of the operating system to page previews.</property>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="lockautofontcolor">
+                    <property name="can-focus">False</property>
+                    <property name="no-show-all">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon-name">res/lock.png</property>
                   </object>
+                  <packing>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="locksystempagepreviewcolor">
+                    <property name="can-focus">False</property>
+                    <property name="no-show-all">True</property>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="icon-name">res/lock.png</property>
+                  </object>
+                  <packing>
+                    <property name="left-attach">0</property>
+                    <property name="top-attach">1</property>
+                  </packing>
                 </child>
               </object>
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">True</property>
-                <property name="position">2</property>
+                <property name="position">1</property>
               </packing>
             </child>
           </object>

Reply via email to