1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef SVX_DBREGISTER_HXX 25 #define SVX_DBREGISTER_HXX 26 27 #include "optpath.hxx" 28 #include <tools/string.hxx> 29 #include <comphelper/stl_types.hxx> 30 #include <svl/poolitem.hxx> 31 #include "ControlFocusHelper.hxx" 32 #include <sfx2/basedlgs.hxx> 33 34 class SvLBoxEntry; 35 namespace svx 36 { 37 class OptHeaderTabListBox; 38 } 39 //........................................................................ 40 namespace svx 41 { 42 //........................................................................ 43 44 //==================================================================== 45 //= DbRegistrationOptionsPage 46 //==================================================================== 47 class DbRegistrationOptionsPage : public SfxTabPage 48 { 49 private: 50 FixedLine aStdBox; 51 FixedText aTypeText; 52 FixedText aPathText; 53 SvxControlFocusHelper aPathCtrl; 54 PushButton m_aNew; 55 PushButton m_aEdit; 56 PushButton m_aDelete; 57 58 HeaderBar* pHeaderBar; 59 ::svx::OptHeaderTabListBox* pPathBox; 60 SvLBoxEntry* m_pCurEntry; 61 sal_uLong m_nOldCount; 62 sal_Bool m_bModified; 63 64 #ifdef SVX_DBREGISTER_HXX 65 DECL_LINK( NewHdl, void * ); 66 DECL_LINK( EditHdl, void * ); 67 DECL_LINK( DeleteHdl, void * ); 68 69 DECL_LINK( PathSelect_Impl, SvTabListBox* ); 70 71 DECL_LINK( HeaderSelect_Impl, HeaderBar * ); 72 DECL_LINK( HeaderEndDrag_Impl, HeaderBar * ); 73 DECL_LINK( NameValidator, String*); 74 75 76 /** inserts a new entry in the tablistbox 77 @param _sName 78 The name of the entry. 79 @param _sLocation 80 The location of the file. 81 */ 82 void insertNewEntry( const ::rtl::OUString& _sName,const ::rtl::OUString& _sLocation, const bool bReadOnly ); 83 84 /** opens the LinkDialog to create a register pair 85 @param _sOldName 86 The old name of the entry may be empty. 87 @param _sOldLocation 88 The old location of the entry may be empty. 89 @param _pEntry 90 The entry to remove if the entry will be changed 91 */ 92 void openLinkDialog(const String& _sOldName,const String& _sOldLocation,SvLBoxEntry* _pEntry = NULL); 93 94 #endif 95 96 public: 97 DbRegistrationOptionsPage( Window* pParent, const SfxItemSet& rSet ); 98 virtual ~DbRegistrationOptionsPage(); 99 100 static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet ); 101 static sal_uInt16* GetRanges(); 102 103 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 104 virtual void Reset( const SfxItemSet& rSet ); 105 virtual void FillUserData(); 106 }; 107 108 //==================================================================== 109 //= RegistrationItemSetHolder 110 //==================================================================== 111 /** helper for DatabaseRegistrationDialog 112 113 Necessary so that DatabaseRegistrationDialog is self-contained, i.e. always reflects 114 the current registration state. 115 */ 116 class RegistrationItemSetHolder 117 { 118 private: 119 SfxItemSet m_aRegistrationItems; 120 121 protected: 122 RegistrationItemSetHolder( const SfxItemSet& _rMasterSet ); 123 ~RegistrationItemSetHolder(); 124 125 protected: getRegistrationItems() const126 const SfxItemSet& getRegistrationItems() const { return m_aRegistrationItems; } 127 }; 128 129 //==================================================================== 130 //= DatabaseRegistrationDialog 131 //==================================================================== 132 class DatabaseRegistrationDialog :public RegistrationItemSetHolder 133 ,public SfxSingleTabDialog 134 { 135 public: 136 DatabaseRegistrationDialog( Window* pParent, const SfxItemSet& rAttr ); 137 ~DatabaseRegistrationDialog(); 138 139 virtual short Execute(); 140 }; 141 142 //........................................................................ 143 } // namespace svx 144 //........................................................................ 145 146 #endif // SVX_DBREGISTER_HXX 147 148 149