summaryrefslogtreecommitdiff
path: root/sw/source/uibase/inc/swuicnttab.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase/inc/swuicnttab.hxx')
-rw-r--r--sw/source/uibase/inc/swuicnttab.hxx497
1 files changed, 497 insertions, 0 deletions
diff --git a/sw/source/uibase/inc/swuicnttab.hxx b/sw/source/uibase/inc/swuicnttab.hxx
new file mode 100644
index 000000000000..5443348a15b4
--- /dev/null
+++ b/sw/source/uibase/inc/swuicnttab.hxx
@@ -0,0 +1,497 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * 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 .
+ */
+#ifndef INCLUDED_SW_SOURCE_CORE_UIBASE_INC_SWUICNTTAB_HXX
+#define INCLUDED_SW_SOURCE_CORE_UIBASE_INC_SWUICNTTAB_HXX
+
+#include <svx/stddlg.hxx>
+
+#include <vcl/button.hxx>
+
+#include <vcl/edit.hxx>
+
+#include <vcl/fixed.hxx>
+
+#include <vcl/field.hxx>
+#include <vcl/lstbox.hxx>
+#include <sfx2/tabdlg.hxx>
+
+#include "tox.hxx"
+#include <toxmgr.hxx>
+#include <svx/checklbx.hxx>
+#include <svtools/treelistbox.hxx>
+#include <vcl/menubtn.hxx>
+#include <svx/langbox.hxx>
+#include <cnttab.hxx>
+#include <vector>
+
+class SwWrtShell;
+class SwTOXMgr;
+namespace com{namespace sun{namespace star{
+ namespace text{
+ class XTextSection;
+ class XDocumentIndex;
+ }
+}}}
+
+struct SwIndexSections_Impl
+{
+ com::sun::star::uno::Reference< com::sun::star::text::XTextSection > xContainerSection;
+ com::sun::star::uno::Reference< com::sun::star::text::XDocumentIndex > xDocumentIndex;
+};
+
+class SwOneExampleFrame;
+
+struct SwIndexSections_Impl;
+
+class SwMultiTOXTabDialog : public SfxTabDialog
+{
+ Window* m_pExampleContainerWIN;
+ CheckBox* m_pShowExampleCB;
+ SwTOXMgr* pMgr;
+ SwWrtShell& rSh;
+
+ sal_uInt16 m_nSelectId;
+ sal_uInt16 m_nStylesId;
+ sal_uInt16 m_nColumnId;
+ sal_uInt16 m_nBackGroundId;
+ sal_uInt16 m_nEntriesId;
+
+ SwOneExampleFrame* pExampleFrame;
+
+ SwTOXDescription** pDescArr;
+ SwForm** pFormArr;
+ SwIndexSections_Impl** pxIndexSectionsArr;
+
+ SwTOXBase* pParamTOXBase;
+
+ CurTOXType eCurrentTOXType;
+
+ OUString sUserDefinedIndex;
+ sal_uInt16 nTypeCount;
+ sal_uInt16 nInitialTOXType;
+
+ bool bEditTOX;
+ bool bExampleCreated;
+ bool bGlobalFlag;
+
+ virtual short Ok() SAL_OVERRIDE;
+ SwTOXDescription* CreateTOXDescFromTOXBase(const SwTOXBase*pCurTOX);
+
+ DECL_LINK(CreateExample_Hdl, void*);
+ DECL_LINK(ShowPreviewHdl, void*);
+
+public:
+ SwMultiTOXTabDialog(Window* pParent, const SfxItemSet& rSet,
+ SwWrtShell &rShell,
+ SwTOXBase* pCurTOX, sal_uInt16 nToxType = USHRT_MAX,
+ bool bGlobal = false);
+ virtual ~SwMultiTOXTabDialog();
+
+ virtual void PageCreated( sal_uInt16 nId, SfxTabPage &rPage ) SAL_OVERRIDE;
+
+ SwForm* GetForm(CurTOXType eType);
+
+ CurTOXType GetCurrentTOXType() const { return eCurrentTOXType;}
+ void SetCurrentTOXType(CurTOXType eSet)
+ {
+ eCurrentTOXType = eSet;
+ }
+
+ void UpdateExample();
+ bool IsTOXEditMode() const { return bEditTOX;}
+
+ SwWrtShell& GetWrtShell() {return rSh;}
+
+ SwTOXDescription& GetTOXDescription(CurTOXType eTOXTypes);
+ void CreateOrUpdateExample(
+ TOXTypes nTOXIndex, sal_uInt16 nPage = 0, sal_uInt16 nCurLevel = USHRT_MAX);
+
+ static bool IsNoNum(SwWrtShell& rSh, const OUString& rName);
+};
+
+class IndexEntryResource;
+class IndexEntrySupplierWrapper;
+
+class SwTOXSelectTabPage : public SfxTabPage
+{
+ Edit* m_pTitleED;
+ FixedText* m_pTypeFT;
+ ListBox* m_pTypeLB;
+ CheckBox* m_pReadOnlyCB;
+
+ VclContainer* m_pAreaFrame;
+ ListBox* m_pAreaLB;
+ FixedText* m_pLevelFT; //content, user
+ NumericField* m_pLevelNF; //content, user
+
+ //content
+ VclContainer* m_pCreateFrame; // content, user, illustration
+ CheckBox* m_pFromHeadingsCB;
+ CheckBox* m_pAddStylesCB;
+ PushButton* m_pAddStylesPB;
+ //user
+ CheckBox* m_pFromTablesCB;
+ CheckBox* m_pFromFramesCB;
+ CheckBox* m_pFromGraphicsCB;
+ CheckBox* m_pFromOLECB;
+ CheckBox* m_pLevelFromChapterCB;
+
+ //illustration + table
+ RadioButton* m_pFromCaptionsRB;
+ RadioButton* m_pFromObjectNamesRB;
+
+ //illustration and tables
+ FixedText* m_pCaptionSequenceFT;
+ ListBox* m_pCaptionSequenceLB;
+ FixedText* m_pDisplayTypeFT;
+ ListBox* m_pDisplayTypeLB;
+
+ //all but illustration and table
+ CheckBox* m_pTOXMarksCB;
+
+ //index only
+ VclContainer* m_pIdxOptionsFrame;
+ CheckBox* m_pCollectSameCB;
+ CheckBox* m_pUseFFCB;
+ CheckBox* m_pUseDashCB;
+ CheckBox* m_pCaseSensitiveCB;
+ CheckBox* m_pInitialCapsCB;
+ CheckBox* m_pKeyAsEntryCB;
+ CheckBox* m_pFromFileCB;
+ MenuButton* m_pAutoMarkPB;
+
+ // object only
+ SwOLENames aFromNames;
+ SvxCheckListBox* m_pFromObjCLB;
+ VclContainer* m_pFromObjFrame;
+
+ CheckBox* m_pSequenceCB;
+ ListBox* m_pBracketLB;
+ VclContainer* m_pAuthorityFrame;
+
+ //all
+ VclContainer* m_pSortFrame;
+ SvxLanguageBox* m_pLanguageLB;
+ ListBox* m_pSortAlgorithmLB;
+
+ IndexEntryResource* pIndexRes;
+
+ OUString aStyleArr[MAXLEVEL];
+ OUString sAutoMarkURL;
+ OUString sAutoMarkType;
+ OUString sAddStyleUser;
+ OUString sAddStyleContent;
+
+ const IndexEntrySupplierWrapper* pIndexEntryWrapper;
+
+ bool m_bWaitingInitialSettings;
+
+ DECL_LINK(TOXTypeHdl, ListBox* );
+ DECL_LINK(AddStylesHdl, PushButton* );
+ DECL_LINK(MenuEnableHdl, Menu*);
+ DECL_LINK(MenuExecuteHdl, Menu*);
+ DECL_LINK(LanguageHdl, ListBox*);
+
+ DECL_LINK(CheckBoxHdl, CheckBox* );
+ DECL_LINK(RadioButtonHdl, void *);
+ DECL_LINK(ModifyHdl, void*);
+
+ void ApplyTOXDescription();
+ void FillTOXDescription();
+
+ using SfxTabPage::ActivatePage;
+ using SfxTabPage::DeactivatePage;
+
+public:
+ SwTOXSelectTabPage(Window* pParent, const SfxItemSet& rAttrSet);
+ virtual ~SwTOXSelectTabPage();
+
+ virtual bool FillItemSet( SfxItemSet& ) SAL_OVERRIDE;
+ virtual void Reset( const SfxItemSet& ) SAL_OVERRIDE;
+
+ virtual void ActivatePage( const SfxItemSet& ) SAL_OVERRIDE;
+ virtual int DeactivatePage( SfxItemSet* pSet = 0 ) SAL_OVERRIDE;
+
+ static SfxTabPage* Create( Window* pParent,
+ const SfxItemSet& rAttrSet);
+
+ void SelectType(TOXTypes eSet); //preset TOXType, GlobalDoc
+ void SetWrtShell(SwWrtShell& rSh);
+};
+
+class SwTOXEdit;
+class SwTOXButton;
+class SwTOXEntryTabPage;
+
+class SwTokenWindow : public VclHBox, public VclBuilderContainer
+{
+ typedef std::vector<Control*>::iterator ctrl_iterator;
+ typedef std::vector<Control*>::const_iterator ctrl_const_iterator;
+ typedef std::vector<Control*>::reverse_iterator ctrl_reverse_iterator;
+ typedef std::vector<Control*>::const_reverse_iterator ctrl_const_reverse_iterator;
+
+ Button* m_pLeftScrollWin;
+ Window* m_pCtrlParentWin;
+ Button* m_pRightScrollWin;
+ std::vector<Control*> aControlList;
+ SwForm* pForm;
+ sal_uInt16 nLevel;
+ bool bValid;
+ OUString aButtonTexts[TOKEN_END]; // Text of the buttons
+ OUString aButtonHelpTexts[TOKEN_END]; // QuickHelpText of the buttons
+ OUString sCharStyle;
+ Link aButtonSelectedHdl;
+ Control* pActiveCtrl;
+ Link aModifyHdl;
+ OUString accessibleName;
+ OUString sAdditionalAccnameString1;
+ OUString sAdditionalAccnameString2;
+ OUString sAdditionalAccnameString3;
+
+ SwTOXEntryTabPage* m_pParent;
+
+ DECL_LINK(EditResize, Edit*);
+ DECL_LINK(NextItemHdl, SwTOXEdit* );
+ DECL_LINK(TbxFocusHdl, SwTOXEdit* );
+ DECL_LINK(NextItemBtnHdl, SwTOXButton* );
+ DECL_LINK(TbxFocusBtnHdl, SwTOXButton* );
+ DECL_LINK(ScrollHdl, ImageButton* );
+
+ void SetActiveControl(Control* pSet);
+
+ Control* InsertItem(const OUString& rText, const SwFormToken& aToken);
+ void AdjustPositions();
+ void AdjustScrolling();
+ void MoveControls(long nOffset);
+
+public:
+ SwTokenWindow(Window* pParent);
+ virtual ~SwTokenWindow();
+
+ void SetTabPage(SwTOXEntryTabPage *pParent) { m_pParent = pParent; }
+
+ void SetForm(SwForm& rForm, sal_uInt16 nLevel);
+ sal_uInt16 GetLastLevel()const {return nLevel;};
+
+ bool IsValid() const {return bValid;}
+
+ void SetInvalid() {bValid = false;}
+
+ OUString GetPattern() const;
+
+ void SetButtonSelectedHdl(const Link& rLink)
+ { aButtonSelectedHdl = rLink;}
+
+ void SetModifyHdl(const Link& rLink){aModifyHdl = rLink;}
+
+ Control* GetActiveControl()
+ { return pActiveCtrl;}
+
+ void InsertAtSelection(const OUString& rText, const SwFormToken& aToken);
+ void RemoveControl(SwTOXButton* pDel, bool bInternalCall = false);
+
+ bool Contains(FormTokenType) const;
+
+ bool DetermineLinkStart();
+
+ //helper for pattern buttons and edits
+ bool CreateQuickHelp(Control* pCtrl,
+ const SwFormToken& rToken, const HelpEvent& );
+
+ virtual void GetFocus() SAL_OVERRIDE;
+ virtual void setAllocation(const Size &rAllocation) SAL_OVERRIDE;
+ void SetFocus2theAllBtn();
+private:
+ sal_uInt32 GetControlIndex(FormTokenType eType) const;
+};
+
+class SwTOXEntryTabPage;
+
+class SwIdxTreeListBox : public SvTreeListBox
+{
+ SwTOXEntryTabPage* pParent;
+
+ virtual void RequestHelp( const HelpEvent& rHEvt ) SAL_OVERRIDE;
+public:
+ SwIdxTreeListBox(Window* pPar, WinBits nStyle);
+ void SetTabPage(SwTOXEntryTabPage* pPar) { pParent = pPar; }
+};
+
+class SwTOXEntryTabPage : public SfxTabPage
+{
+ FixedText* m_pLevelFT;
+ SwIdxTreeListBox* m_pLevelLB;
+
+ SwTokenWindow* m_pTokenWIN;
+
+ PushButton* m_pAllLevelsPB;
+
+ PushButton* m_pEntryNoPB;
+ PushButton* m_pEntryPB;
+ PushButton* m_pTabPB;
+ PushButton* m_pChapterInfoPB;
+ PushButton* m_pPageNoPB;
+ PushButton* m_pHyperLinkPB;
+
+ ListBox* m_pAuthFieldsLB;
+ PushButton* m_pAuthInsertPB;
+ PushButton* m_pAuthRemovePB;
+
+ ListBox* m_pCharStyleLB; // character style of the current token
+ PushButton* m_pEditStylePB;
+
+ FixedText* m_pChapterEntryFT;
+ ListBox* m_pChapterEntryLB; // type of chapter info
+
+ FixedText* m_pNumberFormatFT;
+ ListBox* m_pNumberFormatLB; //!< format for numbering (E#)
+
+ FixedText* m_pEntryOutlineLevelFT; //!< Fixed text, for i53420
+ NumericField* m_pEntryOutlineLevelNF; //!< level to evaluate outline level to, for i53420
+
+ FixedText* m_pFillCharFT;
+ ComboBox* m_pFillCharCB; // fill char for tab stop
+
+ FixedText* m_pTabPosFT;
+ MetricField* m_pTabPosMF; // tab stop position
+ CheckBox* m_pAutoRightCB;
+
+ VclContainer* m_pFormatFrame;
+ FixedText* m_pMainEntryStyleFT;
+ ListBox* m_pMainEntryStyleLB; // character style of main entries in indexes
+ CheckBox* m_pAlphaDelimCB;
+ CheckBox* m_pCommaSeparatedCB;
+ CheckBox* m_pRelToStyleCB; // position relative to the right margin of the para style
+
+ VclContainer* m_pSortingFrame;
+ RadioButton* m_pSortDocPosRB;
+ RadioButton* m_pSortContentRB;
+
+ VclContainer* m_pSortKeyFrame;
+ ListBox* m_pFirstKeyLB;
+ RadioButton* m_pFirstSortUpRB;
+ RadioButton* m_pFirstSortDownRB;
+
+ ListBox* m_pSecondKeyLB;
+ RadioButton* m_pSecondSortUpRB;
+ RadioButton* m_pSecondSortDownRB;
+
+ ListBox* m_pThirdKeyLB;
+ RadioButton* m_pThirdSortUpRB;
+ RadioButton* m_pThirdSortDownRB;
+
+ OUString sDelimStr;
+ OUString sLevelStr;
+ OUString sAuthTypeStr;
+
+ OUString sNoCharStyle;
+ OUString sNoCharSortKey;
+ SwForm* m_pCurrentForm;
+
+ CurTOXType aLastTOXType;
+ bool bInLevelHdl;
+
+ DECL_LINK(StyleSelectHdl, ListBox*);
+ DECL_LINK(EditStyleHdl, PushButton*);
+ DECL_LINK(InsertTokenHdl, PushButton*);
+ DECL_LINK(LevelHdl, SvTreeListBox*);
+ DECL_LINK(AutoRightHdl, CheckBox*);
+ DECL_LINK(TokenSelectedHdl, SwFormToken*);
+ DECL_LINK(TabPosHdl, MetricField*);
+ DECL_LINK(FillCharHdl, ComboBox*);
+ DECL_LINK(RemoveInsertAuthHdl, PushButton*);
+ DECL_LINK(SortKeyHdl, RadioButton*);
+ DECL_LINK(ChapterInfoHdl, ListBox*);
+ DECL_LINK(ChapterInfoOutlineHdl, NumericField*);
+ DECL_LINK(NumberFormatHdl, ListBox*);
+
+ DECL_LINK(AllLevelsHdl, void *);
+
+ void EnableButtons();
+ void WriteBackLevel();
+ void UpdateDescriptor();
+ DECL_LINK(ModifyHdl, void*);
+
+ using SfxTabPage::ActivatePage;
+ using SfxTabPage::DeactivatePage;
+
+public:
+ SwTOXEntryTabPage(Window* pParent, const SfxItemSet& rAttrSet);
+ virtual ~SwTOXEntryTabPage();
+
+ virtual bool FillItemSet( SfxItemSet& ) SAL_OVERRIDE;
+ virtual void Reset( const SfxItemSet& ) SAL_OVERRIDE;
+ virtual void ActivatePage( const SfxItemSet& ) SAL_OVERRIDE;
+ virtual int DeactivatePage( SfxItemSet* pSet = 0 ) SAL_OVERRIDE;
+
+ static SfxTabPage* Create( Window* pParent,
+ const SfxItemSet& rAttrSet);
+ void SetWrtShell(SwWrtShell& rSh);
+
+ OUString GetLevelHelp(sal_uInt16 nLevel) const;
+
+ void PreTokenButtonRemoved(const SwFormToken& rToken);
+ void SetFocus2theAllBtn();
+ virtual bool Notify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
+};
+
+class SwTOXStylesTabPage : public SfxTabPage
+{
+ ListBox* m_pLevelLB;
+ PushButton* m_pAssignBT;
+ ListBox* m_pParaLayLB;
+ PushButton* m_pStdBT;
+ PushButton* m_pEditStyleBT;
+
+ SwForm* m_pCurrentForm;
+
+ DECL_LINK( EditStyleHdl, Button *);
+ DECL_LINK(StdHdl, void *);
+ DECL_LINK(EnableSelectHdl, void *);
+ DECL_LINK(DoubleClickHdl, void *);
+ DECL_LINK(AssignHdl, void *);
+ void Modify();
+
+ SwForm& GetForm()
+ {
+ SwMultiTOXTabDialog* pDlg = (SwMultiTOXTabDialog*)GetTabDialog();
+ return *pDlg->GetForm(pDlg->GetCurrentTOXType());
+ }
+
+ using SfxTabPage::ActivatePage;
+ using SfxTabPage::DeactivatePage;
+
+public:
+ SwTOXStylesTabPage(Window* pParent, const SfxItemSet& rAttrSet);
+ virtual ~SwTOXStylesTabPage();
+
+ virtual bool FillItemSet( SfxItemSet& ) SAL_OVERRIDE;
+ virtual void Reset( const SfxItemSet& ) SAL_OVERRIDE;
+
+ virtual void ActivatePage( const SfxItemSet& ) SAL_OVERRIDE;
+ virtual int DeactivatePage( SfxItemSet* pSet = 0 ) SAL_OVERRIDE;
+
+ static SfxTabPage* Create( Window* pParent,
+ const SfxItemSet& rAttrSet);
+
+};
+
+#endif // INCLUDED_SW_SOURCE_CORE_UIBASE_INC_SWUICNTTAB_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */