summaryrefslogtreecommitdiff
path: root/include/svx/srchdlg.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/svx/srchdlg.hxx')
-rw-r--r--include/svx/srchdlg.hxx282
1 files changed, 282 insertions, 0 deletions
diff --git a/include/svx/srchdlg.hxx b/include/svx/srchdlg.hxx
new file mode 100644
index 000000000000..9282e3e8cc7e
--- /dev/null
+++ b/include/svx/srchdlg.hxx
@@ -0,0 +1,282 @@
+/* -*- 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 _SVX_SRCHDLG_HXX
+#define _SVX_SRCHDLG_HXX
+
+#include <svtools/stdctrl.hxx>
+#include <vcl/combobox.hxx>
+#include <vcl/edit.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/button.hxx>
+#include <vcl/group.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/dialog.hxx>
+#include <sfx2/childwin.hxx>
+#include <sfx2/basedlgs.hxx>
+#include <svtools/svmedit.hxx>
+#include <svl/srchdefs.hxx>
+#include "svx/svxdllapi.h"
+#include <vector>
+
+class SvxSearchItem;
+class MoreButton;
+class SfxStyleSheetBasePool;
+class SvxJSearchOptionsPage;
+class SvxSearchController;
+
+struct SearchDlg_Impl;
+
+#ifndef NO_SVX_SEARCH
+
+// struct SearchAttrItem -------------------------------------------------
+
+struct SearchAttrItem
+{
+ sal_uInt16 nSlot;
+ SfxPoolItem* pItem;
+};
+
+// class SearchAttrItemList ----------------------------------------------
+
+typedef std::vector<SearchAttrItem> SrchAttrItemList;
+
+class SVX_DLLPUBLIC SearchAttrItemList : private SrchAttrItemList
+{
+public:
+ SearchAttrItemList() {}
+ SearchAttrItemList( const SearchAttrItemList& rList );
+ ~SearchAttrItemList();
+
+ void Put( const SfxItemSet& rSet );
+ SfxItemSet& Get( SfxItemSet& rSet );
+ void Clear();
+ sal_uInt16 Count() const { return SrchAttrItemList::size(); }
+ SearchAttrItem& operator[](sal_uInt16 nPos)
+ { return SrchAttrItemList::operator[]( nPos ); }
+ SearchAttrItem& GetObject( sal_uInt16 nPos )
+ { return SrchAttrItemList::operator[]( nPos ); }
+
+ // the pointer to the item is not being copied, so don't delete
+ void Insert( const SearchAttrItem& rItem )
+ { SrchAttrItemList::push_back( rItem ); }
+ // deletes the pointer to the items
+ void Remove(size_t nPos, size_t nLen = 1);
+};
+
+#ifndef SV_NODIALOG
+
+// class SvxSearchDialogWrapper ------------------------------------------
+
+class SvxSearchDialog;
+class SVX_DLLPUBLIC SvxSearchDialogWrapper : public SfxChildWindow
+{
+ SvxSearchDialog *dialog;
+public:
+ SvxSearchDialogWrapper( Window*pParent, sal_uInt16 nId,
+ SfxBindings* pBindings, SfxChildWinInfo* pInfo );
+
+ ~SvxSearchDialogWrapper ();
+ SvxSearchDialog *getDialog ();
+ SFX_DECL_CHILDWINDOW_WITHID(SvxSearchDialogWrapper);
+};
+
+// class SvxSearchDialog -------------------------------------------------
+
+/*
+ {k:\svx\prototyp\dialog\svx/srchdlg.hxx}
+
+ [Description]
+ In this modeless dialog the attributes for a search are configured
+ and a search is started from it. Several search types
+ (search, search all, replace, replace all) are possible.
+
+ [Items]
+ <SvxSearchItem><SID_ATTR_SEARCH>
+*/
+
+class SvxSearchDialog : public SfxModelessDialog
+{
+friend class SvxSearchController;
+friend class SvxSearchDialogWrapper;
+friend class SvxJSearchOptionsDialog;
+
+public:
+ SvxSearchDialog( Window* pParent, SfxChildWindow* pChildWin, SfxBindings& rBind );
+ ~SvxSearchDialog();
+
+ virtual sal_Bool Close();
+
+ // Window
+ virtual void Activate();
+
+ const SearchAttrItemList* GetSearchItemList() const
+ { return pSearchList; }
+ const SearchAttrItemList* GetReplaceItemList() const
+ { return pReplaceList; }
+
+ inline sal_Bool HasSearchAttributes() const;
+ inline sal_Bool HasReplaceAttributes() const;
+
+ PushButton& GetReplaceBtn() { return aReplaceBtn; }
+
+ sal_Int32 GetTransliterationFlags() const;
+
+ void SetSaveToModule(bool b);
+
+private:
+ FixedText aSearchText;
+ ComboBox aSearchLB;
+ ListBox aSearchTmplLB;
+ FixedInfo aSearchAttrText;
+
+ FixedText aReplaceText;
+ ComboBox aReplaceLB;
+ ListBox aReplaceTmplLB;
+ FixedInfo aReplaceAttrText;
+
+ PushButton aSearchBtn;
+ PushButton aSearchAllBtn;
+ FixedLine aSearchCmdLine;
+ PushButton aReplaceBtn;
+ PushButton aReplaceAllBtn;
+
+ FixedLine aSearchComponentFL;
+ PushButton aSearchComponent1PB;
+ PushButton aSearchComponent2PB;
+
+ CheckBox aMatchCaseCB;
+ CheckBox aWordBtn;
+
+ FixedLine aButtonsFL;
+ MoreButton* pMoreBtn;
+ HelpButton aHelpBtn;
+ CancelButton aCloseBtn;
+
+ FixedLine aOptionsFL;
+ CheckBox aSelectionBtn;
+ CheckBox aBackwardsBtn;
+ CheckBox aRegExpBtn;
+ CheckBox aSimilarityBox;
+ PushButton aSimilarityBtn;
+ CheckBox aLayoutBtn;
+ CheckBox aNotesBtn;
+ CheckBox aJapMatchFullHalfWidthCB;
+ CheckBox aJapOptionsCB;
+ PushButton aJapOptionsBtn;
+
+ PushButton aAttributeBtn;
+ PushButton aFormatBtn;
+ PushButton aNoFormatBtn;
+
+ FixedLine aCalcFL;
+ FixedText aCalcSearchInFT;
+ ListBox aCalcSearchInLB;
+ FixedText aCalcSearchDirFT;
+ RadioButton aRowsBtn;
+ RadioButton aColumnsBtn;
+ CheckBox aAllSheetsCB;
+
+ SfxBindings& rBindings;
+ sal_Bool bWriter;
+ sal_Bool bSearch;
+ sal_Bool bFormat;
+ sal_uInt16 nOptions;
+ bool bSet;
+ bool bReadOnly;
+ bool bConstruct;
+ sal_uIntPtr nModifyFlag;
+ String aStylesStr;
+ String aLayoutStr;
+ String aLayoutWriterStr;
+ String aLayoutCalcStr;
+ String aCalcStr;
+
+ std::vector<OUString> aSearchStrings;
+ std::vector<OUString> aReplaceStrings;
+
+ SearchDlg_Impl* pImpl;
+ SearchAttrItemList* pSearchList;
+ SearchAttrItemList* pReplaceList;
+ SvxSearchItem* pSearchItem;
+
+ SvxSearchController* pSearchController;
+ SvxSearchController* pOptionsController;
+ SvxSearchController* pFamilyController;
+ SvxSearchController* pSearchSetController;
+ SvxSearchController* pReplaceSetController;
+
+ mutable sal_Int32 nTransliterationFlags;
+
+#ifdef _SVX_SRCHDLG_CXX
+ DECL_LINK( ModifyHdl_Impl, ComboBox* pEdit );
+ DECL_LINK( FlagHdl_Impl, Control* pCtrl );
+ DECL_LINK( CommandHdl_Impl, Button* pBtn );
+ DECL_LINK(TemplateHdl_Impl, void *);
+ DECL_LINK( FocusHdl_Impl, Control* );
+ DECL_LINK(LoseFocusHdl_Impl, void *);
+ DECL_LINK(FormatHdl_Impl, void *);
+ DECL_LINK(NoFormatHdl_Impl, void *);
+ DECL_LINK(AttributeHdl_Impl, void *);
+ DECL_LINK( TimeoutHdl_Impl, Timer* );
+
+ void Construct_Impl();
+ void InitControls_Impl();
+ void CalculateDelta_Impl();
+ void Init_Impl( int bHasItemSet );
+ void InitAttrList_Impl( const SfxItemSet* pSSet,
+ const SfxItemSet* pRSet );
+ void Remember_Impl( const String &rStr,sal_Bool bSearch );
+ void PaintAttrText_Impl();
+ String& BuildAttrText_Impl( String& rStr, sal_Bool bSrchFlag ) const;
+
+ void TemplatesChanged_Impl( SfxStyleSheetBasePool& rPool );
+ void EnableControls_Impl( const sal_uInt16 nFlags );
+ void EnableControl_Impl( Control* pCtrl );
+ void SetItem_Impl( const SvxSearchItem* pItem );
+
+ void SetModifyFlag_Impl( const Control* pCtrl );
+ void SaveToModule_Impl();
+
+ void ApplyTransliterationFlags_Impl( sal_Int32 nSettings );
+#endif
+};
+
+inline sal_Bool SvxSearchDialog::HasSearchAttributes() const
+{
+ sal_Bool bLen = !aSearchAttrText.GetText().isEmpty();
+ return ( aSearchAttrText.IsEnabled() && bLen );
+}
+
+inline sal_Bool SvxSearchDialog::HasReplaceAttributes() const
+{
+ sal_Bool bLen = !aReplaceAttrText.GetText().isEmpty();
+ return ( aReplaceAttrText.IsEnabled() && bLen );
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
+
+#endif // SV_NODIALOG
+#endif // NO_SVX_SEARCH
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */