diff -cNr old/svx/source/dialog/cuitabline.hxx new/svx/source/dialog/cuitabline.hxx *** old/svx/source/dialog/cuitabline.hxx Thu Jun 28 00:59:16 2007 --- new/svx/source/dialog/cuitabline.hxx Wed Oct 24 16:11:56 2007 *************** *** 147,152 **** --- 147,153 ---- //#58425# Symbole auf einer Linie (z.B. StarChart) -> SdrObjList* pSymbolList; //a list of symbols to be shown in menu. Symbol at position SID_ATTR_SYMBOLTYPE is to be shown in preview. The list position is to be used cyclic. bool bNewSize; + bool bFirstSize; Graphic aAutoSymbolGraphic; //a graphic to be displayed in the preview in case that an automatic symbol is choosen long nNumMenuGalleryItems; long nSymbolType; diff -cNr old/svx/source/dialog/tpline.cxx new/svx/source/dialog/tpline.cxx *** old/svx/source/dialog/tpline.cxx Fri Jul 6 15:34:32 2007 --- new/svx/source/dialog/tpline.cxx Wed Oct 24 16:16:14 2007 *************** *** 206,211 **** --- 206,212 ---- pSymbolList(NULL), bNewSize(false), + bFirstSize(false), nNumMenuGalleryItems(0), nSymbolType(SVX_SYMBOLTYPE_UNKNOWN), //unbekannt bzw. unchanged pSymbolAttr(NULL), *************** *** 1807,1813 **** const Graphic* pGraphic = 0; Graphic aGraphic; String aGrfName; ! BOOL bDontSetSize=FALSE; BOOL bEnable=TRUE; if(nItemId >= MN_GALLERY_ENTRY) --- 1808,1814 ---- const Graphic* pGraphic = 0; Graphic aGraphic; String aGrfName; ! BOOL bResetSize = FALSE; BOOL bEnable=TRUE; if(nItemId >= MN_GALLERY_ENTRY) *************** *** 1820,1830 **** --- 1821,1834 ---- aStr.Append( ByteString::CreateFromInt32( nSymbolType ) ); SVX_TRACE(213, aStr); #endif + bNewSize = true; } else { SVX_TRACE(213,ByteString( "SVX_SYMBOLTYPE_BRUSHITEM") ); nSymbolType=SVX_SYMBOLTYPE_BRUSHITEM; + bResetSize = TRUE; + bFirstSize = true; } SvxBmpItemInfo* pInfo = (SvxBmpItemInfo*)aGrfBrushItems.GetObject(nItemId - MN_GALLERY_ENTRY); pGraphic = pInfo->pBrushItem->GetGraphic(); *************** *** 1834,1840 **** case MN_SYMBOLS_AUTO: { pGraphic=&aAutoSymbolGraphic; ! aSymbolSize=aAutoSymbolGraphic.GetPrefSize(); #if OSL_DEBUG_LEVEL > 1 ByteString aStr( "AutoSymbolSize is "); aStr.Append( ByteString::CreateFromInt32( aSymbolSize.Width() ) ); --- 1838,1844 ---- case MN_SYMBOLS_AUTO: { pGraphic=&aAutoSymbolGraphic; ! aAutoSymbolGraphic.SetPrefSize( Size(253,253) ); #if OSL_DEBUG_LEVEL > 1 ByteString aStr( "AutoSymbolSize is "); aStr.Append( ByteString::CreateFromInt32( aSymbolSize.Width() ) ); *************** *** 1842,1849 **** aStr.Append( ByteString::CreateFromInt32( aSymbolSize.Height() ) ); SVX_TRACE(213, aStr ); #endif ! bDontSetSize=TRUE; ! bNewSize=false; //fr�here �nderungen gelten nicht in diesem Fall! nSymbolType=SVX_SYMBOLTYPE_AUTO; } break; --- 1846,1852 ---- aStr.Append( ByteString::CreateFromInt32( aSymbolSize.Height() ) ); SVX_TRACE(213, aStr ); #endif ! bNewSize = true; //fr�here �nderungen gelten nicht in diesem Fall! nSymbolType=SVX_SYMBOLTYPE_AUTO; } break; *************** *** 1869,1875 **** --- 1872,1882 ---- aGrfName = aGrfDlg.GetPath(); if( !aGrfDlg.GetGraphic(aGraphic) ) pGraphic = &aGraphic; + bResetSize = TRUE; + bFirstSize = true; } + else + return 0; } break; } *************** *** 1879,1885 **** Size aSize = SvxNumberFormat::GetGraphicSizeMM100(pGraphic); aSize = OutputDevice::LogicToLogic(aSize, MAP_100TH_MM, (MapUnit)ePoolUnit); aSymbolGraphic=*pGraphic; ! if(!bDontSetSize) { aSymbolSize=aSize; #if OSL_DEBUG_LEVEL > 1 --- 1886,1892 ---- Size aSize = SvxNumberFormat::GetGraphicSizeMM100(pGraphic); aSize = OutputDevice::LogicToLogic(aSize, MAP_100TH_MM, (MapUnit)ePoolUnit); aSymbolGraphic=*pGraphic; ! if( bResetSize ) { aSymbolSize=aSize; #if OSL_DEBUG_LEVEL > 1 *************** *** 1889,1902 **** aStr.Append( ByteString::CreateFromInt32( aSize.Height() ) ); SVX_TRACE(213, aStr ); #endif } aCtlPreview.SetSymbol(&aSymbolGraphic,aSymbolSize); } else { aSymbolGraphic=Graphic(); SVX_TRACE(213, ByteString( "setting empty graphic" ) ); ! if(!bDontSetSize) { SVX_TRACE(213, ByteString( "Size set to 0,0" ) ); aSymbolSize=Size(0,0); --- 1896,1927 ---- aStr.Append( ByteString::CreateFromInt32( aSize.Height() ) ); SVX_TRACE(213, aStr ); #endif + bNewSize = false; } + else if( bNewSize && bFirstSize ) + { + if( aSymbolSize.Width() != aSymbolSize.Height() ) + { + aSize.setWidth( (double)( aSymbolSize.Width() + aSymbolSize.Height() )/2 ); + aSize.setHeight( (double)( aSymbolSize.Width() + aSymbolSize.Height() )/2 ); + aSymbolSize = aSize; + #if OSL_DEBUG_LEVEL > 1 + ByteString aStr( "SymbolSize changed to " ); + aStr.Append( ByteString::CreateFromInt32( aSize.Width() ) ); + aStr.Append( ' ' ); + aStr.Append( ByteString::CreateFromInt32( aSize.Height() ) ); + SVX_TRACE(213, aStr ); + #endif + bFirstSize = false; + } + } aCtlPreview.SetSymbol(&aSymbolGraphic,aSymbolSize); } else { aSymbolGraphic=Graphic(); SVX_TRACE(213, ByteString( "setting empty graphic" ) ); ! if( bResetSize ) { SVX_TRACE(213, ByteString( "Size set to 0,0" ) ); aSymbolSize=Size(0,0);