include/svx/optgrid.hxx        |   19 ++++
 sd/source/ui/dlg/tpoption.cxx  |   38 +++++++++
 svx/source/dialog/optgrid.cxx  |  125 +++++++++++++++++++++++++++----
 svx/uiconfig/ui/optgridpage.ui |  162 +++++++++++++++++++++++++++++++++++++----
 4 files changed, 313 insertions(+), 31 deletions(-)

New commits:
commit fbecf8009af8abdd218fbb3bd26087e8b805d06b
Author:     Balazs Varga <balazs.varga.ext...@allotropia.de>
AuthorDate: Thu Nov 23 12:20:37 2023 +0100
Commit:     Balazs Varga <balazs.varga.ext...@allotropia.de>
CommitDate: Fri Nov 24 15:16:43 2023 +0100

    tdf#158239 - UI: Part 41 - Unify lockdown behavior of Options dialog
    
    for Impress - Grid Page.
    
    Change-Id: I0864a0a47a890c34154e775a1f960fdff09de81c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159868
    Tested-by: Jenkins
    Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de>

diff --git a/include/svx/optgrid.hxx b/include/svx/optgrid.hxx
index c033d001871c..b8e1f5604286 100644
--- a/include/svx/optgrid.hxx
+++ b/include/svx/optgrid.hxx
@@ -104,8 +104,16 @@ public:
     virtual DeactivateRC   DeactivatePage( SfxItemSet* pSet ) override;
 
 private:
+    enum ModuleMode
+    {
+        WRITER_MODE = 0,
+        CALC_MODE = 1,
+        IMPRESS_MODE = 2,
+        DRAW_MODE = 3,
+        HTML_MODE = 4
+    };
     bool                bAttrModified;
-    bool                m_bHTMLMode;
+    ModuleMode          m_Emode;
 
     std::unique_ptr<weld::CheckButton> m_xCbxUseGridsnap;
     std::unique_ptr<weld::Widget> m_xCbxUseGridsnapImg;
@@ -125,15 +133,24 @@ protected:
     //these controls are used in draw and impress
     std::unique_ptr<weld::Widget> m_xSnapFrames;
     std::unique_ptr<weld::CheckButton> m_xCbxSnapHelplines;
+    std::unique_ptr<weld::Widget> m_xCbxSnapHelplinesImg;
     std::unique_ptr<weld::CheckButton> m_xCbxSnapBorder;
+    std::unique_ptr<weld::Widget> m_xCbxSnapBorderImg;
     std::unique_ptr<weld::CheckButton> m_xCbxSnapFrame;
+    std::unique_ptr<weld::Widget> m_xCbxSnapFrameImg;
     std::unique_ptr<weld::CheckButton> m_xCbxSnapPoints;
+    std::unique_ptr<weld::Widget> m_xCbxSnapPointsImg;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrFldSnapArea;
+    std::unique_ptr<weld::Widget> m_xMtrFldSnapAreaImg;
     std::unique_ptr<weld::CheckButton> m_xCbxOrtho;
+    std::unique_ptr<weld::Widget> m_xCbxOrthoImg;
     std::unique_ptr<weld::CheckButton> m_xCbxBigOrtho;
+    std::unique_ptr<weld::Widget> m_xCbxBigOrthoImg;
     std::unique_ptr<weld::CheckButton> m_xCbxRotate;
+    std::unique_ptr<weld::Widget> m_xCbxRotateImg;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrFldAngle;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrFldBezAngle;
+    std::unique_ptr<weld::Widget> m_xMtrFldBezAngleImg;
 
     DECL_LINK(ClickRotateHdl_Impl, weld::Toggleable&, void);
 private:
diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx
index fabf76255bd7..300b5caedd71 100644
--- a/sd/source/ui/dlg/tpoption.cxx
+++ b/sd/source/ui/dlg/tpoption.cxx
@@ -82,16 +82,54 @@ void SdTpOptionsSnap::Reset( const SfxItemSet* rAttrs )
 
     SdOptionsSnapItem aOptsItem( rAttrs->Get( ATTR_OPTIONS_SNAP ) );
 
+    bool bReadOnly = 
officecfg::Office::Impress::Snap::Object::SnapLine::isReadOnly();
     m_xCbxSnapHelplines->set_active( 
aOptsItem.GetOptionsSnap().IsSnapHelplines() );
+    m_xCbxSnapHelplines->set_sensitive(!bReadOnly);
+    m_xCbxSnapHelplinesImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Object::PageMargin::isReadOnly();
     m_xCbxSnapBorder->set_active( aOptsItem.GetOptionsSnap().IsSnapBorder() );
