| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_svx.hxx" |
| |
| #include <svx/xtable.hxx> |
| #include <svx/xpool.hxx> |
| #include <svx/svdpool.hxx> |
| |
| #define GLOBALOVERFLOW |
| |
| // Vergleichsstrings |
| sal_Unicode __FAR_DATA pszStandard[] = { 's', 't', 'a', 'n', 'd', 'a', 'r', 'd', 0 }; |
| |
| // Konvertiert in echte RGB-Farben, damit in den Listboxen |
| // endlich mal richtig selektiert werden kann. |
| Color RGB_Color( ColorData nColorName ) |
| { |
| Color aColor( nColorName ); |
| Color aRGBColor( aColor.GetRed(), aColor.GetGreen(), aColor.GetBlue() ); |
| return aRGBColor; |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XColorEntry |
| |
| XColorEntry::XColorEntry(const Color& rColor, const String& rName) |
| : XPropertyEntry(rName), |
| aColor(rColor) |
| { |
| } |
| |
| XColorEntry::XColorEntry(const XColorEntry& rOther) |
| : XPropertyEntry(rOther), |
| aColor(rOther.aColor) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XLineEndEntry |
| |
| XLineEndEntry::XLineEndEntry(const basegfx::B2DPolyPolygon& rB2DPolyPolygon, const String& rName) |
| : XPropertyEntry(rName), |
| aB2DPolyPolygon(rB2DPolyPolygon) |
| { |
| } |
| |
| XLineEndEntry::XLineEndEntry(const XLineEndEntry& rOther) |
| : XPropertyEntry(rOther), |
| aB2DPolyPolygon(rOther.aB2DPolyPolygon) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XDashEntry |
| |
| XDashEntry::XDashEntry(const XDash& rDash, const String& rName) |
| : XPropertyEntry(rName), |
| aDash(rDash) |
| { |
| } |
| |
| XDashEntry::XDashEntry(const XDashEntry& rOther) |
| : XPropertyEntry(rOther), |
| aDash(rOther.aDash) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XHatchEntry |
| |
| XHatchEntry::XHatchEntry(const XHatch& rHatch, const String& rName) |
| : XPropertyEntry(rName), |
| aHatch(rHatch) |
| { |
| } |
| |
| XHatchEntry::XHatchEntry(const XHatchEntry& rOther) |
| : XPropertyEntry(rOther), |
| aHatch(rOther.aHatch) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XGradientEntry |
| |
| XGradientEntry::XGradientEntry(const XGradient& rGradient, const String& rName) |
| : XPropertyEntry(rName), |
| aGradient(rGradient) |
| { |
| } |
| |
| XGradientEntry::XGradientEntry(const XGradientEntry& rOther) |
| : XPropertyEntry(rOther), |
| aGradient(rOther.aGradient) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XBitmapEntry |
| |
| XBitmapEntry::XBitmapEntry(const GraphicObject& rGraphicObject, const String& rName) |
| : XPropertyEntry(rName), |
| maGraphicObject(rGraphicObject) |
| { |
| } |
| |
| XBitmapEntry::XBitmapEntry(const XBitmapEntry& rOther) |
| : XPropertyEntry(rOther), |
| maGraphicObject(rOther.maGraphicObject) |
| { |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // class XPropertyList |
| |
| XPropertyList::XPropertyList( const String& rPath ) : |
| maName ( pszStandard, 8 ), |
| maPath ( rPath ), |
| maContent(), |
| mbListDirty (true) |
| { |
| } |
| |
| XPropertyList::~XPropertyList() |
| { |
| while(!maContent.empty()) |
| { |
| delete maContent.back(); |
| maContent.pop_back(); |
| } |
| } |
| |
| void XPropertyList::Clear() |
| { |
| while(!maContent.empty()) |
| { |
| delete maContent.back(); |
| maContent.pop_back(); |
| } |
| } |
| |
| long XPropertyList::Count() const |
| { |
| if( mbListDirty ) |
| { |
| if(!const_cast< XPropertyList* >(this)->Load()) |
| { |
| const_cast< XPropertyList* >(this)->Create(); |
| } |
| } |
| |
| return maContent.size(); |
| } |
| |
| XPropertyEntry* XPropertyList::Get( long nIndex ) const |
| { |
| if( mbListDirty ) |
| { |
| if(!const_cast< XPropertyList* >(this)->Load()) |
| { |
| const_cast< XPropertyList* >(this)->Create(); |
| } |
| } |
| |
| const long nObjectCount(maContent.size()); |
| |
| if(nIndex >= nObjectCount) |
| { |
| return 0; |
| } |
| |
| return maContent[nIndex]; |
| } |
| |
| long XPropertyList::GetIndex(const XubString& rName) const |
| { |
| if( mbListDirty ) |
| { |
| if(!const_cast< XPropertyList* >(this)->Load()) |
| { |
| const_cast< XPropertyList* >(this)->Create(); |
| } |
| } |
| |
| ::std::vector< XPropertyEntry* >::const_iterator aStart(maContent.begin()); |
| const ::std::vector< XPropertyEntry* >::const_iterator aEnd(maContent.end()); |
| |
| for(long a(0); aStart != aEnd; a++, aStart++) |
| { |
| const XPropertyEntry* pEntry = *aStart; |
| |
| if(pEntry && pEntry->GetName() == rName) |
| { |
| return a; |
| } |
| } |
| |
| return -1; |
| } |
| |
| Bitmap XPropertyList::GetUiBitmap( long nIndex ) const |
| { |
| Bitmap aRetval; |
| XPropertyEntry* pEntry = Get(nIndex); |
| |
| if(pEntry) |
| { |
| aRetval = pEntry->GetUiBitmap(); |
| |
| if(aRetval.IsEmpty()) |
| { |
| aRetval = const_cast< XPropertyList* >(this)->CreateBitmapForUI(nIndex); |
| pEntry->SetUiBitmap(aRetval); |
| } |
| } |
| |
| return aRetval; |
| } |
| |
| void XPropertyList::Insert( XPropertyEntry* pEntry, long nIndex ) |
| { |
| if(pEntry) |
| { |
| const long nObjectCount(maContent.size()); |
| |
| if(static_cast< long >(LIST_APPEND) == nIndex || nIndex >= nObjectCount) |
| { |
| maContent.push_back(pEntry); |
| } |
| else |
| { |
| maContent.insert(maContent.begin() + nIndex, pEntry); |
| } |
| } |
| } |
| |
| XPropertyEntry* XPropertyList::Replace( XPropertyEntry* pEntry, long nIndex ) |
| { |
| XPropertyEntry* pRetval = 0; |
| |
| if(pEntry) |
| { |
| const long nObjectCount(maContent.size()); |
| |
| if(nIndex < nObjectCount) |
| { |
| pRetval = maContent[nIndex]; |
| maContent[nIndex] = pEntry; |
| } |
| } |
| |
| return pRetval; |
| } |
| |
| XPropertyEntry* XPropertyList::Remove( long nIndex ) |
| { |
| XPropertyEntry* pRetval = 0; |
| const long nObjectCount(maContent.size()); |
| |
| if(nIndex < nObjectCount) |
| { |
| if(nIndex + 1 == nObjectCount) |
| { |
| pRetval = maContent.back(); |
| maContent.pop_back(); |
| } |
| else |
| { |
| pRetval = maContent[nIndex]; |
| maContent.erase(maContent.begin() + nIndex); |
| } |
| } |
| |
| return pRetval; |
| } |
| |
| void XPropertyList::SetName( const String& rString ) |
| { |
| if(rString.Len()) |
| { |
| maName = rString; |
| } |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| |
| XColorListSharedPtr XPropertyListFactory::CreateSharedXColorList( const String& rPath ) |
| { |
| return XColorListSharedPtr(new XColorList(rPath)); |
| } |
| |
| XLineEndListSharedPtr XPropertyListFactory::CreateSharedXLineEndList( const String& rPath ) |
| { |
| return XLineEndListSharedPtr(new XLineEndList(rPath)); |
| } |
| |
| XDashListSharedPtr XPropertyListFactory::CreateSharedXDashList( const String& rPath ) |
| { |
| return XDashListSharedPtr(new XDashList(rPath)); |
| } |
| |
| XHatchListSharedPtr XPropertyListFactory::CreateSharedXHatchList( const String& rPath ) |
| { |
| return XHatchListSharedPtr(new XHatchList(rPath)); |
| } |
| |
| XGradientListSharedPtr XPropertyListFactory::CreateSharedXGradientList( const String& rPath ) |
| { |
| return XGradientListSharedPtr(new XGradientList(rPath)); |
| } |
| |
| XBitmapListSharedPtr XPropertyListFactory::CreateSharedXBitmapList( const String& rPath ) |
| { |
| return XBitmapListSharedPtr(new XBitmapList(rPath)); |
| } |
| |
| ////////////////////////////////////////////////////////////////////////////// |
| // eof |