Index: svtools/source/inc/unoiface.hxx
===================================================================
RCS file: /cvs/util/svtools/source/inc/unoiface.hxx,v
retrieving revision 1.10
diff -u -p -r1.10 unoiface.hxx
--- svtools/source/inc/unoiface.hxx	27 Jun 2007 21:37:54 -0000	1.10
+++ svtools/source/inc/unoiface.hxx	17 Aug 2007 18:05:08 -0000
@@ -129,6 +129,9 @@ public:
 
     // ::com::sun::star::awt::XWindow
     void SAL_CALL setFocus(  ) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 
@@ -180,6 +183,9 @@ public:
     void SAL_CALL getColumnsAndLines( sal_Int16& nCols, sal_Int16& nLines ) throw(::com::sun::star::uno::RuntimeException);
 
     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 //	----------------------------------------------------
@@ -229,6 +235,9 @@ protected:
 	::com::sun::star::uno::Any	convertEffectiveValue(const ::com::sun::star::uno::Any& rValue);
 
 	virtual void	SetWindow(Window* _pWindow);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 
@@ -296,6 +305,9 @@ protected:
 
     // VCLXImageConsumer overridables
     virtual void    ImplSetNewImage();
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 
@@ -335,6 +347,9 @@ public:
     sal_Int16 SAL_CALL getDecimalDigits(  ) throw(::com::sun::star::uno::RuntimeException);
     void SAL_CALL setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException);
     sal_Bool SAL_CALL isStrictFormat(  ) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 //	----------------------------------------------------
@@ -376,6 +391,9 @@ public:
     sal_Int16 SAL_CALL getDecimalDigits(  ) throw(::com::sun::star::uno::RuntimeException);
     void SAL_CALL setStrictFormat( sal_Bool bStrict ) throw(::com::sun::star::uno::RuntimeException);
     sal_Bool SAL_CALL isStrictFormat(  ) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 //	----------------------------------------------------
@@ -415,6 +433,9 @@ public:
 	// ::com::sun::star::awt::VclWindowPeer
     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
     ::com::sun::star::uno::Any SAL_CALL getProperty( const ::rtl::OUString& PropertyName ) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 //	----------------------------------------------------
@@ -428,7 +449,9 @@ public:
 
 	// ::com::sun::star::awt::VclWindowPeer
     void SAL_CALL setProperty( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Any& Value ) throw(::com::sun::star::uno::RuntimeException);
+
+    static void     ImplGetPropertyIds( std::list< sal_uInt16 > &aIds );
+    virtual void    GetPropertyIds( std::list< sal_uInt16 > &aIds ) { return ImplGetPropertyIds( aIds ); }
 };
 
 #endif	// _SVT_UNOIFACE_HXX
-
Index: svtools/source/uno/unoiface.cxx
===================================================================
RCS file: /cvs/util/svtools/source/uno/unoiface.cxx,v
retrieving revision 1.29
diff -u -p -r1.29 unoiface.cxx
--- svtools/source/uno/unoiface.cxx	10 Jul 2007 09:20:36 -0000	1.29
+++ svtools/source/uno/unoiface.cxx	17 Aug 2007 18:05:08 -0000
@@ -560,6 +560,18 @@ void SAL_CALL VCLXMultiLineEdit::setFocu
 		GetWindow()->GrabFocus();
 }
 
+void VCLXMultiLineEdit::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     // FIXME: elide duplication ?
+                     BASEPROPERTY_LINE_END_FORMAT,
+                     BASEPROPERTY_READONLY,
+                     BASEPROPERTY_MAXTEXTLEN,
+                     BASEPROPERTY_HIDEINACTIVESELECTION,
+                     0);
+    VCLXWindow::ImplGetPropertyIds( rIds, true );
+
+}
 //	----------------------------------------------------
 //	class VCLXFileDialog
 //	----------------------------------------------------
@@ -899,6 +911,16 @@ void VCLXFileControl::getColumnsAndLines
 		nCols = (sal_Int16) pControl->GetEdit().GetMaxVisChars();
 }
 
+void VCLXFileControl::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     // FIXME: elide duplication ?
+                     BASEPROPERTY_HIDEINACTIVESELECTION,
+                     0);
+    VCLXWindow::ImplGetPropertyIds( rIds, true );
+}
+
+
 //	----------------------------------------------------
 //	class SVTXFormattedField
 //	----------------------------------------------------
