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
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