home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 03 / ami021b.txt < prev    next >
Text File  |  1997-04-06  |  2KB  |  126 lines

  1. <l>
  2. /*
  3.  
  4.  * LISTING 2
  5.  
  6.  *
  7.  
  8.  * $VER: Napis 0.99
  9.  
  10.  *
  11.  
  12.  * Makrodefinicja w jëzyku Arexx dla programu ImageFX.
  13.  
  14.  * Autor: Tadeusz Talar 
  15.  
  16.  *
  17.  
  18.  * Generuje brush'a zawierajâcego wprowadzony tekst na podstawie
  19.  
  20.  * podanego pliku czcionki o rozszerzeniu ".font", w zadanym rozmiarze 
  21.  
  22.  * i proporcji znaku.
  23.  
  24.  * Obróbce mogâ podlegaê czcionki wektorowe i bitmapowe.
  25.  
  26.  *
  27.  
  28.  */
  29.  
  30. OPTIONS RESULTS
  31.  
  32. /* Parametry poczâtkowe */
  33.  
  34. czcionka  = 'CGArial.font'
  35.  
  36. rozmiar   = 100
  37.  
  38. proporcja = 100
  39.  
  40. tekst = ''
  41.  
  42. /* Sprawdzenie czy istniejâ w Clipboardzie ARexx'a odpowiednie Clip'y,
  43.  * jeûeli tak to przypisanie ich zawartoôci poszczególym zmiennym
  44.  */
  45.  
  46. clips = SHOW('C')
  47.  
  48. IF INDEX(clips,'IFX_C') > 0 THEN czcionka  = GETCLIP('IFX_Czcionka')
  49.  
  50. IF INDEX(clips,'IFX_R') > 0 THEN rozmiar   = GETCLIP('IFX_Rozmiar')
  51.  
  52. IF INDEX(clips,'IFX_P') > 0 THEN proporcja = GETCLIP('IFX_Proporcja')
  53.  
  54. IF INDEX(clips,'IFX_T') > 0 THEN tekst     = GETCLIP('IFX_Tekst')
  55.  
  56. /* Pobranie rozmiaru obrazka */
  57.  
  58. GetMain ; IF result = "" THEN EXIT
  59.  
  60. PARSE VAR result o_nazwa o_szer o_wys .
  61.  
  62. /* Wyôwietlenie listy dostëpnych plików ".font" i pobranie nazwy wybranego */
  63.  
  64. RequestFile '"Wybierz Czcionke" FONTS:' STRIP(czcionka,L,"FONTS:") ' "#?.font"' 
  65. FILESONLY
  66.  
  67. IF rc ~= 0 THEN EXIT
  68.  
  69. czcionka = result
  70.  
  71. /* Pobranie wartoôci rozmiaru znaku */
  72.  
  73. RequestSlider '"Rozmiar znaku:"' 10 300 rozmiar
  74.  
  75. IF rc ~= 0 THEN EXIT
  76.  
  77. rozmiar = result
  78.  
  79. /* Pobranie wartoôci proporcji znaku, od 10 do 300 % wartoôci szerokoôci
  80.  
  81.  * standardowej dla wprowadzonego rozmiaru znaku
  82.  
  83.  */
  84.  
  85. RequestSlider '"Proporcja znaku:"' 10 300 proporcja
  86.  
  87. IF rc ~= 0 THEN EXIT
  88.  
  89. proporcja = result
  90.  
  91. /* Pobranie tekstu */
  92.  
  93. RequestString '"Wprowadz tekst:"' tekst
  94.  
  95. IF rc ~= 0 THEN EXIT
  96.  
  97. tekst = result
  98.  
  99. /* Generacja brush'a na podstawie wprowadzonych parametrów przy uûyciu
  100.  * komendy tekst
  101.  */
  102.  
  103. Text czcionka rozmiar proporcja tekst
  104.  
  105. GetBrush ; IF result = "" THEN EXIT
  106.  
  107. PARSE VAR result nazwa szer wys .
  108.  
  109. AntiAlias 255
  110.  
  111. EdgeMode AntiAlias
  112.  
  113. BrushHandle szer%2 wys%2
  114.  
  115. /* Utworzenie Clip'ów w Clipboard'zie ARexx'a */
  116.  
  117. CALL SETCLIP('IFX_Czcionka',  czcionka)
  118.  
  119. CALL SETCLIP('IFX_Rozmiar',   rozmiar)
  120.  
  121. CALL SETCLIP('IFX_Proporcja', proporcja)
  122.  
  123. CALL SETCLIP('IFX_Tekst',     tekst)
  124.  
  125. EXIT
  126.