You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ha...@apache.org on 2015/01/26 10:06:53 UTC

svn commit: r1654744 - in /openoffice/trunk/main: toolkit/source/helper/ xmlscript/dtd/ xmlscript/source/xmldlg_imexp/

Author: hanya
Date: Mon Jan 26 09:06:52 2015
New Revision: 1654744

URL: http://svn.apache.org/r1654744
Log:
#i98734# store and load ScaleMode property of image control on dialogs

Suggested by: Frank Schönheit <fr...@gmx.de>

Modified:
    openoffice/trunk/main/toolkit/source/helper/property.cxx
    openoffice/trunk/main/xmlscript/dtd/dialog.dtd
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/exp_share.hxx
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/imp_share.hxx
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
    openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx

Modified: openoffice/trunk/main/toolkit/source/helper/property.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/toolkit/source/helper/property.cxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/toolkit/source/helper/property.cxx (original)
+++ openoffice/trunk/main/toolkit/source/helper/property.cxx Mon Jan 26 09:06:52 2015
@@ -217,7 +217,7 @@ ImplPropertyInfo* ImplGetPropertyInfos(
             DECL_PROP_2     ( "AutoRepeat",             AUTO_REPEAT,        sal_Bool,           BOUND, MAYBEDEFAULT ),
             DECL_PROP_2     ( "RepeatDelay",            REPEAT_DELAY,       sal_Int32,          BOUND, MAYBEDEFAULT ),
             DECL_PROP_2     ( "ScaleImage",             SCALEIMAGE,         bool,               BOUND, MAYBEDEFAULT ),
-            DECL_PROP_2     ( "ScaleMode",              IMAGE_SCALE_MODE,   sal_Int16,          BOUND, MAYBEDEFAULT ),
+            DECL_DEP_PROP_2 ( "ScaleMode",              IMAGE_SCALE_MODE,   sal_Int16,          BOUND, MAYBEDEFAULT ),
             DECL_DEP_PROP_3 ( "ScrollValue",            SCROLLVALUE,        sal_Int32,          BOUND, MAYBEDEFAULT, MAYBEVOID ),
             DECL_PROP_2     ( "ScrollValueMax",         SCROLLVALUE_MAX,    sal_Int32,          BOUND, MAYBEDEFAULT ),
             DECL_PROP_2     ( "ScrollValueMin",         SCROLLVALUE_MIN,    sal_Int32,          BOUND, MAYBEDEFAULT ),

Modified: openoffice/trunk/main/xmlscript/dtd/dialog.dtd
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/dtd/dialog.dtd?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/dtd/dialog.dtd (original)
+++ openoffice/trunk/main/xmlscript/dtd/dialog.dtd Mon Jan 26 09:06:52 2015
@@ -247,6 +247,7 @@
 <!ATTLIST dlg:img %default-attributes;
                   dlg:src CDATA #IMPLIED
                   dlg:scale-image %boolean; #IMPLIED
+                  dlg:scale-mode (none|isotropic|anisotropic); #IMPLIED
                   dlg:tabstop %boolean; #IMPLIED
                   >
 

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/exp_share.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/exp_share.hxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/exp_share.hxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/exp_share.hxx Mon Jan 26 09:06:52 2015
@@ -153,6 +153,8 @@ public:
         ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName );
 	void readSelectionTypeAttr(
         ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName );
+    void readImageScaleModeAttr(
+        ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName );
 	//
     inline void addBoolAttr(
         ::rtl::OUString const & rAttrName, sal_Bool bValue )

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/imp_share.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/imp_share.hxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/imp_share.hxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/imp_share.hxx Mon Jan 26 09:06:52 2015
@@ -447,6 +447,9 @@ public:
 	bool importSelectionTypeProperty(
         ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
         css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
+    bool importImageScaleModeProperty(
+        ::rtl::OUString const & rPropName, ::rtl::OUString const & rAttrName,
+        css::uno::Reference<css::xml::input::XAttributes> const & xAttributes );
 };
 
 //==============================================================================

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx Mon Jan 26 09:06:52 2015
@@ -591,6 +591,8 @@ void ElementDescriptor::readImageControl
     readDefaults();
     readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleImage") ),
                   OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":scale-image") ) );
+    readImageScaleModeAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleMode") ),
+                   OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":scale-mode") ) );
     readStringAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
                     OUString( RTL_CONSTASCII_USTRINGPARAM(XMLNS_DIALOGS_PREFIX ":src") ) );
     readBoolAttr( OUString( RTL_CONSTASCII_USTRINGPARAM("Tabstop") ),

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_export.cxx Mon Jan 26 09:06:52 2015
@@ -38,6 +38,7 @@
 #include <com/sun/star/awt/FontWeight.hpp>
 #include <com/sun/star/awt/FontWidth.hpp>
 #include <com/sun/star/awt/ImagePosition.hpp>
+#include <com/sun/star/awt/ImageScaleMode.hpp>
 #include <com/sun/star/awt/LineEndFormat.hpp>
 #include <com/sun/star/awt/PushButtonType.hpp>
 #include <com/sun/star/awt/VisualEffect.hpp>
@@ -968,6 +969,36 @@ void ElementDescriptor::readSelectionTyp
     }
 }
 //__________________________________________________________________________________________________
