Hello!I'm chensuchun.I need some help and advices. When a table is formated 
with thick lines around the table and thin lines insidethe table, if you ask 
OO.o to add a row at the end of the table it's createdwith a thick line between 
it and the rest of the table instead of respecting the"thick lines around the 
table, thin lines inside" rule I want to fix it as "thick lines around the 
table ,thin lines inside"after insert rows at the end of the table,but I find 
it is difficult to get SvxBoxInfoItem of the table in function BOOL 
lcl_CopyCol( const _FndBox*& rpFndBox, void* pPara ).so I modify the 
insert-operation source code (in file sw/source/ui/shells/tabsh.cxx) as 
following:case FN_TABLE_INSERT_COL:
case FN_TABLE_INSERT_ROW:        
{            
     ///-->get the SvxBoxInfoItem of the table before insert            
     SfxItemSet aCoreSet( GetPool(), aUITableAttrRange);            
     ::lcl_TableParamToItemSet( aCoreSet, rSh );            
     SvxBoxInfoItem aBoxInfo((const SvxBoxInfoItem&) 
                                    aCoreSet.Get(SID_ATTR_BORDER_INNER));       
     
     ///<--End     ///do the insert operation            
     BOOL bColumn = rReq.GetSlot() == FN_TABLE_INSERT_COL;            
     USHORT nCount = 0;            
     BOOL bAfter = TRUE;            
     if (pItem)            
     {                
        nCount = ((const SfxInt16Item* )pItem)->GetValue();                
        if(SFX_ITEM_SET == pArgs->GetItemState(FN_PARAM_INSERT_AFTER, TRUE, 
                                               &pItem))                    
        bAfter = ((const SfxBoolItem* )pItem)->GetValue();            
      }            
      else if( !rReq.IsAPI() )                
           ++nCount;            
      if( nCount )            
      {                
          if( bColumn )                    
             rSh.InsertCol( nCount, bAfter );                
          else if ( !rSh.IsInRepeatedHeadline() )                    
             rSh.InsertRow( nCount, bAfter );                
          bCallDone = TRUE;          ///-->after inserting,reset the table 
border according to the SvxBoxInfoItem          ///   get before             
          SfxItemSet aSet( GetPool(), RES_BOX, RES_BOX,                         
   
                           SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,        
                 
                           0);            
          aSet.Put( aBoxInfo );            
          ItemSetToTableParam( aSet, rSh );            
          ///<--                
          break;            
         }            
        nSlot = bColumn ? FN_TABLE_INSERT_COL_DLG : FN_TABLE_INSERT_ROW_DLG;    
    
} Is this modification right,or it would cause other problem or affect other 
operation?How to solve this problem if the modification is wrong ? Thanks for 
help or advices!Kind regards!chensuchun

-------------------------------------------------------------------
惠普商用台式机dc5750,高性能,低功耗!( 
http://ad4.sina.com.cn/sina/limeng3/mail_zhuiyu/2006/mail_zhuiyu_20061225.html )

===================================================================
注册新浪2G免费邮箱( http://mail.sina.com.cn/chooseMode.html

Reply via email to