/* /// "nHIDCtrlGUITask()" */ AROS_UFH0(void, GM_UNIQUENAME(nHIDCtrlGUITask)) { AROS_USERFUNC_INIT struct Task *thistask; struct NepHidBase *nh; struct NepClassHid *nch; thistask = FindTask(NULL); #undef ps #define ps nch->nch_HCPsdBase #undef IntuitionBase #define IntuitionBase nch->nch_HCIntBase #undef MUIMasterBase #define MUIMasterBase nch->nch_HCMUIBase nch = thistask->tc_UserData; nch->nch_HCGUITask = thistask; nh = nch->nch_ClsBase; ++nh->nh_Library.lib_OpenCnt; NewList(&nch->nch_HCGUIItems); if(!(MUIMasterBase = OpenLibrary(MUIMASTER_NAME, MUIMASTER_VMIN))) { KPRINTF(10, ("Couldn't open muimaster.library.\n")); GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } if(!(IntuitionBase = OpenLibrary("intuition.library", 39))) { KPRINTF(10, ("Couldn't open intuition.library.\n")); GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } if(!(ps = OpenLibrary("poseidon.library", 4))) { KPRINTF(10, ("Couldn't open poseidon.library.\n")); GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } nch->nch_HCActionClass = MUI_CreateCustomClass(NULL, MUIC_Area , NULL, sizeof(struct ActionData), GM_UNIQUENAME(HCActionDispatcher)); if(!nch->nch_HCActionClass) { KPRINTF(10, ("Couldn't create ActionClass.\n")); GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } nch->nch_HCApp = ApplicationObject, MUIA_Application_Title , (IPTR)nch->nch_CDC->cdc_HIDCtrlTitle, MUIA_Application_Version , (IPTR)VERSION_STRING, MUIA_Application_Copyright , (IPTR)"©2002-2009 Chris Hodges", MUIA_Application_Author , (IPTR)"Chris Hodges <*****@*****.**>", MUIA_Application_Description, (IPTR)"HID Device Output Control", MUIA_Application_Base , (IPTR)nch->nch_CDC->cdc_HIDCtrlRexx, MUIA_Application_HelpFile , (IPTR)"HELP:Poseidon.guide", MUIA_Application_Menustrip , (IPTR)MenustripObject, Child, (IPTR)MenuObjectT((IPTR)"Project"), Child, (IPTR)(nch->nch_HCAboutMI = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"About...", MUIA_Menuitem_Shortcut, (IPTR)"?", End), Child, (IPTR)MenuitemObject, MUIA_Menuitem_Title, (IPTR)NM_BARLABEL, End, Child, (IPTR)(nch->nch_HCCloseMI = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"Hide", MUIA_Menuitem_Shortcut, (IPTR)"H", End), End, Child, (IPTR)MenuObjectT((IPTR)"Settings"), Child, (IPTR)(nch->nch_HCMUIPrefsMI = MenuitemObject, MUIA_Menuitem_Title, (IPTR)"MUI Settings", MUIA_Menuitem_Shortcut, (IPTR)"M", End), End, End, SubWindow, (IPTR)(nch->nch_HCMainWindow = WindowObject, MUIA_Window_ID , MAKE_ID('H','C','T','L'), MUIA_Window_Title, (IPTR)nch->nch_CDC->cdc_HIDCtrlTitle, MUIA_HelpNode, (IPTR)GM_UNIQUENAME(libname), WindowContents, (IPTR)VGroup, Child, (IPTR)(nch->nch_HCActionObj = NewObject(nch->nch_HCActionClass->mcc_Class, 0, MUIA_ShowMe, FALSE, TAG_END)), Child, (IPTR)(nch->nch_HCGroupObj = ColGroup(4), End), Child, (IPTR)(nch->nch_HCCloseObj = TextObject, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_CycleChain, 1, MUIA_InputMode, MUIV_InputMode_RelVerify, MUIA_Text_Contents, (IPTR)"\33c Hide ", End), End, End), End; if(!nch->nch_HCApp) { KPRINTF(10, ("Couldn't create application\n")); GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } { struct ActionData *ad = INST_DATA(nch->nch_HCActionClass->mcc_Class, nch->nch_HCActionObj); ad->ad_NCH = nch; } /* add items */ { struct NepHidReport *nhr; struct NepHidItem **nhiptr; struct NepHidItem *nhi; struct NepHidGItem *nhgi; UWORD count; Object *obj; UWORD numobj = 0; nhr = (struct NepHidReport *) nch->nch_HidReports.lh_Head; while(nhr->nhr_Node.ln_Succ) { if((count = nhr->nhr_OutItemCount)) { nhiptr = nhr->nhr_OutItemMap; if(nhiptr) { do { nhi = *nhiptr++; obj = NULL; nhgi = NULL; if(nhi->nhi_Flags & RPF_MAIN_VARIABLE) { if(nhi->nhi_Flags & RPF_MAIN_RELATIVE) { if((nhi->nhi_LogicalMin == 0) && (nhi->nhi_LogicalMax == 1)) { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* one shot */ obj = VGroup, Child, (IPTR)VSpace(0), Child, (IPTR)(nhgi->nhgi_GUIObj = TextObject, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_CycleChain, 1, MUIA_InputMode, MUIV_InputMode_RelVerify, MUIA_Text_PreParse, (IPTR)"\33c", MUIA_Text_Contents, (IPTR)nhgi->nhgi_Name, End), Child, (IPTR)VSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_SHOTBUTTON; } } else if(nhi->nhi_LogicalMin < 0) { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* Horizontal slider */ obj = VGroup, Child, (IPTR)VSpace(0), Child, (IPTR)HGroup, Child, (IPTR)Label((IPTR)nhgi->nhgi_Name), Child, (IPTR)(nhgi->nhgi_GUIObj = SliderObject, SliderFrame, MUIA_Slider_Horiz, TRUE, MUIA_CycleChain, 1, MUIA_InputMode, MUIV_InputMode_Immediate, MUIA_Numeric_Min, nhi->nhi_LogicalMin, MUIA_Numeric_Max, nhi->nhi_LogicalMax, MUIA_Numeric_Value, nhi->nhi_OldValue, End), End, Child, (IPTR)VSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_SLIDERIMM; } } else { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* Vertical slider */ obj = HGroup, Child, (IPTR)HSpace(0), Child, (IPTR)VGroup, Child, (IPTR)(nhgi->nhgi_GUIObj = SliderObject, SliderFrame, MUIA_Slider_Horiz, FALSE, MUIA_CycleChain, 1, MUIA_InputMode, MUIV_InputMode_Immediate, MUIA_Numeric_Min, nhi->nhi_LogicalMin, MUIA_Numeric_Max, nhi->nhi_LogicalMax, MUIA_Numeric_Value, nhi->nhi_OldValue, End), Child, (IPTR)Label((IPTR)nhgi->nhgi_Name), End, Child, (IPTR)HSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_SLIDERIMM; } } } else { if((nhi->nhi_LogicalMin == 0) && (nhi->nhi_LogicalMax == 1)) { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* toggle button */ obj = VGroup, Child, (IPTR)VSpace(0), Child, (IPTR)(nhgi->nhgi_GUIObj = TextObject, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_CycleChain, 1, MUIA_InputMode, MUIV_InputMode_Toggle, MUIA_Text_PreParse, (IPTR)"\33c", MUIA_Text_Contents, (IPTR)nhgi->nhgi_Name, End), Child, (IPTR)VSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_TOGGLEBUTTON; } } else if(nhi->nhi_LogicalMin < 0) { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* Horizontal slider */ obj = VGroup, Child, (IPTR)VSpace(0), Child, (IPTR)HGroup, Child, (IPTR)Label((IPTR)nhgi->nhgi_Name), Child, (IPTR)(nhgi->nhgi_GUIObj = SliderObject, SliderFrame, MUIA_Slider_Horiz, TRUE, MUIA_CycleChain, 1, MUIA_Numeric_Min, nhi->nhi_LogicalMin, MUIA_Numeric_Max, nhi->nhi_LogicalMax, MUIA_Numeric_Value, nhi->nhi_OldValue, End), End, Child, (IPTR)VSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_SLIDER; } } else { if((nhgi = nAllocGHCItem(nch, nhi, NULL, nhi->nhi_Usage))) { /* Vertical slider */ obj = HGroup, Child, (IPTR)HSpace(0), Child, (IPTR)VGroup, Child, (IPTR)(nhgi->nhgi_GUIObj = SliderObject, SliderFrame, MUIA_Slider_Horiz, FALSE, MUIA_CycleChain, 1, MUIA_Numeric_Min, nhi->nhi_LogicalMin, MUIA_Numeric_Max, nhi->nhi_LogicalMax, MUIA_Numeric_Value, nhi->nhi_OldValue, End), Child, (IPTR)Label(nhgi->nhgi_Name), End, Child, (IPTR)HSpace(0), End; nhgi->nhgi_ObjType = NHGIOT_SLIDER; } } } } if(obj) { DoMethod(nch->nch_HCGroupObj, OM_ADDMEMBER, obj); switch(nhgi->nhgi_ObjType) { case NHGIOT_SHOTBUTTON: DoMethod(nhgi->nhgi_GUIObj, MUIM_Notify, MUIA_Pressed, FALSE, nch->nch_HCActionObj, 2, MUIM_Action_UpdateHIDCtrl, nhgi); break; case NHGIOT_TOGGLEBUTTON: DoMethod(nhgi->nhgi_GUIObj, MUIM_Notify, MUIA_Selected, MUIV_EveryTime, nch->nch_HCActionObj, 2, MUIM_Action_UpdateHIDCtrl, nhgi); break; case NHGIOT_SLIDERIMM: DoMethod(nhgi->nhgi_GUIObj, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, nch->nch_HCActionObj, 2, MUIM_Action_UpdateHIDCtrl, nhgi); break; case NHGIOT_SLIDER: DoMethod(nhgi->nhgi_GUIObj, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, nch->nch_HCActionObj, 2, MUIM_Action_UpdateHIDCtrl, nhgi); break; } numobj++; } } while(--count); } } nhr = (struct NepHidReport *) nhr->nhr_Node.ln_Succ; } if(!numobj) { DoMethod(nch->nch_HCGroupObj, OM_ADDMEMBER, Label("No output items in this interface!")); } } DoMethod(nch->nch_HCMainWindow, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, nch->nch_HCActionObj, 1, MUIM_Action_HideHIDControl); DoMethod(nch->nch_HCCloseObj, MUIM_Notify, MUIA_Pressed, FALSE, nch->nch_HCActionObj, 1, MUIM_Action_HideHIDControl); DoMethod(nch->nch_HCAboutMI, MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime, nch->nch_HCActionObj, 1, MUIM_Action_About); DoMethod(nch->nch_HCCloseMI, MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime, nch->nch_HCActionObj, 1, MUIM_Action_HideHIDControl); DoMethod(nch->nch_HCMUIPrefsMI, MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime, nch->nch_HCApp, 2, MUIM_Application_OpenConfigWindow, 0); { IPTR isopen = 0; IPTR iconify = 0; ULONG sigs; ULONG sigmask; LONG retid; if(nch->nch_CDC->cdc_HIDCtrlOpen) { get(nch->nch_HCApp, MUIA_Application_Iconified, &iconify); set(nch->nch_HCMainWindow, MUIA_Window_Open, TRUE); get(nch->nch_HCMainWindow, MUIA_Window_Open, &isopen); if(!(isopen || iconify)) { GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); return; } } sigmask = 0; do { retid = DoMethod(nch->nch_HCApp, MUIM_Application_NewInput, &sigs); if(sigs) { sigs = Wait(sigs | sigmask | SIGBREAKF_CTRL_C); if(sigs & SIGBREAKF_CTRL_C) { break; } } } while(retid != MUIV_Application_ReturnID_Quit); set(nch->nch_HCMainWindow, MUIA_Window_Open, FALSE); } GM_UNIQUENAME(nHIDCtrlGUITaskCleanup)(nch); AROS_USERFUNC_EXIT }
int main(UNUSED int argc,char **argv) { int res; if ((IntuitionBase = (APTR)OpenLibrary("intuition.library",39)) != NULL && GETINTERFACE("main", IIntuition, IntuitionBase)) { if ((MUIMasterBase = OpenLibrary("muimaster.library",19)) != NULL && GETINTERFACE("main", IMUIMaster, MUIMasterBase)) { Object *app, *win, *sb, *appearance, *labelPos, *borderless, *sunny, *raised, *scaled, *update; if ((app = ApplicationObject, MUIA_Application_Title, "TheBar Demo4", MUIA_Application_Version, "$VER: TheBarDemo4 1.0 (24.6.2003)", MUIA_Application_Copyright, "Copyright 2003 by Alfonso Ranieri", MUIA_Application_Author, "Alfonso Ranieri <*****@*****.**>", MUIA_Application_Description, "TheBar example", MUIA_Application_Base, "THEBAREXAMPLE", MUIA_Application_UsedClasses, usedClasses, SubWindow, win = WindowObject, MUIA_Window_ID, MAKE_ID('M','A','I','N'), MUIA_Window_Title, "TheBar Demo4", WindowContents, VGroup, Child, sb = TheBarObject, MUIA_Group_Horiz, TRUE, MUIA_TheBar_IgnoreAppearance, TRUE, MUIA_TheBar_EnableKeys, TRUE, MUIA_TheBar_Buttons, buttons, MUIA_TheBar_StripBrush, &cbrush, MUIA_TheBar_StripCols, 16, MUIA_TheBar_StripRows, 3, MUIA_TheBar_StripHSpace, 0, MUIA_TheBar_StripVSpace, 0, End, Child, VGroup, GroupFrameT("Settings"), Child, HGroup, Child, Label2("Appearance"), Child, appearance = MUI_MakeObject(MUIO_Cycle,NULL,appearances), Child, Label2("Label pos"), Child, labelPos = MUI_MakeObject(MUIO_Cycle,NULL,labelPoss), End, Child, HGroup, Child, HSpace(0), Child, Label1("Borderless"), Child, borderless = MUI_MakeObject(MUIO_Checkmark,NULL), Child, HSpace(0), Child, Label1("Sunny"), Child, sunny = MUI_MakeObject(MUIO_Checkmark,NULL), Child, HSpace(0), Child, Label1("Raised"), Child, raised = MUI_MakeObject(MUIO_Checkmark,NULL), Child, HSpace(0), Child, Label1("Scaled"), Child, scaled = MUI_MakeObject(MUIO_Checkmark,NULL), Child, HSpace(0), End, End, Child, update = MUI_MakeObject(MUIO_Button,"_Update"), End, End, End) != NULL) { ULONG sigs = 0; LONG id; DoMethod(win,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit); DoMethod(update,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,TAG_USER); set(win,MUIA_Window_Open,TRUE); while ((id = DoMethod(app,MUIM_Application_NewInput,&sigs))!=MUIV_Application_ReturnID_Quit) { if (id==(LONG)TAG_USER) { IPTR appearanceV = 0, labelPosV = 0, borderlessV = 0, sunnyV = 0, raisedV = 0, scaledV = 0; get(appearance,MUIA_Cycle_Active,&appearanceV); get(labelPos,MUIA_Cycle_Active,&labelPosV); get(borderless,MUIA_Selected,&borderlessV); get(sunny,MUIA_Selected,&sunnyV); get(raised,MUIA_Selected,&raisedV); get(scaled,MUIA_Selected,&scaledV); SetAttrs(sb,MUIA_TheBar_ViewMode, appearanceV, MUIA_TheBar_LabelPos, labelPosV, MUIA_TheBar_Borderless, borderlessV, MUIA_TheBar_Sunny, sunnyV, MUIA_TheBar_Raised, raisedV, MUIA_TheBar_Scaled, scaledV, TAG_DONE); } if (sigs) { sigs = Wait(sigs | SIGBREAKF_CTRL_C); if (sigs & SIGBREAKF_CTRL_C) break; } } MUI_DisposeObject(app); res = RETURN_OK; } else { printf("%s: can't create application\n",argv[0]); res = RETURN_FAIL; } CLOSELIB(MUIMasterBase, IMUIMaster); } else { printf("%s: Can't open muimaster.library ver 19 or higher\n",argv[0]); res = RETURN_ERROR; } CLOSELIB(IntuitionBase, IIntuition); } else { printf("%s: Can't open intuition.library ver 39 or higher\n",argv[0]); res = RETURN_ERROR; } return res; }
Object *CreatePrefsGroup(struct InstData_MCP *data) { Object *example; Object **objs = data->Objects; Object *group; static const char *key01[2]; static const char *key02[2]; static const char *key03[2]; static const char *key04[2]; static const char *key05[2]; static const char *key06[2]; static const char *key07[2]; static const char *key08[2]; static const char *key09[2]; static const char *key10[2]; static const char *key11[2]; static const char *key12[2]; static const char *key13[2]; static const char *key14[2]; static const char *key15[2]; static const char *key16[2]; static const char *key17[2]; static const char *key18[2]; static const char infotext1[] = "\033bBetterString.mcp " LIB_REV_STRING "\033n (" LIB_DATE ")\n" "Copyright (C) 1997-2000 Allan Odgaard\n" LIB_COPYRIGHT; static const char infotext2[] = "\n" "Distributed under the terms of the LGPL2.\n" "\n" "For the latest version, check out:\n" "http://www.sf.net/projects/bstring-mcc/\n" "\n"; static const char **keyinfo[] = { key01, key02, key03, key04, key05, key06, key07, key08, key09, key10, key11, key12, key13, key14, key15, key16, key17, key18, NULL }; key01[0] = GetStr(MSG_Help_Copy_Shortcut); key01[1] = GetStr(MSG_Help_Copy); key02[0] = GetStr(MSG_Help_Cut_Shortcut); key02[1] = GetStr(MSG_Help_Cut); key03[0] = GetStr(MSG_Help_Paste_Shortcut); key03[1] = GetStr(MSG_Help_Paste); key04[0] = GetStr(MSG_Help_Undo_Shortcut); key04[1] = GetStr(MSG_Help_Undo); key05[0] = GetStr(MSG_Help_Redo_Shortcut); key05[1] = GetStr(MSG_Help_Redo); key06[0] = GetStr(MSG_Help_ToggleBuffer_Shortcut); key06[1] = GetStr(MSG_Help_ToggleBuffer); key07[0] = GetStr(MSG_Help_ToggleCaseChar_Shortcut); key07[1] = GetStr(MSG_Help_ToggleCaseChar); key08[0] = GetStr(MSG_Help_ToggleCaseWord_Shortcut); key08[1] = GetStr(MSG_Help_ToggleCaseWord); key09[0] = GetStr(MSG_Help_IncreaseNumber_Shortcut); key09[1] = GetStr(MSG_Help_IncreaseNumber); key10[0] = GetStr(MSG_Help_DecreaseNumber_Shortcut); key10[1] = GetStr(MSG_Help_DecreaseNumber); key11[0] = GetStr(MSG_Help_HexToDecimal_Shortcut); key11[1] = GetStr(MSG_Help_HexToDecimal); key12[0] = GetStr(MSG_Help_DecimalToHex_Shortcut); key12[1] = GetStr(MSG_Help_DecimalToHex); key13[0] = GetStr(MSG_Help_FilenameCompletition_Shortcut); key13[1] = GetStr(MSG_Help_FilenameCompletition); key14[0] = GetStr(MSG_Help_Mark_Shortcut); key14[1] = GetStr(MSG_Help_Mark); key15[0] = GetStr(MSG_Help_GotoToStartEndOfLine_Shortcut); key15[1] = GetStr(MSG_Help_GotoToStartEndOfLine); key16[0] = GetStr(MSG_Help_DeleteToStartEndOfLine_Shortcut); key16[1] = GetStr(MSG_Help_DeleteToStartEndOfLine); key17[0] = GetStr(MSG_Help_GotoToPrevNextWord_Shortcut); key17[1] = GetStr(MSG_Help_GotoToPrevNextWord); key18[0] = GetStr(MSG_Help_DeleteToPrevNextWord_Shortcut); key18[1] = GetStr(MSG_Help_DeleteToPrevNextWord); group = VGroup, Child, PopobjectObject, MUIA_Popstring_String, example = BetterStringObject, StringFrame, MUIA_String_Contents, GetStr(MSG_String_TestString), MUIA_String_Format, MUIV_String_Format_Center, MUIA_CycleChain, TRUE, End, MUIA_Popstring_Button, PopButton(MUII_PopUp), MUIA_Popobject_Object, ListviewObject, MUIA_Listview_Input, FALSE, MUIA_Listview_List, ListObject, ReadListFrame, MUIA_List_DisplayHook, &DisplayHook, MUIA_List_Format, ",,", MUIA_List_SourceArray, keyinfo, End, End, End, Child, VSpace(4), Child, ColGroup(2), Child, HSpace(-1), Child, HGroup, MUIA_Group_SameWidth, TRUE, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, GetStr(MSG_Label_Background), MUIA_Text_PreParse, "\33c", End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, GetStr(MSG_Label_Text), MUIA_Text_PreParse, "\33c", End, End, Child, TxtLabel(GetStr(MSG_Label_Inactive)), Child, HGroup, Child, objs[InactiveBack] = PopimageObject, MUIA_Imageadjust_Type, 2, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, Child, objs[InactiveText] = PoppenObject, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, End, Child, TxtLabel(GetStr(MSG_Label_Active)), Child, HGroup, Child, objs[ActiveBack] = PopimageObject, MUIA_Imageadjust_Type, 2, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, Child, objs[ActiveText] = PoppenObject, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, End, Child, HSpace(-1), Child, RectangleObject, MUIA_Rectangle_HBar, TRUE, MUIA_VertWeight, 0, End, Child, TxtLabel(GetStr(MSG_Label_Cursor)), Child, objs[Cursor] = PoppenObject, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, Child, TxtLabel(GetStr(MSG_Label_Marked)), Child, HGroup, Child, objs[MarkedBack] = PoppenObject, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, Child, objs[MarkedText] = PoppenObject, MUIA_CycleChain, TRUE, MUIA_FixHeight, 0, End, End, Child, HSpace(-1), Child, RectangleObject, MUIA_Rectangle_HBar, TRUE, MUIA_VertWeight, 0, End, Child, HSpace(-1), Child, HGroup, MUIA_Weight, 0, Child, objs[SelectOnActive] = MUI_MakeObject(MUIO_Checkmark, NULL), Child, TxtLLabel(GetStr(MSG_SelectOnActive)), Child, HSpace(-1), End, Child, HSpace(-1), Child, HGroup, MUIA_Weight, 0, Child, objs[SelectPointer] = MUI_MakeObject(MUIO_Checkmark, NULL), Child, TxtLLabel(GetStr(MSG_SelectPointer)), Child, HSpace(-1), End, End, Child, CrawlingObject, TextFrame, MUIA_FixHeightTxt, infotext1, MUIA_Background, "m1", Child, TextObject, MUIA_Text_Copy, FALSE, MUIA_Text_PreParse, "\033c", MUIA_Text_Contents, infotext1, End, Child, TextObject, MUIA_Text_Copy, FALSE, MUIA_Text_PreParse, "\033c", MUIA_Text_Contents, infotext2, End, Child, TextObject, MUIA_Text_Copy, FALSE, MUIA_Text_PreParse, "\033c", MUIA_Text_Contents, infotext1, End, End, End; // the inactive background will be the same as for String.mui on MUI4 if(objs[InactiveBack] != NULL) set(objs[InactiveBack], MUIA_Disabled, data->mui4x); // the active background will be the same as for String.mui on MUI4 if(objs[ActiveBack] != NULL) set(objs[ActiveBack], MUIA_Disabled, data->mui4x); if(objs[SelectOnActive] != NULL) set(objs[SelectOnActive], MUIA_ShortHelp, GetStr(MSG_HELP_SelectOnActive)); // disable the pointer checkmark in case MUI already handles custom pointer types if(objs[SelectPointer] != NULL) { SetAttrs(objs[SelectPointer], MUIA_ShortHelp, GetStr(MSG_HELP_SelectPointer), MUIA_Disabled, xget(example, MUIA_PointerType) != MUIV_PointerType_Normal, TAG_DONE); } return group; }
int main(UNUSED int argc,char **argv) { int res; if ((IntuitionBase = (APTR)OpenLibrary("intuition.library",39)) != NULL && GETINTERFACE("main", IIntuition, IntuitionBase)) { if ((MUIMasterBase = OpenLibrary("muimaster.library",19)) != NULL && GETINTERFACE("main", IMUIMaster, MUIMasterBase)) { Object *app, *win, *mg, *sb, *viewMode, *buttonsPos, *labelPos, *borderless, *sunny, *raised, *scaled, *keys, *bspacer, *fixed, *free, *update, *rows, *cols, *s4, *h0, *rb, *rs, *ri; if ((app = ApplicationObject, MUIA_Application_Title, "TheBar Demo3", MUIA_Application_Version, "$VER: TheBarDemo3 1.0 (24.6.2003)", MUIA_Application_Copyright, "Copyright 2003 by Alfonso Ranieri", MUIA_Application_Author, "Alfonso Ranieri <*****@*****.**>", MUIA_Application_Description, "TheBar example", MUIA_Application_Base, "THEBAREXAMPLE", MUIA_Application_UsedClasses, usedClasses, SubWindow, win = WindowObject, MUIA_Window_ID, MAKE_ID('M','A','I','N'), MUIA_Window_Title, "TheBar Demo3", WindowContents, mg = VGroup, Child, sb = TheBarObject, MUIA_Group_Horiz, TRUE, MUIA_TheBar_IgnoreAppearance, TRUE, MUIA_TheBar_ViewMode, MUIV_TheBar_ViewMode_Gfx, MUIA_TheBar_Buttons, buttons, MUIA_TheBar_PicsDrawer, "PROGDIR:Pics", MUIA_TheBar_Pics, pics, MUIA_TheBar_SelPics, spics, MUIA_TheBar_DisPics, dpics, End, Child, VGroup, GroupFrameT("Appearance"), Child, ColGroup(2), Child, Label2("Rows"), Child, HGroup, Child, rows = MUI_MakeObject(MUIO_Radio,NULL,rowss), Child, HSpace(0), End, Child, Label2("Columns"), Child, HGroup, Child, cols = MUI_MakeObject(MUIO_Radio,NULL,colss), Child, HSpace(0), End, Child, Label2("ViewMode"), Child, viewMode = MUI_MakeObject(MUIO_Cycle,NULL,viewModes), Child, Label2("Buttons position"), Child, buttonsPos = MUI_MakeObject(MUIO_Cycle,NULL,buttonsPoss), Child, Label2("Label position"), Child, labelPos = MUI_MakeObject(MUIO_Cycle,NULL,labelPoss), End, Child, ScrollgroupObject, MUIA_Scrollgroup_FreeHoriz, FALSE, MUIA_Scrollgroup_Contents, VirtgroupObject, MUIA_Frame, MUIV_Frame_Virtual, Child, HGroup, Child, ColGroup(2), Child, borderless = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Borderless"), Child, sunny = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Sunny"), Child, raised = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Raised"), Child, scaled = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Scaled"), Child, keys = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Enable keys"), Child, bspacer = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel1("Bar spacer"), Child, fixed = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Fixed"), Child, free = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Disable 0"), Child, h0 = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Hide 0"), Child, s4 = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Sleep 4"), Child, RectangleObject, MUIA_FixHeightTxt,"a",End, Child, RectangleObject, MUIA_FixHeightTxt,"a",End, Child, rb = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Remove Bars"), Child, rs = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Remove Spaces"), Child, ri = MUI_MakeObject(MUIO_Checkmark,NULL), Child, LLabel("Remove Images"), End, Child, HSpace(0), End, Child, VSpace(0), End, End, Child, update = MUI_MakeObject(MUIO_Button,"_Update"), End, End, End, End) != NULL) { ULONG sigs = 0; LONG id; set(rows,MUIA_Group_Horiz,TRUE); set(cols,MUIA_Group_Horiz,TRUE); set(viewMode,MUIA_Cycle_Active,1); set(s4,MUIA_Selected,TRUE); DoMethod(sb,MUIM_TheBar_SetAttr,4,MUIA_TheBar_Attr_Sleep,TRUE); DoMethod(win,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit); DoMethod(update,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,TAG_USER); set(win,MUIA_Window_Open,TRUE); while ((id = DoMethod(app,MUIM_Application_NewInput,&sigs))!=MUIV_Application_ReturnID_Quit) { if (id==(LONG)TAG_USER) { IPTR c = 0, r = 0, vm = 0, bp = 0, lp = 0, br = 0, su = 0, ra = 0, sc = 0, k = 0, bs = 0, fi = 0, fr = 0, hl0 = 0, sl4 = 0, rbl = 0, rsl = 0, ril = 0, rem = 0; get(rows,MUIA_Radio_Active,&r); if (r==4) r = 6; get(cols,MUIA_Radio_Active,&c); get(viewMode,MUIA_Cycle_Active,&vm); get(buttonsPos,MUIA_Cycle_Active,&bp); get(labelPos,MUIA_Cycle_Active,&lp); get(borderless,MUIA_Selected,&br); get(sunny,MUIA_Selected,&su); get(raised,MUIA_Selected,&ra); get(scaled,MUIA_Selected,&sc); get(keys,MUIA_Selected,&k); get(bspacer,MUIA_Selected,&bs); get(fixed,MUIA_Selected,&fi); get(free,MUIA_Selected,&fr); get(h0,MUIA_Selected,&hl0); get(s4,MUIA_Selected,&sl4); get(rb,MUIA_Selected,&rbl); get(rs,MUIA_Selected,&rsl); get(ri,MUIA_Selected,&ril); rem = 0; if (rbl) rem |= MUIV_TheBar_RemoveSpacers_Bar; if (rsl) rem |= MUIV_TheBar_RemoveSpacers_Button; if (ril) rem |= MUIV_TheBar_RemoveSpacers_Image; DoMethod(mg,MUIM_Group_InitChange); DoMethod(sb,MUIM_Group_InitChange); SetAttrs(sb,MUIA_TheBar_Columns, c, MUIA_TheBar_Rows, r, MUIA_TheBar_ViewMode, vm, MUIA_TheBar_Borderless, br, MUIA_TheBar_Sunny, su, MUIA_TheBar_Raised, ra, MUIA_TheBar_Scaled, sc, MUIA_TheBar_EnableKeys, k, MUIA_TheBar_BarSpacer, bs, MUIA_TheBar_RemoveSpacers,rem, MUIA_TheBar_LabelPos, lp, TAG_DONE); DoMethod(sb,MUIM_TheBar_SetAttr,0,MUIA_TheBar_Attr_Hide,hl0); DoMethod(sb,MUIM_TheBar_SetAttr,4,MUIA_TheBar_Attr_Sleep,sl4); DoMethod(sb,MUIM_TheBar_SetAttr,6,MUIA_TheBar_Attr_Disabled,fr); DoMethod(sb,MUIM_Group_ExitChange); DoMethod(mg,MUIM_Group_ExitChange); } if (sigs) { sigs = Wait(sigs | SIGBREAKF_CTRL_C); if (sigs & SIGBREAKF_CTRL_C) break; } } MUI_DisposeObject(app); res = RETURN_OK; } else { printf("%s: can't create application\n",argv[0]); res = RETURN_FAIL; } CLOSELIB(MUIMasterBase, IMUIMaster); } else { printf("%s: Can't open muimaster.library ver 19 or higher\n",argv[0]); res = RETURN_ERROR; } CLOSELIB(IntuitionBase, IIntuition); } else { printf("%s: Can't open intuition.library ver 39 or higher\n",argv[0]); res = RETURN_ERROR; } return res; }
/****************************************************************** Display the mail *******************************************************************/ static int read_window_display_mail(struct Read_Data *data, struct mail *m) { char path[512]; if (!data->folder_path) return 0; data->ref_mail = m; getcwd(path,sizeof(path)); if (chdir(data->folder_path)==-1) return 0; if ((data->mail = mail_create_from_file(m->filename))) { int dont_show = 0; /* attachments */ chdir(path); /* should be a absolute path */ mail_read_contents(data->folder_path,data->mail); mail_create_html_header(data->mail, 0); if (!data->mail->num_multiparts || (data->mail->num_multiparts == 1 && !data->mail->multipart_array[0]->num_multiparts)) { /* mail has only one part */ dont_show = 1; } else { } if (data->mail_list) g_slist_free(data->mail_list); data->mail_list = g_slist_alloc(); insert_mail(data,data->mail); show_mail(data,mail_find_initial(data->mail)); } else chdir(path); return 1; #if 0 if ((lock = Lock(data->folder_path,ACCESS_READ))) /* maybe it's better to use an absoulte path here */ { BPTR old_dir = CurrentDir(lock); if ((data->mail = mail_create_from_file(mail->filename))) { int dont_show = 0; mail_read_contents(data->folder_path,data->mail); mail_create_html_header(data->mail); if (!data->mail->num_multiparts || (data->mail->num_multiparts == 1 && !data->mail->multipart_array[0]->num_multiparts)) { /* mail has only one part */ set(data->attachments_group, MUIA_ShowMe, FALSE); dont_show = 1; } else { DoMethod((Object*)xget(data->attachments_group,MUIA_Parent), MUIM_Group_InitChange); } DoMethod(data->attachments_group, MUIM_Group_InitChange); DisposeAllChilds(data->attachments_group); data->attachments_last_selected = NULL; insert_mail(data,data->mail); DoMethod(data->attachments_group, OM_ADDMEMBER, HSpace(0)); DoMethod(data->attachments_group, MUIM_Group_ExitChange); if (!dont_show) { set(data->attachments_group, MUIA_ShowMe, TRUE); DoMethod((Object*)xget(data->attachments_group,MUIA_Parent), MUIM_Group_ExitChange); } show_mail(data,mail_find_initial(data->mail)); CurrentDir(old_dir); set(App, MUIA_Application_Sleep, FALSE); return 1; } CurrentDir(old_dir); } DoMethod(data->attachments_group, MUIM_Group_InitChange); DisposeAllChilds(data->attachments_group); data->attachments_last_selected = NULL; DoMethod(data->attachments_group, OM_ADDMEMBER, HSpace(0)); DoMethod(data->attachments_group, MUIM_Group_ExitChange); set(App, MUIA_Application_Sleep, FALSE); return 0; #endif }
static IPTR mNew(struct IClass *cl, Object *obj, struct opSet *msg) { struct data temp; memset(&temp,0,sizeof(temp)); if((obj = (Object *)DoSuperNew(cl,obj, MUIA_HelpNode, "WIN", MUIA_Window_ID, MAKE_ID('M', 'W', 'I', 'N'), MUIA_Window_Title, getString(MSG_Win_WinTitle), MUIA_Window_ScreenTitle, getString(MSG_App_ScreenTitle), WindowContents, VGroup, Child, temp.reg = RegisterObject, MUIA_Background, MUII_RegisterBack, MUIA_CycleChain, TRUE, MUIA_Register_Titles, tabs, /* Browsers */ Child, temp.browsers = appListObject, MUIA_AppList_Type, MUIV_AppList_Type_Browser, End, /* Mailers */ Child, temp.mailers = appListObject, MUIA_AppList_Type, MUIV_AppList_Type_Mailer, End, /* FTPs */ Child, temp.FTPs = appListObject, MUIA_AppList_Type, MUIV_AppList_Type_FTP, End, /* Miscellaneous */ Child, temp.misc = VGroup, MUIA_HelpNode, "MISCS", /* Defaults */ Child, VGroup, GroupFrameT(getString(MSG_Misc_Defaults)), Child, HGroup, Child, ColGroup(2), Child, temp.show = ocheckmark(MSG_Misc_Show,MSG_Misc_Show_Help), Child, ollabel1(MSG_Misc_Show), Child, temp.toFront = ocheckmark(MSG_Misc_Bring,MSG_Misc_Bring_Help), Child, ollabel1(MSG_Misc_Bring), Child, temp.newWin = ocheckmark(MSG_Misc_Open,MSG_Misc_Open_Help), Child, ollabel1(MSG_Misc_Open), Child, temp.launch = ocheckmark(MSG_Misc_Launch,MSG_Misc_Launch_Help), Child, ollabel1(MSG_Misc_Launch), End, Child, HSpace(0), End, Child, VSpace(0), End, /* Options */ Child, VGroup, GroupFrameT(getString(MSG_Misc_Options)), Child, HGroup, Child, ColGroup(2), Child, temp.prepend = ocheckmark(MSG_Misc_Prepend,MSG_Misc_Prepend_Help), Child, ollabel1(MSG_Misc_Prepend), Child, temp.mailto = ocheckmark(MSG_Misc_UseMailer,MSG_Misc_UseMailer_Help), Child, ollabel1(MSG_Misc_UseMailer), Child, temp.useFTP = ocheckmark(MSG_Misc_UseFTP,MSG_Misc_UseFTP_Help), Child, ollabel1(MSG_Misc_UseFTP), End, Child, HSpace(0), End, Child, VSpace(0), End, End, End, /* Buttons */ Child, HGroup, Child, temp.save = obutton(MSG_Win_Save,MSG_Win_Save_Help), Child, wspace(16), Child, temp.use = obutton(MSG_Win_Use,MSG_Win_Use_Help), Child, wspace(16), Child, temp.apply = obutton(MSG_Win_Apply,MSG_Win_Apply_Help), Child, wspace(16), Child, temp.cancel = obutton(MSG_Win_Cancel,MSG_Win_Cancel_Help), End, End, TAG_MORE, msg->ops_AttrList)) != NULL) { struct data *data = INST_DATA(cl,obj); /* init instance data */ CopyMem(&temp,data,sizeof(*data)); data->browserList = (Object *)xget(data->browsers, MUIA_AppList_ListObj); data->mailerList = (Object *)xget(data->mailers, MUIA_AppList_ListObj); data->FTPList = (Object *)xget(data->FTPs, MUIA_AppList_ListObj); /* buttons */ set(obj,MUIA_Window_DefaultObject,data->browserList); /* window notifies */ DoMethod(obj,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2, MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit); /* buttons notifies */ DoMethod(data->save,MUIM_Notify,MUIA_Pressed,FALSE,(IPTR)obj,2,MUIM_Win_StorePrefs,MUIV_Win_StorePrefs_Save); DoMethod(data->use,MUIM_Notify,MUIA_Pressed,FALSE,(IPTR)obj,2,MUIM_Win_StorePrefs,MUIV_Win_StorePrefs_Use); DoMethod(data->apply,MUIM_Notify,MUIA_Pressed,FALSE,(IPTR)obj,2,MUIM_Win_StorePrefs,MUIV_Win_StorePrefs_Apply); DoMethod(data->cancel,MUIM_Notify,MUIA_Pressed,FALSE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit); } return (IPTR)obj; }
static IPTR mNew(struct IClass *cl,Object *obj,struct opSet *msg) { TEXT buf[256]; Object *ok; strlcpy(buf, "OpenURL-Prefs " LIB_REV_STRING " [" SYSTEMSHORT "/" CPU "] (" LIB_DATE ")\n" LIB_COPYRIGHT, sizeof(buf)); if ((obj = (Object *)DoSuperNew(cl,obj, MUIA_Window_Title, getString(MSG_About_WinTitle), MUIA_Window_ScreenTitle, getString(MSG_App_ScreenTitle), MUIA_Window_IconifyGadget, FALSE, MUIA_Window_MenuGadget, FALSE, MUIA_Window_SnapshotGadget, FALSE, MUIA_Window_ConfigGadget, FALSE, MUIA_Window_SizeGadget, FALSE, MUIA_Window_CloseGadget, FALSE, MUIA_Window_AllowTopMenus, FALSE, WindowContents, VGroup, MUIA_Background, MUII_RequesterBack, Child, HGroup, Child, HSpace(0), Child, TextObject, MUIA_Text_Contents, getString(MSG_About_Descr), End, Child, HSpace(0), End, Child, RectangleObject, MUIA_FixHeight, 4, End, Child, HGroup, Child, HSpace(0), Child, TextObject, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, buf, End, Child, HSpace(0), End, Child, HGroup, Child, HSpace(0), Child, ourltext("http://sourceforge.net/projects/openurllib",NULL), Child, HSpace(0), End, //Child, RectangleObject, MUIA_FixHeight, 4, End, Child, RectangleObject, MUIA_Rectangle_HBar, TRUE, End, Child, HGroup, Child, RectangleObject, MUIA_Weight, 200, End, Child, ok = obutton(MSG_About_OK,0), Child, RectangleObject, MUIA_Weight, 200, End, End, End, TAG_MORE, msg->ops_AttrList))) { superset(cl,obj,MUIA_Window_ActiveObject,ok); DoMethod(ok,MUIM_Notify,MUIA_Pressed,FALSE,(IPTR)obj,3, MUIM_Set,MUIA_Window_CloseRequest,TRUE); } return (IPTR)obj; }
/****************************************************************** Opens a person window *******************************************************************/ void person_window_open(struct addressbook_entry *entry) { Object *wnd, *add_button, *rem_button, *email_list, *email_string; Object *alias_string, *realname_string, *ok_button, *cancel_button; Object *homepage_string, *street_string, *city_string, *country_string, *phone1_string, *phone2_string; Object *description_string; int num; for (num=0; num < MAX_PERSON_OPEN; num++) if (!person_open[num]) break; wnd = WindowObject, (num < MAX_PERSON_OPEN)?MUIA_Window_ID:TAG_IGNORE, MAKE_ID('P','E','R',num), MUIA_Window_Title, "SimpleMail - Edit Person", WindowContents, VGroup, Child, VGroup, Child, HorizLineTextObject("Electronic mail"), Child, HGroup, Child, VGroup, Child, ColGroup(2), Child, MakeLabel("Alias"), Child, alias_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("Real Name"), Child, realname_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("PGP Key-ID"), Child, BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("Homepage"), Child, homepage_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, End, Child, HVSpace, End, Child, VGroup, Child, NListviewObject, MUIA_CycleChain, 1, MUIA_NListview_NList, email_list = NListObject, MUIA_NList_DragSortable, TRUE, MUIA_NList_ConstructHook, MUIV_NList_ConstructHook_String, MUIA_NList_DestructHook, MUIV_NList_DestructHook_String, End, End, Child, HGroup, Child, email_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, End, Child, HGroup, MUIA_Group_Spacing, 0, Child, add_button = MakeButton("Add"), Child, rem_button = MakeButton("Rem"), End, End, End, End, End, Child, HGroup, Child, ColGroup(2), Child, HorizLineTextObject("Snail mail"), Child, HorizLineTextObject("Miscellanous"), /* Child, HorizLineTextObject("Portrait"),*/ Child, ColGroup(2), Child, MakeLabel("Street"), Child, street_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("City/ZIP"), Child, city_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("State/Country"), Child, country_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("Phone numbers"), Child, phone1_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, HSpace(0), Child, phone2_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, End, Child, VGroup, Child, ColGroup(2), Child, MakeLabel("Description"), Child, description_string = BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, Child, MakeLabel("Date of birth"), Child, BetterStringObject, StringFrame, MUIA_CycleChain, 1, MUIA_String_AdvanceOnCR, TRUE, End, End, Child, HGroup, Child, VGroup, Child, MakeLabel("Notepad"), Child, VSpace(0), End, Child, TextEditorObject, InputListFrame, MUIA_CycleChain,1, End, End, End, End, End, Child, HorizLineObject, Child, HGroup, Child, ok_button = MakeButton("_Ok"), Child, cancel_button = MakeButton("_Cancel"), End, End, End; if (wnd) { struct Person_Data *data = (struct Person_Data*)malloc(sizeof(struct Person_Data)); if (data) { data->wnd = wnd; data->rem_button = rem_button; data->alias_string = alias_string; data->email_list = email_list; data->email_string = email_string; data->realname_string = realname_string; data->description_string = description_string; data->homepage_string = homepage_string; data->street_string = street_string; data->city_string = city_string; data->country_string = country_string; data->phone1_string = phone1_string; data->phone2_string = phone2_string; data->person = entry; data->num = num; /* mark the window as opened */ person_open[num] = 1; set(email_string, MUIA_String_AttachedList, email_list); set(add_button, MUIA_Weight,0); set(rem_button, MUIA_Weight,0); DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, App, 7, MUIM_Application_PushMethod, App, 4, MUIM_CallHook, &hook_standard, person_window_close, data); DoMethod(cancel_button, MUIM_Notify, MUIA_Pressed, FALSE, App, 7, MUIM_Application_PushMethod, App, 4, MUIM_CallHook, &hook_standard, person_window_close, data); DoMethod(ok_button, MUIM_Notify, MUIA_Pressed, FALSE, App, 7, MUIM_Application_PushMethod, App, 4, MUIM_CallHook, &hook_standard, person_window_ok, data); DoMethod(add_button, MUIM_Notify, MUIA_Pressed, FALSE, App, 4, MUIM_CallHook, &hook_standard, person_add_email, data); DoMethod(rem_button, MUIM_Notify, MUIA_Pressed, FALSE, email_list, 2, MUIM_NList_Remove, MUIV_NList_Remove_Active); DoMethod(email_list, MUIM_Notify, MUIA_NList_Active, MUIV_EveryTime, App, 4, MUIM_CallHook, &hook_standard, person_email_list_active, data); DoMethod(email_string, MUIM_Notify, MUIA_String_Contents, MUIV_EveryTime, App, 4, MUIM_CallHook, &hook_standard, person_email_string_contents, data); DoMethod(App,OM_ADDMEMBER,wnd); /* A person must be changed */ if (entry && entry->type == ADDRESSBOOK_ENTRY_PERSON) { int i; for (i=0;i<entry->u.person.num_emails;i++) { DoMethod(email_list, MUIM_NList_InsertSingle, entry->u.person.emails[i], MUIV_NList_Insert_Bottom); } set(realname_string, MUIA_String_Contents, entry->u.person.realname); set(description_string, MUIA_String_Contents, entry->u.person.description); set(alias_string, MUIA_String_Contents, entry->u.person.alias); set(phone1_string, MUIA_String_Contents, entry->u.person.phone1); set(phone2_string, MUIA_String_Contents, entry->u.person.phone2); set(street_string, MUIA_String_Contents, entry->u.person.street); set(city_string, MUIA_String_Contents, entry->u.person.city); set(country_string, MUIA_String_Contents, entry->u.person.country); set(homepage_string, MUIA_String_Contents, entry->u.person.homepage); } person_email_list_active(&data); set(wnd,MUIA_Window_ActiveObject,alias_string); set(wnd,MUIA_Window_Open,TRUE); return; } MUI_DisposeObject(wnd); } }