Author: af
Date: Tue Feb 18 14:17:32 2014
New Revision: 1569337
URL: http://svn.apache.org/r1569337
Log:
124216: Detect changes of the UI scale.
Modified:
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
Modified:
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx?rev=1569337&r1=1569336&r2=1569337&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
Tue Feb 18 14:17:32 2014
@@ -996,6 +996,7 @@ void PosSizePropertyPanel::NotifyItemUpd
case SID_ATTR_METRIC:
MetricState( eState, pState );
+ UpdateUIScale();
break;
default:
@@ -1350,6 +1351,28 @@ void PosSizePropertyPanel::DisableContro
}
+
+
+void PosSizePropertyPanel::UpdateUIScale (void)
+{
+ const Fraction aUIScale (mpView->GetModel()->GetUIScale());
+ if (maUIScale != aUIScale)
+ {
+ // UI scale has changed.
+
+ // Remember the new UI scale.
+ maUIScale = aUIScale;
+
+ // The content of the position and size boxes is only updated when
item changes are notified.
+ // Request such notifications without changing the actual item values.
+ GetBindings()->Invalidate(SID_ATTR_TRANSFORM_POS_X, sal_True,
sal_False);
+ GetBindings()->Invalidate(SID_ATTR_TRANSFORM_POS_Y, sal_True,
sal_False);
+ GetBindings()->Invalidate(SID_ATTR_TRANSFORM_WIDTH, sal_True,
sal_False);
+ GetBindings()->Invalidate(SID_ATTR_TRANSFORM_HEIGHT, sal_True,
sal_False);
+ }
+}
+
+
} } // end of namespace svx::sidebar
// eof
Modified:
openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx?rev=1569337&r1=1569336&r2=1569337&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
(original)
+++ openoffice/trunk/main/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
Tue Feb 18 14:17:32 2014
@@ -184,6 +184,18 @@ private:
void DisableControls();
void AdaptWidthHeightScalePosition(bool bOriginal);
void AdaptAngleFlipDialPosition(bool bOriginal);
+
+ /** Check if the UI scale has changed and handle such a change.
+ UI scale is an SD only feature. The UI scale is represented by items
+ ATTR_OPTIONS_SCALE_X and
+ ATTR_OPTIONS_SCALE_Y.
+ As we have no direct access (there is no dependency of svx on sd) we
have to
+ use a small trick (aka hack):
+ a) call this method whenever a change of the metric item is notified,
+ b) check if the UI scale has changed (strangely, the UI scale value is
available at the SdrModel.
+ c) invalidate the items for position and size to trigger notifications
of their current values.
+ */
+ void UpdateUIScale (void);
};