LCOV - code coverage report
Current view: top level - libreoffice/sw/source/ui/inc - swuicnttab.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 19 0.0 %
Date: 2012-12-27 Functions: 0 15 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : #ifndef _SWUI_CNTTAB_HXX
      20             : #define _SWUI_CNTTAB_HXX
      21             : 
      22             : #include <svx/stddlg.hxx>
      23             : 
      24             : #include <vcl/button.hxx>
      25             : 
      26             : #include <vcl/edit.hxx>
      27             : 
      28             : #include <vcl/fixed.hxx>
      29             : 
      30             : #include <vcl/field.hxx>
      31             : #include <vcl/lstbox.hxx>
      32             : #include <sfx2/tabdlg.hxx>
      33             : 
      34             : #include "tox.hxx"
      35             : #include <toxmgr.hxx>
      36             : #include <svx/checklbx.hxx>
      37             : #include <svtools/treelistbox.hxx>
      38             : #include <vcl/menubtn.hxx>
      39             : #include <svx/langbox.hxx>
      40             : #include <cnttab.hxx>
      41             : #include <vector>
      42             : 
      43             : class SwWrtShell;
      44             : class SwTOXMgr;
      45             : namespace com{namespace sun{namespace star{
      46             :     namespace text{
      47             :         class XTextSection;
      48             :         class XDocumentIndex;
      49             :     }
      50             : }}}
      51             : 
      52           0 : struct SwIndexSections_Impl
      53             : {
      54             :     com::sun::star::uno::Reference< com::sun::star::text::XTextSection >    xContainerSection;
      55             :     com::sun::star::uno::Reference< com::sun::star::text::XDocumentIndex >    xDocumentIndex;
      56             : };
      57             : 
      58             : class SwOneExampleFrame;
      59             : 
      60             : struct SwIndexSections_Impl;
      61             : 
      62             : class SwMultiTOXTabDialog : public SfxTabDialog
      63             : {
      64             :     Window                  aExampleContainerWIN;
      65             :     Window                  aExampleWIN;
      66             :     CheckBox                aShowExampleCB;
      67             :     SwTOXMgr*               pMgr;
      68             :     SwWrtShell&             rSh;
      69             : 
      70             :     SwOneExampleFrame*      pExampleFrame;
      71             : 
      72             :     SwTOXDescription**      pDescArr; //
      73             :     SwForm**                pFormArr; //
      74             :     SwIndexSections_Impl**  pxIndexSectionsArr;
      75             : 
      76             :     SwTOXBase*              pParamTOXBase;
      77             : 
      78             :     CurTOXType              eCurrentTOXType;
      79             : 
      80             :     String                  sUserDefinedIndex;
      81             :     sal_uInt16                  nTypeCount;
      82             :     sal_uInt16                  nInitialTOXType;
      83             : 
      84             :     sal_Bool                    bEditTOX;
      85             :     sal_Bool                    bExampleCreated;
      86             :     sal_Bool                    bGlobalFlag;
      87             : 
      88             :     virtual short       Ok();
      89             :     SwTOXDescription*   CreateTOXDescFromTOXBase(const SwTOXBase*pCurTOX);
      90             : 
      91             :     DECL_LINK(CreateExample_Hdl, void* );
      92             :     DECL_LINK(ShowPreviewHdl, CheckBox*);
      93             : 
      94             : public:
      95             :     SwMultiTOXTabDialog(Window* pParent, const SfxItemSet& rSet,
      96             :                         SwWrtShell &rShell,
      97             :                         SwTOXBase* pCurTOX, sal_uInt16 nToxType = USHRT_MAX,
      98             :                         sal_Bool bGlobal = sal_False);
      99             :     ~SwMultiTOXTabDialog();
     100             : 
     101             :     virtual void        PageCreated( sal_uInt16 nId, SfxTabPage &rPage );
     102             : 
     103             :     SwForm*             GetForm(CurTOXType eType);
     104             : 
     105           0 :     CurTOXType          GetCurrentTOXType() const { return eCurrentTOXType;}
     106           0 :     void                SetCurrentTOXType(CurTOXType    eSet)
     107             :                                 {
     108           0 :                                     eCurrentTOXType = eSet;
     109           0 :                                 }
     110             : 
     111             :     void                UpdateExample();
     112           0 :     sal_Bool                IsTOXEditMode() const { return bEditTOX;}
     113             : 
     114           0 :     SwWrtShell&         GetWrtShell() {return rSh;}
     115             : 
     116             :     SwTOXDescription&   GetTOXDescription(CurTOXType eTOXTypes);
     117             :     void                CreateOrUpdateExample(
     118             :                             TOXTypes nTOXIndex, sal_uInt16 nPage = 0, sal_uInt16 nCurLevel = USHRT_MAX);
     119             : 
     120             :     static sal_Bool IsNoNum(SwWrtShell& rSh, const String& rName);
     121             : };
     122             : 
     123             : class IndexEntryResource;
     124             : class IndexEntrySupplierWrapper;
     125             : 
     126             : class SwTOXSelectTabPage : public SfxTabPage
     127             : {
     128             :     FixedLine       aTypeTitleFL;
     129             :     FixedText       aTitleFT;
     130             :     Edit            aTitleED;
     131             :     FixedText       aTypeFT;
     132             :     ListBox         aTypeLB;
     133             :     CheckBox        aReadOnlyCB;
     134             : 
     135             :     FixedLine       aAreaFL;
     136             :     FixedText       aAreaFT;
     137             :     ListBox         aAreaLB;
     138             :     FixedText       aLevelFT;   //content, user
     139             :     NumericField    aLevelNF;   //content, user
     140             : 
     141             :     //content
     142             :     FixedLine       aCreateFromFL;  // content, user, illustration
     143             :     CheckBox        aFromHeadingsCB;
     144             :     CheckBox        aAddStylesCB;
     145             :     PushButton      aAddStylesPB;
     146             :     Point           aAddStylesPosDef;
     147             :     Point           aAddStylesPosUser;
     148             :     //user
     149             :     CheckBox        aFromTablesCB;
     150             :     CheckBox        aFromFramesCB;
     151             :     CheckBox        aFromGraphicsCB;
     152             :     CheckBox        aFromOLECB;
     153             :     CheckBox        aLevelFromChapterCB;
     154             : 
     155             :     //illustration + table
     156             :     RadioButton     aFromCaptionsRB;
     157             :     RadioButton     aFromObjectNamesRB;
     158             : 
     159             :     //illustration and tables
     160             :     FixedText       aCaptionSequenceFT;
     161             :     ListBox         aCaptionSequenceLB;
     162             :     FixedText       aDisplayTypeFT;
     163             :     ListBox         aDisplayTypeLB;
     164             : 
     165             :     //all but illustration and table
     166             :     CheckBox        aTOXMarksCB;
     167             : 
     168             :     //
     169             : 
     170             :     //index only
     171             :     FixedLine       aIdxOptionsFL;
     172             :     CheckBox        aCollectSameCB;
     173             :     CheckBox        aUseFFCB;
     174             :     CheckBox        aUseDashCB;
     175             :     CheckBox        aCaseSensitiveCB;
     176             :     CheckBox        aInitialCapsCB;
     177             :     CheckBox        aKeyAsEntryCB;
     178             :     CheckBox        aFromFileCB;
     179             :     MenuButton      aAutoMarkPB;
     180             : 
     181             :     // object only
     182             :     SwOLENames      aFromNames;
     183             :     SvxCheckListBox aFromObjCLB;
     184             :     FixedLine       aFromObjFL;
     185             : 
     186             :     CheckBox        aSequenceCB;
     187             :     FixedText       aBracketFT;
     188             :     ListBox         aBracketLB;
     189             :     FixedLine       aAuthorityFormatFL;
     190             : 
     191             :     //all
     192             :     FixedLine       aSortOptionsFL;
     193             :     FixedText       aLanguageFT;
     194             :     SvxLanguageBox  aLanguageLB;
     195             :     FixedText       aSortAlgorithmFT;
     196             :     ListBox         aSortAlgorithmLB;
     197             : 
     198             :     IndexEntryResource* pIndexRes;
     199             : 
     200             :     Point           aCBLeftPos1;
     201             :     Point           aCBLeftPos2;
     202             :     Point           aCBLeftPos3;
     203             : 
     204             :     String          aStyleArr[MAXLEVEL];
     205             :     String          sAutoMarkURL;
     206             :     String          sAutoMarkType;
     207             :     String          sAddStyleUser;
     208             :     String          sAddStyleContent;
     209             : 
     210             :     const IndexEntrySupplierWrapper* pIndexEntryWrapper;
     211             : 
     212             :     sal_Bool            bFirstCall;
     213             : 
     214             :     DECL_LINK(TOXTypeHdl,   ListBox* );
     215             :     DECL_LINK(AddStylesHdl, PushButton* );
     216             :     DECL_LINK(MenuEnableHdl, Menu*);
     217             :     DECL_LINK(MenuExecuteHdl, Menu*);
     218             :     DECL_LINK(LanguageHdl, ListBox*);
     219             : 
     220             :     DECL_LINK(CheckBoxHdl,  CheckBox*   );
     221             :     DECL_LINK(RadioButtonHdl, void *);
     222             :     DECL_LINK(ModifyHdl, void*);
     223             : 
     224             :       void  ApplyTOXDescription();
     225             :     void    FillTOXDescription();
     226             : 
     227             :     using SfxTabPage::ActivatePage;
     228             :     using SfxTabPage::DeactivatePage;
     229             : 
     230             : public:
     231             :     SwTOXSelectTabPage(Window* pParent, const SfxItemSet& rAttrSet);
     232             :     ~SwTOXSelectTabPage();
     233             : 
     234             :     virtual sal_Bool        FillItemSet( SfxItemSet& );
     235             :     virtual void        Reset( const SfxItemSet& );
     236             : 
     237             :     virtual void        ActivatePage( const SfxItemSet& );
     238             :     virtual int         DeactivatePage( SfxItemSet* pSet = 0 );
     239             : 
     240             :     static SfxTabPage*  Create( Window* pParent,
     241             :                                 const SfxItemSet& rAttrSet);
     242             : 
     243             :     void                SelectType(TOXTypes eSet);  //preset TOXType, GlobalDoc
     244             :     void                SetWrtShell(SwWrtShell& rSh);
     245             : };
     246             : 
     247             : class SwTOXEdit;
     248             : class SwTOXButton;
     249             : class SwTOXEntryTabPage;
     250             : 
     251             : class SwTokenWindow : public Window
     252             : {
     253             :     typedef std::vector<Control*>::iterator ctrl_iterator;
     254             :     typedef std::vector<Control*>::const_iterator ctrl_const_iterator;
     255             :     typedef std::vector<Control*>::reverse_iterator ctrl_reverse_iterator;
     256             :     typedef std::vector<Control*>::const_reverse_iterator ctrl_const_reverse_iterator;
     257             : 
     258             :     ImageButton     aLeftScrollWin;
     259             :     Window          aCtrlParentWin;
     260             :     ImageButton     aRightScrollWin;
     261             :     std::vector<Control*>   aControlList;
     262             :     SwForm*         pForm;
     263             :     sal_uInt16          nLevel;
     264             :     sal_Bool            bValid;
     265             :     String          aButtonTexts[TOKEN_END]; // Text of the buttons
     266             :     String          aButtonHelpTexts[TOKEN_END]; // QuickHelpText of the buttons
     267             :     String          sCharStyle;
     268             :     Link            aButtonSelectedHdl;
     269             :     Control*        pActiveCtrl;
     270             :     Link            aModifyHdl;
     271             : 
     272             :     SwTOXEntryTabPage*  m_pParent;
     273             : 
     274             :     DECL_LINK(EditResize, Edit*);
     275             :     DECL_LINK(NextItemHdl, SwTOXEdit* );
     276             :     DECL_LINK(TbxFocusHdl, SwTOXEdit* );
     277             :     DECL_LINK(NextItemBtnHdl, SwTOXButton* );
     278             :     DECL_LINK(TbxFocusBtnHdl, SwTOXButton* );
     279             :     DECL_LINK(ScrollHdl, ImageButton* );
     280             : 
     281             :     void    SetActiveControl(Control* pSet);
     282             : 
     283             :     Control*    InsertItem(const String& rText, const SwFormToken& aToken);
     284             :     void        AdjustPositions();
     285             :     void        AdjustScrolling();
     286             :     void        MoveControls(long nOffset);
     287             : 
     288             : public:
     289             :     SwTokenWindow(SwTOXEntryTabPage* pParent, const ResId& rResId);
     290             :     ~SwTokenWindow();
     291             : 
     292             :     void        SetForm(SwForm& rForm, sal_uInt16 nLevel);
     293           0 :     sal_uInt16      GetLastLevel()const {return nLevel;};
     294             : 
     295           0 :     sal_Bool        IsValid() const {return bValid;}
     296             : 
     297           0 :     void        SetInvalid() {bValid = sal_False;}
     298             : 
     299             :     String      GetPattern() const;
     300             : 
     301           0 :     void        SetButtonSelectedHdl(const Link& rLink)
     302           0 :                 { aButtonSelectedHdl = rLink;}
     303             : 
     304           0 :     void        SetModifyHdl(const Link& rLink){aModifyHdl = rLink;}
     305             : 
     306           0 :     Control*    GetActiveControl()
     307           0 :                     { return pActiveCtrl;}
     308             : 
     309             :     void        InsertAtSelection(const String& rText, const SwFormToken& aToken);
     310             :     void        RemoveControl(SwTOXButton* pDel, sal_Bool bInternalCall = sal_False);
     311             : 
     312             :     sal_Bool        Contains(FormTokenType) const;
     313             : 
     314             :     sal_Bool        DetermineLinkStart();
     315             : 
     316             :     //helper for pattern buttons and edits
     317             :     sal_Bool        CreateQuickHelp(Control* pCtrl,
     318             :                     const SwFormToken& rToken, const HelpEvent& );
     319             : 
     320             :     virtual void        Resize();
     321             :     virtual void        GetFocus();
     322             : };
     323             : 
     324             : class SwTOXEntryTabPage;
     325             : 
     326           0 : class SwIdxTreeListBox : public SvTreeListBox
     327             : {
     328             :     SwTOXEntryTabPage* pParent;
     329             : 
     330             :     virtual void    RequestHelp( const HelpEvent& rHEvt );
     331             : public:
     332             :     SwIdxTreeListBox(SwTOXEntryTabPage* pPar, const ResId& rResId);
     333             : };
     334             : 
     335             : class SwTOXEntryTabPage : public SfxTabPage
     336             : {
     337             :     FixedText           aLevelFT;
     338             :     SwIdxTreeListBox    aLevelLB;
     339             : 
     340             :     FixedLine       aEntryFL;
     341             :     FixedText       aTokenFT;
     342             :     SwTokenWindow   aTokenWIN;
     343             :     PushButton      aAllLevelsPB;
     344             : 
     345             :     PushButton      aEntryNoPB;
     346             :     PushButton      aEntryPB;
     347             :     PushButton      aTabPB;
     348             :     PushButton      aChapterInfoPB;
     349             :     PushButton      aPageNoPB;
     350             :     PushButton      aHyperLinkPB;
     351             : 
     352             :     ListBox         aAuthFieldsLB;
     353             :     PushButton      aAuthInsertPB;
     354             :     PushButton      aAuthRemovePB;
     355             : 
     356             :     FixedText       aCharStyleFT;
     357             :     ListBox         aCharStyleLB;       // character style of the current token
     358             :     PushButton      aEditStylePB;
     359             : 
     360             :     FixedText       aChapterEntryFT;
     361             :     ListBox         aChapterEntryLB;    // type of chapter info
     362             : 
     363             :     FixedText       aNumberFormatFT;
     364             :     ListBox         aNumberFormatLB;    //!< format for numbering (E#)
     365             : 
     366             :     FixedText       aEntryOutlineLevelFT;    //!< Fixed text, for i53420
     367             :     NumericField    aEntryOutlineLevelNF;   //!< level to evaluate outline level to, for i53420
     368             :     FixedText       aFillCharFT;
     369             :     ComboBox        aFillCharCB;        // fill char for tab stop
     370             :     FixedText       aTabPosFT;
     371             :     MetricField     aTabPosMF;          // tab stop position
     372             :     CheckBox        aAutoRightCB;
     373             :     FixedLine       aFormatFL;
     374             : 
     375             :     CheckBox        aRelToStyleCB;      // position relative to the right margin of the para style
     376             :     FixedText       aMainEntryStyleFT;
     377             :     ListBox         aMainEntryStyleLB;  // character style of main entries in indexes
     378             :     CheckBox        aAlphaDelimCB;
     379             :     CheckBox        aCommaSeparatedCB;
     380             : 
     381             :     RadioButton     aSortDocPosRB;
     382             :     RadioButton     aSortContentRB;
     383             :     FixedLine       aSortingFL;
     384             : 
     385             :     FixedText           aFirstKeyFT;
     386             :     ListBox             aFirstKeyLB;
     387             :     ImageRadioButton    aFirstSortUpRB;
     388             :     ImageRadioButton    aFirstSortDownRB;
     389             : 
     390             :     FixedText           aSecondKeyFT;
     391             :     ListBox             aSecondKeyLB;
     392             :     ImageRadioButton    aSecondSortUpRB;
     393             :     ImageRadioButton    aSecondSortDownRB;
     394             : 
     395             :     FixedText           aThirdKeyFT;
     396             :     ListBox             aThirdKeyLB;
     397             :     ImageRadioButton    aThirdSortUpRB;
     398             :     ImageRadioButton    aThirdSortDownRB;
     399             : 
     400             :     FixedLine       aSortKeyFL;
     401             : 
     402             :     String          sDelimStr;
     403             :     String          sLevelStr;
     404             :     String          sAuthTypeStr;
     405             : 
     406             :     String          sNoCharStyle;
     407             :     String          sNoCharSortKey;
     408             :     Point           aButtonPositions[5];
     409             :     SwForm*         m_pCurrentForm;
     410             : 
     411             :     Point           aRelToStylePos;
     412             :     Point           aRelToStyleIdxPos;
     413             :     Size            aLevelFLSize;
     414             : 
     415             :     CurTOXType      aLastTOXType;
     416             :     sal_Bool            bInLevelHdl;
     417             : 
     418             :     Point           aChapterEntryFTPosition; //!< holds position of ChapterEntryFT control,
     419             :                                              //to be used in moving the element among different tokens
     420             :     Point           aEntryOutlineLevelFTPosition;//!< holds position ofrEntryOutlineLevelFT control
     421             :     sal_Int32       nBiasToEntryPoint;
     422             : 
     423             :     DECL_LINK(StyleSelectHdl, ListBox*);
     424             :     DECL_LINK(EditStyleHdl, PushButton*);
     425             :     DECL_LINK(InsertTokenHdl, PushButton*);
     426             :     DECL_LINK(LevelHdl, SvTreeListBox*);
     427             :     DECL_LINK(AutoRightHdl, CheckBox*);
     428             :     DECL_LINK(TokenSelectedHdl, SwFormToken*);
     429             :     DECL_LINK(TabPosHdl, MetricField*);
     430             :     DECL_LINK(FillCharHdl, ComboBox*);
     431             :     DECL_LINK(RemoveInsertAuthHdl, PushButton*);
     432             :     DECL_LINK(SortKeyHdl, RadioButton*);
     433             :     DECL_LINK(ChapterInfoHdl, ListBox*);
     434             :     DECL_LINK(ChapterInfoOutlineHdl, NumericField*);
     435             :     DECL_LINK(NumberFormatHdl, ListBox*);
     436             : 
     437             :     DECL_LINK(AllLevelsHdl, void *);
     438             : 
     439             :     void            EnableButtons();
     440             :     void            WriteBackLevel();
     441             :     void            UpdateDescriptor();
     442             :     DECL_LINK(ModifyHdl, void*);
     443             : 
     444             :     using SfxTabPage::ActivatePage;
     445             :     using SfxTabPage::DeactivatePage;
     446             : 
     447             : public:
     448             :     SwTOXEntryTabPage(Window* pParent, const SfxItemSet& rAttrSet);
     449             :     ~SwTOXEntryTabPage();
     450             : 
     451             :     virtual sal_Bool        FillItemSet( SfxItemSet& );
     452             :     virtual void        Reset( const SfxItemSet& );
     453             :     virtual void        ActivatePage( const SfxItemSet& );
     454             :     virtual int         DeactivatePage( SfxItemSet* pSet = 0 );
     455             : 
     456             :     static SfxTabPage*  Create( Window* pParent,
     457             :                                 const SfxItemSet& rAttrSet);
     458             :     void                SetWrtShell(SwWrtShell& rSh);
     459             : 
     460             :     String              GetLevelHelp(sal_uInt16 nLevel) const;
     461             : 
     462             :     void                PreTokenButtonRemoved(const SwFormToken& rToken);
     463             : };
     464             : 
     465             : class SwTOXStylesTabPage : public SfxTabPage
     466             : {
     467             :     FixedLine       aFormatFL;
     468             :     FixedText       aLevelFT2;
     469             :     ListBox         aLevelLB;
     470             :     ImageButton     aAssignBT;
     471             :     FixedText       aTemplateFT;
     472             :     ListBox         aParaLayLB;
     473             :     PushButton      aStdBT;
     474             :     PushButton      aEditStyleBT;
     475             : 
     476             :     SwForm*         m_pCurrentForm;
     477             : 
     478             :     DECL_LINK( EditStyleHdl, Button *);
     479             :     DECL_LINK(StdHdl, void *);
     480             :     DECL_LINK(EnableSelectHdl, void *);
     481             :     DECL_LINK(DoubleClickHdl, void *);
     482             :     DECL_LINK(AssignHdl, void *);
     483             :     void Modify();
     484             : 
     485           0 :     SwForm&     GetForm()
     486             :         {
     487           0 :             SwMultiTOXTabDialog* pDlg = (SwMultiTOXTabDialog*)GetTabDialog();
     488           0 :             return *pDlg->GetForm(pDlg->GetCurrentTOXType());
     489             :         }
     490             : 
     491             :     using SfxTabPage::ActivatePage;
     492             :     using SfxTabPage::DeactivatePage;
     493             : 
     494             : public:
     495             :     SwTOXStylesTabPage(Window* pParent, const SfxItemSet& rAttrSet);
     496             :     ~SwTOXStylesTabPage();
     497             : 
     498             :     virtual sal_Bool        FillItemSet( SfxItemSet& );
     499             :     virtual void        Reset( const SfxItemSet& );
     500             : 
     501             :     virtual void        ActivatePage( const SfxItemSet& );
     502             :     virtual int         DeactivatePage( SfxItemSet* pSet = 0 );
     503             : 
     504             :     static SfxTabPage*  Create( Window* pParent,
     505             :                                 const SfxItemSet& rAttrSet);
     506             : 
     507             : };
     508             : 
     509             : #endif // _SWUI_CNTTAB_HXX
     510             : 
     511             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10