@@ -1470,6 +1492,30 @@ void SVTXFormattedField::NotifyTextListe
 	}
 }
 
+void SVTXFormattedField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     // FIXME: elide duplication ?
+                     BASEPROPERTY_EFFECTIVE_MIN,
+                     BASEPROPERTY_VALUEMIN_DOUBLE,
+                     BASEPROPERTY_EFFECTIVE_MAX,
+                     BASEPROPERTY_VALUEMAX_DOUBLE,
+                     BASEPROPERTY_EFFECTIVE_DEFAULT,
+                     BASEPROPERTY_TREATASNUMBER,
+                     BASEPROPERTY_EFFECTIVE_VALUE,
+                     BASEPROPERTY_VALUE_DOUBLE,
+                     BASEPROPERTY_VALUESTEP_DOUBLE,
+                     BASEPROPERTY_DECIMALACCURACY,
+                     BASEPROPERTY_FORMATSSUPPLIER,
+                     BASEPROPERTY_NUMSHOWTHOUSANDSEP,
+                     BASEPROPERTY_FORMATKEY,
+                     BASEPROPERTY_TREATASNUMBER,
+                     BASEPROPERTY_ENFORCE_FORMAT,
+                     0);
+    VCLXWindow::ImplGetPropertyIds( rIds, true );
+    VCLXSpinField::ImplGetPropertyIds( rIds );
+}
+
 
 //	----------------------------------------------------
 //	class SVTXRoadmap
@@ -1716,6 +1762,18 @@ void SVTXRoadmap::ImplSetNewImage()
 	pButton->SetRoadmapBitmap( GetBitmap() );
 }
 
+void SVTXRoadmap::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     BASEPROPERTY_COMPLETE,
+                     BASEPROPERTY_ACTIVATED,
+                     BASEPROPERTY_CURRENTITEMID,
+                     BASEPROPERTY_TEXT,
+                     0);
+    VCLXWindow::ImplGetPropertyIds( rIds, true );
+    VCLXImageConsumer::ImplGetPropertyIds( rIds );
+}
+
 //	----------------------------------------------------
 //	class SVTXNumericField
 //	----------------------------------------------------
@@ -1878,6 +1936,11 @@ sal_Bool SVTXNumericField::isStrictForma
 	return pField ? pField->IsStrictFormat() : sal_False;
 }
 
+void SVTXNumericField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    SVTXFormattedField::ImplGetPropertyIds( rIds );
+}
+
 //	----------------------------------------------------
 //	class SVTXCurrencyField
 //	----------------------------------------------------
@@ -2108,6 +2171,15 @@ void SVTXCurrencyField::setProperty( con
 	return SVTXFormattedField::getProperty(PropertyName);
 }
 
+void SVTXCurrencyField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     BASEPROPERTY_CURRENCYSYMBOL,
+                     BASEPROPERTY_CURSYM_POSITION,
+                     0);
+    SVTXFormattedField::ImplGetPropertyIds( rIds );
+}
+
 
 //	----------------------------------------------------
 //	class VCLXProgressBar
@@ -2345,6 +2417,17 @@ void VCLXProgressBar::setProperty( const
 	return aProp;
 }
 
+void VCLXProgressBar::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     BASEPROPERTY_PROGRESSVALUE,
+                     BASEPROPERTY_PROGRESSVALUE_MIN,
+                     BASEPROPERTY_PROGRESSVALUE_MAX,
+                     BASEPROPERTY_FILLCOLOR,
+                     0);
+    VCLXWindow::ImplGetPropertyIds( rIds, true );
+}
+
 
 //	----------------------------------------------------
 //	class SVTXDateField
@@ -2381,3 +2464,11 @@ void SAL_CALL SVTXDateField::setProperty
         break;
     }
 }
+
+void SVTXDateField::ImplGetPropertyIds( std::list< sal_uInt16 > &rIds )
+{
+    PushPropertyIds( rIds,
+                     BASEPROPERTY_TEXTLINECOLOR,
+                     0);
+    VCLXDateField::ImplGetPropertyIds( rIds );
+}
