summaryrefslogtreecommitdiffstats
path: root/svx/inc
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2012-08-15 11:30:54 +0200
committerMichael Stahl <mstahl@redhat.com>2012-08-16 15:14:59 +0200
commit81b5ecc5a68cd15497301e6b10b462673f93655f (patch)
tree884a7cfe88c0431ad29a03af2d4846009c3bbac8 /svx/inc
parentConvert aList field in SdrHelpLineList class from Container to std::vector (diff)
downloadcore-81b5ecc5a68cd15497301e6b10b462673f93655f.tar.gz
core-81b5ecc5a68cd15497301e6b10b462673f93655f.zip
Convert aLayer field in SdrLayerAdmin class from Container to std::vector
Change-Id: I884f8e76d0bc7b2eb9f99434809fa824409446e4
Diffstat (limited to 'svx/inc')
-rw-r--r--svx/inc/svx/svdlayer.hxx35
1 files changed, 29 insertions, 6 deletions
diff --git a/svx/inc/svx/svdlayer.hxx b/svx/inc/svx/svdlayer.hxx
index aac75c9b009c..f0b468baa755 100644
--- a/svx/inc/svx/svdlayer.hxx
+++ b/svx/inc/svx/svdlayer.hxx
@@ -35,6 +35,7 @@
#include <svx/svdsob.hxx>
#include <svx/svdtypes.hxx> // fuer typedef SdrLayerID
#include "svx/svxdllapi.h"
+#include <algorithm>
class SdrModel;
@@ -84,7 +85,7 @@ friend class SdrModel;
friend class SdrPage;
protected:
- Container aLayer;
+ std::vector<SdrLayer*> aLayer;
Container aLSets;
SdrLayerAdmin* pParent; // Der Admin der Seite kennt den Admin des Docs
SdrModel* pModel; // zum Broadcasten
@@ -107,20 +108,42 @@ public:
void SetParent(SdrLayerAdmin* pNewParent) { pParent=pNewParent; }
void SetModel(SdrModel* pNewModel);
SdrModel* GetModel() const { return pModel; }
- void InsertLayer(SdrLayer* pLayer, sal_uInt16 nPos=0xFFFF) { aLayer.Insert(pLayer,nPos); pLayer->SetModel(pModel); Broadcast(); }
+ void InsertLayer(SdrLayer* pLayer)
+ {
+ aLayer.push_back(pLayer);
+ pLayer->SetModel(pModel);
+ Broadcast();
+ }
+ void InsertLayer(SdrLayer* pLayer, sal_uInt16 nPos)
+ {
+ if(nPos==0xFFFF)
+ aLayer.push_back(pLayer);
+ else
+ aLayer.insert(aLayer.begin() + nPos, pLayer);
+ pLayer->SetModel(pModel);
+ Broadcast();
+ }
SdrLayer* RemoveLayer(sal_uInt16 nPos);
// Alle Layer loeschen
void ClearLayer();
// Neuer Layer wird angelegt und eingefuegt
SdrLayer* NewLayer(const String& rName, sal_uInt16 nPos=0xFFFF);
- void DeleteLayer(SdrLayer* pLayer) { aLayer.Remove(pLayer); delete pLayer; Broadcast(); }
+ void DeleteLayer(SdrLayer* pLayer)
+ {
+ std::vector<SdrLayer*>::iterator it = std::find(aLayer.begin(), aLayer.end(), pLayer);
+ if( it == aLayer.end() )
+ return;
+ aLayer.erase(it);
+ delete pLayer;
+ Broadcast();
+ }
// Neuer Layer, Name wird aus der Resource geholt
SdrLayer* NewStandardLayer(sal_uInt16 nPos=0xFFFF);
// Iterieren ueber alle Layer
- sal_uInt16 GetLayerCount() const { return sal_uInt16(aLayer.Count()); }
- SdrLayer* GetLayer(sal_uInt16 i) { return (SdrLayer*)(aLayer.GetObject(i)); }
- const SdrLayer* GetLayer(sal_uInt16 i) const { return (SdrLayer*)(aLayer.GetObject(i)); }
+ sal_uInt16 GetLayerCount() const { return sal_uInt16(aLayer.size()); }
+ SdrLayer* GetLayer(sal_uInt16 i) { return aLayer[i]; }
+ const SdrLayer* GetLayer(sal_uInt16 i) const { return aLayer[i]; }
sal_uInt16 GetLayerPos(SdrLayer* pLayer) const;