/* * LISTING 2 * * $VER: Napis 0.99 * * Makrodefinicja w jëzyku Arexx dla programu ImageFX. * Autor: Tadeusz Talar * * Generuje brush'a zawierajâcego wprowadzony tekst na podstawie * podanego pliku czcionki o rozszerzeniu ".font", w zadanym rozmiarze * i proporcji znaku. * Obróbce mogâ podlegaê czcionki wektorowe i bitmapowe. * */ OPTIONS RESULTS /* Parametry poczâtkowe */ czcionka = 'CGArial.font' rozmiar = 100 proporcja = 100 tekst = '' /* Sprawdzenie czy istniejâ w Clipboardzie ARexx'a odpowiednie Clip'y, * jeûeli tak to przypisanie ich zawartoôci poszczególym zmiennym */ clips = SHOW('C') IF INDEX(clips,'IFX_C') > 0 THEN czcionka = GETCLIP('IFX_Czcionka') IF INDEX(clips,'IFX_R') > 0 THEN rozmiar = GETCLIP('IFX_Rozmiar') IF INDEX(clips,'IFX_P') > 0 THEN proporcja = GETCLIP('IFX_Proporcja') IF INDEX(clips,'IFX_T') > 0 THEN tekst = GETCLIP('IFX_Tekst') /* Pobranie rozmiaru obrazka */ GetMain ; IF result = "" THEN EXIT PARSE VAR result o_nazwa o_szer o_wys . /* Wyôwietlenie listy dostëpnych plików ".font" i pobranie nazwy wybranego */ RequestFile '"Wybierz Czcionke" FONTS:' STRIP(czcionka,L,"FONTS:") ' "#?.font"' FILESONLY IF rc ~= 0 THEN EXIT czcionka = result /* Pobranie wartoôci rozmiaru znaku */ RequestSlider '"Rozmiar znaku:"' 10 300 rozmiar IF rc ~= 0 THEN EXIT rozmiar = result /* Pobranie wartoôci proporcji znaku, od 10 do 300 % wartoôci szerokoôci * standardowej dla wprowadzonego rozmiaru znaku */ RequestSlider '"Proporcja znaku:"' 10 300 proporcja IF rc ~= 0 THEN EXIT proporcja = result /* Pobranie tekstu */ RequestString '"Wprowadz tekst:"' tekst IF rc ~= 0 THEN EXIT tekst = result /* Generacja brush'a na podstawie wprowadzonych parametrów przy uûyciu * komendy tekst */ Text czcionka rozmiar proporcja tekst GetBrush ; IF result = "" THEN EXIT PARSE VAR result nazwa szer wys . AntiAlias 255 EdgeMode AntiAlias BrushHandle szer%2 wys%2 /* Utworzenie Clip'ów w Clipboard'zie ARexx'a */ CALL SETCLIP('IFX_Czcionka', czcionka) CALL SETCLIP('IFX_Rozmiar', rozmiar) CALL SETCLIP('IFX_Proporcja', proporcja) CALL SETCLIP('IFX_Tekst', tekst) EXIT