home *** CD-ROM | disk | FTP | other *** search
- /* Personal Paint Amiga Rexx script - Copyright © 1997 Cloanto Italia srl */
-
- /* $VER: BrushFormat.pprx 1.1 */
-
- /** ENG
- This script makes it possible to exactly set a new brush
- format (size and number of colors).
-
- The new brush size can be specified in pixels or in
- percentage of the original size. A value of 0 in one of
- the two fields indicates that the original aspect ratio
- should be preserved.
-
- If the brush size is reduced and the number of colors
- is increased, and the "Color Average Resize" setting
- is enabled, then the brush palette is extended with new
- colors. This results in better antialiasing.
- */
-
- /** DEU
- Dieses Skript ermöglicht die präzise Einstellung eines Pinselformats (d. h.
- Größe und Anzahl der Farben).
-
- Der neue Größenwert läßt sich wahlweise in Pixeln oder in Prozent der
- ursprünglichen Größe angeben. Wird in eines der beiden Felder der Wert 0
- eingetragen, so bedeutet dies, daß das ursprüngliche Höhen-/
- Breitenverhältnis erhalten bleiben soll.
-
- Wenn die Pinselgröße verringert, die Anzahl der Farben gleichzeitig erhöht
- und die Option "Farben mit Größe ändern" aktiviert wird, werden der
- Pinselpalette neue Farben hinzugefügt, um eine bessere Kantenglättung zu
- ermöglichen.
- */
-
- /** ITA
- Con questo script è possibile impostare con precisione il formato di
- un nuovo pennello (dimensioni e numero di colori).
-
- Si possono specificare le dimensioni del nuovo pennello in pixel o come
- percentuale delle dimensioni originali. Un valore di 0 in uno dei due
- campi indica al programma di conservare l'aspetto originale (rapporto
- larghezza/altezza).
-
- Se si riducono le dimensioni del pennello e si aumenta il numero di colori,
- ed è attivo il parametro "Rimodellamento con media", la tavolozza del
- pennello sarà ampliata con nuovi colori. Ciò consente un miglior effetto
- di smorzamento seghettature (antialiasing).
- */
-
- IF ARG(1, EXISTS) THEN
- PARSE ARG PPPORT
- ELSE
- PPPORT = 'PPAINT'
-
- IF ~SHOW('P', PPPORT) THEN DO
- IF EXISTS('PPaint:PPaint') THEN DO
- ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
- DO 30 WHILE ~SHOW('P',PPPORT)
- ADDRESS COMMAND 'Wait >NIL: 1 SEC'
- END
- END
- ELSE DO
- SAY "Personal Paint could not be loaded."
- EXIT 10
- END
- END
-
- IF ~SHOW('P', PPPORT) THEN DO
- SAY 'Personal Paint Rexx port could not be opened'
- EXIT 10
- END
-
- ADDRESS VALUE PPPORT
- OPTIONS RESULTS
- OPTIONS FAILAT 10000
-
- Get 'LANG'
- IF RESULT = 1 THEN DO /* Deutsch */
- txt_title_format = "Pinselformat"
- txt_gad_width = "_Breite:"
- txt_gad_height = "_Höhe:"
- txt_gad_unit = "_Einheit:"
- txt_gad_unit0 = "Pixel"
- txt_gad_unit1 = "Prozent"
- txt_gad_colors = "_Farben:"
- txt_err_oldclient = "Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich"
- END
- ELSE IF RESULT = 2 THEN DO /* Italiano */
- txt_title_format = "Formato pennello"
- txt_gad_width = "_Larghezza:"
- txt_gad_height = "Al_tezza:"
- txt_gad_unit = "_Unità:"
- txt_gad_unit0 = "Pixel"
- txt_gad_unit1 = "Percentuale"
- txt_gad_colors = "C_olori:"
- txt_err_oldclient = "Questa procedura richiede_una versione più recente_di Personal Paint"
- END
- ELSE DO /* English */
- txt_title_format = "Brush Format"
- txt_gad_width = "_Width:"
- txt_gad_height = "_Height:"
- txt_gad_unit = "_Unit:"
- txt_gad_unit0 = "Pixels"
- txt_gad_unit1 = "Percentage"
- txt_gad_colors = "C_olors:"
- txt_err_oldclient = "This script requires a newer_version of Personal Paint"
- END
-
- Version 'REXX'
- IF RESULT < 7 THEN DO
- RequestNotify 'PROMPT "'txt_err_oldclient'"'
- EXIT 10
- END
-
- LockGUI
- GetCurrentBrush
- currbsh = RESULT
- custombsh = (WORD(currbsh, 1) = 'BRUSH')
-
- GetBrushAttributes 'WIDTH'
- bwidth = RESULT
- GetBrushAttributes 'HEIGHT'
- bheight = RESULT
-
- req = ,
- 'INTSTR = ""'txt_gad_width'"", 0, 32000, 'bwidth' ' ||,
- 'INTSTR = ""'txt_gad_height'"", 0, 32000, 'bheight' ' ||,
- 'CYCLE = ""'txt_gad_unit'"", 2, 0, ""'txt_gad_unit0'"", ""'txt_gad_unit1'""'
-
- IF custombsh THEN DO
- GetBrushAttributes 'COLORS'
- bcolors = RESULT
- DO bdepth = 1 TO 8
- IF 2 ** bdepth = bcolors THEN
- BREAK
- END
- req = req ||,
- ' SEPARATOR ' ||,
- ' COLSLIDE = ""'txt_gad_colors'"", 1, 8, 'bdepth
- END
-
- Request '"'txt_title_format'" "'req'"'
- IF RC = 0 THEN DO
- new_bwidth = RESULT.1
- new_bheight = RESULT.2
- unit = RESULT.3
- IF custombsh THEN
- new_bcolors = 2 ** RESULT.4
-
- IF unit = 1 THEN DO
- new_bwidth = TRUNC(bwidth * new_bwidth / 100 + 0.5)
- new_bheight = TRUNC(bheight * new_bheight / 100 + 0.5)
- END
-
- IF new_bwidth ~= 0 | new_bheight ~= 0 THEN DO
- IF new_bwidth = 0 THEN
- new_bwidth = TRUNC(new_bheight * (bwidth / bheight) + 0.5)
-
- IF new_bwidth < 1 THEN
- new_bwidth = 1
-
- IF new_bheight = 0 THEN
- new_bheight = TRUNC(new_bwidth / (bwidth / bheight) + 0.5)
-
- IF new_bheight < 1 THEN
- new_bheight = 1
-
- IF custombsh THEN DO
- IF new_bwidth ~= bwidth | new_bheight ~= bheight | new_bcolors ~= bcolors THEN
- SetBrushAttributes 'WIDTH' new_bwidth 'HEIGHT' new_bheight 'COLORS' new_bcolors 'EXTENDPALETTE'
- END
- ELSE DO
- IF new_bwidth ~= bwidth | new_bheight ~= bheight THEN
- SetCurrentBrush WORD(currbsh,1) 'WIDTH' new_bwidth 'HEIGHT' new_bheight
- END
- END
- END
-
- UnlockGUI
-