Die wichtigsten zwei Objekte des Programms sind die geöffneten Dokumente und die Fenster.
Wollen Sie ein Dokument ansprechen und kennen dessen Namen, können sie ihn benutzen:
tell application “RagTime 6.5�
     tell document “Bericht 1� -- nach Name
          -- hier der Code
     end tell
end tell
Das Dokument wird dann unabhängig davon angeprochen, ob es gerade im Vordergrund ist oder ein anderes.
Wollen Sie das Dokument ansprechen, an dem der Benutzer gerade arbeitet, benutzen Sie den Index:
tell application “RagTime 6.5�
     tell document 1 -- nach Index
          -- hier der Code
     end tell
end tell
document 1 ist immer das gerade aktive Dokument. Das nächste, das dahinter liegt, ist document 2 usw.
Folgender Code legt ein neues RagTime-Dokument, beginnend mit einem Layout, an:
tell application "RagTime 6.5" set neues_dokument to (make new document at end with properties {component types:layout}) end tell
Dasselbe funktioniert natürlich auch mit anderen Komponenten zum Start. Hier für ein Rechenblatt:
Bei Bedarf kann man das Dokument auch gleich benennen, obwohl es noch gar nicht gesichert ist:
Oder man sichert die Datei gleich nach dem Anlegen:
set save_file to (((path to documents folder) as text) & "Testdatei.rtd") tell application "RagTime 6.5" set neues_dokument to (make new document at end with properties {component types:layout}) save neues_dokument in file save_file end tell
Fenster werden ähnlich angesprochen, aber ein Dokument kann mehrere geöffnete Fenster haben. Beachten Sie dabei, dass auch das Inventar ein Fenster ist.
Mögliche Ergebnisse von
tell application “RagTime 6.5�
     get name of window 1
end tell
sind zum Beispiel:
--> Bericht 1, Layout 1
--> Bericht 1, Inventar
--> Schriftvorlagen
--> Dokumenteinstellungen
Sie sehen an den Beispielen, dass ein Fenster nicht unbedingt eine Dokumentkomponente enthalten muss.
Ein RagTime-Dokument ist ähnlich wie ein Dateisystem aufgebaut. Sollen bestimmte Objekte in einem Dokument verändert werden, muss deshalb zunächst die Komponente angesprochen werden.
Komponenten sind:
layout
master layout -- Stammlayout
text flow -- eine Textkomponente
table -- ein Rechenblatt
drawing -- eine Zeichnung
picture -- ein Bild
button -- ein Knopf
graph -- eine Infografik
Layouts und Stammlayouts sind dabei wieder aus ihren Seiten aufgebaut - technisch entprechen sie tatsächlich weitgehend einer Zeichnungskomponente.
Typische Code-Fragmente sind deshalb:
tell application “RagTime 6.5�
     tell document 1
          tell text flow “Text 1�
               -- hier der Code
          end tell
     end tell
end tell
oder aber:
tell application “RagTime 6.5�
     tell document 1
          tell layout 1
               tell page 2
                    -- hier der Code
               end tell
          end tell
     end tell
end tell
Wiederum können die Komponenten über ihren Namen oder den Index angesprochen werden. Der Index hängt mit der Reihenfolge zusammen, in der die Komponenten dem Dokument zugefügt oder aus ihn gelöscht werden. Solange Sie während des Script-Ablaufs keine Komponente löschen, bleibt deshalb ein Index konstant.
Erzeugt werden Komponenten mit “make�. Die make-Anweisung benötigt in fast allen Fällen eine Positionsangabe der Form “at beginning� oder “at end�, selbst, wenn technisch nur eines von beiden möglich ist (zu Ausnahmen der Abschnitt über fehlende Zielangaben).
tell application “RagTime 6.5�
     tell document 1
          make new table at end
     end tell
end tell
erzeugt ein neues Rechenblatt im Dokument. Es ist in keinem Container installiert. Sie sehen es nur im Inventar aufgelistet und können es von dort mit einem Doppelklick in einem eigenen Fenster öffnen.
Seiten können eine flexible Referenz im make haben:
tell application "RagTime 6.5"
     tell layout 1 of document 1
          make new page at after page 1
     end tell
end tell
Analog: “at end�, “at before page 1�.
Das Programm und Fenster haben eine Vielzahl von Eigenschaften. Für die Navigation in einem Script ähnlich wichtig wie Fenster und Dokumente ist die “selection�.
Die selection des Programms ist das Objekt, dass der Benutzer im aktiven Fenster ausgewählt hat. Zugleich ist selection auch eine Eigenschaft von Fenstern. Damit können Sie zusätzlich auf die Auswahl in weiter hinten liegenden Fenstern zugreifen.
Auf die selection des Programms kann nur zugegriffen werden, wenn RagTime im Vordergrund ist.
tell application "RagTime 6.5"
     activate
     get selection
end tell
oder
tell application "RagTime 6.5"
     get selection of window 2
end tell
Beispiele für Antworten:
--> insertion point after character 5 of contents of text flow "Text 1" of document id 1 of application "RagTime 6.5"
--> rectangle 1 of page 1 of layout "Layout 1" of document id 1 of application "RagTime 5"
--> cell "A1" of table "Rechenblatt 1" of document id 1 of application "RagTime 6.5"
Wichtig: Die selection kann für des Programms und die Fenster angesprochen werden, nicht aber für Dokumente. Während
tell application "RagTime 6.5"
     tell window 1
          get selection
     end tell
end tell
ein korrekter Code ist, führt
tell application "RagTime 6.5" -- Fehlerbeispiel
     tell document 1
          get selection
     end tell
end tell
zu einer Fehlermeldung!
Beachten Sie weiter, dass das Resultat von selection eine vollständige Referenz ist. Folgender Code ist deshalb OK:
tell application "RagTime 6.5"
     tell window 1
          set Auswahl to selection
     end tell
     tell document 1
          -- hier weiterer Code
          delete Auswahl
          -- hier weiterer Code
     end tell
end tell