+    m_xCbxSnapBorder->set_sensitive(!bReadOnly);
+    m_xCbxSnapBorderImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Object::ObjectFrame::isReadOnly();
     m_xCbxSnapFrame->set_active( aOptsItem.GetOptionsSnap().IsSnapFrame() );
+    m_xCbxSnapFrame->set_sensitive(!bReadOnly);
+    m_xCbxSnapFrameImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Object::ObjectPoint::isReadOnly();
     m_xCbxSnapPoints->set_active( aOptsItem.GetOptionsSnap().IsSnapPoints() );
+    m_xCbxSnapPoints->set_sensitive(!bReadOnly);
+    m_xCbxSnapPointsImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Position::CreatingMoving::isReadOnly();
     m_xCbxOrtho->set_active( aOptsItem.GetOptionsSnap().IsOrtho() );
+    m_xCbxOrtho->set_sensitive(!bReadOnly);
+    m_xCbxOrthoImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Position::ExtendEdges::isReadOnly();
     m_xCbxBigOrtho->set_active( aOptsItem.GetOptionsSnap().IsBigOrtho() );
+    m_xCbxBigOrtho->set_sensitive(!bReadOnly);
+    m_xCbxBigOrthoImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Position::Rotating::isReadOnly();
     m_xCbxRotate->set_active( aOptsItem.GetOptionsSnap().IsRotate() );
+    m_xCbxRotate->set_sensitive(!bReadOnly);
+    m_xCbxRotateImg->set_visible(bReadOnly);
+
+    bReadOnly = officecfg::Office::Impress::Snap::Object::Range::isReadOnly();
     m_xMtrFldSnapArea->set_value(aOptsItem.GetOptionsSnap().GetSnapArea(), 
FieldUnit::PIXEL);
+    m_xMtrFldSnapArea->set_sensitive(!bReadOnly);
+    m_xMtrFldSnapAreaImg->set_visible(bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Position::RotatingValue::isReadOnly();
     m_xMtrFldAngle->set_value(aOptsItem.GetOptionsSnap().GetAngle().get(), 
FieldUnit::DEGREE);
+    m_xMtrFldAngle->set_sensitive(!bReadOnly);
+
+    bReadOnly = 
officecfg::Office::Impress::Snap::Position::PointReduction::isReadOnly();
     
m_xMtrFldBezAngle->set_value(aOptsItem.GetOptionsSnap().GetEliminatePolyPointLimitAngle().get(),
 FieldUnit::DEGREE);
+    m_xMtrFldBezAngle->set_sensitive(!bReadOnly);
+    m_xMtrFldBezAngleImg->set_visible(bReadOnly);
 
     ClickRotateHdl_Impl(*m_xCbxRotate);
 }
diff --git a/svx/source/dialog/optgrid.cxx b/svx/source/dialog/optgrid.cxx
index a5607755fd3f..b65869837711 100644
--- a/svx/source/dialog/optgrid.cxx
+++ b/svx/source/dialog/optgrid.cxx
@@ -19,8 +19,12 @@
 
 #include <svl/intitem.hxx>
 #include <svtools/unitconv.hxx>
+#include <unotools/moduleoptions.hxx>
+#include <unotools/localedatawrapper.hxx>
+#include <unotools/syslocale.hxx>
 #include <officecfg/Office/Writer.hxx>
 #include <officecfg/Office/WriterWeb.hxx>
+#include <officecfg/Office/Impress.hxx>
 
 #include <svx/svxids.hrc>
 #include <svx/optgrid.hxx>
@@ -39,6 +43,14 @@ static void lcl_SetMinMax(weld::MetricSpinButton& rField, 
sal_Int64 nMin, sal_In
     rField.set_range(rField.normalize(nMin), rField.normalize(nMax), 
FieldUnit::TWIP);
 }
 
+static bool lcl_IsMetricSystem()
+{
+    SvtSysLocale aSysLocale;
+    MeasurementSystem eSys = 
aSysLocale.GetLocaleData().getMeasurementSystemEnum();
+
+    return (eSys == MeasurementSystem::Metric);
+}
+
 SvxOptionsGrid::SvxOptionsGrid() :
     nFldDrawX       ( 100 ),
     nFldDivisionX   ( 0 ),
