home *** CD-ROM | disk | FTP | other *** search
- OPT PREPROCESS
-
- MODULE 'amigalib/boopsi',
- 'dos/dos','dos/dosextens',
- 'exec/execbase','exec/lists','exec/nodes','exec/tasks',
- 'intuition/classes','intuition/classusr','intuition/intuition','intuition/screens',
- 'libraries/asl','libraries/gadtools','libraries/mui','libraries/muip',
- 'mui/muicustomclass','muimaster',/*'mui/Busy_mcc',*/
- 'utility','utility/tagitem','utility/hooks',
- '*bprefslocale'
-
- ENUM ID_VIEW=1,ID_USE,ID_TEST,ID_SAVE,ID_VIEWACT,ID_SETCOL,
- ID_ABOUT,ID_MABOUT,ID_PREFS,ID_VALRES,ID_VALLST,ID_VALINI,ID_HIDE,ID_ADDP,ID_DELP,
- ID_REFRS,ID_REFRL,
- ID_DOUBLE
-
- #define PROGVER '$VER: Birdie Prefs 1.27 (13/06/98)'
-
- DEF app,window,sigs=0,running,result,
- active_cc,patternlist:PTR TO LONG,patternlen,
- menu,gmenu,gmenuobj,
- vmenu,vmenuobj,
- tested, /*TRUE if the test button has been pressed at least once*/
- adr_lra,adr_lga,adr_lba, /*Light Balance*/
- adr_dra,adr_dga,adr_dba, /*Dark Balance*/
- adr_view,adr_current,adr_l,adr_lv,adr_addp,adr_delp, /*Patternlist*/
- adr_active,adr_activen,adr_activec,adr_colour,adr_activelvl,adr_activepasl,adr_viewact, /*Active Window*/
- adr_nobmp,adr_noborder,adr_flood,adr_nolight,adr_precision,adr_exclude,adr_doexcl,adr_pubscreens, /*Options*/
- adr_save,adr_use,adr_test,adr_cancel,
- adr_stat,/*adr_busy,*/
- red,green,blue,
-
- -> penspec:PTR TO mui_penspec,
- cmd[600]:STRING,s:PTR TO CHAR,n,tmp[100]:STRING,
- tstdout,thandler /*I've limited the command line to about 600 chars, I think
- it will be enough*/
-
- CONST FL_NONE=0
- SET FL_EXIT,FL_SAVE
-
- DEF task
-
- DEF startStat,pos,
- btmp[600]:STRING,space,activep=FALSE,s2[60]:STRING
- DEF cat:PTR TO catalog_bprefs
-
- DEF cl_pslider:PTR TO mui_customclass
-
- /***********************************
- cmenu custom private class:subclass of any class, but handles a contextmenu
- ***************************************/
-
- #define mCheckMark(selected) NewObjectA(cl_mimage.mcc_class,NIL,[ImageButtonFrame,\
- MUIA_InputMode, MUIV_InputMode_Toggle,\
- MUIA_Image_Spec, MUII_CheckMark,\
- MUIA_Image_FreeVert,MUI_TRUE,\
- MUIA_Selected, selected,\
- MUIA_Background, MUII_ButtonBack,\
- MUIA_ShowSelState, FALSE,\
- MUIA_ContextMenu,gmenuobj,\
- MUIA_Cmenu_Default,selected,\
- MUIA_Cmenu_Attribute,MUIA_Selected,\
- End
-
- #define mSliderObject(lvl) NewObjectA(cl_mslider.mcc_class,NIL,[MUIA_ContextMenu,gmenuobj,\
- MUIA_Cmenu_Attribute,MUIA_Slider_Level,\
- MUIA_Cmenu_Default,lvl,\
- MUIA_Slider_Level,lvl
-
-
- #define mStringObject NewObjectA(cl_mstring.mcc_class,NIL,[MUIA_ContextMenu,gmenuobj,\
- MUIA_Cmenu_Default,'',\
- MUIA_Cmenu_Attribute,MUIA_String_Contents
-
- #define mVGroup NewObjectA(cl_mgroup.mcc_class,NIL,[MUIA_ContextMenu,vmenuobj
-
- #define mHGroup NewObjectA(cl_mgroup.mcc_class,NIL,[MUIA_Group_Horiz,MUI_TRUE,MUIA_ContextMenu,gmenuobj
-
- DEF cl_mslider:PTR TO mui_customclass
- DEF cl_mimage: PTR TO mui_customclass
- DEF cl_mstring:PTR TO mui_customclass
- DEF cl_mgroup: PTR TO mui_customclass -> mgroup is not exactely like image or slider, it sends the method to all his children
-
- ENUM MUIA_Cmenu_Attribute=$FCB90000,
- MUIA_Cmenu_Default,
- MUIA_Cmenu_Initial
-
- OBJECT mgroup_data
- empty:INT
- ENDOBJECT
- /*dispatcher for the mGroup class, that sends the contextmenuchoice method to all its children*/
- PROC mgroup_dispatcher(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO msg)
- DEF state,member
- IF msg.methodid = MUIM_ContextMenuChoice
- get(obj,MUIA_Group_ChildList,{state})
- NextObject({state})
- WHILE (member:=NextObject({state}))
- doMethodA(member,msg)
- ENDWHILE
- RETURN NIL
- ENDIF
- ENDPROC doSuperMethodA(cl,obj,msg)
-
- OBJECT cmenu_data
- attr -> the name of the attribute to change, e.g. MUIA_Slider_Level
- default,initial
- ENDOBJECT
-
- PROC cmenu_dispatcher(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO msg)
- DEF methodid
- methodid:=msg.methodid
- SELECT methodid
- CASE OM_NEW ; RETURN cmenu_new(cl,obj,msg)
- CASE OM_SET ; RETURN cmenu_set(cl,obj,msg)
- CASE MUIM_ContextMenuChoice ; RETURN cmenu_contextmenuchoice(cl,obj,msg)
- ENDSELECT
- ENDPROC doSuperMethodA(cl,obj,msg)
-
- PROC cmenu_new(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO opset)
- DEF data:PTR TO cmenu_data,
- tags:PTR TO tagitem,
- tag:PTR TO tagitem,
- attrid,c=TRUE
-
- IF (obj:=doSuperMethodA(cl,obj,msg))=NIL THEN RETURN NIL
- data:=INST_DATA(cl,obj)/*like the "set" method, I should create a single procedure to it..*/
- tags:=msg.attrlist
- WHILE tag:=NextTagItem({tags})
- IF tag.data
- attrid:=tag.tag
- SELECT attrid
- CASE MUIA_Cmenu_Attribute
- data.attr:=tag.data
- CASE MUIA_Cmenu_Default
- data.default:=tag.data
- CASE MUIA_Cmenu_Initial
- data.initial:=tag.data ; c:=FALSE
- ENDSELECT
- ENDIF
- ENDWHILE
- IF c THEN data.initial:=data.default
- ENDPROC obj
-
- PROC cmenu_set(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO opset)
- DEF data:PTR TO cmenu_data,
- tags:PTR TO tagitem,
- tag:PTR TO tagitem,
- attrid
-
- data:=INST_DATA(cl,obj)
- tags:=msg.attrlist
- WHILE tag:=NextTagItem({tags})
- IF tag.data
- attrid:=tag.tag
- SELECT attrid
- CASE MUIA_Cmenu_Attribute
- data.attr:=tag.data
- CASE MUIA_Cmenu_Default
- data.default:=tag.data
- CASE MUIA_Cmenu_Initial
- data.initial:=tag.data
- ENDSELECT
- ENDIF
- ENDWHILE
- ENDPROC doSuperMethodA(cl,obj,msg)
-
- PROC cmenu_contextmenuchoice(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO LONG)
- DEF menuitem,str:PTR TO CHAR,data:PTR TO cmenu_data
- data:=INST_DATA(cl,obj)
- menuitem:=msg[1] -> That looks quite ugly, but what should I put as msg type?
- get(menuitem,MUIA_Menuitem_Title,{str})
- IF StrCmp(str,cat.msgmReset.getstr())
- set(obj,data.attr,data.default)
- ELSEIF StrCmp(str,cat.msgmInitial.getstr())
- set(obj,data.attr,data.initial)
- ENDIF
- ENDPROC
-
- /*************
- pSlider cc: just a subclass of Slider class, replacing the value by "exact"
- when it is -1. It also has a context menu
- *************/
-
- #define pSliderObject NewObjectA(cl_pslider.mcc_class,NIL,[TAG_IGNORE,0
-
- OBJECT pslider_data
- string:PTR TO CHAR
- ENDOBJECT
-
- PROC pslider_dispatcher(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO msg)
- DEF methodid
- methodid:=msg.methodid
- SELECT methodid
- CASE OM_NEW ; RETURN pslider_new(cl,obj,msg)
- CASE OM_DISPOSE ; RETURN pslider_dispose(cl,obj,msg)
- CASE MUIM_Numeric_Stringify ; RETURN pslider_stringify(cl,obj,msg)
- ENDSELECT
- ENDPROC doSuperMethodA(cl,obj,msg)
-
- PROC pslider_new(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO msg)
- DEF data:PTR TO pslider_data
- IF (obj:=doSuperMethodA(cl,obj,msg)) = NIL THEN RETURN NIL
- data:=INST_DATA(cl,obj)
- data.string:=String(10)
- ENDPROC obj
-
- PROC pslider_dispose(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO msg)
- DEF data:PTR TO pslider_data
- data:=INST_DATA(cl,obj)
- DisposeLink(data.string)
- ENDPROC doSuperMethodA(cl,obj,msg)
-
- PROC pslider_stringify(cl:PTR TO iclass,obj:PTR TO object,msg:PTR TO muip_numeric_stringify)
- DEF data:PTR TO pslider_data
- data:=INST_DATA(cl,obj)
- IF msg.value=-1
- StrCopy(data.string,cat.msglExact.getstr())
- ELSE
- StringF(data.string,'\d',msg.value)
- ENDIF
- ENDPROC data.string
-
- PROC main() HANDLE
-
- IF (localebase:=OpenLibrary('locale.library',0)) = NIL THEN
- Raise('Couldn''t open locale.library') -> Don't put this in catalogs ;-)
- NEW cat.create()
- cat.open()
-
- IF (utilitybase:=OpenLibrary('utility.library',36))=NIL THEN
- Raise(cat.msgfNoUtility.getstr())
-
- NEW patternlist[21]
-
- muimasterbase:=OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN)
- IF muimasterbase = NIL THEN
- Raise(cat.msgfNoMui.getstr())
-
- IF (cl_mslider:=eMui_CreateCustomClass(NIL,MUIC_Slider,NIL,SIZEOF cmenu_data,{cmenu_dispatcher})) = NIL THEN
- Raise(cat.msgfCslider.getstr())
-
- IF (cl_mimage:=eMui_CreateCustomClass(NIL,MUIC_Image,NIL,SIZEOF cmenu_data,{cmenu_dispatcher})) = NIL THEN
- Raise(cat.msgfCimage.getstr())
-
- IF (cl_mstring:=eMui_CreateCustomClass(NIL,MUIC_String,NIL,SIZEOF cmenu_data,{cmenu_dispatcher})) = NIL THEN
- Raise(cat.msgfCstring.getstr())
-
- IF (cl_mgroup:=eMui_CreateCustomClass(NIL,MUIC_Group,NIL,SIZEOF mgroup_data,{mgroup_dispatcher})) = NIL THEN
- Raise(cat.msgfCgroup.getstr())
-
- IF (cl_pslider:=eMui_CreateCustomClass(NIL,MUIC_Slider,NIL,SIZEOF pslider_data,{pslider_dispatcher})) = NIL THEN
- Raise(cat.msgfCpslider.getstr())
-
- active_cc:=[cat.msglColour.getstr(),cat.msglPattern.getstr(),NIL]
-
- menu:=[
- NM_TITLE,0, cat.msgmProject.getstr(), 0, 0, 0, 0,
- NM_ITEM, 0, cat.msgmAbout.getstr(), '?', 0, 0, ID_ABOUT,
- NM_ITEM, 0, cat.msgmAboutMui.getstr(),'''',0, 0, ID_MABOUT,
- NM_ITEM, 0, cat.msgmSettings.getstr(),'P', 0, 0, ID_PREFS,
- NM_ITEM, 0, NM_BARLABEL, 0, 0, 0, 0,
- NM_ITEM, 0, cat.msgmSave.getstr(), 'S', 0, 0, ID_SAVE,
- NM_ITEM, 0, cat.msgmUse.getstr(), 'U', 0, 0, ID_USE,
- NM_ITEM, 0, cat.msgmTest.getstr(), 'T', 0, 0, ID_TEST,
- NM_ITEM, 0, cat.msgmHide.getstr(), 'H', 0, 0, ID_HIDE,
- NM_ITEM, 0, cat.msgmQuit.getstr(), 'Q', 0, 0, MUIV_Application_ReturnID_Quit,
-
- NM_TITLE,0, cat.msgmPrefs.getstr(),0,0,0,0,
- NM_ITEM, 0, cat.msgmReset.getstr(), 'W', 0, 0, ID_VALRES,
- NM_ITEM, 0, cat.msgmLast.getstr(), 'O', 0, 0, ID_VALLST,
- NM_ITEM, 0, cat.msgmInitial.getstr(), 'I', 0, 0, ID_VALINI,
-
- NM_END,0,NIL,0,0,0,0]:newmenu
-
- gmenu:=[
- NM_TITLE, 0, cat.msgmGadget.getstr(), 0,0,0,0,
- NM_ITEM, 0, cat.msgmReset.getstr(), 0,0,0,0,
- /*NM_ITEM, 0, cat.msgmLast.getstr(), 0,0,0,0,*/ -> The last_saved function is a little more difficult to do...
- NM_ITEM, 0, cat.msgmInitial.getstr(),0,0,0,0,
- NM_END,0,NIL,0,0,0,0]:newmenu
- gmenuobj:=Mui_MakeObjectA(MUIO_MenustripNM,[gmenu,0])
-
- vmenu:=[
- NM_TITLE, 0, cat.msgmGroup.getstr(), 0,0,0,0,
- NM_ITEM, 0, cat.msgmReset.getstr(), 0,0,0,0,
- /*NM_ITEM, 0, cat.msgmLast.getstr(), 0,0,0,0,*/ -> The last_saved function is a little more difficult to do...
- NM_ITEM, 0, cat.msgmInitial.getstr(),0,0,0,0,
- NM_END,0,NIL,0,0,0,0]:newmenu
- vmenuobj:=Mui_MakeObjectA(MUIO_MenustripNM,[vmenu,0])
-
-
- app:=ApplicationObject,
- MUIA_Application_Title, 'Birdie prefs',
- MUIA_Application_Version,PROGVER,
- MUIA_Application_Author, 'Maxime Gamboni',
- MUIA_Application_Description, cat.msgrDescr.getstr(),
- MUIA_Application_Base,'BIRDIE_PREFS',
- MUIA_Application_Menustrip, Mui_MakeObjectA(MUIO_MenustripNM,[menu,0]),
- MUIA_Application_SingleTask,MUI_TRUE,
- MUIA_Application_Sleep,MUI_TRUE,
-
- SubWindow, window:=WindowObject,
- MUIA_Window_Title, 'Birdie prefs',
- MUIA_Window_ScreenTitle, cat.msgrTitle.getstr(),
- MUIA_Window_ID, 'BIRDIEP',
-
- WindowContents, VGroup,
- Child, HGroup,
- Child, VGroup,
- Child, RectangleObject,End,
- Child, mVGroup,
- MUIA_Frame,MUIV_Frame_Group,
- MUIA_FrameTitle,cat.msglLightBal.getstr(),
- MUIA_ShortHelp, cat.msghLightBal.getstr(),
- Child, adr_lra:=mSliderObject(60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglRed.getstr(),
- End,
- Child, adr_lga:=mSliderObject(60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglGreen.getstr(),
- End,
- Child, adr_lba:=mSliderObject(60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglBlue.getstr(),
- End,
- End,
- Child, RectangleObject,End,
- Child, mVGroup,
- MUIA_Frame,MUIV_Frame_Group,
- MUIA_FrameTitle,cat.msglOptions.getstr(),
- Child,mHGroup,
- MUIA_ShortHelp,cat.msghNoBmp.getstr(),
- Child, adr_nobmp:=mCheckMark(FALSE),
- Child, Label(cat.msglNoBmp.getstr()),
- Child, RectangleObject, End,
- End,
- Child, mHGroup,
- MUIA_ShortHelp,cat.msghNoIborder.getstr(),
- Child, adr_noborder:=mCheckMark(FALSE),
- Child, Label(cat.msglNoIborder.getstr()),
- Child, RectangleObject, End,
- End,
- Child, mHGroup,
- MUIA_ShortHelp,cat.msghFloodMask.getstr(),
- Child, adr_flood:=mCheckMark(FALSE),
- Child, Label(cat.msglFloodMask.getstr()),
- Child, RectangleObject, End,
- End,
- Child, mHGroup,
- MUIA_ShortHelp,cat.msghNoLight.getstr(),
- Child, adr_nolight:=mCheckMark(FALSE),
- Child, Label(cat.msglNoLight.getstr()),
- Child, RectangleObject, End,
- End,
- Child, mHGroup,
- MUIA_ShortHelp,cat.msghPubScr.getstr(),
- Child, adr_pubscreens:=mCheckMark(FALSE),
- Child, Label(cat.msglPubScr.getstr()),
- Child, RectangleObject, End,
- End,
- Child, HGroup,
- Child,RectangleObject,End,
- Child, Label(cat.msglExclude.getstr()),
- Child, RectangleObject,End,
- End,
- Child, mHGroup,
- MUIA_ShortHelp,cat.msghExclude.getstr(),
- Child, adr_doexcl:=mCheckMark(FALSE),
- Child,adr_exclude:=mStringObject,
- StringFrame,
- MUIA_String_Format,MUIV_String_Format_Left,
- End,
- End,
- Child, adr_precision:=pSliderObject,MUIA_Slider_Max,31,MUIA_Slider_Min,-1,
- MUIA_Slider_Level,-1,
- MUIA_ShortHelp,cat.msghPrecision.getstr(),
- MUIA_FrameTitle, cat.msglPrecision.getstr(),
- End,
- End,
- Child, RectangleObject,End,
- End,
- Child, VGroup,
- MUIA_Frame,MUIV_Frame_Group,
- MUIA_FrameTitle,cat.msglPlist.getstr(),
- Child,adr_lv:=ListviewObject,
- MUIA_ShortHelp,cat.msghPlist.getstr(),
- MUIA_Listview_Input, MUI_TRUE,
- MUIA_Listview_List, adr_l:=ListObject,
- InputListFrame,
- End,
- End,
- Child, PopaslObject,
- MUIA_ShortHelp,cat.msghPname.getstr(),
- MUIA_Popstring_Button,PopButton(MUII_PopFile),
- MUIA_Popasl_Type,ASL_FILEREQUEST,
- MUIA_Popstring_String,
- adr_current:=StringObject,
- StringFrame,
- MUIA_String_Format,MUIV_String_Format_Left,
- End,
- End,
- Child, HGroup,
- Child, adr_addp:=TextObject,
- MUIA_Background,MUII_ButtonBack,
- MUIA_Frame,MUIV_Frame_Button,
- MUIA_InputMode,MUIV_InputMode_RelVerify,
- MUIA_Text_PreParse,'\ec',
- MUIA_Text_Contents,cat.msglAdd.getstr(),
- MUIA_ShortHelp,cat.msghAdd.getstr(),
- End,
- Child, adr_delp:=TextObject,
- MUIA_Background,MUII_ButtonBack,
- MUIA_Frame,MUIV_Frame_Button,
- MUIA_InputMode,MUIV_InputMode_RelVerify,
- MUIA_Text_PreParse,'\ec',
- MUIA_Text_Contents,cat.msglDel.getstr(),
- MUIA_ShortHelp,cat.msghDel.getstr(),
- End,
- Child, adr_view:= TextObject,
- MUIA_Background,MUII_ButtonBack,
- MUIA_Frame,MUIV_Frame_Button,
- MUIA_InputMode,MUIV_InputMode_RelVerify,
- MUIA_Text_PreParse,'\ec',
- MUIA_Text_Contents,cat.msglView.getstr(),
- MUIA_ShortHelp,cat.msghView.getstr(),
- End,
- End,
- End,
- Child, VGroup,
- Child, RectangleObject, MUIA_Weight,10,End,
- Child, mVGroup,
- MUIA_Frame,MUIV_Frame_Group,
- MUIA_FrameTitle, cat.msglDarkBal.getstr(),
- MUIA_ShortHelp, cat.msghDarkBal.getstr(),
- Child, adr_dra:=mSliderObject(-60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglRed.getstr(),
- End,
- Child, adr_dga:=mSliderObject(-60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglGreen.getstr(),
- End,
- Child, adr_dba:=mSliderObject(-60),MUIA_Slider_Max,255,MUIA_Slider_Min,-255,
- MUIA_FrameTitle, cat.msglBlue.getstr(),
- End,
- End,
- Child, RectangleObject,MUIA_Weight,10,End,
- Child, VGroup,
- MUIA_Frame,MUIV_Frame_Group,
- MUIA_FrameTitle,cat.msglActive.getstr(),
- Child,HGroup,
- MUIA_ShortHelp,cat.msghAct.getstr(),
- Child, adr_active:=mCheckMark(MUI_TRUE),
- Child, Label(cat.msglAct.getstr()),
- Child, RectangleObject, End,
- End,
- Child,adr_activec:=RegisterGroup(active_cc),
- Child,VGroup,
- Child, adr_colour:=ColoradjustObject,End,
- Child,adr_activelvl:=mSliderObject(50),
- MUIA_Slider_Min,0,
- MUIA_Slider_Max,100,
- MUIA_FrameTitle,cat.msglImposeLvl.getstr(),
- End,
- End,
- Child, VGroup,
- Child,adr_activepasl:=PopaslObject,
- MUIA_ShortHelp,cat.msghSfile.getstr(),
- MUIA_Popstring_Button,PopButton(MUII_PopFile),
- MUIA_Popasl_Type,ASL_FILEREQUEST,
- MUIA_Popstring_String,
- adr_activen:=StringObject,
- StringFrame,
- MUIA_String_Format,MUIV_String_Format_Left,
- End,
- End,
- Child, adr_viewact:= TextObject,
- MUIA_Background,MUII_ButtonBack,
- MUIA_Frame,MUIV_Frame_Button,
- MUIA_InputMode,MUIV_InputMode_RelVerify,
- MUIA_Text_PreParse,'\ec',
- MUIA_Text_Contents,cat.msglView.getstr(),
- MUIA_ShortHelp,cat.msghView.getstr(),
- MUIA_Weight,5,
- End,
- End,
- End,
- End,
- Child, RectangleObject, MUIA_Weight,10,End,
- End,
- End,
- Child, HGroup,
- Child, adr_save:=SimpleButton(cat.msglSave.getstr()),
- Child, RectangleObject, End,
- Child, adr_use:=SimpleButton(cat.msglUse.getstr()),
- Child, RectangleObject, End,
- Child, adr_test:=SimpleButton(cat.msglTest.getstr()),
- Child, RectangleObject, End,
- Child, adr_cancel:=SimpleButton(cat.msglCancel.getstr()),
- End,
- Child, HGroup,
- Child,adr_stat:=TextObject,
- MUIA_Frame,MUIV_Frame_Text,
- MUIA_Background,MUII_TextBack,
- MUIA_Text_PreParse,'\ec',
- MUIA_Text_Contents,cat.msgiInitializing.getstr(),
- End,
- /* Child,adr_busy:=BusyObject, -> This is yet a project, to put a "busy" gadget.
- MUIA_Weight,30, -> It does not yet work, it is why I commented it out.
- End,*/
- End,
- End,
- End,
- End
- IF app = NIL THEN
- Raise(cat.msgfNoApp.getstr())
-
- doMethodA(adr_cancel, [MUIM_Notify,MUIA_Pressed, FALSE, window,3,MUIM_Set,MUIA_Window_CloseRequest,MUI_TRUE])
-
- doMethodA(window, [MUIM_Notify,MUIA_Window_CloseRequest,MUI_TRUE, app, 2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit])
-
- doMethodA(adr_viewact,[MUIM_Notify,MUIA_Pressed, FALSE, app, 2,MUIM_Application_ReturnID,ID_VIEWACT])
- doMethodA(adr_addp, [MUIM_Notify,MUIA_Pressed, FALSE, app, 3,MUIM_Application_ReturnID,ID_ADDP])
- doMethodA(adr_delp, [MUIM_Notify,MUIA_Pressed, FALSE, app, 3,MUIM_Application_ReturnID,ID_DELP])
- doMethodA(adr_view, [MUIM_Notify,MUIA_Pressed, FALSE, app, 2,MUIM_Application_ReturnID,ID_VIEW])
- doMethodA(adr_use, [MUIM_Notify,MUIA_Pressed, FALSE, app, 2,MUIM_Application_ReturnID,ID_USE])
- doMethodA(adr_test, [MUIM_Notify,MUIA_Pressed, FALSE, app, 2,MUIM_Application_ReturnID,ID_TEST])
- doMethodA(adr_save, [MUIM_Notify,MUIA_Pressed, FALSE, app, 2,MUIM_Application_ReturnID,ID_SAVE])
-
- doMethodA(adr_l, [MUIM_Notify,MUIA_List_Active, MUIV_EveryTime,app, 2,MUIM_Application_ReturnID,ID_REFRS])
- doMethodA(adr_current,[MUIM_Notify,MUIA_String_Contents, MUIV_EveryTime,app, 2,MUIM_Application_ReturnID,ID_REFRL])
- doMethodA(app, [MUIM_Notify,MUIA_Application_DoubleStart,MUI_TRUE, app, 2,MUIM_Application_ReturnID,ID_DOUBLE])
-
- set(adr_current,MUIA_String_AttachedList,adr_lv)
- set(window,MUIA_Window_Open,MUI_TRUE)
- set(adr_stat,MUIA_Text_Contents,cat.msgiLoad.getstr())
- /*LOAD BIRDIE PREFS*/
- thandler:=Open('env:birdie.prefs',OLDFILE)
- IF thandler = NIL
- Mui_RequestA(app,window,0,NIL,cat.msgrOk.getstr(),cat.msgrNoBprefs.getstr(),NIL)
- ELSE
- startStat:=ReadStr(thandler,cmd)
- Close(thandler)
- parse(TRUE)
- ENDIF
- set(adr_stat,MUIA_Text_Contents,cat.msgiReady.getstr())
- /* set(adr_busy,MUIA_Busy_Speed, MUIV_Busy_Speed_Off)*/
- set(window,MUIA_Application_Sleep,FALSE)
- running:=TRUE
- WHILE running
- result:= doMethodA(app, [MUIM_Application_Input,{sigs} ])
- SELECT result
- CASE MUIV_Application_ReturnID_Quit
- IF tested
- /* set(adr_busy,MUIA_Busy_Speed, MUIV_Busy_Speed_User)*/
- breakbirdie()
- waitquit()
- Execute('Run >NIL: Birdie ? <Env:Birdie.Prefs',NIL,NIL)
- /* set(adr_busy,MUIA_Busy_Speed, MUIV_Busy_Speed_Off)*/
- ENDIF
- set(window,MUIA_Window_CloseRequest,MUI_TRUE)
- running:=FALSE
- CASE ID_DOUBLE
- set(app,MUIA_Application_Iconified,FALSE)
- set(window,MUIA_Window_Activate,MUI_TRUE)
- CASE ID_ABOUT
- Mui_RequestA(app, window, 0, NIL, cat.msgrOk.getstr(), '%s\n%s',[PROGVER,cat.msgrAbout.getstr(),NIL])
- CASE ID_PREFS
- doMethodA(app, [MUIM_Application_OpenConfigWindow,NIL]) /*Do we really need to use a returnID*/
- CASE ID_MABOUT /*when using menus? It would be better*/
- doMethodA(app, [MUIM_Application_AboutMUI,window]) /*to directely call the methods..*/
- CASE ID_HIDE
- set(app,MUIA_Application_Iconified,MUI_TRUE)
- CASE ID_VIEW
- get(adr_current,MUIA_String_Contents,{s})
- StrCopy(cmd,'run >NIL: multiview ')
- StrAdd(cmd,s)
- Execute(cmd,NIL,NIL)
- CASE ID_ADDP
- patternlist[patternlen++]:=String(80)
- patternlist[patternlen]:=NIL
- doMethodA(adr_l,[MUIM_List_InsertSingle,patternlist[patternlen-1],MUIV_List_Insert_Bottom])
- set(adr_l,MUIA_List_Active,patternlen-1)
- CASE ID_DELP
- doMethodA(adr_l,[MUIM_List_Remove,MUIV_List_Remove_Active])
- patternlen--
- CASE ID_REFRS
- doMethodA(adr_l,[MUIM_List_GetEntry,MUIV_List_GetEntry_Active,{s}])
- set(adr_current,MUIA_String_Contents,s)
- CASE ID_REFRL
- get(adr_current,MUIA_String_Contents,{s})
- get(adr_l,MUIA_List_Active,{n})
- StrCopy(patternlist[n],s)
- doMethodA(adr_l,[MUIM_List_Redraw,n])
- CASE ID_VIEWACT
- get(adr_activen,MUIA_String_Contents,{s})
- StrCopy(cmd,'run >NIL: multiview ')
- StrAdd(cmd,s)
- Execute(cmd,NIL,NIL)
- CASE ID_VALRES
- resetvalues()
- CASE ID_VALINI
- resetvalues()
- thandler:=Open('env:Birdie.Prefs',OLDFILE)
- IF thandler<> NIL
- startStat:=ReadStr(thandler,cmd)
- Close(thandler)
- parse()
- ENDIF
- CASE ID_VALLST
- resetvalues()
- thandler:=Open('envarc:Birdie.Prefs',OLDFILE)
- IF thandler<> NIL
- startStat:=ReadStr(thandler,cmd)
- Close(thandler)
- parse()
- ENDIF
- CASE ID_TEST
- tested:=TRUE
- use(FL_NONE)
- /* set(adr_busy,MUIA_Busy_Speed,MUIV_Busy_Speed_Off)*/
- set(adr_stat,MUIA_Text_Contents,cat.msgiReady.getstr())
- set(app,MUIA_Application_Sleep,FALSE)
- CASE ID_USE
- use(FL_EXIT)
- tested:=FALSE
- CASE ID_SAVE
- use(FL_EXIT OR FL_SAVE)
- ENDSELECT
- IF sigs THEN Wait(sigs)
- ENDWHILE
- EXCEPT DO
- IF app THEN Mui_DisposeObject(app)
- IF gmenuobj THEN Mui_DisposeObject(gmenuobj)
- IF vmenuobj THEN Mui_DisposeObject(vmenuobj)
- IF cl_mgroup THEN Mui_DeleteCustomClass(cl_mgroup)
- IF cl_mslider THEN Mui_DeleteCustomClass(cl_mslider)
- IF cl_mimage THEN Mui_DeleteCustomClass(cl_mimage)
- IF cl_pslider THEN Mui_DeleteCustomClass(cl_pslider)
- IF muimasterbase
- IF exception THEN Mui_RequestA(app,window,0,cat.msgfMain.getstr(),0,exception,0)
- CloseLibrary(muimasterbase)
- ELSE
- IF exception THEN WriteF('\s\n\s',cat.msgfMain.getstr(),exception)
- ENDIF
- cat.close()
- IF localebase THEN CloseLibrary(localebase)
- ENDPROC
-
- PROC breakbirdie()
- DEF exec:PTR TO execbase
- exec:=execbase
- task:=0
- Disable()
- searchIn(exec.taskwait)
- searchIn(exec.taskready)
- Enable()
- IF task
- Signal(task,SIGBREAKF_CTRL_C)
- ELSE
- Mui_RequestA(app,window,0,cat.msgrMain.getstr(),0,cat.msgrNoProc.getstr(),0)
- ENDIF
- ENDPROC
-
- PROC waitquit()
- DEF exec:PTR TO execbase
- exec:=execbase
- set(adr_stat,MUIA_Text_Contents,cat.msgiWaiting.getstr())
- REPEAT
- Delay(10)
- task:=0
- Disable()
- searchIn(exec.taskwait)
- searchIn(exec.taskready)
- Enable()
- IF CtrlC() THEN Raise('Aborted while waiting for Birdie to exit..')
- UNTIL task=0
- ENDPROC
-
- PROC searchIn(from:PTR TO lh) HANDLE
- DEF name,len,cli:PTR TO commandlineinterface,exectask:PTR TO tc
- exectask:=from.head
- WHILE exectask.ln.succ
- IF exectask.ln.type=NT_PROCESS AND (cli:=BADDR(exectask::process.cli))
- name:=BADDR(cli.commandname)
- len:=name[];name++
- IF len
- IF StrCmp(name+len-6,'Birdie',6)
- task:=exectask
- ENDIF
- ENDIF
- ENDIF
- exectask:=exectask.ln.succ
- ENDWHILE
- EXCEPT DO
- ENDPROC
-
- PROC use(flags)
- DEF stop=FALSE,t:PTR TO CHAR
- /* set(adr_busy,MUIA_Busy_Speed,MUIV_Busy_Speed_User)*/
- breakbirdie()
- writecmd()
- waitquit()
- IF flags AND FL_EXIT
- REPEAT
- thandler:=Open('env:Birdie.Prefs',NEWFILE)
- IF thandler
- /* IF InStr(cmd,'NoXmas') = -1
- StrAdd(cmd,' NoXmas')
- ENDIF*/
- set(adr_stat,MUIA_Text_Contents,cat.msgiSave.getstr())
- tstdout:=SetStdOut(thandler)
- WriteF(cmd)
- SetStdOut(tstdout)
- Close(thandler)
- stop:=TRUE
- ELSEIF Mui_RequestA(app,window,0,cat.msgrNoSaveT.getstr(),cat.msgrNoSaveB.getstr(),cat.msgrNoSave.getstr(),0) = 2
- stop:=TRUE
- ENDIF
- UNTIL stop
- Execute('Run >NIL: Birdie ? <Env:Birdie.Prefs',NIL,NIL)
- set(window,MUIA_Window_CloseRequest,MUI_TRUE)
- ELSE
- t:=String(StrLen(cmd)+20)
- StringF(t,'Run >NIL: Birdie \s',cmd)
- set(adr_stat,MUIA_Text_Contents,cat.msgiRun.getstr())
- Execute(t,NIL,NIL)
- DisposeLink(t)
- ENDIF
- IF flags AND FL_SAVE
- tested:=FALSE
- Execute('Copy >NIL: env:Birdie.prefs envarc:',NIL,NIL)
- ENDIF
- ENDPROC
-
- PROC parse(sini=FALSE) -> IF sini (set initial) is true, the object's MUIA_Cmenu_Initial will be set.
- DEF trim:PTR TO CHAR
-
- patternlen:=-1
-
- IF (InStr(LowerStr(cmd),'activepattern') <> -1) OR (StrCmp(MidStr(btmp,cmd,0,13),'activepattern'))
- activep:=1
- ELSE
- activep:=0
- ENDIF
-
- trim:=TrimStr(cmd)
-
- StrAdd(trim,' ')
-
- space:=-1
- doMethodA(adr_l,[MUIM_List_Clear])
-
- REPEAT
-
- pos:=space+1
- space:=InStr(trim,' ',pos) /*pos->space = current word*/
- MidStr(btmp,trim,pos,space-pos)
-
- IF EstrLen(btmp)>0
- IF StrCmp(btmp,'lra')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_lra,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_lra,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'lga')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_lga,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_lga,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'lba')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_lba,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_lba,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'dra')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_dra,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_dra,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'dga')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_dga,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_dga,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'dba')
- pos:=space+1;space:=InStr(trim,' ',pos)
- MidStr(tmp,trim,pos,space-pos)
- set(adr_dba,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_dba,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'nobitmaps')
- set(adr_nobmp,MUIA_Selected,MUI_TRUE)
- IF sini THEN set(adr_nobmp,MUIA_Cmenu_Initial,MUI_TRUE)
- ELSEIF StrCmp(btmp,'noiconborder')
- set(adr_noborder,MUIA_Selected,MUI_TRUE)
- IF sini THEN set(adr_noborder,MUIA_Cmenu_Initial,MUI_TRUE)
- ELSEIF StrCmp(btmp,'floodmaskmwb')
- set(adr_flood,MUIA_Selected,MUI_TRUE)
- IF sini THEN set(adr_flood,MUIA_Cmenu_Initial,MUI_TRUE)
- ELSEIF StrCmp(btmp,'nolighting')
- set(adr_nolight,MUIA_Selected,MUI_TRUE)
- IF sini THEN set(adr_nolight,MUIA_Cmenu_Initial,MUI_TRUE)
- ELSEIF StrCmp(btmp,'pubscreens')
- set(adr_pubscreens,MUIA_Selected,MUI_TRUE)
- IF sini THEN set(adr_pubscreens,MUIA_Cmenu_Initial,MUI_TRUE)
- ELSEIF StrCmp(btmp,'exclude=',8)
- MidStr(tmp,btmp,8)
- set(adr_exclude,MUIA_String_Contents,tmp)
- set(adr_doexcl,MUIA_Selected,MUI_TRUE)
- IF sini
- set(adr_exclude,MUIA_Cmenu_Initial,tmp)
- set(adr_doexcl,MUIA_Cmenu_Initial,MUI_TRUE)
- ENDIF
- ELSEIF StrCmp(btmp,'precision=',10)
- MidStr(tmp,btmp,10)
- set(adr_precision,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_precision,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'imposelevel=',12)
- MidStr(tmp,btmp,12)
- set(adr_activelvl,MUIA_Slider_Level,Val(tmp))
- IF sini THEN set(adr_activelvl,MUIA_Cmenu_Initial,Val(tmp))
- ELSEIF StrCmp(btmp,'activecolor=',12)
- MidStr(tmp,btmp,12,2)
- StringF(s2,'$\s',tmp)
- set(adr_colour,MUIA_Coloradjust_Red,Shl(Val(s2),24))
- MidStr(tmp,btmp,14,2)
- StringF(s2,'$\s',tmp)
- set(adr_colour,MUIA_Coloradjust_Green,Shl(Val(s2),24))
- MidStr(tmp,btmp,16,2)
- StringF(s2,'$\s',tmp)
- set(adr_colour,MUIA_Coloradjust_Blue,Shl(Val(s2),24))
- set(adr_activec,MUIA_Group_ActivePage,0)
- ELSEIF Not(StrCmp(btmp,'activepattern'))
- IF activep=1
- activep:=0
- set(adr_activen,MUIA_String_Contents,btmp)
- set(adr_activec,MUIA_Group_ActivePage,1)
- ELSE
- patternlen++
- patternlist[patternlen]:=String(80)
- StrCopy(patternlist[patternlen],btmp)
- ENDIF
- ENDIF
- ENDIF
- IF CtrlC()
- space:=-1
- ENDIF
- UNTIL space = -1
-
- patternlen++
- patternlist[patternlen]:=NIL
-
- set(adr_current,MUIA_String_Contents,patternlist[])
- doMethodA(adr_l,[MUIM_List_Insert,patternlist,-1,MUIV_List_Insert_Bottom])
- set(adr_l,MUIA_List_Active,MUIV_List_Active_Top)
- ENDPROC TRUE
-
- PROC writecmd()
- StrCopy(cmd,'')
- get(adr_lra,MUIA_Slider_Level,{n})
- IF n <> 60
- StringF(tmp,' lra \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_lga,MUIA_Slider_Level,{n})
- IF n <> 60
- StringF(tmp,' lga \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_lba,MUIA_Slider_Level,{n})
- IF n <> 60
- StringF(tmp,' lba \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_dra,MUIA_Slider_Level,{n})
- IF n <> -60
- StringF(tmp,' dra \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_dga,MUIA_Slider_Level,{n})
- IF n <> -60
- StringF(tmp,' dga \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_dba,MUIA_Slider_Level,{n})
- IF n <> -60
- StringF(tmp,' dba \d',n)
- StrAdd(cmd,tmp)
- ENDIF
- get(adr_nobmp,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' Nobitmaps')
- get(adr_noborder,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' NoIconBorder')
- get(adr_flood,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' FloodMaskMwb')
- get(adr_nolight,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' NoLighting')
- get(adr_pubscreens,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' PubScreens')
- get(adr_doexcl,MUIA_Selected,{n})
- IF n = MUI_TRUE
- get(adr_exclude,MUIA_String_Contents,{s})
- StringF(tmp,' Exclude=\s',s)
- StrAdd(cmd,tmp)
- ENDIF
- /* get(adr_noxmas,MUIA_Selected,{n})
- IF n=MUI_TRUE THEN StrAdd(cmd,' NoXmas')
- */ get(adr_precision,MUIA_Slider_Level,{n})
- IF n <> -1
- StringF(tmp,' precision=\d',n)
- StrAdd(cmd,tmp)
- ENDIF
-
- get(adr_active,MUIA_Selected,{n})
- IF n = MUI_TRUE
- get(adr_activec,MUIA_Group_ActivePage,{n})
- IF n=1 -> Pattern
- get(adr_activen,MUIA_String_Contents,{s})
- StringF(tmp,' ActivePattern \s',s)
- StrAdd(cmd,tmp)
- ELSE -> Colour
- get(adr_colour,MUIA_Coloradjust_Red,{red})
- get(adr_colour,MUIA_Coloradjust_Green,{green})
- get(adr_colour,MUIA_Coloradjust_Blue,{blue})
-
- red:=Shr(red,24)
- green:=Shr(green,24)
- blue:=Shr(blue,24)
- IF red < 0 THEN red:=256+red
- IF green < 0 THEN green:=256+green
- IF blue < 0 THEN blue:=256+blue
- StringF(tmp,' ActiveColor=\z\h[2]\z\h[2]\z\h[2]',red,green,blue)
- StrAdd(cmd,tmp)
- get(adr_activelvl,MUIA_Slider_Level,{n})
- IF n <> 50
- StringF(tmp,' ImposeLevel=\d',n)
- StrAdd(cmd,tmp)
- ENDIF
- ENDIF
- ENDIF
- FOR n:=0 TO patternlen-1
- StringF(tmp,' \s',patternlist[n])
- StrAdd(cmd,tmp)
- ENDFOR
- ENDPROC
-
- PROC resetvalues()
- set(adr_lra,MUIA_Slider_Level,60)
- set(adr_lga,MUIA_Slider_Level,60)
- set(adr_lba,MUIA_Slider_Level,60)
- set(adr_dra,MUIA_Slider_Level,-60)
- set(adr_dga,MUIA_Slider_Level,-60)
- set(adr_dba,MUIA_Slider_Level,-60)
- set(adr_nobmp,MUIA_Selected,FALSE)
- set(adr_noborder,MUIA_Selected,FALSE)
- set(adr_flood,MUIA_Selected,FALSE)
- set(adr_nolight,MUIA_Selected,FALSE)
- set(adr_pubscreens,MUIA_Selected,FALSE)
- -> set(adr_noxmas,MUIA_Selected,FALSE)
- set(adr_active,MUIA_Selected,MUI_TRUE)
- set(adr_precision,MUIA_Slider_Level,-1)
- set(adr_current,MUIA_String_Contents,'')
- set(adr_activec,MUIA_Group_ActivePage,1)
- set(adr_activen,MUIA_String_Contents,'')
- ENDPROC
-