| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd"> |
| <!--*********************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| ***********************************************************--> |
| <script:module xmlns:script="http://openoffice.org/2000/script" script:name="IND" script:language="StarBasic">REM ***** BASIC ***** |
| |
| Dim oDialog AS Object |
| Dim document AS Object |
| |
| Sub Main |
| |
| If not IsHelpFile Then |
| msgbox(strErr_NoHelpFile) |
| Exit Sub |
| End If |
| |
| document = StarDesktop.CurrentComponent |
| |
| BasicLibraries.LoadLibrary("HelpAuthoring") |
| oDialog = LoadDialog("HelpAuthoring", "dlgIND") |
| ocbAddTag = oDialog.GetControl("cbAddTag") |
| |
| ' Check if bookmarks are allowed here |
| If IsInList Then |
| msgbox "No Bookmarks allowed inside a list.", 48, "D'oh!" |
| Exit Sub |
| End If |
| |
| |
| nBookmarkType = IsInBookmark |
| If nBookmarkType = 1 Then ' inside INDEX bookmark |
| ocbAddTag.State = 0 |
| End If |
| |
| oDialogModel = oDialog.Model |
| |
| If oDialog.Execute() = 1 Then |
| ' Insert the bookmark construction |
| olbIND = oDialog.GetControl("lbIND") |
| |
| If nBookmarkType = 0 Then' not in a bookmark, always add parent tags |
| bmid = CreateID |
| ' now check if we are in a para with text (this wouldn't be valid) |
| If Not(ParaIsEmpty) Then |
| CR |
| End If |
| InsertTag("BOOKMARK_","<BOOKMARK branch=""index"" id=""bm_id" + bmid + """>","hlp_aux_bookmark") |
| |
| For i=0 to ubound(olbIND.Items) |
| LF |
| InsertTag("BOOKMARKVALUE_","<BOOKMARKVALUE>") |
| InsertField("BOOKMARKVALUE",olbIND.Items(i)) |
| InsertTag("_BOOKMARKVALUE","</BOOKMARKVALUE>") |
| Next i |
| LF |
| InsertTagCR("_BOOKMARK","</BOOKMARK>","hlp_aux_bookmark") |
| |
| ElseIf nBookmarkType = 1 Then ' in a correct bookmark type |
| If ocbAddTag.State = 1 Then |
| If Not(ParaIsEmpty) Then |
| CR |
| End If |
| InsertTag("BOOKMARK_","<BOOKMARK branch=""index"" id=""bm_id" + bmid + """>","hlp_aux_bookmark") |
| For i=0 to ubound(olbIND.Items) |
| LF |
| InsertTag("BOOKMARKVALUE_","<BOOKMARKVALUE>") |
| InsertField("BOOKMARKVALUE",olbIND.Items(i)) |
| InsertTag("_BOOKMARKVALUE","</BOOKMARKVALUE>") |
| Next i |
| If ocbAddTag.State = 1 Then |
| LF |
| InsertTagCR("_BOOKMARK","</BOOKMARK>","hlp_aux_bookmark") |
| End If |
| Else |
| For i=0 to ubound(olbIND.Items) |
| LF |
| InsertTag("BOOKMARKVALUE_","<BOOKMARKVALUE>") |
| InsertField("BOOKMARKVALUE",olbIND.Items(i)) |
| InsertTag("_BOOKMARKVALUE","</BOOKMARKVALUE>") |
| Next i |
| End If |
| Else ' in a wrong bookmark type |
| If Not(ParaIsEmpty) Then |
| CR |
| End If |
| InsertTag("BOOKMARK_","<BOOKMARK branch=""index"" id=""bm_id" + bmid + """>","hlp_aux_bookmark") |
| For i=0 to ubound(olbIND.Items) |
| LF |
| InsertTag("BOOKMARKVALUE_","<BOOKMARKVALUE>") |
| InsertField("BOOKMARKVALUE",olbIND.Items(i)) |
| InsertTag("_BOOKMARKVALUE","</BOOKMARKVALUE>") |
| Next i |
| LF |
| InsertTagCR("_BOOKMARK","</BOOKMARK>","hlp_aux_bookmark") |
| End If |
| End If |
| |
| oDialog.dispose |
| |
| End Sub |
| |
| Sub AddKeyStroke(Event As Object) |
| Select Case Event.KeyCode |
| Case com.sun.star.awt.Key.RETURN |
| AddIndexEntry |
| Case com.sun.star.awt.Key.SPACE |
| AddIndexEntry |
| End Select |
| End Sub |
| |
| Sub AddIndexEntry |
| |
| oTxtLevel1 = oDialog.GetControl("txtLevel1") |
| oTxtLevel2 = oDialog.GetControl("txtLevel2") |
| |
| If oTxtLevel2.Text <> "" Then |
| IndexEntry = oTxtLevel1.Text + ";" + oTxtLevel2.Text |
| Else |
| IndexEntry = oTxtLevel1.Text |
| End If |
| |
| If ((oTxtLevel1.Text = "") OR (IndexEntry = "<Level 1>;<Level 2>")) Then |
| msgbox "Enter an index entry first." |
| Else |
| ' Insert the index entry into the list |
| olbIND = oDialog.GetControl("lbIND") |
| olbIND.addItem(IndexEntry,0) |
| End If |
| |
| End Sub |
| |
| Sub RemoveKeyStroke(Event As Object) |
| Select Case Event.KeyCode |
| Case com.sun.star.awt.Key.RETURN |
| RemoveIndexEntry |
| Case com.sun.star.awt.Key.SPACE |
| RemoveIndexEntry |
| End Select |
| End Sub |
| |
| |
| Sub RemoveIndexEntry |
| olbIND = oDialog.GetControl("lbIND") |
| ItemsPos = olbIND.getSelectedItemsPos |
| For i=0 to ubound(ItemsPos) |
| olbIND.removeItems(ItemsPos(i)-i,1) |
| Next i |
| End Sub |
| |
| Sub KeyPressedAdd(Event As Object) |
| Select Case Event.KeyCode |
| Case com.sun.star.awt.Key.INSERT |
| AddIndexEntry |
| End Select |
| End Sub |
| |
| Sub KeyPressedRemove(Event As Object) |
| Select Case Event.KeyCode |
| Case com.sun.star.awt.Key.DELETE |
| RemoveIndexEntry |
| End Select |
| End Sub |
| </script:module> |