@@ -92,7 +104,7 @@ bool  SvxGridItem::GetPresentation
 SvxGridTabPage::SvxGridTabPage(weld::Container* pPage, weld::DialogController* 
pController, const SfxItemSet& rCoreSet)
     : SfxTabPage(pPage, pController, "svx/ui/optgridpage.ui", "OptGridPage", 
&rCoreSet)
     , bAttrModified(false)
-    , m_bHTMLMode(false)
+    , m_Emode(WRITER_MODE)
     , m_xCbxUseGridsnap(m_xBuilder->weld_check_button("usegridsnap"))
     , m_xCbxUseGridsnapImg(m_xBuilder->weld_widget("lockusegridsnap"))
     , m_xCbxGridVisible(m_xBuilder->weld_check_button("gridvisible"))
@@ -109,15 +121,24 @@ SvxGridTabPage::SvxGridTabPage(weld::Container* pPage, 
weld::DialogController* p
     , m_xCbxSynchronizeImg(m_xBuilder->weld_widget("locksynchronize"))
     , m_xSnapFrames(m_xBuilder->weld_widget("snapframes"))
     , m_xCbxSnapHelplines(m_xBuilder->weld_check_button("snaphelplines"))
+    , m_xCbxSnapHelplinesImg(m_xBuilder->weld_widget("locksnaphelplines"))
     , m_xCbxSnapBorder(m_xBuilder->weld_check_button("snapborder"))
+    , m_xCbxSnapBorderImg(m_xBuilder->weld_widget("locksnapborder"))
     , m_xCbxSnapFrame(m_xBuilder->weld_check_button("snapframe"))
+    , m_xCbxSnapFrameImg(m_xBuilder->weld_widget("locksnapframe"))
     , m_xCbxSnapPoints(m_xBuilder->weld_check_button("snappoints"))
+    , m_xCbxSnapPointsImg(m_xBuilder->weld_widget("locksnappoints"))
     , m_xMtrFldSnapArea(m_xBuilder->weld_metric_spin_button("mtrfldsnaparea", 
FieldUnit::PIXEL))
+    , m_xMtrFldSnapAreaImg(m_xBuilder->weld_widget("lockmtrfldsnaparea"))
     , m_xCbxOrtho(m_xBuilder->weld_check_button("ortho"))
+    , m_xCbxOrthoImg(m_xBuilder->weld_widget("lockortho"))
     , m_xCbxBigOrtho(m_xBuilder->weld_check_button("bigortho"))
+    , m_xCbxBigOrthoImg(m_xBuilder->weld_widget("lockbigortho"))
     , m_xCbxRotate(m_xBuilder->weld_check_button("rotate"))
+    , m_xCbxRotateImg(m_xBuilder->weld_widget("lockrotate"))
     , m_xMtrFldAngle(m_xBuilder->weld_metric_spin_button("mtrfldangle", 
FieldUnit::DEGREE))
     , m_xMtrFldBezAngle(m_xBuilder->weld_metric_spin_button("mtrfldbezangle", 
FieldUnit::DEGREE))
+    , m_xMtrFldBezAngleImg(m_xBuilder->weld_widget("lockmtrfldbezangle"))
 {
     // This page requires exchange Support
     SetExchangeSupport();
@@ -136,7 +157,20 @@ SvxGridTabPage::SvxGridTabPage(weld::Container* pPage, 
weld::DialogController* p
 
     if (const SfxUInt16Item* pItem = rCoreSet.GetItemIfSet(SID_HTML_MODE, 
false))
     {
-        m_bHTMLMode = 0 != (pItem->GetValue() & HTMLMODE_ON);
+        if (0 != (pItem->GetValue() & HTMLMODE_ON))
+            m_Emode = HTML_MODE;
+    }
+    else
+    {
+        SvtModuleOptions aMOpt;
+        if (aMOpt.IsImpress())
+            m_Emode = IMPRESS_MODE;
+        else if (aMOpt.IsDraw())
+            m_Emode = DRAW_MODE;
+        else if (aMOpt.IsCalc())
+            m_Emode = CALC_MODE;
+        else
+            m_Emode = WRITER_MODE;
     }
 
     m_xCbxRotate->connect_toggled(LINK(this, SvxGridTabPage, 
ClickRotateHdl_Impl));
@@ -219,20 +253,39 @@ void SvxGridTabPage::Reset( const SfxItemSet* rSet )
 
     if( (pGridAttr = rSet->GetItemIfSet( SID_ATTR_GRID_OPTIONS , false )) )
     {
-        bool bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::SnapToGrid::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Option::SnapToGrid::isReadOnly();
+        bool bReadOnly = false;
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Option::SnapToGrid::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Option::SnapToGrid::isReadOnly(); break;
+            case IMPRESS_MODE: bReadOnly = 
officecfg::Office::Impress::Grid::Option::SnapToGrid::isReadOnly(); break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xCbxUseGridsnap->set_active(pGridAttr->bUseGridsnap);
         m_xCbxUseGridsnap->set_sensitive(!bReadOnly);
         m_xCbxUseGridsnapImg->set_visible(bReadOnly);
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::Synchronize::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Option::Synchronize::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Option::Synchronize::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Option::Synchronize::isReadOnly(); break;
+            case IMPRESS_MODE: bReadOnly = 
officecfg::Office::Impress::Grid::Option::Synchronize::isReadOnly(); break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xCbxSynchronize->set_active(pGridAttr->bSynchronize);
         m_xCbxSynchronize->set_sensitive(!bReadOnly);
         m_xCbxSynchronizeImg->set_visible(bReadOnly);
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Option::VisibleGrid::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Option::VisibleGrid::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Option::VisibleGrid::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Option::VisibleGrid::isReadOnly(); break;
+            case IMPRESS_MODE: bReadOnly = 
officecfg::Office::Impress::Grid::Option::VisibleGrid::isReadOnly(); break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xCbxGridVisible->set_active(pGridAttr->bGridVisible);
         m_xCbxGridVisible->set_sensitive(!bReadOnly);
         m_xCbxGridVisibleImg->set_visible(bReadOnly);
@@ -241,26 +294,64 @@ void SvxGridTabPage::Reset( const SfxItemSet* rSet )
         SetMetricValue( *m_xMtrFldDrawX , pGridAttr->nFldDrawX, eUnit );
         SetMetricValue( *m_xMtrFldDrawY , pGridAttr->nFldDrawY, eUnit );
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Resolution::XAxis::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Resolution::XAxis::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Resolution::XAxis::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Resolution::XAxis::isReadOnly(); break;
+            case IMPRESS_MODE:
+            {
+                if (lcl_IsMetricSystem())
+                    bReadOnly = 
officecfg::Office::Impress::Grid::Resolution::XAxis::Metric::isReadOnly();
+                else
+                    bReadOnly = 
officecfg::Office::Impress::Grid::Resolution::XAxis::NonMetric::isReadOnly();
+            }
+            break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xMtrFldDrawX->set_sensitive(!bReadOnly);
         m_xMtrFldDrawXImg->set_visible(bReadOnly);
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Resolution::YAxis::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Resolution::YAxis::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Resolution::YAxis::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Resolution::YAxis::isReadOnly(); break;
+            case IMPRESS_MODE:
+            {
+                if (lcl_IsMetricSystem())
+                    bReadOnly = 
officecfg::Office::Impress::Grid::Resolution::YAxis::Metric::isReadOnly();
+                else
+                    bReadOnly = 
officecfg::Office::Impress::Grid::Resolution::YAxis::NonMetric::isReadOnly();
+            }
+            break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xMtrFldDrawY->set_sensitive(!bReadOnly);
         m_xMtrFldDrawYImg->set_visible(bReadOnly);
 
         m_xNumFldDivisionX->set_value(pGridAttr->nFldDivisionX + 1);
         m_xNumFldDivisionY->set_value(pGridAttr->nFldDivisionY + 1);
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Subdivision::XAxis::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Subdivision::XAxis::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Subdivision::XAxis::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Subdivision::XAxis::isReadOnly(); break;
+            case IMPRESS_MODE: bReadOnly = 
officecfg::Office::Impress::Grid::Subdivision::XAxis::isReadOnly(); break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xNumFldDivisionX->set_sensitive(!bReadOnly);
         m_xNumFldDivisionXImg->set_visible(bReadOnly);
 
-        bReadOnly = !m_bHTMLMode ? 
officecfg::Office::Writer::Grid::Subdivision::YAxis::isReadOnly() :
-            
officecfg::Office::WriterWeb::Grid::Subdivision::YAxis::isReadOnly();
+        switch (m_Emode)
+        {
+            case WRITER_MODE: bReadOnly = 
officecfg::Office::Writer::Grid::Subdivision::YAxis::isReadOnly(); break;
+            case HTML_MODE: bReadOnly = 
officecfg::Office::WriterWeb::Grid::Subdivision::YAxis::isReadOnly(); break;
+            case IMPRESS_MODE: bReadOnly = 
officecfg::Office::Impress::Grid::Subdivision::YAxis::isReadOnly(); break;
+            default: //TODO Calc/Draw
+                break;
+        }
         m_xNumFldDivisionY->set_sensitive(!bReadOnly);
         m_xNumFldDivisionYImg->set_visible(bReadOnly);
     }
@@ -330,7 +421,7 @@ IMPL_LINK(SvxGridTabPage, ChangeDrawHdl_Impl, 
weld::MetricSpinButton&, rField, v
 IMPL_LINK_NOARG(SvxGridTabPage, ClickRotateHdl_Impl, weld::Toggleable&, void)
 {
     if (m_xCbxRotate->get_active())
-        m_xMtrFldAngle->set_sensitive(true);
+        
m_xMtrFldAngle->set_sensitive(!officecfg::Office::Impress::Snap::Position::RotatingValue::isReadOnly());
     else
         m_xMtrFldAngle->set_sensitive(false);
 }
diff --git a/svx/uiconfig/ui/optgridpage.ui b/svx/uiconfig/ui/optgridpage.ui
index aa65b3e6d9d6..d4271be55f97 100644
--- a/svx/uiconfig/ui/optgridpage.ui
+++ b/svx/uiconfig/ui/optgridpage.ui
@@ -509,7 +509,7 @@
             <property name="label-xalign">0</property>
             <property name="shadow-type">none</property>
             <child>
-              <!-- n-columns=1 n-rows=5 -->
+              <!-- n-columns=2 n-rows=5 -->
               <object class="GtkGrid" id="grid2">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
@@ -531,7 +531,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -550,7 +550,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">1</property>
                   </packing>
                 </child>
@@ -569,7 +569,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">2</property>
                   </packing>
                 </child>
@@ -588,7 +588,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">3</property>
                   </packing>
                 </child>
@@ -631,6 +631,71 @@
                       </packing>
                     </child>
                   </object>
+                  <packing>
+                    <property name="left-attach">1</property>
+                    <property name="top-attach">4</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkImage" id="locksnaphelplines">
+                    <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="locksnapborder">
+                    <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="locksnapframe">
+                    <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="locksnappoints">
+                    <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>
+                  <object class="GtkImage" id="lockmtrfldsnaparea">
+                    <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">4</property>
@@ -663,7 +728,7 @@
             <property name="label-xalign">0</property>
             <property name="shadow-type">none</property>
             <child>
-              <!-- n-columns=1 n-rows=3 -->
+              <!-- n-columns=2 n-rows=3 -->
               <object class="GtkGrid" id="grid8">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
@@ -686,7 +751,7 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">0</property>
                   </packing>
                 </child>
@@ -705,12 +770,12 @@
                     </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">1</property>
                   </packing>
                 </child>
                 <child>
-                  <!-- n-columns=2 n-rows=2 -->
+                  <!-- n-columns=4 n-rows=2 -->
                   <object class="GtkGrid" id="grid9">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
@@ -733,7 +798,7 @@
                         </child>
                       </object>
                       <packing>
-                        <property name="left-attach">1</property>
+                        <property name="left-attach">3</property>
                         <property name="top-attach">0</property>
                       </packing>
                     </child>
@@ -755,7 +820,7 @@
                         </child>
                       </object>
                       <packing>
-                        <property name="left-attach">0</property>
+                        <property name="left-attach">1</property>
                         <property name="top-attach">0</property>
                       </packing>
                     </child>
@@ -774,7 +839,7 @@
                         </child>
                       </object>
                       <packing>
-                        <property name="left-attach">1</property>
+                        <property name="left-attach">3</property>
                         <property name="top-attach">1</property>
                       </packing>
                     </child>
@@ -787,17 +852,88 @@
                         <property 
name="mnemonic-widget">mtrfldbezangle</property>
                         <property name="xalign">0</property>
                       </object>
+                      <packing>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkImage" id="lockrotate">
+                        <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="lockmtrfldbezangle">
+                        <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="lockmtrfldangle">
+                        <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">2</property>
+                        <property name="top-attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <placeholder/>
+                    </child>
                   </object>
                   <packing>
-                    <property name="left-attach">0</property>
+                    <property name="left-attach">1</property>
                     <property name="top-attach">2</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkImage" id="lockortho">
+                    <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="lockbigortho">
+                    <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>
+                  <placeholder/>
+                </child>
               </object>
             </child>
             <child type="label">

Reply via email to