Con la prima (qui) creiamo un segnalibro nel punto in cui siamo arrivati, il segnalibro "qui", e questa macro la assegnamo automaticamente al salvataggio di un documento.
Con la seconda (vai_qui) andiamo esattamente al punto in cui avevamo chiuso il documento, e questa macro la assegniamo alla apertura di un documento. Abbiamo dovuto duplicare le istruzioni, altrimenti, nei documenti lunghi il cursore andava sì nel pyunto dove c'è il segnalibro, ma il focus restava su un'altra porzione del documento. Invece così va tutto a posto.
1a macro
sub qui
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Bookmark"
args1(0).Value = "qui"
dispatcher.executeDispatch(document, ".uno:DeleteBookmark", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Bookmark"
args2(0).Value = "qui"
dispatcher.executeDispatch(document, ".uno:InsertBookmark", "", 0, args2())
end sub
2a macro
sub vai_qui
If NOT ThisComponent.supportsService("com.sun.star.text.TextDocument" ) Then
Exit Sub
End If
oBookmarks = ThisComponent.getBookmarks()
If NOT oBookmarks.hasByName("qui") Then
Exit Sub
End If
ViewCursor = ThisComponent.CurrentController.getviewCursor()
Bookmark = ThisComponent.Bookmarks.getByName("qui").Anchor
ViewCursor.gotorange(Bookmark, False)
ViewCursor = ThisComponent.CurrentController.getviewCursor()
Bookmark = ThisComponent.Bookmarks.getByName("qui").Anchor
ViewCursor.gotorange(Bookmark, False)
end sub
No comments:
Post a Comment