home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Exec 3
/
CD_Magazyn_EXEC_nr_3.iso
/
Recent
/
biz
/
swood
/
FW_AllInOne.lha
/
Makros
/
Fu゚noten.long
< prev
next >
Wrap
Text File
|
1998-01-17
|
29KB
|
1,125 lines
/* ------------------------------------------------ */
/* Final Writer Arexx Macro - Fußnoten-Verwaltung */
/* 0.97beta 09.01.98 */
Parse ARG FW
if ~show('L',"rexxreqtools.library") then
if ~addlib('rexxreqtools.library',0,-30,0) then do
ShowMessage 1 1 '"Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
exit
end
IF ~show('L','tritonrexx.library') then
IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
ShowMessage 2 1 '"Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
exit
END
R='0A'X
SIGNAL ON SYNTAX
If FW='' then do
Address='FinalW'
Options results
STATUS PORTNAME
FW = result
End
address(FW)
CtrlUp
ShiftUp
AltUp
GetSectionList "¤"
IF Pos("FN¤", Result)=0 THEN Disi=1
Else Disi=0
address "REXX"
If open('Hilfe',"S:FW_Paket.prefs","R") then do
HilfeVerz=readln('Hilfe')
Call Close('Hilfe')
End
else HilfeVerz=''
wie.0=2
wie.1="seitenweise"
wie.2="durchgehend"
speed.0=2
speed.1="normal"
speed.2="schnell"
If ~exists("s:FW_Fussnote.prefs") then do
wie=1 /*Art der Numerierung*/
fo="SoftSans" /*Schriftart*/
si="12" /*schriftgröße*/
ausgabe="%F)"
Linie=1.5
GetDocItemPrefs Decimal
Punkt=Result
If Punkt="Comma" then DocItemPrefs DECIMAL Period
GetDocItemPrefs Tabs
Einzug=result
SText=0
speed=1
end
else do
Call Open("prefs","S:FW_Fussnote.prefs","R")
wie=Readln('prefs')
fo=Readln('prefs')
si=Readln('prefs')
ausgabe=Readln('prefs')
Linie=Readln('prefs')
Einzug=Readln('prefs')
SText=ReadLn('prefs')
speed=ReadLn('prefs')
Call Close("prefs")
end
pos = max(index(fo,':'),lastpos('/',fo))
If pos~=0 then fond=Delstr(fo,1,pos)
else fond=fo
If SText=1 then fond="Cursorposition"
o1="Schrift: "||fond||", Größe: "||si
o2="Numerierung: "||wie.wie||", Ausgabe: "||ausgabe
o3="Linie: "||Linie||" cm, Einzug: "||Einzug||" cm"
o4="Geschwindigkeit: "||speed.speed
oldfond=fond; oldfo=fo
oldspeed=speed; oldwie=wie; oldSText=SText
apptags = 'TRCA_Name Fußnote',
'TRCA_LongName "Fußnote"',
'TRCA_Info "für FinalWriter"',
'TRCA_Version "1.0 registered"',
'TRCA_Release "1"',
'TRCA_Date "09.01.98"',
'TAG_END'
/*******************************************************************************
** Aufbau der GUI
*******************************************************************************/
windowtags = WindowID(1),
WindowPosition('TRWP_CENTERDISPLAY'),
WindowFlags('TRWF_NOMINTEXTWIDTH'),
PubScreenName('FinalWriterPubScreen'),
WindowTitle("Fußnotenverwaltung"),
BeginMenu('Projekt'),
MenuItem('Voreinsteller...',102),
'ItemBarlabel',
MenuItem('Q_Verlassen',104),
BeginMenu('?'),
MenuItem('?_Info',101),
MenuItem('H_Hilfe',103),
'VertGroupAC SpaceS',
'HorizGroupAC SpaceS',
'VertGroupAC SpaceS',
Button('Fußnote _setzen',1),
'SpaceS',
TextN('Fußnotentext:'),
StringGadget("",9) 'TRAT_DISABLED 1 TRAT_VALUE 999',
'Space',
Button('Fußnote _löschen',2) 'TRAT_Disabled' Disi,
'SpaceS',
Button('Fußnoten _erstellen',3) 'TRAT_Disabled' Disi,
'SpaceS',
'HorizSeparator',
'SpaceS',
TextH(o1) 'TRAT_ID 5',
TextH(o2) 'TRAT_ID 6',
TextH(o3) 'TRAT_ID 7',
TextH(o4) 'TRAT_ID 8',
'SpaceS',
'EndGroup SpaceS',
'EndGroup SpaceS',
'EndGroup SpaceS',
'EndProject'
app = TR_CREATEAPP('TRCA_Name Fußnote')
/*******************************************************************************
** Abfrage der GUI
*******************************************************************************/
IF app ~= '00000000'x THEN DO
window1 = TR_OPENPROJECT(app,windowtags)
IF window1 ~= '00000000'x THEN DO
ende = 0
DO WHILE ~ende
CALL TR_WAIT(app,'')
DO WHILE TR_HANDLEMSG(app,'event')
IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende=1
IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN event.trm_id = 9 THEN Do
FNText = TR_GETATTRIBUTE(window1,9,'TROB_String')
FNText = FNText||" "
If FNText~="" then Call FNsetzen
Call TR_SETATTRIBUTE(window1,9,'TRAT_DISABLED',1)
Call TR_SETATTRIBUTE(window1,1,'TRAT_DISABLED',0)
Call TR_SETATTRIBUTE(window1,2,'TRAT_DISABLED',Disi)
Call TR_SETATTRIBUTE(window1,3,'TRAT_DISABLED',Disi)
END
OTHERWISE NOP
END
END
IF event.trm_class = 'TRMS_ACTION' THEN DO
SELECT
WHEN event.trm_id = 1 THEN Do /*setzen*/
Call TR_SETATTRIBUTE(window1,9,'TRAT_DISABLED',0)
Call TR_SETATTRIBUTE(window1,1,'TRAT_DISABLED',1)
Call TR_SendMessage(window1,9,'TROM_ACTIVATE',0)
END
WHEN event.trm_id = 2 THEN Call FNloeschen /*löschen*/
WHEN event.trm_id = 3 THEN Call FNerstellen /*erstellen*/
WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Fußnotenverwaltung V1.0 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
WHEN event.trm_id = 102 THEN Call Voreinstellung
WHEN event.trm_id = 103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"Fußnoten.guide"||d2c(34)
WHEN event.trm_id = 104 THEN ende=1
OTHERWISE NOP
END
Call TR_SETATTRIBUTE(window1,2,'TRAT_DISABLED',Disi)
Call TR_SETATTRIBUTE(window1,3,'TRAT_DISABLED',Disi)
END
END
END
CALL TR_CLOSEPROJECT(window1)
END
CALL TR_DELETEAPP(app)
END
ELSE
CALL quit('Kann das Fenster nicht öffnen',10)
Call Fini
Exit
/*-----------------------------------------------------------*/
FNsetzen:
address(FW)
STATUS FileName
xyz=Result
IF POS(".FNote",Result)~=0 THEN DO
ShowMessage 1 1 '"Hier kann ich keine Fußnoten mehr erstellen!"
"Bitte benutzen Sie die Datei ohne die Endung: .FNOTE"
""
"Klick" "" ""'
Call Fini
Return
End
/* Schauen ob man sich im FN-Abschnitt befindet */
GetSectionSetup Name
Abschnitt=Result
IF Pos("FN¤",Result)~=0 then do
ShowMessage 1 1 '"In diesem Abschnitt werden keine Fußnoten gesetzt."
"Hier dürfen Sie überhaupt nichts ändern!!!"
"Ansonsten können bei der Fußnotenerstellung Fehler auftreten."
"Klick" "" ""'
Call Fini
Return
End
STATUS ParaPos
IF Words(Result)=4 THEN DO
ShowMessage 1 1 '"Leider ist Text markiert!"
"Bitte stellen Sie den Cursor hinter das betreffende Wort." ""
"Ach ja" "" ""'
Call Fini
Return
END
Do ForEver
Cursor Left
Extract
IF Result~=" " THEN LEAVE
END
Cursor Right
STATUS ParaPos
pos=Result
Cursor Right
GetSectionList "¤"
IF Pos("FN¤"||Abschnitt, Result)=0 THEN DO
Disi=0
NewSection Text Name "FN¤"||Abschnitt
SectionSetup Top 0 Bottom 0 Inside 2 Outside 0
SectionSetup Header 2.4
EditRightMaster
FontSize 18
Style UnderLine
Type "Fußnoten für den Abschnitt: "||Abschnitt||"."
Style Normal; NewParagraph
Type "Bitte NICHTS verändern!!!"
EditBody
SetTab "2" Left
LeftMargin "2"
TYPE "¤"
END
ELSE GoToSection "FN¤"||Abschnitt
AltDown;CtrlDown
cursor down /* ganz runter */
CtrlUp;AltUp
cursor Left
STATUS ParaPos
Line=Word(result,1)
If Line>1 then do
Cursor Up /* und eine Zeile wieder rauf */
EXTRACT
DO WHILE RESULT~="¤" /*Stelle der letzten FN-Zahl suchen*/
Line=Line-1
If Line<1 then Leave
MoveToPara Line 0
Extract
END
Cursor Right
Nummer=0
Extract
DO WHILE ((RESULT<":")&(RESULT>"/")) /*Auslesen der letzten FN-Zahl*/
Nummer=Nummer*10+Result
cursor Right
Extract
END
End
Else Nummer=0
Nummer=Nummer+1
AltDown;CtrlDown
cursor down /* ganz runter */
CtrlUp;AltUp
IF Nummer<10 THEN TYPE 0||Nummer
ELSE TYPE Nummer
TYPE X2C(09)||FNText; NewParagraph
TYPE "¤"
cursor Up
AltDown;CtrlDown
cursor Right
CtrlUp;AltUp
GoToSection Abschnitt
MoveToPara Word(pos,1) Word(pos,2)
Position SuperScript
Type "¤"
IF Nummer<10 THEN TYPE "0"||Nummer
ELSE TYPE Nummer
Position Normal
EXTRACT
next=result
IF (next~=" " & next~=d2c(9) & next~=x2c(0A)) THEN
IF Pos(next,". , "" )")=0 THEN TYPE " "
ELSE NOP
IF (next=" " | next=d2c(9)) then Cursor Right
Nummer=0
Return
/*-----------------------------------------------------------*/
FNloeschen:
address(FW)
STATUS Filename
IF POS(".FNote",Result)~=0 THEN DO
ShowMessage 1 1 '"Hier kann ich keine Fußnoten löschen!"
"Bitte benutzen Sie die Datei ohne die Endung: .FNOTE"
""
"Klick" "" ""'
Return
End
GetSectionSetup Name
Abschnitt=Result
STATUS ParaPos
pos=result
/* falscher Abschnitt oder nichts markiert */
IF (Pos("FN¤",Abschnitt)=0 & Words(pos)=2) THEN DO
ShowMessage 2 1 '"Um eine Fußnote zu löschen, muß diese markiert sein."
"Oder möchten Sie ALLE Fußnoten dieses Abschnitts LÖSCHEN?" ""
"Ja" "Nein" ""'
If result=2 then Return
Else Do
ShowMessage 2 1 '"Sollen wirklich ALLE Fußnoten"
"in diesem Abschnitt gelöscht werden?"
""
"Ja" "Nein" ""'
If result=2 then Return
Else Do
GetSectionSetup Name
RemoveSection "FN¤"||result FORCE
MoveToLine 1 0
SetFind WRAP NO
FIND "¤" /* Dummy um Fenster zu öffnen */
Do ForEver
Find "¤"
If RC~=0 then Break /*leave*/
Delete
ShiftDown
EXTRACT
DO WHILE ((RESULT<":")&(RESULT>"/")) /*Auslesen der FN-Zahl*/
Cursor Right
Delete
Extract
END
ShiftUp
END
ShowMessage 1 1 '"Alle Fußnoten dieses Abschnitts wurden gelöscht!"
"Bitte schließen Sie das Fenster: Suchen"
""
"Klick" "" ""'
Return
End
End
END
/* kein ¤ vorhanden, also keine FNKennung */
Extract
If pos("¤",result)=0 then do
ShowMessage 1 1 '"Dies ist keine Fußnote!"
""
""
"Klick" "" ""'
Return
END
MoveToPara Word(Pos,1) Word(Pos,2)+1
Nummer=0
EXTRACT
DO WHILE ((RESULT<":")&(RESULT>"/")) /*Auslesen der FN-Zahl*/
Nummer=Nummer*10+Result
Cursor Right
Extract
END
MoveToPara Word(Pos,1) Word(Pos,2)
ShiftDown
MoveToPara Word(Pos,3) Word(Pos,4)
ShiftUp
If Nummer=0 then do
ShowMessage 1 1 '"Diese Fußnote existiert nicht mehr!"
"Somit kann nichts gelöscht werden."
""
"Klick" "" ""'
Return
END
If Nummer<10 then Nummer="0"||Nummer
ShowMessage 1 1 '"Die Fußnote ¤'Nummer' wird jetzt gelöscht!"
""
"Sind Sie sich sicher?"
"Ja" "Abbrechen" ""'
IF Result=2 then do
Call Fini
Return
End
else Delete
GotoSection "FN¤"||Abschnitt
SetFind WRAP NO
FIND
MoveToPara 1 0
FIND ("¤"Nummer)
STATUS ParaPos
Pos=word(result,1) word(result,2)
AltDown
DO WHILE RESULT~="¤"
Cursor Down
Extract
END
AltUp;ShiftDown
MoveToPara Pos
ShiftUp
Delete
CtrlDown;AltDown;Cursor Down; AltUp;CtrlUp
STATUS ParaPos
If Result = "1 1" then RemoveSection "FN¤"||Abschnitt FORCE
GetSectionList "¤"
IF Pos("FN¤", Result)=0 THEN Disi=1
GotoSection Abschnitt
ShowMessage 1 1 '"Die Fußnote wurde gelöscht!"
"Bitte schließen Sie das Fenster: Suchen"
""
"Klick" "" ""'
Return
/*-----------------------------------------------------------*/
FNerstellen:
/* Format: Ausgabe auswerten */
address(FW)
a=pos("%F",ausgabe)
If a=0 then do
ShowMessage 1 1 '"Die Ausgabe: 'ausgabe' ist nicht korrekt."
"Es fehlt die Nummernkennung: %F"
"Bitte schauen Sie noch einmal in die Hilfe."
"Ende" "" ""'
CALL Fini
Return
End
else do
ausgabe1=Left(ausgabe,a-1)
ausgabe2=Right(ausgabe,Length(ausgabe)-a-1)
end
STATUS View
Zoom=result
STATUS LinePos
Zurueck=result
STATUS FileName
IF POS(".FNote",Result)=0 THEN DO
ShowMessage 1 1 '"Die Datei wird jetzt abgespeichert!"
"Es wird eine neue Datei mit dem Zusatz .FNote erstellt!"
"Nur in dieser werden die Fußnoten unten auf die Seiten geschrieben."
"Weiter" "Abbrechen" ""'
IF Result=2 THEN do
CALL Fini
Return
End
SAVE
STATUS PathName
DokName=result
END
Else do
ShowMessage 1 1 '"Die Fußnoten sind schon erstellt worden!"
"Bitte benutzen Sie die Datei ohne die Endung: .FNOTE"
""
"Klick" "" ""'
Return
End
Numerierung=wie /*1,2= g,i*/
GetSectionList "ð"
Liste=result
Anz=0
temp=Liste
Do ForEver /* alle Abschnitte aussuchen */
a=pos("ð",temp)
If a~=0 then FNTemp=Delstr(temp,a)
else FNTemp=temp
If pos("FN¤",FNTemp)=0 then do
Anz=Anz+1
Abschnitte.Anz=FNTemp
End
If a=0 then Break
temp=Right(temp,Length(temp)-a)
End
Abschnitte.0=Anz
If speed=2 then Call AnfView
AnzTemp=0
Do i=1 to Anz /* zugehörige FNAbschnitte raussuchen */
a=pos("FN¤"Abschnitte.i,Liste)
If a~=0 then do
AnzTemp=AnzTemp+1
FNAbschnitt.AnzTemp="FN¤"Abschnitte.i
Abschnitt.AnzTemp =Abschnitte.i
End
End
FNAbschnitt.0=AnzTemp; Abschnitt.0=AnzTemp; Abschnitte.0=0
SetFind WRAP NO
FIND "¤" /* Dummy um Fenster zu öffnen */
LinePrefs TextFlow None LineWt .5 LineColor Schwarz
FramePrefs TextFlow Right FlowDist 0.1 LineWt None Fill Transparent
SVA=0
Do h=1 to FNAbschnitt.0 /* neu */
g=0
CtrlUp; AltUp; ShiftUp
/*----- im HauptAbschnitt die Menge und Reihenfolge der FN's auslesen -----*/
GotoSection Abschnitt.h
GetPageSetup Height
DokHoehe=result
GetSectionSetup Top Bottom Header Footer
DS=result
DokHoehe=DokHoehe-Word(DS,1)-Word(DS,2)-Word(DS,3)-Word(DS,4)
MoveToLine 1 0
i=0
DO ForEver
Find "¤"
If RC~=0 then Break /*leave*/
i=i+1
Cursor Right
FNote.i=0
EXTRACT
DO WHILE ((RESULT<":")&(RESULT>"/")) /*Auslesen der FN-Zahl*/
FNote.i=FNote.i*10+Result
Cursor Right
Extract
END
IF FNote.i=0 THEN i=i-1
END
IF i=0 THEN DO
ShowMessage 1 1 '"In diesem Abschnitt gibt es keine Fußnoten!"
"Bitte gehe in den nächsten oder übernächsten oder ..."
"Und schließen Sie bitte das Fenster: Suchen"
"Klick" "" ""'
Call Fini
Return
END
FNote.0=i
/*---------------------------Fußnote---------------------------*/
GoToSection FNAbschnitt.h
TextTool
DO i=1 TO FNote.0
MoveToLine 1 0
OK=0
DO ForEver /* FNoten suchen */
IF FNote.i<10 THEN FIND ("¤0"FNote.i)
ELSE FIND ("¤"FNote.i)
STATUS LinePos
pos=Result
IF Words(pos)=2 THEN LEAVE
MoveToLine Word(pos,3) Word(pos,4)
Extract
IF ((RESULT<0)|(RESULT>9)) THEN Break /*Leave*/
END
CtrlDown
DO WHILE RESULT~="¤"
Cursor Down
Extract
END
CtrlUp
Cursor Left
ShiftDown
MoveToLine Word(pos,3) Word(pos,4)
ShiftUp
Extract
VText.i=Result
END
STATUS FontCase
SCase=result
/*----------------------Hauptabschnitt---------------------------*/
address(FW)
GoToSection Abschnitt.h
i=1; Frame=false
FNPos=1 0
MoveToLine 1 0
Merke_i=0
DO WHILE i<= FNote.0
MoveToLine Word(FNPos,1) Word(FNPos,2)
/* Fußnote auf einer Seite finden */
IF FNote.i<10 THEN FIND ("¤0"FNote.i)
ELSE FIND ("¤"FNote.i)
If RC~=0 then Break
STATUS LinePos
FNPos=Result /* Position der FN */
STATUS Page "Insert"
FNSeite=RESULT /* Seite der FN */
If (FNSeite~=MerkeSeite & Frame=true & Merke_i~=i-1) then do /* Line setzen*/
GraphicTool
DrawLine MerkeSeite-SVA LRand oben LRand+Linie oben
Lock
neu=0
End
If (FNSeite~=MerkeSeite & Frame=true) then do /* Textrahmen "locken"*/
SelectObject ObjectID
Lock
Frame=false
Merke_i=i
If Numerierung=1 then g=i-1
End
IF Frame=false THEN DO /* Fußnoten sind nicht alle auf nächste Seite geschoben */
GetSectionSetup Inside OutSide
Parse Var result LRand RRand
GetPageSetup Width
weite=result-LRand-RRand
NewFrame FNSeite-SVA LRand DokHoehe weite
Frame=true
neu=1
Call Einsetzen
Name="FN-Seite"||FNSeite-SVA
SetObjectTitle ObjectID Name
End
Else Do
GraphicTool
SelectObject ObjectID
MakeFrameActive
Call Einsetzen
End
MerkeSeite=FNSeite
i=i+1
End
GraphicTool
DrawLine FNSeite-SVA LRand oben LRand+Linie oben
Lock
STATUS Pages /* ACHTUNG: Seiten des vorigen Abschnitts berücksichtigen */
SVA=SVA+result /* SeitenVorigerAbschnitte*/
RemoveSection FNAbschnitt.h FORCE
End
If Punkt="Comma" then DocItemPrefs DECIMAL Comma
MoveToLine Zurueck
If speed=2 then Call EndView
SAVE DokName".FNote"
ShowMessage 1 1 '"Die Fußnoten wurden erstellt."
"Bitte schließen Sie das Fenster: Suchen"
""
"Klick" "" ""'
ShowMessage 1 1 '"Sollten Sie an diesem Dokument weiterarbeiten wollen"
"oder möchten Sie Fußnoten bearbeiten, so benutzen Sie bitte"
"die Datei ohne die Endung: .FNOTE"
"Klick" "" ""'
Disi=1
Return
Einsetzen:
NewParagraph
STATUS LinePos
FrameAnfPos=Result
FONT fo
FontSize si
Case Normal
Position SuperScript
Select
When Numerierung=1 then TYPE ausgabe1||i-g||ausgabe2
When Numerierung=2 then TYPE ausgabe1||i||ausgabe2
Otherwise Nop
End
Position Normal
/* Case SCase*/
If neu=1 then do
SetTab Einzug Left
LeftMargin Einzug
End
Type VText.i
BackSpace
STATUS LinePos
FrameEndPos=Result
Call Check
If Saite~=FNSeite then do /* FN rutschte auf Next Seite */
GraphicTool
SelectObject ObjectID
MakeFrameActive
MoveToLine FrameAnfPos /* eingefügtes löschen */
ShiftDown
MoveToLine FrameEndPos
ShiftUp
BackSpace; BackSpace
Do ForEver
MoveToLine 1 0 /* Leere Zeilen schreiben */
NewParagraph
Call Check
If Saite~=FNSeite then Break
GraphicTool
SelectObject ObjectID
MakeFrameActive
End
oben=MerkeHoehe
i=i-1
End
TextTool
If Saite=FNSeite then do /* FN bleibt auf Seite */
MoveToLine Word(FNPos,1) Word(FNPos,2)
ShiftDown
MoveToLine Word(FNPos,3) Word(FNPos,4)
ShiftUp
Delete /* sonst keine hochgestellten Zeichen */
Position SuperScript
Select
When Numerierung=1 then TYPE ausgabe1||i-g||ausgabe2
When Numerierung=2 then TYPE ausgabe1||i||ausgabe2
Otherwise Nop
End
End
GraphicTool
MerkeHoehe=oben
Return
Check:
GraphicTool
CurrentObject
ObjectID = Result
GetObjectCoords ObjectID
Parse var result . . . . frhoehe
oben=DokHoehe+Word(DS,1)+Word(DS,3)-frhoehe
SelectObject ObjectID
SetObjectCoords 0 FNSeite-SVA LRand oben weite frhoehe
TextTool
MoveToLine Word(FNPos,3) Word(FNPos,4)
STATUS Page "Insert"
Saite=Result
Return
/*-----------------------------------------------------------*/
Voreinstellung:
windowtags = WindowID(2),
WindowPosition('TRWP_CENTERDISPLAY'),
WindowFlags('TRWF_NOMINTEXTWIDTH'),
PubScreenName('FinalWriterPubScreen'),
WindowTitle('Fußnoten-Voreinsteller'),
'HorizGroupAC SpaceS',
'VertGroupA SpaceS',
'HorizGroupAC',
TextID('Art der _Numerierung:',4),
'SpaceS',
CycleGadget('wie',wie-1,4) 'TRAT_Flags TRCY_RIGHTLABELS',
'EndGroup',
'HorizGroupAC',
TextID('S_chriftart:',5),
'SpaceS',
CheckBox(2) 'TRAT_Value 'SText,
GetEntryButton(5) 'TRAT_DISABLED 'SText,
StringGadget(fond,6) 'TRAT_DISABLED 'SText,
'EndGroup',
'HorizGroupAC',
TextID('Schrift_größe:',7),
'SpaceS',
StringGadget(si,7),
'Space',
TextID('A_usgabe:',8),
'SpaceS',
StringGadget(ausgabe,8),
'EndGroup',
'HorizGroupAC',
TextID('_Linienlänge:',1),
'SpaceS',
StringGadget(Linie,1),
'Space',
TextID('_Einzug:',3),
'SpaceS',
StringGadget(Einzug,3),
'EndGroup',
'HorizGroupAC',
TextID('Gesch_windigkeit:',9),
'SpaceS',
CycleGadget('speed',speed-1,9) 'TRAT_Flags TRCY_RIGHTLABELS',
'EndGroup',
'SpaceS',
'HorizGroupEC',
Button('_Sichern',15),
'SpaceS',
Button('_Anwenden',10),
'SpaceS',
Button('Ab_bruch',20),
'EndGroup SpaceS',
'EndGroup SpaceS',
'EndGroup SpaceS',
'EndProject'
app2 = TR_CREATEAPP('TRCA_Name Fußnote2')
IF app2 ~= '00000000'x THEN DO
window2 = TR_OPENPROJECT(app2,windowtags)
IF window2 ~= '00000000'x THEN DO
ende2 = 0
DO WHILE ~ende2
CALL TR_WAIT(app2,'')
DO WHILE TR_HANDLEMSG(app2,'event')
IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende2=1
IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
SELECT
WHEN event.trm_id = 2 THEN Do /*Schrift aus Text*/
oldSText=SText
SText=event.trm_data
address(FW)
Status FontName
oldfo=fo; oldfond=fond
fo=result
If SText=1 then fond="Cursorposition"
else fond=fo
Status FontSize
si=result
CALL TR_SETATTRIBUTE(window2,7,'TROB_String',si)
CALL TR_SETATTRIBUTE(window2,6,'TROB_String',fond)
CALL TR_SETATTRIBUTE(window2,6,'TRAT_DISABLED',event.trm_data)
CALL TR_SETATTRIBUTE(window2,5,'TRAT_DISABLED',event.trm_data)
END
WHEN event.trm_id = 4 THEN Do /*Numerierung*/
oldwie=wie
wie=event.trm_data+1
END
WHEN event.trm_id = 9 THEN Do /*BSAusgabe*/
oldspeed=speed
speed=event.trm_data+1
END
OTHERWISE NOP
END
END
IF event.trm_class = 'TRMS_ACTION' THEN DO
SELECT
WHEN event.trm_id = 5 THEN Do /*Schriftart*/
fond=rtfilerequest("FWFonts/SWOLFonts",,"Font auswählen...",,"rt_pubscrname=FinalWriterPubScreen")
if fond~='' then do
fo=fond
pos = max(index(fond,':'),lastpos('/',fond))
If pos~=0 then fond=Delstr(fond,1,pos)
CALL TR_SETATTRIBUTE(window2,6,'TROB_String',fond)
End
END
WHEN event.trm_id = 10 THEN Do /*okay*/
Call Auslesen
if okay=1 then Call Schreiben
END
WHEN event.trm_id = 15 THEN Do /*speichern*/
Call Auslesen
If okay=1 then do
Call Open("prefs","s:FW_Fussnote.prefs","W")
Writeln('prefs',wie)
Writeln('prefs',fo)
Writeln('prefs',si)
Writeln('prefs',ausgabe)
Writeln('prefs',Linie)
Writeln('prefs',Einzug)
Writeln('prefs',SText)
Writeln('prefs',speed)
Call Close("prefs")
Call Schreiben
End
END
WHEN event.trm_id = 20 THEN Do /*Abbrechen*/
SText=oldSText; fo=oldfo; fond=oldfond
wie=oldwie; speed=oldspeed
ende2=1
END
OTHERWISE NOP
END
END
END
END
CALL TR_CLOSEPROJECT(window2)
END
CALL TR_DELETEAPP(app2)
END
ELSE
CALL quit('Kann das Fenster nicht öffnen',10)
Return
Auslesen:
okay=0
si = TR_GETATTRIBUTE(window2,7,'TROB_String')
If Datatype(si,'W')=0 then do
x=rtezrequest("Die SCHRIFTGRÖßE bitte ganzzahlig angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
Call TR_SendMessage(window2,7,'TROM_ACTIVATE',0)
return
end
If si<4 then si=4
If si>360 then si=360
ausgabe = TR_GETATTRIBUTE(window2,8,'TROB_String')
Linie = TR_GETATTRIBUTE(window2,1,'TROB_String')
If Datatype(Linie,'N')=0 then do
x=rtezrequest("Die LINIENLÄNGE bitte mit (.) angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
Call TR_SendMessage(window2,1,'TROM_ACTIVATE',0)
return
end
Einzug = TR_GETATTRIBUTE(window2,3,'TROB_String')
If Datatype(Einzug,'N')=0 then do
x=rtezrequest("Den EINZUG bitte mit (.) angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
Call TR_SendMessage(window2,3,'TROM_ACTIVATE',0)
return
end
GetDocItemPrefs Tabs
If Einzug<Result then Einzug=Result
okay=1
Return
Schreiben:
o1="Schrift: "||fond||", Größe: "||si
o2="Numerierung: "||wie.wie||", Ausgabe: "||ausgabe
o3="Linie: "||Linie||" cm, Einzug: "||Einzug||" cm"
o4="Geschwindigkeit: "||speed.speed
Call TR_SETATTRIBUTE(window1,5,'TRAT_TEXT',o1)
Call TR_SETATTRIBUTE(window1,6,'TRAT_TEXT',o2)
Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',o3)
Call TR_SETATTRIBUTE(window1,8,'TRAT_TEXT',o4)
ende2=1
Return
Fini:
If Punkt="Comma" then DocItemPrefs DECIMAL Comma
CtrlUp;ShiftUp;AltUp
If speed=2 then Call EndView
Return
AnfView:
GetDisplayPrefs PageTabs SectionTabs /*Register abschalten */
Zungen=result
DisplayPrefs PageTabs Off SectionTabs Off
STATUS View
Zoom=result
View 20
Return
EndView:
View Zoom
do i=1 to 1000
NOP
End
DisplayPrefs PageTabs word(Zungen,1) SectionTabs word(Zungen,2)
Return
/*******************************************************************************
** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
*******************************************************************************/
SYNTAX:
CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
/*******************************************************************************
** Script beenden
*******************************************************************************/
quit:
PARSE ARG message,rcode
IF app ~= '00000000'x THEN DO
IF message ~= '' THEN
ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
CALL TR_DELETEAPP(app)
END
ELSE
IF message ~= '' THEN DO
SAY message
SAY
OPTIONS PROMPT 'Bitte <RETURN> drücken'
PULL taste
END
address command "flushtrx all"
EXIT(rcode)