/* $ver: SprDokATGUI.atxt 1.1 (12.05.99) BLABLA PRODUCT © 1999 Siumot/BlaBla Skrypt sprawdza poprawnoôê pod wzglëdem ortograficznym dokumentu, który znajduje sië w programie AmiTekst. W tym celu otwiera okno panelu Orta na ekranie publicznym, na którym otwarty jest AmiTekst. Nastëpnie kolejno sprawdza wyrazy dokumentu. Korygowanie rozpoczyna sië od wyrazu znajdujâcego sië pod kursorem tekstowym. Jeôli w konfiguracji Orta jest wîâczone îâczenie wyrazów a pod kursorem tekstowym znajduje sië wyraz, który Ort îâczy (np. "nie") to skrypt odczyta nastëpny wyraz i do sprawdzenia przeôle poîâczony wyraz (np. "nie lubië"). W takiej sytuacji kursor tekstowy przemieôci sië na drugi wyraz. Skrypt najlepiej podîoûyê pod klawisz funkcyjny w programie AmiTekst. UWAGA!!! Jeôli nie zainstalowaîeô tego skryptu instalatorem Orta, musisz dopisaê nastëpujâcâ linië: ORTFILENAME=ôcieûka dostëpu/Ort Zamiast "ôcieûka dostëpu" naleûy oczywiôcie wpisaê ôcieûkë dostëpu do programu Ort (np. ORTFILENAME=dh2:tekst/ort/ort). */ OPTIONS RESULTS OPTIONS FAILAT 11 loncz_wyr='NIE NA CO PO JAK OD W BEZ Z NAD' inter=D2C(39)'"/)]}!?.:,;>\' IF ~SHOW('P', 'AmiTekst_port') THEN EXIT 1 ADDRESS 'AmiTekst_port' IF ~SHOW('P', '2b_Ort_rexx') THEN DO IF ORTFILENAME='ORTFILENAME' THEN DO OKAY1 'Program Ort nie jest uruchomiony.' EXIT END ARexxInfo 'Uruchamiam program Ort' ADDRESS COMMAND 'Run >NIL: "'ORTFILENAME'" CX_POPUP' ADDRESS COMMAND 'WaitForPort 2b_Ort_rexx' END ADDRESS '2b_Ort_rexx' Prefs Join Words czylacz=RESULT ADDRESS '2b_Ort_rexx' INFO Version IF RESULT<1.11 THEN DO OKAY1 'Skrypt wymaga Orta w wersji 1.11+' EXIT END Status WindowPosY amiwin_y=RESULT Status WindowHeight amiwin_h=RESULT Status WindowWidth amiwin_w=RESULT Status PubScrName ekran=RESULT Status FullName sllokalny=RESULT amiwin_z=0 oldamiwin_h=amiwin_h ADDRESS '2b_Ort_rexx' WinOpen local '"'sllokalny'"' pub ekran IF rc>1 THEN DO REQUESTNOTIFY 'Nie mogë otworzyê okna' EXIT END ELSE IF rc=1 THEN DO IF (Open('f','t:arexxort_at','R')) THEN DO amiwin_z=ReadLn('f') amiwin_w=ReadLn('f') amiwin_h=ReadLn('f') Close('f') END END ADDRESS '2b_Ort_rexx' WinGet TOPEDGE ort_y=RESULT IF oldamiwin_hort_y THEN DO amiwin_z=amiwin_h-(amiwin_y+amiwin_h-ort_y) SizeWindow amiwin_w amiwin_z END IF ~exists('t:arexxort_at') THEN DO IF (Open('f','t:arexxort_at','W')) THEN DO WriteLn('f',amiwin_z) WriteLn('f',amiwin_w) WriteLn('f',amiwin_h) Close('f') END END ARexxInfo 'Sprawdzam dokument' Status CursorWord IF RESULT='RESULT' THEN NextWord DO FOREVER dwawyr=0 Status CursorWord wyraz=RESULT IF wyraz='RESULT' THEN DO ADDRESS '2b_Ort_rexx' WinClose IF ~(amiwin_z=0) THEN SizeWindow amiwin_w amiwin_h Exit END IF czylacz=1 THEN DO IF ~(FIND(loncz_wyr,UPPER(wyraz))=0) THEN DO EndOfWord Status CursorChar IF POS(D2C(RESULT),inter)=0 THEN DO NextWord Status CursorWord dczlon=RESULT IF FIND(loncz_wyr' I A RESULT',UPPER(dczlon))=0 THEN DO wyraz=wyraz' 'dczlon dwawyr=1 END ELSE PrevWord END END END ADDRESS '2b_Ort_rexx' WinCor wyraz err=RESULT IF BITAND(1,err)=1 THEN DO /* poprawka */ EndOfWord MarkBlock LEFT BegOfWord IF dwawyr=1 THEN DO PrevWord BegOfWord END ZapBlock ADDRESS '2b_Ort_rexx' WinGet 'WORD' TEXT RESULT END IF BITAND(2,err)=2 THEN DO /* stop */ ADDRESS '2b_Ort_rexx' WinClearOldWord LEAVE END IF BITAND(4,err)=4 THEN DO /* zamkniëcie okna */ IF ~(amiwin_z=0) THEN SizeWindow amiwin_w amiwin_h LEAVE END NextWord END ARexxInfo ' ' EXIT