+void ElementDescriptor::readImageScaleModeAttr( OUString const & rPropName, OUString const & rAttrName )
+{
+    if (beans::PropertyState_DEFAULT_VALUE != _xPropState->getPropertyState( rPropName ))
+    {
+        Any aImageScaleMode( _xProps->getPropertyValue( rPropName ) );
+        
+        if (aImageScaleMode.getValueTypeClass() == TypeClass_SHORT)
+        {
+            sal_Int16 nImageScaleMode;
+            aImageScaleMode >>= nImageScaleMode;
+            
+            switch(nImageScaleMode)
+            {
+                case ::awt::ImageScaleMode::NONE:
+                    addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("none") ) );
+                    break;
+                case ::awt::ImageScaleMode::ISOTROPIC:
+                    addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("isotropic") ) );
+                    break;
+                case ::awt::ImageScaleMode::ANISOTROPIC:
+                    addAttribute( rAttrName, OUString( RTL_CONSTASCII_USTRINGPARAM("anisotropic") ) );
+                    break;
+                default:
+                    OSL_ENSURE( 0, "### illegal image scale mode value.");
+                    break;
+            }
+        }
+    }
+}
+//__________________________________________________________________________________________________
 void ElementDescriptor::readDefaults( bool supportPrintable, bool supportVisible )
 {
     Any a( _xProps->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM("Name") ) ) );

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx Mon Jan 26 09:06:52 2015
@@ -999,6 +999,9 @@ void ImageControlElement::endElement()
 	ctx.importBooleanProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleImage") ),
 							   OUString( RTL_CONSTASCII_USTRINGPARAM("scale-image") ),
 							   _xAttributes );
+	ctx.importImageScaleModeProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleMode") ), 
+									 OUString( RTL_CONSTASCII_USTRINGPARAM("scale-mode") ),
+									 _xAttributes );
 	ctx.importStringProperty( OUString( RTL_CONSTASCII_USTRINGPARAM("ImageURL") ),
 							  OUString( RTL_CONSTASCII_USTRINGPARAM("src") ),
 							  _xAttributes );

Modified: openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx?rev=1654744&r1=1654743&r2=1654744&view=diff
==============================================================================
--- openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx (original)
+++ openoffice/trunk/main/xmlscript/source/xmldlg_imexp/xmldlg_import.cxx Mon Jan 26 09:06:52 2015
@@ -44,6 +44,7 @@
 #include <com/sun/star/awt/FontWeight.hpp>
 #include <com/sun/star/awt/FontWidth.hpp>
 #include <com/sun/star/awt/ImagePosition.hpp>
+#include <com/sun/star/awt/ImageScaleMode.hpp>
 #include <com/sun/star/awt/LineEndFormat.hpp>
 #include <com/sun/star/awt/PushButtonType.hpp>
 #include <com/sun/star/awt/VisualEffect.hpp>
@@ -1337,6 +1338,43 @@ bool ImportContext::importSelectionTypeP
         return true;
     }
     return false;
+}
+
+//__________________________________________________________________________________________________
+bool ImportContext::importImageScaleModeProperty(
+    OUString const & rPropName, OUString const & rAttrName,
+    Reference< xml::input::XAttributes > const & xAttributes )
+{
+    OUString aImageScaleMode(
+        xAttributes->getValueByUidName(
+            _pImport->XMLNS_DIALOGS_UID, rAttrName ) );
+    if (!aImageScaleMode.isEmpty())
+    {
+        sal_Int16 nImageScaleMode;
+        
+        if (aImageScaleMode.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("none") ))
+        {
+            nImageScaleMode = awt::ImageScaleMode::NONE;
+        }
+        else if (aImageScaleMode.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("isotropic") ))
+        {
+            nImageScaleMode = awt::ImageScaleMode::ISOTROPIC;
+        }
+        else if (aImageScaleMode.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("anisotropic") ))
+        {
+            nImageScaleMode = awt::ImageScaleMode::ANISOTROPIC;
+        }
+        else
+        {
+            throw xml::sax::SAXException(
+                OUString( RTL_CONSTASCII_USTRINGPARAM("invalid scale image mode value!") ),
+                Reference< XInterface >(), Any() );
+        }
+        
+        _xControlModel->setPropertyValue( rPropName, makeAny( nImageScaleMode ) );
+        return true;
+    }
+    return false;
 }
 
 //==================================================================================================