LCOV - code coverage report
Current view: top level - sw/source/ui/fmtui - tmpdlg.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 248 0.0 %
Date: 2012-08-25 Functions: 0 8 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #include <hintids.hxx>
      30                 :            : 
      31                 :            : #include <vcl/msgbox.hxx>
      32                 :            : #include <sfx2/viewfrm.hxx>
      33                 :            : #include <svx/hdft.hxx>
      34                 :            : #include <editeng/flstitem.hxx>
      35                 :            : #include <svx/htmlmode.hxx>
      36                 :            : #include <svtools/htmlcfg.hxx>
      37                 :            : #include <svl/cjkoptions.hxx>
      38                 :            : #include <numpara.hxx>
      39                 :            : #include <fmtclds.hxx>
      40                 :            : #include <swtypes.hxx>
      41                 :            : #include <swmodule.hxx>
      42                 :            : #include <wrtsh.hxx>
      43                 :            : #include <view.hxx>
      44                 :            : #include <wdocsh.hxx>
      45                 :            : #include <viewopt.hxx>
      46                 :            : #include <pgfnote.hxx>
      47                 :            : #include <pggrid.hxx>
      48                 :            : #include <tmpdlg.hxx>       // the dialog
      49                 :            : #include <column.hxx>       // columns
      50                 :            : #include <drpcps.hxx>       // initials
      51                 :            : #include <frmpage.hxx>      // frames
      52                 :            : #include <wrap.hxx>         // frames
      53                 :            : #include <frmmgr.hxx>       // frames
      54                 :            : #include <ccoll.hxx>        // CondColl
      55                 :            : #include <swuiccoll.hxx>
      56                 :            : #include <docstyle.hxx>     //
      57                 :            : #include <fmtcol.hxx>       //
      58                 :            : #include <macassgn.hxx>     //
      59                 :            : #include <poolfmt.hxx>
      60                 :            : #include <uitool.hxx>
      61                 :            : #include <shellres.hxx>
      62                 :            : #include <swabstdlg.hxx>
      63                 :            : 
      64                 :            : #include <cmdid.h>
      65                 :            : #include <helpid.h>
      66                 :            : #include <globals.hrc>
      67                 :            : #include <fmtui.hrc>
      68                 :            : #include <SwStyleNameMapper.hxx>
      69                 :            : #include <svx/svxids.hrc>
      70                 :            : #include <svl/stritem.hxx>
      71                 :            : #include <svl/aeitem.hxx>
      72                 :            : #include <svl/slstitm.hxx>
      73                 :            : #include <svl/eitem.hxx>
      74                 :            : #include <svl/intitem.hxx>
      75                 :            : #include <svx/svxdlg.hxx>
      76                 :            : #include <svx/dialogs.hrc>
      77                 :            : #include <svx/flagsdef.hxx>
      78                 :            : 
      79                 :            : extern SW_DLLPUBLIC SwWrtShell* GetActiveWrtShell();
      80                 :            : 
      81                 :            : /*--------------------------------------------------------------------
      82                 :            :     Description:    the dialog's carrier
      83                 :            :  --------------------------------------------------------------------*/
      84                 :            : 
      85                 :          0 : SwTemplateDlg::SwTemplateDlg(Window*            pParent,
      86                 :            :                              SfxStyleSheetBase& rBase,
      87                 :            :                              sal_uInt16             nRegion,
      88                 :            :                              sal_uInt16             nPageId,
      89                 :            :                              SwWrtShell*        pActShell,
      90                 :            :                              sal_Bool               bNew ) :
      91                 :            :     SfxStyleDialog( pParent,
      92                 :            :                     SW_RES(DLG_TEMPLATE_BASE + nRegion),
      93                 :            :                     rBase,
      94                 :            :                     sal_False,
      95                 :            :                     0 ),
      96                 :            :     nType( nRegion ),
      97                 :            :     pWrtShell(pActShell),
      98                 :          0 :     bNewStyle(bNew)
      99                 :            : {
     100                 :          0 :     FreeResource();
     101                 :            : 
     102                 :          0 :     nHtmlMode = ::GetHtmlMode(pWrtShell->GetView().GetDocShell());
     103                 :          0 :     SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create();
     104                 :            :     OSL_ENSURE(pFact, "Dialogdiet fail!");
     105                 :            :     // tinker TabPages together
     106                 :          0 :     switch( nRegion )
     107                 :            :     {
     108                 :            :         // character styles
     109                 :            :         case SFX_STYLE_FAMILY_CHAR:
     110                 :            :         {
     111                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");
     112                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) , "GetTabPageRangesFunc fail!");
     113                 :          0 :             AddTabPage(TP_CHAR_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) );
     114                 :            : 
     115                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");
     116                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) , "GetTabPageRangesFunc fail!");
     117                 :          0 :             AddTabPage(TP_CHAR_EXT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) );
     118                 :            : 
     119                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), "GetTabPageCreatorFunc fail!");
     120                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) , "GetTabPageRangesFunc fail!");
     121                 :          0 :             AddTabPage(TP_CHAR_POS, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) );
     122                 :            : 
     123                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), "GetTabPageCreatorFunc fail!");
     124                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) , "GetTabPageRangesFunc fail!");
     125                 :          0 :             AddTabPage(TP_CHAR_TWOLN, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) );
     126                 :            : 
     127                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
     128                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) , "GetTabPageRangesFunc fail!");
     129                 :          0 :             AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
     130                 :            : 
     131                 :          0 :             SvtCJKOptions aCJKOptions;
     132                 :          0 :             if(nHtmlMode & HTMLMODE_ON || !aCJKOptions.IsDoubleLinesEnabled())
     133                 :          0 :                 RemoveTabPage(TP_CHAR_TWOLN);
     134                 :            :         }
     135                 :          0 :         break;
     136                 :            :         // paragraph styles
     137                 :            :         case SFX_STYLE_FAMILY_PARA:
     138                 :            :         {
     139                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_STD_PARAGRAPH), "GetTabPageCreatorFunc fail!");
     140                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc(RID_SVXPAGE_STD_PARAGRAPH), "GetTabPageRangesFunc fail!");
     141                 :          0 :                 AddTabPage( TP_PARA_STD,    pFact->GetTabPageCreatorFunc(RID_SVXPAGE_STD_PARAGRAPH),        pFact->GetTabPageRangesFunc(RID_SVXPAGE_STD_PARAGRAPH) );
     142                 :            : 
     143                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_ALIGN_PARAGRAPH), "GetTabPageCreatorFunc fail!");
     144                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc(RID_SVXPAGE_ALIGN_PARAGRAPH), "GetTabPageRangesFunc fail!");
     145                 :          0 :                 AddTabPage( TP_PARA_ALIGN,  pFact->GetTabPageCreatorFunc(RID_SVXPAGE_ALIGN_PARAGRAPH),      pFact->GetTabPageRangesFunc(RID_SVXPAGE_ALIGN_PARAGRAPH) );
     146                 :            : 
     147                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_EXT_PARAGRAPH), "GetTabPageCreatorFunc fail!");
     148                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc(RID_SVXPAGE_EXT_PARAGRAPH), "GetTabPageRangesFunc fail!");
     149                 :          0 :                 AddTabPage( TP_PARA_EXT,    pFact->GetTabPageCreatorFunc(RID_SVXPAGE_EXT_PARAGRAPH),        pFact->GetTabPageRangesFunc(RID_SVXPAGE_EXT_PARAGRAPH) );
     150                 :            : 
     151                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageCreatorFunc fail!");
     152                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN), "GetTabPageRangesFunc fail!");
     153                 :          0 :                 AddTabPage( TP_PARA_ASIAN,  pFact->GetTabPageCreatorFunc(RID_SVXPAGE_PARA_ASIAN),       pFact->GetTabPageRangesFunc(RID_SVXPAGE_PARA_ASIAN) );
     154                 :            : 
     155                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageCreatorFunc fail!");
     156                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ), "GetTabPageRangesFunc fail!");
     157                 :          0 :                 AddTabPage(TP_CHAR_STD, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_NAME ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_NAME ) );
     158                 :            : 
     159                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageCreatorFunc fail!");
     160                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ), "GetTabPageRangesFunc fail!");
     161                 :          0 :                 AddTabPage(TP_CHAR_EXT, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_EFFECTS ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_EFFECTS ) );
     162                 :            : 
     163                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), "GetTabPageCreatorFunc fail!");
     164                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) , "GetTabPageRangesFunc fail!");
     165                 :          0 :                 AddTabPage(TP_CHAR_POS, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_POSITION ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_POSITION ) );
     166                 :            : 
     167                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), "GetTabPageCreatorFunc fail!");
     168                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) , "GetTabPageRangesFunc fail!");
     169                 :          0 :                 AddTabPage(TP_CHAR_TWOLN, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_CHAR_TWOLINES ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_CHAR_TWOLINES ) );
     170                 :            : 
     171                 :            : 
     172                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc(RID_SVXPAGE_TABULATOR), "GetTabPageCreatorFunc fail!");
     173                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc(RID_SVXPAGE_TABULATOR), "GetTabPageRangesFunc fail!");
     174                 :          0 :             AddTabPage( TP_TABULATOR,   pFact->GetTabPageCreatorFunc(RID_SVXPAGE_TABULATOR),        pFact->GetTabPageRangesFunc(RID_SVXPAGE_TABULATOR) );
     175                 :            : 
     176                 :            : 
     177                 :            :             AddTabPage(TP_NUMPARA,   SwParagraphNumTabPage::Create,
     178                 :          0 :                                     SwParagraphNumTabPage::GetRanges);
     179                 :            :             AddTabPage(TP_DROPCAPS,     SwDropCapsPage::Create,
     180                 :          0 :                                         SwDropCapsPage::GetRanges );
     181                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
     182                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
     183                 :          0 :             AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
     184                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
     185                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
     186                 :          0 :             AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
     187                 :            : 
     188                 :            :             AddTabPage( TP_CONDCOLL,    SwCondCollPage::Create,
     189                 :          0 :                                         SwCondCollPage::GetRanges );
     190                 :          0 :             if( (!bNewStyle && RES_CONDTXTFMTCOLL != ((SwDocStyleSheet&)rBase).GetCollection()->Which())
     191                 :            :             || nHtmlMode & HTMLMODE_ON )
     192                 :          0 :                 RemoveTabPage(TP_CONDCOLL);
     193                 :            : 
     194                 :          0 :             SvtCJKOptions aCJKOptions;
     195                 :          0 :             if(nHtmlMode & HTMLMODE_ON)
     196                 :            :             {
     197                 :          0 :                 SvxHtmlOptions& rHtmlOpt = SvxHtmlOptions::Get();
     198                 :          0 :                 if (!rHtmlOpt.IsPrintLayoutExtension())
     199                 :          0 :                     RemoveTabPage(TP_PARA_EXT);
     200                 :          0 :                 RemoveTabPage(TP_PARA_ASIAN);
     201                 :          0 :                 RemoveTabPage(TP_TABULATOR);
     202                 :          0 :                 RemoveTabPage(TP_NUMPARA);
     203                 :          0 :                 RemoveTabPage(TP_CHAR_TWOLN);
     204                 :          0 :                 if(!(nHtmlMode & HTMLMODE_FULL_STYLES))
     205                 :            :                 {
     206                 :          0 :                     RemoveTabPage(TP_BACKGROUND);
     207                 :          0 :                     RemoveTabPage(TP_DROPCAPS);
     208                 :            :                 }
     209                 :            :             }
     210                 :            :             else
     211                 :            :             {
     212                 :          0 :                 if(!aCJKOptions.IsAsianTypographyEnabled())
     213                 :          0 :                     RemoveTabPage(TP_PARA_ASIAN);
     214                 :          0 :                 if(!aCJKOptions.IsDoubleLinesEnabled())
     215                 :          0 :                     RemoveTabPage(TP_CHAR_TWOLN);
     216                 :          0 :             }
     217                 :            :         }
     218                 :          0 :         break;
     219                 :            :         // frame styles
     220                 :            :         case SFX_STYLE_FAMILY_FRAME:
     221                 :            :         {
     222                 :            :             AddTabPage(TP_FRM_STD,      SwFrmPage::Create,
     223                 :          0 :                                         SwFrmPage::GetRanges );
     224                 :            :             AddTabPage(TP_FRM_ADD,      SwFrmAddPage::Create,
     225                 :          0 :                                         SwFrmAddPage::GetRanges );
     226                 :            :             AddTabPage(TP_FRM_WRAP,     SwWrapTabPage::Create,
     227                 :          0 :                                         SwWrapTabPage::GetRanges );
     228                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
     229                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
     230                 :          0 :             AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
     231                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
     232                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
     233                 :          0 :             AddTabPage(TP_BORDER, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
     234                 :            : 
     235                 :            :             AddTabPage(TP_COLUMN,       SwColumnPage::Create,
     236                 :          0 :                                         SwColumnPage::GetRanges );
     237                 :            : 
     238                 :          0 :             AddTabPage( TP_MACRO_ASSIGN, pFact->GetTabPageCreatorFunc(RID_SVXPAGE_MACROASSIGN), 0);
     239                 :            : 
     240                 :          0 :         break;
     241                 :            :         }
     242                 :            :         // page styles
     243                 :            :         case SFX_STYLE_FAMILY_PAGE:
     244                 :            :         {
     245                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageCreatorFunc fail!");
     246                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ), "GetTabPageRangesFunc fail!");
     247                 :          0 :             AddTabPage(TP_BACKGROUND, pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BACKGROUND ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BACKGROUND ) );
     248                 :            :             AddTabPage(TP_HEADER_PAGE,      String(SW_RES(STR_PAGE_HEADER)),
     249                 :            :                                             SvxHeaderPage::Create,
     250                 :          0 :                                             SvxHeaderPage::GetRanges );
     251                 :            :             AddTabPage(TP_FOOTER_PAGE,      String(SW_RES(STR_PAGE_FOOTER)),
     252                 :            :                                             SvxFooterPage::Create,
     253                 :          0 :                                             SvxFooterPage::GetRanges );
     254                 :          0 :             if(nPageId)
     255                 :          0 :                 SetCurPageId(nPageId);
     256                 :            : 
     257                 :            :             OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ), "GetTabPageCreatorFunc fail!");
     258                 :            :             OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ), "GetTabPageRangesFunc fail!");
     259                 :            :             AddTabPage(TP_PAGE_STD,         String(SW_RES(STR_PAGE_STD)),
     260                 :          0 :                                             pFact->GetTabPageCreatorFunc( RID_SVXPAGE_PAGE ),
     261                 :          0 :                                             pFact->GetTabPageRangesFunc( RID_SVXPAGE_PAGE ),
     262                 :            :                                             sal_False,
     263                 :          0 :                                             1 ); // after the manage-page
     264                 :          0 :             if(!pActShell || 0 == ::GetHtmlMode(pWrtShell->GetView().GetDocShell()))
     265                 :            :             {
     266                 :            :                 OSL_ENSURE(pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), "GetTabPageCreatorFunc fail!");
     267                 :            :                 OSL_ENSURE(pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ), "GetTabPageRangesFunc fail!");
     268                 :            :                 AddTabPage(TP_BORDER,           String(SW_RES(STR_PAGE_BORDER)),
     269                 :          0 :                                 pFact->GetTabPageCreatorFunc( RID_SVXPAGE_BORDER ), pFact->GetTabPageRangesFunc( RID_SVXPAGE_BORDER ) );
     270                 :            :                 AddTabPage(TP_COLUMN,           String(SW_RES(STR_PAGE_COLUMN)),
     271                 :            :                                                 SwColumnPage::Create,
     272                 :          0 :                                                 SwColumnPage::GetRanges );
     273                 :            :                 AddTabPage(TP_FOOTNOTE_PAGE,    String(SW_RES(STR_PAGE_FOOTNOTE)),
     274                 :            :                                                 SwFootNotePage::Create,
     275                 :          0 :                                                 SwFootNotePage::GetRanges );
     276                 :            :                 AddTabPage(TP_TEXTGRID_PAGE,    String(SW_RES(STR_PAGE_TEXTGRID)),
     277                 :            :                                                 SwTextGridPage::Create,
     278                 :          0 :                                                 SwTextGridPage::GetRanges );
     279                 :          0 :                 SvtCJKOptions aCJKOptions;
     280                 :          0 :                 if(!aCJKOptions.IsAsianTypographyEnabled())
     281                 :          0 :                     RemoveTabPage(TP_TEXTGRID_PAGE);
     282                 :            :             }
     283                 :            : 
     284                 :            : 
     285                 :            :         }
     286                 :          0 :         break;
     287                 :            :         // numbering styles
     288                 :            :         case SFX_STYLE_FAMILY_PSEUDO:
     289                 :            :         {
     290                 :          0 :             AddTabPage( RID_SVXPAGE_PICK_SINGLE_NUM );
     291                 :          0 :             AddTabPage( RID_SVXPAGE_PICK_BULLET );
     292                 :          0 :             AddTabPage( RID_SVXPAGE_PICK_NUM );
     293                 :          0 :             AddTabPage( RID_SVXPAGE_PICK_BMP);
     294                 :          0 :             AddTabPage( RID_SVXPAGE_NUM_OPTIONS );
     295                 :          0 :             AddTabPage( RID_SVXPAGE_NUM_POSITION );
     296                 :            : 
     297                 :            :         }
     298                 :          0 :         break;
     299                 :            : 
     300                 :            :         default:
     301                 :            :             OSL_ENSURE(!this, "wrong family");
     302                 :            : 
     303                 :            :     }
     304                 :          0 :     EnableApplyButton( true );
     305                 :          0 :     SetApplyHandler( LINK(this, SwTemplateDlg, ApplyHdl ) );
     306                 :          0 : }
     307                 :            : 
     308                 :          0 : SwTemplateDlg::~SwTemplateDlg()
     309                 :            : {
     310                 :          0 : }
     311                 :            : 
     312                 :          0 : IMPL_LINK( SwTemplateDlg, ApplyHdl, void*, pVoid )
     313                 :            : {
     314                 :            :     (void)pVoid; //unused
     315                 :          0 :     if ( OK_Impl() )
     316                 :            :     {
     317                 :          0 :         Ok();
     318                 :          0 :         EndDialog( RET_APPLY_TEMPLATE );
     319                 :            :     }
     320                 :          0 :     return 0;
     321                 :            : }
     322                 :            : 
     323                 :          0 : short SwTemplateDlg::Ok()
     324                 :            : {
     325                 :          0 :     short nRet = SfxTabDialog::Ok();
     326                 :          0 :     if( RET_OK == nRet )
     327                 :            :     {
     328                 :            :         const SfxPoolItem *pOutItem, *pExItem;
     329                 :          0 :         if( SFX_ITEM_SET == pExampleSet->GetItemState(
     330                 :          0 :             SID_ATTR_NUMBERING_RULE, sal_False, &pExItem ) &&
     331                 :          0 :             ( !GetOutputItemSet() ||
     332                 :            :             SFX_ITEM_SET != GetOutputItemSet()->GetItemState(
     333                 :          0 :             SID_ATTR_NUMBERING_RULE, sal_False, &pOutItem ) ||
     334                 :          0 :             *pExItem != *pOutItem ))
     335                 :            :         {
     336                 :          0 :             if( GetOutputItemSet() )
     337                 :          0 :                 ((SfxItemSet*)GetOutputItemSet())->Put( *pExItem );
     338                 :            :             else
     339                 :          0 :                 nRet = RET_CANCEL;
     340                 :            :         }
     341                 :            :     }
     342                 :            :     else
     343                 :            :         //JP 09.01.98 Bug #46446#:
     344                 :            :         // that's the Ok-Handler, so OK has to be default!
     345                 :          0 :         nRet = RET_OK;
     346                 :          0 :     return nRet;
     347                 :            : }
     348                 :            : 
     349                 :          0 : const SfxItemSet* SwTemplateDlg::GetRefreshedSet()
     350                 :            : {
     351                 :          0 :     SfxItemSet* pInSet = GetInputSetImpl();
     352                 :          0 :     pInSet->ClearItem();
     353                 :          0 :     pInSet->SetParent( &GetStyleSheet().GetItemSet() );
     354                 :          0 :     return pInSet;
     355                 :            : }
     356                 :            : 
     357                 :          0 : void SwTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
     358                 :            : {
     359                 :            :     // set style's and metric's names
     360                 :          0 :     String sNumCharFmt, sBulletCharFmt;
     361                 :          0 :     SwStyleNameMapper::FillUIName( RES_POOLCHR_NUM_LEVEL, sNumCharFmt);
     362                 :          0 :     SwStyleNameMapper::FillUIName( RES_POOLCHR_BUL_LEVEL, sBulletCharFmt);
     363                 :          0 :     SfxAllItemSet aSet(*(GetInputSetImpl()->GetPool()));
     364                 :            : 
     365                 :          0 :     switch( nId )
     366                 :            :     {
     367                 :            :         case TP_CHAR_STD:
     368                 :            :             {
     369                 :            :                 OSL_ENSURE(::GetActiveView(), "no active view");
     370                 :            : 
     371                 :            :                 SvxFontListItem aFontListItem( *( (SvxFontListItem*)::GetActiveView()->
     372                 :          0 :                     GetDocShell()->GetItem( SID_ATTR_CHAR_FONTLIST ) ) );
     373                 :            : 
     374                 :          0 :                 aSet.Put (SvxFontListItem( aFontListItem.GetFontList(), SID_ATTR_CHAR_FONTLIST));
     375                 :          0 :                 sal_uInt32 nFlags = 0;
     376                 :          0 :                 if(rPage.GetItemSet().GetParent() && 0 == (nHtmlMode & HTMLMODE_ON ))
     377                 :          0 :                     nFlags = SVX_RELATIVE_MODE;
     378                 :          0 :                 if( SFX_STYLE_FAMILY_CHAR == nType )
     379                 :          0 :                     nFlags = nFlags|SVX_PREVIEW_CHARACTER;
     380                 :          0 :                 aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlags));
     381                 :          0 :                 rPage.PageCreated(aSet);
     382                 :            :             }
     383                 :          0 :             break;
     384                 :            : 
     385                 :            :         case TP_CHAR_EXT:
     386                 :            :             {
     387                 :          0 :             sal_uInt32 nFlags = SVX_ENABLE_FLASH;
     388                 :          0 :             if( SFX_STYLE_FAMILY_CHAR == nType )
     389                 :          0 :                 nFlags = nFlags|SVX_PREVIEW_CHARACTER;
     390                 :          0 :             aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlags));
     391                 :          0 :             rPage.PageCreated(aSet);
     392                 :            :             }
     393                 :          0 :             break;
     394                 :            : 
     395                 :            :         case TP_CHAR_POS:
     396                 :          0 :             if( SFX_STYLE_FAMILY_CHAR == nType )
     397                 :            :             {
     398                 :          0 :                 aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_PREVIEW_CHARACTER));
     399                 :          0 :                 rPage.PageCreated(aSet);
     400                 :            :             }
     401                 :          0 :         break;
     402                 :            : 
     403                 :            :         case TP_CHAR_TWOLN:
     404                 :          0 :             if( SFX_STYLE_FAMILY_CHAR == nType )
     405                 :            :             {
     406                 :          0 :                 aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, SVX_PREVIEW_CHARACTER));
     407                 :          0 :                 rPage.PageCreated(aSet);
     408                 :            :             }
     409                 :          0 :         break;
     410                 :            : 
     411                 :            :         case TP_PARA_STD:
     412                 :            :             {
     413                 :          0 :                 if( rPage.GetItemSet().GetParent() )
     414                 :            :                 {
     415                 :          0 :                     aSet.Put(SfxUInt32Item(SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST,MM50/10));
     416                 :          0 :                     aSet.Put(SfxUInt32Item(SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET,0x000F));
     417                 :          0 :                     rPage.PageCreated(aSet);
     418                 :            :                 }
     419                 :            : 
     420                 :            :             }
     421                 :          0 :             break;
     422                 :            :         case TP_NUMPARA:
     423                 :            :             {
     424                 :            :                 //-->#outlinelevel added by zhaojianwei
     425                 :            :                 //  handle if the current paragraph style is assigned to a list level of outline style,
     426                 :          0 :                 SwTxtFmtColl* pTmpColl = pWrtShell->FindTxtFmtCollByName( GetStyleSheet().GetName() );
     427                 :          0 :                 if( pTmpColl && pTmpColl->IsAssignedToListLevelOfOutlineStyle() )
     428                 :            :                 {
     429                 :          0 :                     ((SwParagraphNumTabPage&)rPage).DisableOutline() ;
     430                 :          0 :                     ((SwParagraphNumTabPage&)rPage).DisableNumbering();
     431                 :            :                 }//<-end
     432                 :          0 :                 ListBox & rBox = ((SwParagraphNumTabPage&)rPage).GetStyleBox();
     433                 :          0 :                 SfxStyleSheetBasePool* pPool = pWrtShell->GetView().GetDocShell()->GetStyleSheetPool();
     434                 :          0 :                 pPool->SetSearchMask(SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
     435                 :          0 :                 const SfxStyleSheetBase* pBase = pPool->First();
     436                 :          0 :                 std::set<String> aNames;
     437                 :          0 :                 while(pBase)
     438                 :            :                 {
     439                 :          0 :                     aNames.insert(pBase->GetName());
     440                 :          0 :                     pBase = pPool->Next();
     441                 :            :                 }
     442                 :          0 :                 for(std::set<String>::const_iterator it = aNames.begin(); it != aNames.end(); ++it)
     443                 :          0 :                     rBox.InsertEntry(*it);
     444                 :            :         }
     445                 :          0 :         break;
     446                 :            :         case TP_PARA_ALIGN:
     447                 :            :             {
     448                 :          0 :                 aSet.Put(SfxBoolItem(SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT,sal_True));
     449                 :          0 :                 rPage.PageCreated(aSet);
     450                 :            :             }
     451                 :          0 :             break;
     452                 :            : 
     453                 :            :         case TP_FRM_STD:
     454                 :          0 :             ((SwFrmPage&)rPage).SetNewFrame( sal_True );
     455                 :          0 :             ((SwFrmPage&)rPage).SetFormatUsed( sal_True );
     456                 :          0 :             break;
     457                 :            : 
     458                 :            :         case TP_FRM_ADD:
     459                 :          0 :             ((SwFrmAddPage&)rPage).SetFormatUsed(sal_True);
     460                 :          0 :             ((SwFrmAddPage&)rPage).SetNewFrame(sal_True);
     461                 :          0 :             break;
     462                 :            : 
     463                 :            :         case TP_FRM_WRAP:
     464                 :          0 :             ((SwWrapTabPage&)rPage).SetFormatUsed( sal_True, sal_False );
     465                 :          0 :             break;
     466                 :            : 
     467                 :            :         case TP_COLUMN:
     468                 :          0 :             if( nType == SFX_STYLE_FAMILY_FRAME )
     469                 :          0 :                 ((SwColumnPage&)rPage).SetFrmMode(sal_True);
     470                 :          0 :             ((SwColumnPage&)rPage).SetFormatUsed( sal_True );
     471                 :          0 :             break;
     472                 :            : 
     473                 :            :         case TP_BACKGROUND:
     474                 :            :         {
     475                 :          0 :             sal_Int32 nFlagType = 0;
     476                 :          0 :             if( SFX_STYLE_FAMILY_PARA == nType )
     477                 :          0 :                 nFlagType |= SVX_SHOW_PARACTL;
     478                 :          0 :             if( SFX_STYLE_FAMILY_CHAR != nType )
     479                 :          0 :                 nFlagType |= SVX_SHOW_SELECTOR;
     480                 :          0 :             if( SFX_STYLE_FAMILY_FRAME == nType )
     481                 :          0 :                 nFlagType |= SVX_ENABLE_TRANSPARENCY;
     482                 :          0 :             aSet.Put (SfxUInt32Item(SID_FLAG_TYPE, nFlagType));
     483                 :          0 :             rPage.PageCreated(aSet);
     484                 :            :         }
     485                 :          0 :         break;
     486                 :            :         case TP_CONDCOLL:
     487                 :            :             ((SwCondCollPage&)rPage).SetCollection(
     488                 :          0 :                 ((SwDocStyleSheet&)GetStyleSheet()).GetCollection(), bNewStyle );
     489                 :          0 :             break;
     490                 :            : 
     491                 :            :         case TP_PAGE_STD:
     492                 :          0 :             if(0 == (nHtmlMode & HTMLMODE_ON ))
     493                 :            :             {
     494                 :          0 :                 std::vector<String> aList;
     495                 :          0 :                 String aNew;
     496                 :          0 :                 SwStyleNameMapper::FillUIName( RES_POOLCOLL_TEXT, aNew );
     497                 :          0 :                 aList.push_back( aNew );
     498                 :          0 :                 if( pWrtShell )
     499                 :            :                 {
     500                 :            :                     SfxStyleSheetBasePool* pStyleSheetPool = pWrtShell->
     501                 :          0 :                                 GetView().GetDocShell()->GetStyleSheetPool();
     502                 :          0 :                     pStyleSheetPool->SetSearchMask(SFX_STYLE_FAMILY_PARA);
     503                 :          0 :                     SfxStyleSheetBase *pFirstStyle = pStyleSheetPool->First();
     504                 :          0 :                     while(pFirstStyle)
     505                 :            :                     {
     506                 :          0 :                         aList.push_back( pFirstStyle->GetName() );
     507                 :          0 :                         pFirstStyle = pStyleSheetPool->Next();
     508                 :            :                     }
     509                 :            :                 }
     510                 :          0 :                 aSet.Put (SfxStringListItem(SID_COLLECT_LIST, &aList));
     511                 :          0 :                 rPage.PageCreated(aSet);
     512                 :            :             }
     513                 :          0 :             break;
     514                 :            : 
     515                 :            :         case TP_MACRO_ASSIGN:
     516                 :            :         {
     517                 :          0 :             SfxAllItemSet aNewSet(*aSet.GetPool());
     518                 :          0 :             aNewSet.Put( SwMacroAssignDlg::AddEvents(MACASSGN_ALLFRM) );
     519                 :          0 :             if ( pWrtShell )
     520                 :          0 :                 rPage.SetFrame( pWrtShell->GetView().GetViewFrame()->GetFrame().GetFrameInterface() );
     521                 :          0 :             rPage.PageCreated(aNewSet);
     522                 :          0 :             break;
     523                 :            :         }
     524                 :            : 
     525                 :            :         case RID_SVXPAGE_PICK_NUM:
     526                 :            :             {
     527                 :          0 :                 aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
     528                 :          0 :                 aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
     529                 :          0 :                 rPage.PageCreated(aSet);
     530                 :            :             }
     531                 :          0 :         break;
     532                 :            :         case RID_SVXPAGE_NUM_OPTIONS:
     533                 :            :         {
     534                 :            : 
     535                 :          0 :             aSet.Put (SfxStringItem(SID_NUM_CHAR_FMT,sNumCharFmt));
     536                 :          0 :             aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
     537                 :            :             // collect character styles
     538                 :          0 :             ListBox rCharFmtLB(this);
     539                 :          0 :             rCharFmtLB.Clear();
     540                 :          0 :             rCharFmtLB.InsertEntry( ViewShell::GetShellRes()->aStrNone );
     541                 :          0 :             SwDocShell* pDocShell = ::GetActiveWrtShell()->GetView().GetDocShell();
     542                 :          0 :             ::FillCharStyleListBox(rCharFmtLB,  pDocShell);
     543                 :            : 
     544                 :          0 :             std::vector<String> aList;
     545                 :          0 :             for(sal_uInt16 j = 0; j < rCharFmtLB.GetEntryCount(); j++)
     546                 :          0 :                  aList.push_back( rCharFmtLB.GetEntry(j) );
     547                 :            : 
     548                 :          0 :             aSet.Put( SfxStringListItem( SID_CHAR_FMT_LIST_BOX,&aList ) ) ;
     549                 :          0 :             FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
     550                 :          0 :             aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric)));
     551                 :          0 :             rPage.PageCreated(aSet);
     552                 :            :         }
     553                 :          0 :         break;
     554                 :            :         case RID_SVXPAGE_NUM_POSITION:
     555                 :            :         {
     556                 :          0 :             SwDocShell* pDocShell = ::GetActiveWrtShell()->GetView().GetDocShell();
     557                 :          0 :             FieldUnit eMetric = ::GetDfltMetric(0 != PTR_CAST(SwWebDocShell, pDocShell));
     558                 :            : 
     559                 :          0 :             aSet.Put ( SfxAllEnumItem(SID_METRIC_ITEM, static_cast< sal_uInt16 >(eMetric)));
     560                 :          0 :             rPage.PageCreated(aSet);
     561                 :            :         }
     562                 :          0 :         break;
     563                 :            :         case  RID_SVXPAGE_PICK_BULLET :
     564                 :            :             {
     565                 :          0 :                 aSet.Put (SfxStringItem(SID_BULLET_CHAR_FMT,sBulletCharFmt));
     566                 :          0 :                 rPage.PageCreated(aSet);
     567                 :            :             }
     568                 :          0 :         break;
     569                 :            :         case  TP_HEADER_PAGE:
     570                 :          0 :             if(0 == (nHtmlMode & HTMLMODE_ON ))
     571                 :          0 :                 ((SvxHeaderPage&)rPage).EnableDynamicSpacing();
     572                 :          0 :         break;
     573                 :            :         case  TP_FOOTER_PAGE:
     574                 :          0 :             if(0 == (nHtmlMode & HTMLMODE_ON ))
     575                 :          0 :                 ((SvxFooterPage&)rPage).EnableDynamicSpacing();
     576                 :          0 :         break;
     577                 :            :         case TP_BORDER :
     578                 :          0 :             if( SFX_STYLE_FAMILY_PARA == nType )
     579                 :            :             {
     580                 :          0 :                 aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_PARA));
     581                 :            :             }
     582                 :          0 :             else if( SFX_STYLE_FAMILY_FRAME == nType )
     583                 :            :             {
     584                 :          0 :                 aSet.Put (SfxUInt16Item(SID_SWMODE_TYPE,SW_BORDER_MODE_FRAME));
     585                 :            :             }
     586                 :          0 :             rPage.PageCreated(aSet);
     587                 :            : 
     588                 :          0 :         break;
     589                 :          0 :     }
     590                 :          0 : }
     591                 :            : 
     592                 :            : 
     593                 :            : 
     594                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10