home *** CD-ROM | disk | FTP | other *** search
- /* WarpJPEG.rexx
- Goal: GUI di configurazione per WarpJPEG.datatype
- Version: 1.0
- Date: 8.5.2001
- Author: Alfonso Ranieri
- */
-
- signal on halt
- signal on break_c
-
- call Init()
- call CreateApp()
- call HandleApp()
- /* never reached */
- /***********************************************************************/
- Init: procedure expose global.
- l="rmh.library";if ~show("L",l) then;if ~AddLib(l,0,-30) then exit
- if AddLibrary("rxmui.library")~=0 then exit
- call RxMUIOpt("DebugMode ShowErr")
- global.test=0
- return
- /***********************************************************************/
- HandleApp: procedure expose global.
- ctrl_c=2**12
- do forever
- call NewHandle("app","h",ctrl_c)
- if and(h.signals,ctrl_c)~=0 then call SafeExit()
- if h.EventFlag then
- select
- when h.event="QUIT" then call SafeExit()
- otherwise interpret h.event
- end
- end
- /* never reached */
- /***********************************************************************/
- CreateApp: procedure expose global.
-
- mstrip.0="mproject"
- mproject.Class="menu"
- mproject.Title="Project"
- mproject.0=MenuItem("mabout","About...","?")
- mproject.1=MenuItem("maboutrxmui","About RxMUI...")
- mproject.2=MenuItem("maboutmui","About MUI...")
- mproject.3=MenuItem("","BAR")
- mproject.4=MenuItem("mhide","Hide","H")
- mproject.5=MenuItem("","BAR")
- mproject.6=MenuItem("mquit","Quit","Q")
- mstrip.1="meditor"
- meditor.Class="menu"
- meditor.Title="Editor"
- meditor.0=MenuItem("mdefault","Reset to defaults","D")
- meditor.1=MenuItem("mlast","Last saveds","L")
- meditor.2=MenuItem("mrestore","Restore","R")
- meditor.3=MenuItem("","BAR")
- meditor.4=MenuItem("mmui","MUI...")
- if NewObj("menustrip","mstrip")>0 then exit
-
- app.title="WarpJPEG"
- app.version="$VER: WarpJPEG 1.0 (8.5.2001)"
- app.copyright="Copyright 2001 Alfonso Ranieri"
- app.author="Alfonso Ranieri"
- app.description="Manages WarpJPEG preferences"
- app.base="WarpJPEG"
- app.MenuStrip="mstrip"
- app.SubWindow="mwin"
-
- mwin.title="WarpJPEG Preferences"
- mwin.ID="MAIN"
- mwin.contents="mgroup"
-
- mgroup.0="hg"
- hg.Class="group"
- hg.Horiz=1
- hg.Spacing=2
-
- hg.0="hlister"
- hlister.Class="listview"
- hlister.FixWidthTxt="123456789012"
- hlister.list="entries"
- entries.Frame="InputList"
- entries.Names="WarpDT,JPEG"
-
- hg.1="hpager"
- hpager.Class="group"
- hpager.PageMode=1
- hpager.Frame="ReadList"
- hpager.Background="PageBack"
-
- hpager.0="warpdt"
- warpdt.Class="group"
- warpdt.0=VSpace()
- warpdt.1="OS3.5Dith"
- OS3.5Dith.Class="group"
- OS3.5Dith.Frame="Group"
- OS3.5Dith.FrameTitle="OS3.5 Dithering"
- OS3.5Dith.Background="GroupBack"
- OS3.5Dith.Columns=2
- OS3.5Dith.0=Label("_Override")
- OS3.5Dith.1=MakeObj("DITHER_OVERRIDE","Cycle","Nothing|Defaults Only|Applications Only|Everything","o",1)
- OS3.5Dith.2=Label("_Quality")
- OS3.5Dith.3=MakeObj("DITHER_QUALITY","Cycle","Poor (Fast)|Good (Slow)|Best (Slow)","q")
- OS3.5Dith.4=Label("Depth _filter")
- OS3.5Dith.5=MakeObj("DITHER_DEPTH","slider",'f',1,24)
- warpdt.2=VSpace()
- warpdt.3="PenSel"
- PenSel.Class="group"
- PenSel.Frame="Group"
- PenSel.FrameTitle="Pen selection"
- PenSel.Background="GroupBack"
- PenSel.Columns=2
- PenSel.0=Label("O_verride")
- PenSel.1=MakeObj("PENS_OVERRIDE","Cycle","Nothing|Defaults Only|Applications Only|Everything","v",1)
- PenSel.2=Label("Qu_ality")
- PenSel.3=MakeObj("PENS_QUALITY","Cycle","Poor|Good|Best","a")
- warpdt.4=VSpace()
-
- hpager.1="jpeg"
- jpeg.Class="group"
- jpeg.0=VSpace()
- jpeg.1="Dec"
- Dec.Class="group"
- Dec.Frame="Group"
- Dec.FrameTitle="Decoder"
- Dec.Background="GroupBack"
- Dec.0="dec0"
- dec0.Class="group"
- dec0.Columns=2
- dec0.0=Label("_Output mode")
- dec0.1=MakeObj("OUTPUT_MODE","Cycle","Full Colour (24 bit)|Reduced Colour","o",1)
- dec0.2=Label("_DCT quality")
- dec0.3=MakeObj("DCT_METHOD","Cycle","Good (Fatest)|Best (Slower)","d")
- Dec.1="dec1"
- dec1.Class="group"
- dec1.Horiz=1
- dec1.0=HSpace()
- dec1.1=Checkmark("FANCY_UPSAMPLING",,"f")
- dec1.2=Label("Enable _Fancy Upsampling")
- dec1.3=HSpace()
- jpeg.2=VSpace()
- jpeg.3="ColRed"
- ColRed.Class="group"
- ColRed.Frame="Group"
- ColRed.FrameTitle="Colour reduction"
- ColRed.Background="GroupBack"
- ColRed.0="crg"
- crg.Class="group"
- crg.Columns=2
- crg.0=Label("Dit_hering")
- crg.1=MakeObj("DITHER","Cycle","None|Ordered|Floyd-Steinberg","h",0)
- crg.2=Label("Colour _Quality")
- crg.3=MakeObj("QUANTIZATION","Cycle","Poor (Fast)|Best (Slow)","q")
- crg.4=Label("_Max Colours")
- crg.5=MakeObj("NUM_COLOURS","slider",'m',8,256)
- jpeg.4=VSpace()
-
- mgroup.1=Text("info")
-
- mgroup.2="bg"
- bg.Class="group"
- bg.Horiz=1
- bg.SameSize=1
- bg.0=button("save","_Save")
- bg.1=HSpace()
- bg.2=button("use","_Use")
- bg.3=HSpace()
- bg.4=button("test","_Test")
- bg.5=HSpace()
- bg.6=button("cancel","_Cancel")
-
- if NewObj("Application","app")>0 then exit
-
- call set("hlister","Active",0)
-
- call notify("mwin","CloseRequest",1,"app","ReturnID","quit")
-
- call notify("mabout","MenuTrigger","Everytime","app","about","mwin")
- call notify("maboutrxmui","MenuTrigger","Everytime","app","AboutRxMUI","mwin")
- call notify("maboutmui","MenuTrigger","Everytime","app","AboutMUI","mwin")
- call notify("mhide","MenuTrigger","Everytime","app","set","iconified",1)
- call notify("mquit","MenuTrigger","Everytime","app","ReturnID","quit")
- call notify("mdefault","MenuTrigger","Everytime","app","return","call DefaultConfig()")
- call notify("mlast","MenuTrigger","Everytime","app","return","call RestoreConfig(1)")
- call notify("mrestore","MenuTrigger","Everytime","app","return","call RestoreConfig(0)")
- call notify("mmui","MenuTrigger","Everytime","app","OpenConfigWindow")
-
- call notify("hlister","Active","Everytime","hpager","set","activepage","triggervalue")
-
- call notify("DITHER_OVERRIDE","Active","Everytime","DITHER_QUALITY","set","Disabled",0)
- call notify("DITHER_OVERRIDE","Active",0,"DITHER_QUALITY","set","Disabled",1)
- call notify("DITHER_OVERRIDE","Active","Everytime","DITHER_DEPTH","set","Disabled",0)
- call notify("DITHER_OVERRIDE","Active",0,"DITHER_DEPTH","set","Disabled",1)
-
- call notify("PENS_OVERRIDE","Active","Everytime","PENS_QUALITY","set","Disabled",0)
- call notify("PENS_OVERRIDE","Active",0,"PENS_QUALITY","set","Disabled",1)
-
- call notify("OUTPUT_MODE","Active","Everytime","crg","set","Disabled",0)
- call notify("OUTPUT_MODE","Active",0,"crg","set","Disabled",1)
-
- call notify("DITHER","Active","Everytime","QUANTIZATION","set","Disabled",0)
- call notify("DITHER","Active",1,"QUANTIZATION","set","Disabled",1)
-
- call notify("save","Pressed",0,"app","return","call SaveConfigExit(1)")
- call notify("use","Pressed",0,"app","return","call SaveConfigExit(0)")
- call notify("test","Pressed",0,"app","return","call TestConfig()")
- call notify("cancel","Pressed",0,"app","returnid","quit")
-
- call set("mwin","defaultobject","hlister")
-
- call info("Welcome to WarpDTPrefs!")
-
- set.0="mwin"; set.0.attr="open"; set.0.value=1
- set.1="app"; set.1.attr="sleep"; set.1.value=1
- call MultiSetAttr("set")
- if ~xget("mwin","open") then exit
-
- global.gad.0="DITHER_OVERRIDE" ; global.gad.0.attr="Active"
- global.gad.1="DITHER_QUALITY" ; global.gad.1.attr="Active"
- global.gad.2="DITHER_DEPTH" ; global.gad.2.attr="Value"
- global.gad.3="PENS_OVERRIDE" ; global.gad.3.attr="Active"
- global.gad.4="PENS_QUALITY" ; global.gad.4.attr="Active"
- global.gad.5="OUTPUT_MODE" ; global.gad.5.attr="Active"
- global.gad.6="DCT_METHOD" ; global.gad.6.attr="Active"
- global.gad.7="FANCY_UPSAMPLING"; global.gad.7.attr="Selected"
- global.gad.8="DITHER" ; global.gad.8.attr="Active"
- global.gad.9="QUANTIZATION" ; global.gad.9.attr="Active"
- global.gad.10="NUM_COLOURS" ; global.gad.10.attr="Value"
-
- call ReadConfig(0)
- call ConfigToGadgets("GLOBAL.PREFS")
-
- call set("app","sleep",0)
- return
- /***********************************************************************/
- info: procedure expose global.
- parse arg msg,ntsave
- if msg="" then msg=global.last
- else if ntsave~=1 then global.last=msg
- call set("info","contents",msg)
- return
- /***********************************************************************/
- ConfigToGadgets: procedure expose global.
- global.gad.0.value=global.prefs.DITHER_OVERRIDE
- global.gad.1.value=global.prefs.DITHER_QUALITY
- global.gad.2.value=global.prefs.DITHER_DEPTH
- global.gad.3.value=global.prefs.PENS_OVERRIDE
- global.gad.4.value=global.prefs.PENS_QUALITY
- global.gad.5.value=global.prefs.OUTPUT_MODE
- global.gad.6.value=global.prefs.DCT_METHOD
- global.gad.7.value=global.prefs.FANCY_UPSAMPLING
- global.gad.8.value=global.prefs.DITHER
- global.gad.9.value=global.prefs.QUANTIZATION
- global.gad.10.value=global.prefs.NUM_COLOURS
- call MultiSetAttr("global.gad")
- return
- /***************************************************************************/
- GadgetsToConfig: procedure expose global.
- parse arg from
- call MultiGetAttr("global.gad")
- global.prefs.DITHER_OVERRIDE = global.gad.0.value
- global.prefs.DITHER_QUALITY = global.gad.1.value
- global.prefs.DITHER_DEPTH = global.gad.2.value
- global.prefs.PENS_OVERRIDE = global.gad.3.value
- global.prefs.PENS_QUALITY = global.gad.4.value
- global.prefs.OUTPUT_MODE = global.gad.5.value
- global.prefs.DCT_METHOD = global.gad.6.value
- global.prefs.FANCY_UPSAMPLING = global.gad.7.value
- global.prefs.DITHER = global.gad.8.value
- global.prefs.QUANTIZATION = global.gad.9.value
- global.prefs.NUM_COLOURS = global.gad.10.value
- return
- /***************************************************************************/
- ConfigToDefaults: procedure expose global.
- global.prefs.DITHER_OVERRIDE = 0
- global.prefs.DITHER_QUALITY = 2
- global.prefs.DITHER_DEPTH = 8
- global.prefs.PENS_OVERRIDE = 0
- global.prefs.PENS_QUALITY = 1
- global.prefs.OUTPUT_MODE = 0
- global.prefs.DCT_METHOD = 1
- global.prefs.FANCY_UPSAMPLING = 0
- global.prefs.DITHER = 2
- global.prefs.QUANTIZATION = 1
- global.prefs.NUM_COLOURS = 256
- return
- /**************************************************************************/
- ReadConfig: procedure expose global.
- parse arg saved
- call set("app","sleep",1)
- call info("Reading preferences...",1)
- call ConfigToDefaults()
- if saved then conf=GetVar("ENVARC:Datatypes/WarpJPEG.prefs","GLOBAL BINARY")
- else conf=GetVar("Datatypes/WarpJPEG.prefs","GLOBAL BINARY")
- do while conf~=""
- parse upper var conf key "=" value "A"x conf
- select
-
- when key="DITHER_OVERRIDE" then do
- p=find("NOTHING DEFAULTS APPS EVERYTHING",value)
- if p>0 then global.prefs.DITHER_OVERRIDE=p-1
- end
-
- when key="DITHER_QUALITY" then do
- p=find("POOR GOOD BEST",value)
- global.prefs.DITHER_QUALITY=p-1
- end
-
- when key="DITHER_DEPTH" then
- if Datatype(value,"n") then do
- if value>24 then value=24
- else if value<1 then value=1
- global.prefs.DITHER_DEPTH=value
- end
-
- when key="PENS_OVERRIDE" then do
- p=find("NOTHING DEFAULTS APPS EVERYTHING",value)
- if p>0 then global.prefs.PENS_OVERRIDE=p-1
- end
-
- when key="PENS_QUALITY" then do
- p=find("POOR GOOD BEST",value)
- if p>0 then global.prefs.PENS_QUALITY=p-1
- end
-
- when key="OUTPUT_MODE" then do
- p=find("FULL REDUCED",value)
- if p>0 then global.prefs.OUTPUT_MODE=p-1
- end
-
- when key="DCT_METHOD" then do
- p=find("FAST SLOW",value)
- if p>0 then global.prefs.DCT_METHOD=p-1
- end
-
- when key="FANCY_UPSAMPLING" then do
- p=find("OFF ON",value)
- if p>0 then global.prefs.FANCY_UPSAMPLING=p-1
- end
-
- when key="DITHER" then do
- p=find("NONE ORDERED FS",value)
- if p>0 then global.prefs.DITHER=p-1
- end
-
- when key="QUANTIZATION" then do
- p=find("POOR BEST",value)
- if p>0 then global.prefs.QUANTIZATION=p-1
- end
-
- when key="NUM_COLOURS" then
- if Datatype(value,"n") then do
- if value>256 then value=256
- else if value<8 then value=8
- global.prefs.NUM_COLOURS=value
- end
-
- otherwise nop
- end
- end
- call CopyConfig("GLOBAL.PREFS","GLOBAL.BACKPREFS")
- call info("")
- call set("app","sleep",0)
- return
- /***********************************************************************/
- SaveConfig: procedure expose global.
- parse arg save
- call set("app","sleep",1)
- call info("Saving preferences...",1)
- conf=""
- conf=conf || "DITHER_OVERRIDE=" || word("nothing defaults apps everything",global.prefs.DITHER_OVERRIDE+1) || "A"x
- conf=conf || "DITHER_QUALITY=" || word("poor good best",global.prefs.DITHER_QUALITY+1) || "A"x
- conf=conf || "DITHER_DEPTH=" || global.prefs.DITHER_DEPTH || "A"x
- conf=conf || "PENS_OVERRIDE=" || word("nothing defaults apps everything",global.prefs.PENS_OVERRIDE+1) || "A"x
- conf=conf || "PENS_QUALITY=" || word("poor good best",global.prefs.PENS_QUALITY+1) || "A"x
- conf=conf || "OUTPUT_MODE=" || word("full reduced",global.prefs.OUTPUT_MODE+1) || "A"x
- conf=conf || "DCT_METHOD=" || word("slow fast",global.prefs.DCT_METHOD+1) || "A"x
- conf=conf || "FANCY_UPSAMPLING=" || word("off on",global.prefs.FANCY_UPSAMPLING+1) || "A"x
- conf=conf || "DITHER=" || word("none ordered fs",global.prefs.DITHER+1) || "A"x
- conf=conf || "QUANTIZATION=" || word("poor best",global.prefs.QUANTIZATION+1) || "A"x
- conf=conf || "NUM_COLOURS=" || global.prefs.NUM_COLOURS
-
- if save then call SetVar("Datatypes/WarpJPEG.prefs",conf,"SAVE GLOBAL")
- else call SetVar("Datatypes/WarpJPEG.prefs",conf)
-
- call CopyConfig("GLOBAL.PREFS","GLOBAL.BACKPREFS")
-
- global.test=0
- call info("")
- call set("app","sleep",0)
- return
- /***************************************************************************/
- GetSaveConfig: procedure expose global.
- parse arg save
- call GadgetsToConfig()
- call SaveConfig(save)
- return
- /***********************************************************************/
- SaveConfigExit: procedure expose global.
- parse arg save
- call set("mwin","open",0)
- call GetSaveConfig(save)
- exit
- /***********************************************************************/
- DefaultConfig: procedure expose global.
- call ConfigToDefaults()
- call CopyConfig("GLOBAL.PREFS","GLOBAL.BACKPREFS")
- call ConfigToGadgets()
- return
- /***************************************************************************/
- RestoreConfig: procedure expose global.
- parse arg saved
- if saved then call ReadConfig(1)
- else call CopyConfig("GLOBAL.BACKPREFS","GLOBAL.PREFS")
- call ConfigToGadgets()
- return
- /***************************************************************************/
- TestConfig: procedure expose global.
- call CopyConfig("GLOBAL.BACKPREFS","GLOBAL.TESTPREFS")
- call GetSaveConfig(0)
- global.test=1
- return
- /***************************************************************************/
- CopyConfig: procedure expose global.
- parse arg from,to
- interpret to".DITHER_OVERRIDE = "from".DITHER_OVERRIDE"
- interpret to".DITHER_QUALITY = "from".DITHER_QUALITY"
- interpret to".DITHER_DEPTH = "from".DITHER_DEPTH"
- interpret to".PENS_OVERRIDE = "from".PENS_OVERRIDE"
- interpret to".PENS_QUALITY = "from".PENS_QUALITY"
- interpret to".OUTPUT_MODE = "from".OUTPUT_MODE"
- interpret to".DCT_METHOD = "from".DCT_METHOD"
- interpret to".FANCY_UPSAMPLING = "from".FANCY_UPSAMPLING"
- interpret to".DITHER = "from".DITHER"
- interpret to".QUANTIZATION = "from".QUANTIZATION"
- interpret to".NUM_COLOURS = "from".NUM_COLOURS"
- return
- /***************************************************************************/
- SafeExit: procedure expose global.
- if global.test then do
- call CopyConfig("GLOBAL.TESTPREFS","GLOBAL.PREFS")
- call SaveConfig(0)
- end
- exit
- /***************************************************************************/
- halt:
- break_c:
- call SafeExit()
- /**************************************************************************/
-