Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On 05/04/12 14:59, Radek Doulik wrote:
Yup, having fewer categories makes sense. Powerpoint 2010 has only 3
categories too.
Ok, I now have "Wipe", "3d" and "Other" transitions as the categories -- but might add another one or two.
I would prefer adding the information into transitions.xml. Otherwise it
would be less clear when adding new transitions.

I've done that -- this should make adding new categories and adding new transitions fairly simple.

Attached is a preview patch -- I still need to actually decide what categories to add and which transitions to add to each category, so regard the actual categorisations as random -- this is just to show the code allowing the changes.

If anyone does modify transitions.xml or transitions-ogl.xml: "make sd" does not update the xml files that are used when running impress -- you will need to rerun make dev-install (takes some time) or copy the xml files from sd/xml/ to install/program/share/config/soffice.cfg/simpress/ (assuming you've done dev-install). I'm not sure how Effects.xcu is processed, but it may be enough to run "make officecfg" to update that.

There is a separate UI issue, related to this topic: when a non-transition is selected, a preview of a transition is still shown that does nothing -- this already occured for the "No Transition" entry, and now also occurs for the Categories. I'll look into this, but probably will make it a separate patch.

Cheers,
Andrzej
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu
index 7395d91..6c6b7b5 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu
@@ -1570,6 +1570,28 @@
                 </prop>
             </node>
         </node>
+        
+        <node oor:name="Transition-UICategories">
+            <node oor:name="category-wipe" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">Wipe Transitions</value>
+
+                </prop>
+            </node>
+            <node oor:name="category-ogl" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">3D Transitions</value>
+
+                </prop>
+            </node>
+            <node oor:name="category-other" oor:op="replace">
+                <prop oor:name="Label" oor:type="xs:string">
+                    <value xml:lang="en-US">Other Transitions</value>
+
+                </prop>
+            </node>
+        </node>
+        
         <node oor:name="Transitions">
             <node oor:name="venetian-blinds-horizontal" oor:op="replace">
                 <prop oor:name="Label" oor:type="xs:string">
diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Effects.xcs 
b/officecfg/registry/schema/org/openoffice/Office/UI/Effects.xcs
index b89f2de..0062e54 100644
--- a/officecfg/registry/schema/org/openoffice/Office/UI/Effects.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/UI/Effects.xcs
@@ -68,6 +68,11 @@
                            <desc>Contains preset ids for effects and identifiers that are used by 
the user interface."</desc>
                        </info>
                        </set>
+            <set oor:name="Transition-UICategories" oor:node-type="LabelType">
+                <info>
+                    <desc>Contains category ids for the transition categories that are used by the 
user interface."</desc>
+                </info>
+            </set>
                        <set oor:name="Transitions" oor:node-type="LabelType">
                        <info>
                            <desc>Contains transition ids for transitions and identifiers that are 
used by the user interface."</desc>
diff --git a/sd/inc/TransitionPreset.hxx b/sd/inc/TransitionPreset.hxx
index d28f700..f81c3a8 100644
--- a/sd/inc/TransitionPreset.hxx
+++ b/sd/inc/TransitionPreset.hxx
@@ -51,13 +51,15 @@ class TransitionPreset;
 typedef boost::shared_ptr< TransitionPreset > TransitionPresetPtr;
 typedef std::list< TransitionPresetPtr > TransitionPresetList;
 typedef boost::unordered_map< rtl::OUString, rtl::OUString, rtl::OUStringHash, 
comphelper::UStringEqual > UStringMap;
+typedef std::vector< rtl::OUString > UStringList;
 
 class TransitionPreset
 {
 public:
     static const TransitionPresetList& getTransitionPresetList();
-    static bool importTransitionPresetList( TransitionPresetList& rList );
-
+    static const UStringList& getTransitionPresetCategoryList();
+    static bool importTransitionPresetList( TransitionPresetList& rList, UStringList& 
rCategoryList );
+    
     void apply( SdPage* pSlide ) const;
 
     sal_Int16 getTransition() const { return mnTransition; }
@@ -66,7 +68,9 @@ public:
     sal_Int32 getFadeColor() const { return mnFadeColor; }
 
     const rtl::OUString& getUIName() const { return maUIName; }
+    const rtl::OUString& getUICategory() const { return maUICategory; }
     const rtl::OUString& getPresetId() const { return maPresetId; }
+    const rtl::OUString& getUICategoryId() const { return maUICategoryId; }
 
 private:
     TransitionPreset( const ::com::sun::star::uno::Reference< 
::com::sun::star::animations::XAnimationNode >& xNode );
@@ -77,10 +81,13 @@ private:
     sal_Int32 mnFadeColor;
     rtl::OUString maPresetId;
     rtl::OUString maUIName;
-
+    rtl::OUString maUICategoryId;
+    rtl::OUString maUICategory;
+    
     static bool importTransitionsFile( TransitionPresetList& rList,
                                        ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XMultiServiceFactory >& xServiceFactory,
                                        UStringMap& rTransitionNameMape,
+                                       UStringMap& rTransitionCategoryNameMape,
                                        String aFilaname );
 };
 
diff --git a/sd/source/core/TransitionPreset.cxx b/sd/source/core/TransitionPreset.cxx
index 5d48200..a7cd46e 100644
--- a/sd/source/core/TransitionPreset.cxx
+++ b/sd/source/core/TransitionPreset.cxx
@@ -49,6 +49,7 @@
 #include <unotools/ucbstreamhelper.hxx>
 
 #include <algorithm>
+#include <list>
 
 #include "sdpage.hxx"
 
@@ -76,17 +77,20 @@ TransitionPreset::TransitionPreset( const ::com::sun::star::uno::Reference< ::co
 {
     // first locate preset id
     Sequence< NamedValue > aUserData( xNode->getUserData() );
-    sal_Int32 nLength = aUserData.getLength();
+    const sal_Int32 nLength = aUserData.getLength();
     const NamedValue* p = aUserData.getConstArray();
-    while( nLength-- )
+    sal_Int32 i;
+    for( i=0; i < nLength; i++ )
     {
-        if ( p->Name == "preset-id" )
+        if ( p[i].Name == "preset-id" )
         {
-            p->Value >>= maPresetId;
-            break;
+            p[i].Value >>= maPresetId;
+        }
+        else if ( p[i].Name == "preset-uicategory" )
+        {
+            p[i].Value >>= maUICategoryId;
         }
     }
-
     // second, locate transition filter element
     Reference< XEnumerationAccess > xEnumerationAccess( xNode, UNO_QUERY_THROW );
     Reference< XEnumeration > xEnumeration( xEnumerationAccess->createEnumeration(), 
UNO_QUERY_THROW );
@@ -101,6 +105,7 @@ TransitionPreset::TransitionPreset( const ::com::sun::star::uno::Reference< ::co
 bool TransitionPreset::importTransitionsFile( TransitionPresetList& rList,
                                               Reference< XMultiServiceFactory >& xServiceFactory,
                                               UStringMap& rTransitionNameMape,
+                                              UStringMap& rTransitionCategoryNameMape,
                                               String aURL )
 {
     // import transition presets
@@ -121,12 +126,17 @@ bool TransitionPreset::importTransitionsFile( TransitionPresetList& rList,
 
                 // name it
                 OUString aPresetId( pPreset->getPresetId() );
-                if( !aPresetId.isEmpty() )
+                OUString aCategoryId( pPreset->getUICategoryId() );
+                if( !aPresetId.isEmpty() && !aCategoryId.isEmpty() )
                 {
                     UStringMap::const_iterator aIter( rTransitionNameMape.find( aPresetId ) );
                     if( aIter != rTransitionNameMape.end() )
                         pPreset->maUIName = (*aIter).second;
 
+                    aIter = rTransitionCategoryNameMape.find( aCategoryId );
+                    if( aIter != rTransitionCategoryNameMape.end() )
+                        pPreset->maUICategory = (*aIter).second;
+                    
                                 // add it
                     rList.push_back( pPreset );
                 }
@@ -146,7 +156,7 @@ bool TransitionPreset::importTransitionsFile( TransitionPresetList& rList,
 
 #define EXPAND_PROTOCOL "vnd.sun.star.expand:"
 
-bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList )
+bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList, UStringList& 
categoryList )
 {
     bool bRet = false;
 
@@ -178,6 +188,21 @@ bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList 
)
         const OUString aTransitionPath( RTL_CONSTASCII_USTRINGPARAM( 
"/org.openoffice.Office.UI.Effects/UserInterface/Transitions" ) );
         implImportLabels( xConfigProvider, aTransitionPath, aTransitionNameMape );
 
+        
+        UStringMap aTransitionCategoryNameMape;
+        const OUString aTransitionCategoriesPath( RTL_CONSTASCII_USTRINGPARAM( 
"/org.openoffice.Office.UI.Effects/UserInterface/Transition-UICategories" ) );
+        implImportLabels( xConfigProvider, aTransitionCategoriesPath, aTransitionCategoryNameMape 
);   
+        
+        
+        UStringMap::const_iterator aIterator;
+        for ( aIterator = aTransitionCategoryNameMape.begin();
+             aIterator != aTransitionCategoryNameMape.end();
+             aIterator++ )
+        {
+            OUString aCategory = aIterator->second;
+            categoryList.insert( categoryList.end(), aCategory );
+        }
+        
         // read path to transition effects files from config
         Any propValue = uno::makeAny(
             beans::PropertyValue(
@@ -209,6 +234,7 @@ bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList )
             bRet |= importTransitionsFile( rList,
                                            xServiceFactory,
                                            aTransitionNameMape,
+                                           aTransitionCategoryNameMape,
                                            aURL );
         }
 
@@ -228,16 +254,21 @@ namespace
     {
     private:
         sd::TransitionPresetList m_aTransitionPresetList;
+        UStringList m_aTransitionPresetCategoryList;
     public:
         ImportedTransitionPresetList()
         {
             sd::TransitionPreset::importTransitionPresetList(
-                m_aTransitionPresetList);
+                m_aTransitionPresetList, m_aTransitionPresetCategoryList);
         }
         const sd::TransitionPresetList& getList() const
         {
             return m_aTransitionPresetList;
         }
+        const UStringList& getCategoryList() const
+        {
+            return m_aTransitionPresetCategoryList;
+        }
     };
 
     class theTransitionPresetList :
@@ -245,6 +276,7 @@ namespace
                            theTransitionPresetList>
     {
     };
+    
 }
 
 const TransitionPresetList& TransitionPreset::getTransitionPresetList()
@@ -252,6 +284,11 @@ const TransitionPresetList& TransitionPreset::getTransitionPresetList()
     return theTransitionPresetList::get().getList();
 }
 
+const UStringList& TransitionPreset::getTransitionPresetCategoryList()
+{
+    return theTransitionPresetList::get().getCategoryList();  
+}
+
 void TransitionPreset::apply( SdPage* pSlide ) const
 {
     if( pSlide )
diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx 
b/sd/source/ui/animations/SlideTransitionPane.cxx
index 90fdab4..9748e58 100644
--- a/sd/source/ui/animations/SlideTransitionPane.cxx
+++ b/sd/source/ui/animations/SlideTransitionPane.cxx
@@ -451,7 +451,7 @@ SlideTransitionPane::SlideTransitionPane(
         mpDrawDoc( pDoc ),
         maMinSize( rMinSize ),
         maFL_APPLY_TRANSITION( this, SdResId( FL_APPLY_TRANSITION ) ),
-        maLB_SLIDE_TRANSITIONS( this, SdResId( LB_SLIDE_TRANSITIONS ) ),
+        maTLB_SLIDE_TRANSITIONS( this, SdResId( LB_SLIDE_TRANSITIONS ) ),
         maFL_MODIFY_TRANSITION( this, SdResId( FL_MODIFY_TRANSITION ) ),
         maFT_SPEED( this, SdResId( FT_SPEED ) ),
         maLB_SPEED( this, SdResId( LB_SPEED ) ),
@@ -492,8 +492,13 @@ SlideTransitionPane::SlideTransitionPane(
         mxView.set( mxModel->getCurrentController(), uno::UNO_QUERY );
 
     // fill list box of slide transitions
-    maLB_SLIDE_TRANSITIONS.InsertEntry( maSTR_NO_TRANSITION );
+    maTLB_SLIDE_TRANSITIONS.InsertEntry( maSTR_NO_TRANSITION );
 
+    maTLB_SLIDE_TRANSITIONS.SetStyle( maTLB_SLIDE_TRANSITIONS.GetStyle()|
+            WB_HASBUTTONS|WB_HASBUTTONSATROOT|
+            WB_CLIPCHILDREN|WB_HSCROLL|WB_FORCE_MAKEVISIBLE );
+    maTLB_SLIDE_TRANSITIONS.SetSelectionMode( SINGLE_SELECTION );
+    maTLB_SLIDE_TRANSITIONS.SetNodeDefaultImages();
     // set defaults
     maCB_AUTO_PREVIEW.Check();      // automatic preview on
 
@@ -506,8 +511,8 @@ SlideTransitionPane::SlideTransitionPane(
     maPB_PLAY.SetClickHdl( LINK( this, SlideTransitionPane, PlayButtonClicked ));
     maPB_SLIDE_SHOW.SetClickHdl( LINK( this, SlideTransitionPane, SlideShowButtonClicked ));
 
-    maLB_SLIDE_TRANSITIONS.SetSelectHdl( LINK( this, SlideTransitionPane, TransitionSelected ));
-
+    maTLB_SLIDE_TRANSITIONS.SetSelectHdl( LINK( this, SlideTransitionPane, TransitionSelected ));
+    
     maLB_SPEED.SetSelectHdl( LINK( this, SlideTransitionPane, SpeedListBoxSelected ));
     maLB_SOUND.SetSelectHdl( LINK( this, SlideTransitionPane, SoundListBoxSelected ));
     maCB_LOOP_SOUND.SetClickHdl( LINK( this, SlideTransitionPane, LoopSoundBoxChecked ));
@@ -754,11 +759,12 @@ void SlideTransitionPane::updateLayout()
     // list box slide transitions
     aCtrlSize.setWidth( nMaxWidth );
     aCtrlSize.setHeight( aUpperLeft.getY() - aUpperLeftCorner.getY() );
-    maLB_SLIDE_TRANSITIONS.SetPosSizePixel( aUpperLeftCorner, aCtrlSize );
+    maTLB_SLIDE_TRANSITIONS.SetPosSizePixel( aUpperLeftCorner, aCtrlSize );
 }
 
 void SlideTransitionPane::updateControls()
 {
+    OSL_TRACE("updateControls()");
     ::sd::slidesorter::SharedPageSelection pSelectedPages(getSelectedPages());
     if( pSelectedPages->empty())
     {
@@ -791,25 +797,28 @@ void SlideTransitionPane::updateControls()
 
     // detect current slide effect
     if( aEffect.mbEffectAmbiguous )
-        maLB_SLIDE_TRANSITIONS.SetNoSelection();
+    {
+        maTLB_SLIDE_TRANSITIONS.SetCurEntry( 0 );
+    }
     else
     {
         // ToDo: That 0 is "no transition" is documented nowhere except in the
         // CTOR of sdpage
         if( aEffect.mnType == 0 )
-            maLB_SLIDE_TRANSITIONS.SelectEntryPos( 0 );
+            maTLB_SLIDE_TRANSITIONS.SetCurEntry( 0 );
         else
         {
             sal_uInt16 nEntry = lcl_getTransitionEffectIndex( mpDrawDoc, aEffect );
             if( nEntry == LISTBOX_ENTRY_NOTFOUND )
-                maLB_SLIDE_TRANSITIONS.SetNoSelection();
+                maTLB_SLIDE_TRANSITIONS.SetCurEntry( 0 );
             else
             {
                 // first entry in list is "none", so add 1 after translation
-                if( m_aPresetIndexes.find( nEntry ) != m_aPresetIndexes.end())
-                    maLB_SLIDE_TRANSITIONS.SelectEntryPos( m_aPresetIndexes[ nEntry ] + 1 );
+                tPresetIndexesType::const_iterator aIterator = m_aPresetIndexes.find( nEntry );
+                if( aIterator != m_aPresetIndexes.end() )
+                    maTLB_SLIDE_TRANSITIONS.SetCurEntry( aIterator->second );
                 else
-                    maLB_SLIDE_TRANSITIONS.SetNoSelection();
+                    maTLB_SLIDE_TRANSITIONS.SetCurEntry( 0 );
             }
         }
     }
@@ -881,7 +890,7 @@ void SlideTransitionPane::updateControls()
 
 void SlideTransitionPane::updateControlState()
 {
-    maLB_SLIDE_TRANSITIONS.Enable( mbHasSelection );
+    maTLB_SLIDE_TRANSITIONS.EnableList( mbHasSelection );
     maLB_SPEED.Enable( mbHasSelection );
     maLB_SOUND.Enable( mbHasSelection );
     maCB_LOOP_SOUND.Enable( mbHasSelection && (maLB_SOUND.GetSelectEntryPos() > 2));
@@ -991,12 +1000,11 @@ impl::TransitionEffect 
SlideTransitionPane::getTransitionEffectFromControls() co
     aResult.setAllAmbiguous();
 
     // check first (aResult might be overwritten)
-    if( maLB_SLIDE_TRANSITIONS.IsEnabled() &&
-        maLB_SLIDE_TRANSITIONS.GetSelectEntryCount() > 0 )
+    if(  maTLB_SLIDE_TRANSITIONS.IsEnabled() &&
+        maTLB_SLIDE_TRANSITIONS.GetSelectionCount() > 0 )
     {
         TransitionPresetPtr pPreset = lcl_getTransitionPresetByUIName(
-            mpDrawDoc, OUString( maLB_SLIDE_TRANSITIONS.GetSelectEntry()));
-
+            mpDrawDoc, OUString( maTLB_SLIDE_TRANSITIONS.GetEntryText( 
maTLB_SLIDE_TRANSITIONS.GetCurEntry() ) ) );
         if( pPreset.get())
         {
             aResult = impl::TransitionEffect( *pPreset );
@@ -1267,20 +1275,44 @@ IMPL_LINK_NOARG(SlideTransitionPane, AutoPreviewClicked)
 
 IMPL_LINK_NOARG(SlideTransitionPane, LateInitCallback)
 {
+    const UStringList& rPresetCategoryList = TransitionPreset::getTransitionPresetCategoryList();
+    UStringList::const_iterator aIterS;
+    std::map<OUString, SvLBoxEntry*> aCategoryMap;
+    // Add the categories
+    for ( aIterS = rPresetCategoryList.begin(); aIterS != rPresetCategoryList.end(); aIterS++ )
+    {
+        OUString aCategoryName = *aIterS;
+        SvLBoxEntry *aCategory = maTLB_SLIDE_TRANSITIONS.InsertEntry ( 
+                    aCategoryName, 0, sal_True );
+        aCategoryMap.insert( std::map<OUString, SvLBoxEntry*>::value_type( aCategoryName, 
aCategory ));
+        aCategory->SetFlags( aCategory->GetFlags() | SV_LBOXTAB_SHOW_SELECTION );
+    }
     const TransitionPresetList& rPresetList = TransitionPreset::getTransitionPresetList();
     TransitionPresetList::const_iterator aIter( rPresetList.begin() );
     const TransitionPresetList::const_iterator aEnd( rPresetList.end() );
     sal_uInt16 nIndex = 0;
-    ::std::size_t nUIIndex = 0;
     while( aIter != aEnd )
     {
         TransitionPresetPtr pPreset = (*aIter++);
         const OUString aUIName( pPreset->getUIName() );
-         if( !aUIName.isEmpty() )
+        if( !aUIName.isEmpty() )
         {
-            maLB_SLIDE_TRANSITIONS.InsertEntry( aUIName );
-            m_aPresetIndexes[ nIndex ] = (sal_uInt16)nUIIndex;
-            ++nUIIndex;
+            OUString aCategoryName = pPreset->getUICategory();
+            std::map<OUString, SvLBoxEntry*>::iterator it = aCategoryMap.find( aCategoryName );
+
+            SvLBoxEntry *aCategory;     
+            SvLBoxEntry *aItem;
+            if ( it != aCategoryMap.end() ) { // Insert category into map
+                aCategory = it->second;
+                aItem = maTLB_SLIDE_TRANSITIONS.InsertEntry( aUIName, aCategory );
+            }
+            else // Should deal with uncategorised entries.
+            {
+                aItem = maTLB_SLIDE_TRANSITIONS.InsertEntry( aUIName );
+            }
+            
+
+            m_aPresetIndexes[ nIndex ] = aItem;
         }
         ++nIndex;
     }
diff --git a/sd/source/ui/animations/SlideTransitionPane.hxx 
b/sd/source/ui/animations/SlideTransitionPane.hxx
index e5db4fb..044ac64 100644
--- a/sd/source/ui/animations/SlideTransitionPane.hxx
+++ b/sd/source/ui/animations/SlideTransitionPane.hxx
@@ -37,6 +37,7 @@
 #include <vcl/fixed.hxx>
 #include <vcl/button.hxx>
 #include <vcl/field.hxx>
+#include <svtools/svtreebx.hxx>
 #include <com/sun/star/drawing/XDrawView.hpp>
 #include <com/sun/star/frame/XModel.hpp>
 
@@ -108,26 +109,26 @@ private:
     SdDrawDocument *  mpDrawDoc;
     Size              maMinSize;
 
-    FixedLine    maFL_APPLY_TRANSITION;
-    ListBox      maLB_SLIDE_TRANSITIONS;
-    FixedLine    maFL_MODIFY_TRANSITION;
-    FixedText    maFT_SPEED;
-    ListBox      maLB_SPEED;
-    FixedText    maFT_SOUND;
-    ListBox      maLB_SOUND;
-    CheckBox     maCB_LOOP_SOUND;
-    FixedLine    maFL_ADVANCE_SLIDE;
-    RadioButton  maRB_ADVANCE_ON_MOUSE;
-    RadioButton  maRB_ADVANCE_AUTO;
-    MetricField  maMF_ADVANCE_AUTO_AFTER;
-    FixedLine    maFL_EMPTY1;
-    PushButton   maPB_APPLY_TO_ALL;
-    PushButton   maPB_PLAY;
-    PushButton   maPB_SLIDE_SHOW;
-    FixedLine    maFL_EMPTY2;
-    CheckBox     maCB_AUTO_PREVIEW;
-
-    String       maSTR_NO_TRANSITION;
+    FixedLine     maFL_APPLY_TRANSITION;
+    SvTreeListBox maTLB_SLIDE_TRANSITIONS;
+    FixedLine     maFL_MODIFY_TRANSITION;
+    FixedText     maFT_SPEED;
+    ListBox       maLB_SPEED;
+    FixedText     maFT_SOUND;
+    ListBox       maLB_SOUND;
+    CheckBox      maCB_LOOP_SOUND;
+    FixedLine     maFL_ADVANCE_SLIDE;
+    RadioButton   maRB_ADVANCE_ON_MOUSE;
+    RadioButton   maRB_ADVANCE_AUTO;
+    MetricField   maMF_ADVANCE_AUTO_AFTER;
+    FixedLine     maFL_EMPTY1;
+    PushButton    maPB_APPLY_TO_ALL;
+    PushButton    maPB_PLAY;
+    PushButton    maPB_SLIDE_SHOW;
+    FixedLine     maFL_EMPTY2;
+    CheckBox      maCB_AUTO_PREVIEW;
+
+    String        maSTR_NO_TRANSITION;
 
     ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawView >             mxView;
     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >                  mxModel;
@@ -140,7 +141,7 @@ private:
     tSoundListType  maSoundList;
     mutable String  maCurrentSoundFile;
 
-    typedef ::std::map< sal_uInt16, sal_uInt16 > tPresetIndexesType;
+    typedef ::std::map< sal_uInt16, SvLBoxEntry* > tPresetIndexesType;
     tPresetIndexesType m_aPresetIndexes;
 
     Timer maLateInitTimer;
diff --git a/sd/xml/transitions-ogl.xml b/sd/xml/transitions-ogl.xml
index ca1e366..1125fe4 100644
--- a/sd/xml/transitions-ogl.xml
+++ b/sd/xml/transitions-ogl.xml
@@ -1,48 +1,48 @@
 <?xml version="1.0"?>
 <anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" 
xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" 
xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" 
xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" 
xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" 
xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" 
xmlns:svg="http://www.w3.org/2000/svg"; xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" 
xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" 
xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:oooc="http://openoffice.org/2004/calc"; xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:smil="http://www.w3.org/2001/SMIL20"; 
xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
- <anim:par pres:preset-id="tile-flip">
+ <anim:par pres:preset-id="tile-flip" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="across"/>
  </anim:par>
- <anim:par pres:preset-id="outside-cube">
+ <anim:par pres:preset-id="outside-cube" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersOut"/>
  </anim:par>
- <anim:par pres:preset-id="revolving-circles">
+ <anim:par pres:preset-id="revolving-circles" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="circle"/>
  </anim:par>
- <anim:par pres:preset-id="turning-helix">
+ <anim:par pres:preset-id="turning-helix" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="fanOutHorizontal"/>
  </anim:par>
- <anim:par pres:preset-id="inside-cube">
+ <anim:par pres:preset-id="inside-cube" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersIn"/>
  </anim:par>
- <anim:par pres:preset-id="fall">
+ <anim:par pres:preset-id="fall" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="leftToRight"/>
  </anim:par>
- <anim:par pres:preset-id="turn-around">
+ <anim:par pres:preset-id="turn-around" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topToBottom"/>
  </anim:par>
- <anim:par pres:preset-id="iris">
+ <anim:par pres:preset-id="iris" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topLeft"/>
  </anim:par>
- <anim:par pres:preset-id="turn-down">
+ <anim:par pres:preset-id="turn-down" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topRight"/>
  </anim:par>
- <anim:par pres:preset-id="rochade">
+ <anim:par pres:preset-id="rochade" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomRight"/>
  </anim:par>
- <anim:par pres:preset-id="venetian3dv">
+ <anim:par pres:preset-id="venetian3dv" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomLeft"/>
  </anim:par>
- <anim:par pres:preset-id="venetian3dh">
+ <anim:par pres:preset-id="venetian3dh" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topCenter"/>
  </anim:par>
- <anim:par pres:preset-id="static">
+ <anim:par pres:preset-id="static" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="rightCenter"/>
  </anim:par>
- <anim:par pres:preset-id="finedissolve">
+ <anim:par pres:preset-id="finedissolve" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomCenter"/>
  </anim:par>
- <anim:par pres:preset-id="zoom-rotate-in">
+ <anim:par pres:preset-id="zoom-rotate-in" pres:preset-uicategory="category-ogl">
   <anim:transitionFilter smil:type="zoom" smil:subtype="rotateIn"/>
  </anim:par>
  </anim:seq>
diff --git a/sd/xml/transitions.xml b/sd/xml/transitions.xml
index 556eb6f..c7a4aa5 100644
--- a/sd/xml/transitions.xml
+++ b/sd/xml/transitions.xml
@@ -1,54 +1,54 @@
 <?xml version="1.0"?>
 <anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" 
xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" 
xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" 
xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" 
xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" 
xmlns:fo="http://www.w3.org/1999/XSL/Format"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" 
xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" 
xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" 
xmlns:svg="http://www.w3.org/2000/svg"; xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" 
xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" 
xmlns:math="http://www.w3.org/1998/Math/MathML"; 
xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" 
xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" 
xmlns:ooo="http://openoffice.org/2004/office"; xmlns:ooow="http://openoffice.org/2004/writer"; 
xmlns:oooc="http://openoffice.org/2004/calc"; xmlns:dom="http://www.w3.org/2001/xml-events"; 
xmlns:smil="http://www.w3.org/2001/SMIL20"; 
xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
- <anim:par pres:preset-id="wipe-up">
+ <anim:par pres:preset-id="wipe-up" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="barWipe" smil:subtype="topToBottom" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="wipe-right">
+ <anim:par pres:preset-id="wipe-right" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight"/>
  </anim:par>
- <anim:par pres:preset-id="wipe-left">
+ <anim:par pres:preset-id="wipe-left" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="wipe-down">
+ <anim:par pres:preset-id="wipe-down" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="barWipe" smil:subtype="topToBottom"/>
  </anim:par>
- <anim:par pres:preset-id="wheel-clockwise-1-spoke">
+ <anim:par pres:preset-id="wheel-clockwise-1-spoke" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="oneBlade"/>
  </anim:par>
- <anim:par pres:preset-id="wheel-clockwise-2-spokes">
+ <anim:par pres:preset-id="wheel-clockwise-2-spokes" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="twoBladeVertical"/>
  </anim:par>
- <anim:par pres:preset-id="wheel-clockwise-3-spokes">
+ <anim:par pres:preset-id="wheel-clockwise-3-spokes" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="threeBlade"/>
  </anim:par>
- <anim:par pres:preset-id="wheel-clockwise-4-spokes">
+ <anim:par pres:preset-id="wheel-clockwise-4-spokes" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="fourBlade"/>
  </anim:par>
- <anim:par pres:preset-id="wheel-clockwise-8-spokes">
+ <anim:par pres:preset-id="wheel-clockwise-8-spokes" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="eightBlade"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-down">
+ <anim:par pres:preset-id="uncover-down" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-left">
+ <anim:par pres:preset-id="uncover-left" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromRight" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-right">
+ <anim:par pres:preset-id="uncover-right" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromLeft" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-up">
+ <anim:par pres:preset-id="uncover-up" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottom" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-left-down">
+ <anim:par pres:preset-id="uncover-left-down" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopRight" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-left-up">
+ <anim:par pres:preset-id="uncover-left-up" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomRight" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-right-down">
+ <anim:par pres:preset-id="uncover-right-down" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopLeft" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="uncover-right-up">
+ <anim:par pres:preset-id="uncover-right-up" pres:preset-uicategory="category-wipe">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomLeft" 
smil:direction="reverse"/>
  </anim:par>
 <!--  <anim:par pres:preset-id="barn-inVertical"> -->
@@ -63,163 +63,163 @@
 <!--  <anim:par pres:preset-id="barn-outHorizontal"> -->
 <!--   <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal" 
smil:direction="reverse"/> -->
 <!--  </anim:par> -->
- <anim:par pres:preset-id="random-bars-vertical">
+ <anim:par pres:preset-id="random-bars-vertical" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="randomBarWipe" smil:subtype="vertical"/>},
  </anim:par>
- <anim:par pres:preset-id="random-bars-horizontal">
+ <anim:par pres:preset-id="random-bars-horizontal" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="randomBarWipe" smil:subtype="horizontal"/>
  </anim:par>
- <anim:par pres:preset-id="checkerboard-down">
+ <anim:par pres:preset-id="checkerboard-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="checkerBoardWipe" smil:subtype="down"/>},
  </anim:par>
- <anim:par pres:preset-id="checkerboard-across">
+ <anim:par pres:preset-id="checkerboard-across" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="checkerBoardWipe" smil:subtype="across"/>
  </anim:par>
- <anim:par pres:preset-id="shape-plus">
+ <anim:par pres:preset-id="shape-plus" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="fourBoxWipe" smil:subtype="cornersOut"/>
  </anim:par>
 <!--  <anim:par pres:preset-id="plus-in"> -->
 <!--   <anim:transitionFilter smil:type="fourBoxWipe" smil:subtype="cornersIn"/> -->
 <!--  </anim:par> -->
- <anim:par pres:preset-id="shape-diamond">
+ <anim:par pres:preset-id="shape-diamond" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond"/>
  </anim:par>
 <!--  <anim:par pres:preset-id="diamond-in"> -->
 <!--   <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond" 
smil:direction="reverse"/> -->
 <!--  </anim:par> -->
- <anim:par pres:preset-id="shape-circle">
+ <anim:par pres:preset-id="shape-circle" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="circle"/>
  </anim:par>
 <!--  <anim:par pres:preset-id="circle-in"> -->
 <!--   <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="circle" 
smil:direction="reverse"/> -->
 <!--  </anim:par> -->
- <anim:par pres:preset-id="box-out">
+ <anim:par pres:preset-id="box-out" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle"/>
  </anim:par>
- <anim:par pres:preset-id="box-in">
+ <anim:par pres:preset-id="box-in" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle" smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="wedge">
+ <anim:par pres:preset-id="wedge" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="fanWipe" smil:subtype="centerTop"/>
  </anim:par>
- <anim:par pres:preset-id="venetian-blinds-vertical">
+ <anim:par pres:preset-id="venetian-blinds-vertical" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="blindsWipe" smil:subtype="vertical"/>
  </anim:par>
- <anim:par pres:preset-id="venetian-blinds-horizontal">
+ <anim:par pres:preset-id="venetian-blinds-horizontal" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="blindsWipe" smil:subtype="horizontal"/>
  </anim:par>
- <anim:par pres:preset-id="fade-through-black">
+ <anim:par pres:preset-id="fade-through-black" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="fade" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
  </anim:par>
- <anim:par pres:preset-id="cut-through-black">
+ <anim:par pres:preset-id="cut-through-black" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="barWipe" smil:subtype="fadeOverColor" 
smil:fadeColor="#000000"/>
  </anim:par>
- <anim:par pres:preset-id="cover-down">
+ <anim:par pres:preset-id="cover-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop"/>
  </anim:par>
- <anim:par pres:preset-id="cover-left">
+ <anim:par pres:preset-id="cover-left" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromRight"/>
  </anim:par>
- <anim:par pres:preset-id="cover-right">
+ <anim:par pres:preset-id="cover-right" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromLeft"/>
  </anim:par>
- <anim:par pres:preset-id="cover-up">
+ <anim:par pres:preset-id="cover-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottom"/>
  </anim:par>
- <anim:par pres:preset-id="cover-left-down">
+ <anim:par pres:preset-id="cover-left-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopRight"/>
  </anim:par>
- <anim:par pres:preset-id="cover-left-up">
+ <anim:par pres:preset-id="cover-left-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomRight"/>
  </anim:par>
- <anim:par pres:preset-id="cover-right-down">
+ <anim:par pres:preset-id="cover-right-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopLeft"/>
  </anim:par>
- <anim:par pres:preset-id="cover-right-up">
+ <anim:par pres:preset-id="cover-right-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomLeft"/>
  </anim:par>
- <anim:par pres:preset-id="dissolve">
+ <anim:par pres:preset-id="dissolve" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="dissolve" smil:subtype="default"/>
  </anim:par>
- <anim:par pres:preset-id="random-transition">
+ <anim:par pres:preset-id="random-transition" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="random"/>
  </anim:par>
  <!--anim:par pres:preset-id="zoom-rotate-in">
   <anim:transitionFilter smil:type="zoom" smil:subtype="rotateIn"/>
  </anim:par-->
- <anim:par pres:preset-id="clock-wipe-twelve">
+ <anim:par pres:preset-id="clock-wipe-twelve" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="clockWipe" smil:subtype="clockwiseTwelve"/>
  </anim:par>
- <anim:par pres:preset-id="reverse-clock-wipe-twelve">
+ <anim:par pres:preset-id="reverse-clock-wipe-twelve" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="clockWipe" smil:subtype="clockwiseTwelve" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="spiral-wipe-top-left-clockwise">
+ <anim:par pres:preset-id="spiral-wipe-top-left-clockwise" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="spiralWipe" smil:subtype="topLeftClockwise"/>
  </anim:par>
- <anim:par pres:preset-id="spiral-wipe-top-right-counter-clockwise">
+ <anim:par pres:preset-id="spiral-wipe-top-right-counter-clockwise" 
pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="spiralWipe" smil:subtype="topRightCounterClockwise"/>
  </anim:par>
- <anim:par pres:preset-id="spiral-wipe-out-to-bottom-right-clockwise">
+ <anim:par pres:preset-id="spiral-wipe-out-to-bottom-right-clockwise" 
pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="spiralWipe" smil:subtype="bottomRightCounterClockwise" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="spiral-wipe-out-to-bottom-left-counter-clockwise">
+ <anim:par pres:preset-id="spiral-wipe-out-to-bottom-left-counter-clockwise" 
pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="spiralWipe" smil:subtype="bottomLeftClockwise" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="snake-wipe-top-left-vertical">
+ <anim:par pres:preset-id="snake-wipe-top-left-vertical" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftVertical"/>
  </anim:par>
- <anim:par pres:preset-id="snake-wipe-top-left-horizontal">
+ <anim:par pres:preset-id="snake-wipe-top-left-horizontal" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftHorizontal"/>
  </anim:par>
- <anim:par pres:preset-id="snake-wipe-bottom-right-vertical">
+ <anim:par pres:preset-id="snake-wipe-bottom-right-vertical" 
pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftVertical" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="snake-wipe-bottom-right-horizontal">
+ <anim:par pres:preset-id="snake-wipe-bottom-right-horizontal" 
pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftHorizontal" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="comb-horizontal">
+ <anim:par pres:preset-id="comb-horizontal" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="combHorizontal"/>
  </anim:par>
- <anim:par pres:preset-id="comb-vertical">
+ <anim:par pres:preset-id="comb-vertical" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="combVertical"/>
  </anim:par>
- <anim:par pres:preset-id="fade-smoothly">
+ <anim:par pres:preset-id="fade-smoothly" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="fade" smil:subtype="crossfade"/>
  </anim:par>
- <anim:par pres:preset-id="push-down">
+ <anim:par pres:preset-id="push-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromTop"/>
  </anim:par>
- <anim:par pres:preset-id="push-left">
+ <anim:par pres:preset-id="push-left" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromRight"/>
  </anim:par>
- <anim:par pres:preset-id="push-right">
+ <anim:par pres:preset-id="push-right" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromLeft"/>
  </anim:par>
- <anim:par pres:preset-id="push-up">
+ <anim:par pres:preset-id="push-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromBottom"/>
  </anim:par>
- <anim:par pres:preset-id="split-horizontal-in">
+ <anim:par pres:preset-id="split-horizontal-in" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="split-horizontal-out">
+ <anim:par pres:preset-id="split-horizontal-out" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal"/>
  </anim:par>
- <anim:par pres:preset-id="split-vertical-in">
+ <anim:par pres:preset-id="split-vertical-in" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="split-vertical-out">
+ <anim:par pres:preset-id="split-vertical-out" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical"/>
  </anim:par>
- <anim:par pres:preset-id="diagonal-squares-left-down">
+ <anim:par pres:preset-id="diagonal-squares-left-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalRight"/>
  </anim:par>
- <anim:par pres:preset-id="diagonal-squares-left-up">
+ <anim:par pres:preset-id="diagonal-squares-left-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalLeft" 
smil:direction="reverse"/>
  </anim:par>
- <anim:par pres:preset-id="diagonal-squares-right-down">
+ <anim:par pres:preset-id="diagonal-squares-right-down" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalLeft"/>
  </anim:par>
- <anim:par pres:preset-id="diagonal-squares-right-up">
+ <anim:par pres:preset-id="diagonal-squares-right-up" pres:preset-uicategory="category-other">
   <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalRight" 
smil:direction="reverse"/>
  </anim:par>
  </anim:seq>
diff --git a/xmloff/inc/xmloff/xmltoken.hxx b/xmloff/inc/xmloff/xmltoken.hxx
index f241023..fa2cadd 100644
--- a/xmloff/inc/xmloff/xmltoken.hxx
+++ b/xmloff/inc/xmloff/xmltoken.hxx
@@ -2849,6 +2849,7 @@ namespace xmloff { namespace token {
 
         XML_NODE_TYPE,
         XML_PRESET_ID,
+        XML_PRESET_UICATEGORY,
         XML_PRESET_SUB_TYPE,
         XML_PRESET_CLASS,
         XML_CUSTOM,
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 7c56037..a18a4bf 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -2845,6 +2845,7 @@ namespace xmloff { namespace token {
 
         TOKEN( "node-type",         XML_NODE_TYPE ),
         TOKEN( "preset-id",         XML_PRESET_ID ),
+        TOKEN( "preset-uicategory", XML_PRESET_UICATEGORY ),
         TOKEN( "preset-sub-type",       XML_PRESET_SUB_TYPE ),
         TOKEN( "preset-class",      XML_PRESET_CLASS ),
         TOKEN( "custom",                XML_CUSTOM ),
diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx
index 5baefba..f5ce628 100644
--- a/xmloff/source/draw/animationimport.cxx
+++ b/xmloff/source/draw/animationimport.cxx
@@ -203,6 +203,7 @@ enum AnimationNodeAttributes
     ANA_EndSync,
     ANA_Node_Type,
     ANA_Preset_ID,
+    ANA_Preset_UICategory,
     ANA_Preset_Sub_Type,
     ANA_Preset_Class,
     ANA_After_Effect,
@@ -260,6 +261,7 @@ const SvXMLTokenMap& AnimationsImportHelperImpl::getAnimationNodeAttributeTokenM
             { XML_NAMESPACE_SMIL, XML_ENDSYNC,                  (sal_uInt16)ANA_EndSync },
             { XML_NAMESPACE_PRESENTATION, XML_NODE_TYPE,        (sal_uInt16)ANA_Node_Type },
             { XML_NAMESPACE_PRESENTATION, XML_PRESET_ID,        (sal_uInt16)ANA_Preset_ID },
+            { XML_NAMESPACE_PRESENTATION, XML_PRESET_UICATEGORY,   
(sal_uInt16)ANA_Preset_UICategory },
             { XML_NAMESPACE_PRESENTATION, XML_PRESET_SUB_TYPE,  (sal_uInt16)ANA_Preset_Sub_Type },
             { XML_NAMESPACE_PRESENTATION, XML_PRESET_CLASS,     (sal_uInt16)ANA_Preset_Class },
             { XML_NAMESPACE_PRESENTATION, XML_AFTER_EFFECT,     (sal_uInt16)ANA_After_Effect },
@@ -872,6 +874,11 @@ void AnimationNodeContext::init_node(  const ::com::sun::star::uno::Reference< 
:
                 aUserData.push_back( NamedValue( GetXMLToken( XML_PRESET_ID ), makeAny( rValue ) ) 
);
             }
             break;
+            case ANA_Preset_UICategory:
+            {
+                aUserData.push_back( NamedValue( GetXMLToken( XML_PRESET_UICATEGORY ), makeAny( 
rValue ) ) );
+            }
+            break;
             case ANA_Preset_Sub_Type:
             {
                 aUserData.push_back( NamedValue( GetXMLToken( XML_PRESET_SUB_TYPE ), makeAny( 
rValue ) ) );

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.