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 #ifndef _GLOSSARY_HXX 24 #define _GLOSSARY_HXX 25 26 #ifndef _EDIT_HXX //autogen 27 #include <vcl/edit.hxx> 28 #endif 29 #include <svtools/svtreebx.hxx> 30 #include <svx/stddlg.hxx> 31 32 #ifndef _BUTTON_HXX //autogen 33 #include <vcl/button.hxx> 34 #endif 35 #include <vcl/fixed.hxx> 36 37 #ifndef _BUTTON_HXX //autogen 38 #include <vcl/button.hxx> 39 #endif 40 41 #ifndef _FIXED_HXX //autogen 42 #include <vcl/fixed.hxx> 43 #endif 44 45 #ifndef _COMBOBOX_HXX //autogen 46 #include <vcl/combobox.hxx> 47 #endif 48 49 #ifndef _MENUBTN_HXX //autogen 50 #include <vcl/menubtn.hxx> 51 #endif 52 #include <com/sun/star/container/XEnumerationAccess.hpp> 53 #include <com/sun/star/container/XHierarchicalNameAccess.hpp> 54 #include <com/sun/star/container/XNameAccess.hpp> 55 #include <com/sun/star/container/XContentEnumerationAccess.hpp> 56 #include <com/sun/star/container/XEnumeration.hpp> 57 #include <com/sun/star/container/XElementAccess.hpp> 58 #include <com/sun/star/container/XIndexAccess.hpp> 59 60 #include <actctrl.hxx> 61 62 class SwGlossaryHdl; 63 class SwNewGlosNameDlg; 64 class SwWrtShell; 65 class SfxViewFrame; 66 class PopupMenu; 67 class Menu; 68 69 const short RET_EDIT = 100; 70 71 //------------------------------------------------------------------ 72 73 class SwGlTreeListBox : public SvTreeListBox 74 { 75 const String sReadonly; 76 77 SvLBoxEntry* pDragEntry; 78 79 virtual DragDropMode NotifyStartDrag( TransferDataContainer& rContainer, 80 SvLBoxEntry* ); 81 virtual sal_Bool NotifyAcceptDrop( SvLBoxEntry* ); 82 83 virtual sal_Bool NotifyMoving( SvLBoxEntry* pTarget, 84 SvLBoxEntry* pEntry, 85 SvLBoxEntry*& rpNewParent, 86 sal_uLong& rNewChildPos 87 ); 88 virtual sal_Bool NotifyCopying( SvLBoxEntry* pTarget, 89 SvLBoxEntry* pEntry, 90 SvLBoxEntry*& rpNewParent, 91 sal_uLong& rNewChildPos); 92 public: 93 SwGlTreeListBox(Window* pParent, const ResId& rResId); 94 95 virtual void RequestHelp( const HelpEvent& rHEvt ); 96 void Clear(); 97 }; 98 99 //------------------------------------------------------------------ 100 class SwOneExampleFrame; 101 class SwGlossaryDlg : public SvxStandardDialog 102 { 103 friend class SwNewGlosNameDlg; 104 friend class SwGlTreeListBox; 105 106 CheckBox aInsertTipCB; 107 FixedText aNameLbl; 108 Edit aNameED; 109 FixedText aShortNameLbl; 110 NoSpaceEdit aShortNameEdit; 111 SwGlTreeListBox aCategoryBox; 112 FixedLine aRelativeFL; 113 CheckBox aFileRelCB; 114 CheckBox aNetRelCB; 115 Window aExampleWIN; 116 Window aExampleDummyWIN; 117 CheckBox aShowExampleCB; 118 OKButton aInsertBtn; 119 CancelButton aCloseBtn; 120 HelpButton aHelpBtn; 121 MenuButton aEditBtn; 122 PushButton aBibBtn; 123 PushButton aPathBtn; 124 125 String sReadonlyPath; 126 127 ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > _xAutoText; 128 SwOneExampleFrame* pExampleFrame; 129 130 PopupMenu* pMenu; 131 SwGlossaryHdl* pGlossaryHdl; 132 133 String sResumeGroup; 134 String sResumeShortName; 135 sal_Bool bResume; 136 137 138 const sal_Bool bSelection : 1; 139 sal_Bool bReadOnly : 1; 140 sal_Bool bIsOld : 1; 141 sal_Bool bIsDocReadOnly:1; 142 143 SwWrtShell* pSh; 144 145 void EnableShortName(sal_Bool bOn = sal_True); 146 147 DECL_LINK( NameModify, Edit * ); 148 DECL_LINK( NameDoubleClick, SvTreeListBox * ); 149 DECL_LINK( GrpSelect, SvTreeListBox * ); 150 DECL_LINK( MenuHdl, Menu * ); 151 DECL_LINK( EnableHdl, Menu * ); 152 DECL_LINK( BibHdl, Button * ); 153 DECL_LINK( EditHdl, Button * ); 154 DECL_LINK( PathHdl, Button * ); 155 DECL_LINK( CheckBoxHdl, CheckBox * ); 156 DECL_LINK( ShowPreviewHdl, CheckBox * ); 157 DECL_LINK( PreviewLoadedHdl, void * ); 158 159 160 virtual void Apply(); 161 void Init(); 162 SvLBoxEntry* DoesBlockExist(const String& sBlock, const String& rShort); 163 void ShowAutoText(const String& rGroup, const String& rShortName); 164 void ResumeShowAutoText(); 165 166 sal_Bool GetResumeData(String& rGroup, String& rShortName) 167 {rGroup = sResumeGroup; rShortName = sResumeShortName; return bResume;} 168 void SetResumeData(const String& rGroup, const String& rShortName) 169 {sResumeGroup = rGroup; sResumeShortName = rShortName; bResume = sal_True;} 170 void ResetResumeData() {bResume = sal_False;} 171 public: 172 SwGlossaryDlg(SfxViewFrame* pViewFrame, SwGlossaryHdl* pGlosHdl, SwWrtShell *pWrtShell); 173 ~SwGlossaryDlg(); 174 String GetCurrGrpName() const; 175 inline String GetCurrLongName() const; 176 inline String GetCurrShortName() const; 177 static String GetCurrGroup(); 178 static void SetActGroup(const String& rNewGroup); 179 static String GetExtension(); 180 }; 181 182 inline String SwGlossaryDlg::GetCurrLongName() const 183 { 184 return aNameED.GetText(); 185 } 186 inline String SwGlossaryDlg::GetCurrShortName() const 187 { 188 return aShortNameEdit.GetText(); 189 } 190 191 192 #endif 193 194