BOOL CreateSubClasses(void) { if((widthslider_mcc = MUI_CreateCustomClass(NULL, "Slider.mui", NULL, 0, ENTRY(WidthSlider_Dispatcher)))) { if((speedslider_mcc = MUI_CreateCustomClass(NULL, "Slider.mui", NULL, 0, ENTRY(SpeedSlider_Dispatcher)))) { if((text_mcc = MUI_CreateCustomClass(NULL, "Text.mui", NULL, 0, ENTRY(Text_Dispatcher)))) { return TRUE; } } } return FALSE; }
struct MUI_CustomClass * CreateDynTestClass (void) { return MUI_CreateCustomClass(NULL, MUIC_Group, NULL, sizeof(struct DynTestData), MyDispatcher); }
BOOL CreateSubClasses(void) { if((CacheSliderClass = MUI_CreateCustomClass(NULL, MUIC_Slider, NULL, sizeof(struct CacheSliderData), ENTRY(CacheSliderDispatcher)))) { if((GammaSliderClass = MUI_CreateCustomClass(NULL, MUIC_Slider, NULL, sizeof(struct GammaSliderData), ENTRY(GammaSliderDispatcher)))) { #if defined(__MORPHOS__) if (initPicClass()) { return TRUE; } #else return TRUE; #endif } } return FALSE; }
struct MUI_CustomClass *ObjStringInit(Library *libbase) { ObjStringClass = MUI_CreateCustomClass(NULL, MUIC_String, NULL, sizeof(struct ObjStringData), ObjStringDispatcher); SW_GETICLASS(ObjStringClass)->cl_UserData = (ULONG)libbase; return ObjStringClass; }
BOOL SetupClasses( void ) { SLider = MUI_CreateCustomClass(NULL, MUIC_Slider, NULL, sizeof(struct SLider_classData), ENTRY(SLider_dispatch)); if(SLider) return TRUE; ClearClasses(); return FALSE; }
static BOOL initLampClass(void) { BOOL success = FALSE; ENTER(); if((lampClass = MUI_CreateCustomClass(NULL, MUIC_Rectangle, NULL, sizeof(struct lampData), ENTRY(lampDispatcher))) != NULL) success = TRUE; RETURN(success); return success; }
BOOL initAboutClass(void) { BOOL success = FALSE; ENTER(); if((g_aboutClass = MUI_CreateCustomClass(NULL, MUIC_Window, NULL, 0, ENTRY(dispatcher))) != NULL) success = TRUE; RETURN(success); return success; }
static BOOL ClassInit(UNUSED struct Library *base) { ENTER(); memset(&ttt,0,sizeof(ttt)); InitSemaphore(&ttt); tttfail=0; _init(); if((LayersBase = OpenLibrary("layers.library", 36)) && GETINTERFACE(ILayers, struct LayersIFace*, LayersBase)) if((KeymapBase = OpenLibrary("keymap.library", 36)) && GETINTERFACE(IKeymap, struct KeymapIFace*, KeymapBase)) if((CxBase = OpenLibrary("commodities.library", 36)) && GETINTERFACE(ICommodities, struct CommoditiesIFace*, CxBase)) if((DiskfontBase = OpenLibrary("diskfont.library", 36)) && GETINTERFACE(IDiskfont, struct DiskfontIFace*, DiskfontBase)) if((DataTypesBase = OpenLibrary("datatypes.library", 36)) && GETINTERFACE(IDataTypes, struct DataTypesIFace*, DataTypesBase)) if((CyberGfxBase = OpenLibrary("cybergraphics.library", 40)) && GETINTERFACE(ICyberGfx, struct CyberGfxIFace*, CyberGfxBase)) { if((ScrollGroupClass = MUI_CreateCustomClass(NULL, MUIC_Virtgroup, NULL, GetScrollGroupDataSize(), CPPDISPATCHERENTRY(ScrollGroupDispatcher)))) { #ifdef USEMUISTRINGS if((StringClass = MUI_CreateCustomClass(NULL, MUIC_String, NULL, sizeof(struct StringData), CPPDISPATCHERENTRY(StringDispatcher)))) #endif { RETURN(TRUE); return TRUE; } } } ClassExpunge(base); RETURN(FALSE); return(FALSE); }
BOOL initAppClass(void) { BOOL success = FALSE; ENTER(); if((g_appClass = MUI_CreateCustomClass(NULL, MUIC_Application, NULL, sizeof(struct data), ENTRY(dispatcher))) != NULL) { localizeNewMenu(menu); success = TRUE; } RETURN(success); return success; }
BOOL initBrowserEditWinClass(void) { BOOL success = FALSE; ENTER(); if((g_browserEditWinClass = MUI_CreateCustomClass(NULL, MUIC_Window, NULL, sizeof(struct data), ENTRY(dispatcher))) != NULL) { localizeStrings(names); success = TRUE; } RETURN(success); return success; }
BOOPSI_DISPATCHER_END /***********************************************************************/ ULONG MUIPC_LButton_ClassInit(struct MiamiPanelBase_intern *MiamiPanelBase) { MiamiPanelBaseIntern = MiamiPanelBase; if (MiamiPanelBaseIntern->mpb_lbuttonClass = MUI_CreateCustomClass(NULL, MUIC_Group, NULL, sizeof(struct MiamiPanelLButtonClass_DATA), MUIPC_LButton_Dispatcher)) { ons = __(MSG_IF_Button_Online); offs = __(MSG_IF_Button_Offline); if (strlen(ons)>strlen(offs)) btFixWidthTxt = ons; else btFixWidthTxt = offs; return TRUE; } return FALSE; }
/* /// "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 }
BOOPSI_DISPATCHER_END int main(void) { SetTaskPri(FindTask(NULL), 15); struct MUI_CustomClass *mcc; if((ps = OpenLibrary("poseidon.library", 4))) { if((mcc = MUI_CreateCustomClass(NULL, "Area.mui", NULL, sizeof(struct InstData), classdispatcher))) { mybug(-1,("mui custon class at %p\n", mcc)); Object *app, *window, *tick1, *custom; app = ApplicationObject, SubWindow, window = WindowObject, MUIA_Window_Title, "PS3Eye", MUIA_Window_Activate, TRUE, WindowContents, HGroup, Child, HGroup, MUIA_Weight, 100, Child, custom = NewObject(mcc->mcc_Class, NULL, TAG_DONE), End, Child, VGroup, MUIA_Weight, 1, MUIA_Group_SameWidth, TRUE, GroupFrameT("Configuration"), Child, HGroup, Child, tick1 = MUI_MakeObject(MUIO_Checkmark, NULL), Child, MUI_MakeObject(MUIO_Label,"640x480", 0), End, Child, (IPTR) VSpace(0), End, End, End, End; if(app) { ULONG sigs = 0; DoMethod(tick1, MUIM_Notify, MUIA_Selected, TRUE, (IPTR)custom, 3, MUIM_Set, MUIA_Resolution, TRUE); DoMethod(tick1, MUIM_Notify, MUIA_Selected, FALSE, (IPTR)custom, 3, MUIM_Set, MUIA_Resolution, FALSE); DoMethod(window, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit); set(window, MUIA_Window_Open, TRUE); while((LONG)DoMethod(app, MUIM_Application_NewInput, &sigs) != (LONG)MUIV_Application_ReturnID_Quit) { if(sigs) { sigs = Wait(sigs | SIGBREAKF_CTRL_C); if(sigs & SIGBREAKF_CTRL_C) break; } } MUI_DisposeObject(app); } MUI_DeleteCustomClass(mcc); } CloseLibrary(ps); } mybug(-1,("Exiting\n")); return 0; }
int main(void) { if((DiskfontBase = OpenLibrary("diskfont.library", 38)) && GETINTERFACE(IDiskfont, DiskfontBase)) if((GfxBase = OpenLibrary("graphics.library", 38)) && GETINTERFACE(IGraphics, GfxBase)) if((IntuitionBase = (APTR)OpenLibrary("intuition.library", 38)) && GETINTERFACE(IIntuition, IntuitionBase)) if((KeymapBase = OpenLibrary("keymap.library", 37)) && GETINTERFACE(IKeymap, KeymapBase)) if((LocaleBase = OpenLibrary("locale.library", 38)) && GETINTERFACE(ILocale, LocaleBase)) if((LayersBase = OpenLibrary("layers.library", 38)) && GETINTERFACE(ILayers, LayersBase)) if((UtilityBase = (APTR)OpenLibrary("utility.library", 38)) && GETINTERFACE(IUtility, UtilityBase)) if((MUIMasterBase = OpenLibrary("muimaster.library", MUIMASTER_VMIN)) && GETINTERFACE(IMUIMaster, MUIMasterBase)) if((IFFParseBase = OpenLibrary("iffparse.library", 36)) && GETINTERFACE(IIFFParse, IFFParseBase)) { struct MUI_CustomClass *mcc; Object *a1, *a2, *app, *window, *bstring, *bstring2, *bpos, *ssize, *button, *numbutton; Object *menu; const char *classes[] = {"BetterString.mcp", NULL}; #if defined(DEBUG) SetupDebug(); #endif mcc = MUI_CreateCustomClass(NULL, "Area.mui", NULL, sizeof(struct InstData), ENTRY(_Dispatcher)); /* menu = MenustripObject, MUIA_Family_Child, MenuObject, MUIA_Menu_Title, "Test", MUIA_Family_Child, MenuitemObject, MUIA_Menuitem_Title, "Dummy", MUIA_Menuitem_Enabled, TRUE, MUIA_Menuitem_Shortcut, "V", End, End, End, */ app = ApplicationObject, MUIA_Application_Author, "BetterString.mcc Open Source Team", MUIA_Application_Base, "BetterString-Test", MUIA_Application_Copyright, "(C) 2005-2009 by BetterString.mcc Open Source Team", MUIA_Application_Description, "BetterString.mcc demonstration program", MUIA_Application_Title, "BetterString-Test", MUIA_Application_Version, "$VER: BetterString-Demo V1.0 (18.05.2007)", MUIA_Application_UsedClasses, classes, MUIA_Application_Window, window = WindowObject, MUIA_Window_Title, "BetterString-Test", MUIA_Window_ID, MAKE_ID('M','A','I','N'), //MUIA_Window_Menustrip, menu, MUIA_Window_RootObject, VGroup, Child, PopaslObject, MUIA_Popstring_String, NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_BetterString_NoInput, TRUE, MUIA_CycleChain, TRUE, End, MUIA_Popstring_Button, MUI_MakeObject(MUIO_PopButton, MUII_PopUp), MUIA_Popasl_Type, ASL_FontRequest, End, Child, ColGroup(2), StringFrame, MUIA_Background, MUII_GroupBack, Child, TextObject, MUIA_Weight, 0, MUIA_Text_Contents, "\33rName:", End, Child, a1 = (Object *)NewObject(mcc->mcc_Class, NULL, MUIA_CycleChain, TRUE, MUIA_Background, MUII_GroupBack, MUIA_String_AdvanceOnCR, TRUE, MUIA_String_MaxLen, 10, MUIA_ObjectID, MAKE_ID('N','A','M','E'), End, Child, TextObject, MUIA_Weight, 0, MUIA_Text_Contents, "\33rStreet:", End, Child, a2 = (Object *)NewObject(mcc->mcc_Class, NULL, MUIA_CycleChain, TRUE, MUIA_Background, MUII_GroupBack, MUIA_String_AdvanceOnCR, TRUE, MUIA_ObjectID, MAKE_ID('S','T','R','T'), End, Child, TextObject, MUIA_Weight, 0, MUIA_Text_Contents, "\33rZip, City:", End, Child, NewObject(mcc->mcc_Class, NULL, MUIA_CycleChain, TRUE, MUIA_Background, MUII_GroupBack, MUIA_String_AdvanceOnCR, TRUE, MUIA_ObjectID, MAKE_ID('C','I','T','Y'), End, End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cBetterString.mcc", End, Child, NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_CycleChain, TRUE, MUIA_String_Secret, TRUE, // MUIA_String_MaxLen, 20, MUIA_String_AdvanceOnCR, TRUE, MUIA_BetterString_StayActive, TRUE, // MUIA_String_Accept, "0123456789", MUIA_String_Contents, "This is a wonderful example string!", End, Child, NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_CycleChain, TRUE, MUIA_BetterString_InactiveContents, "This is a wonderful example string!", End, Child, NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_CycleChain, TRUE, MUIA_String_Secret, TRUE, MUIA_BetterString_InactiveContents, "This is a wonderful example string!", End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cCentered", End, Child, bstring = (Object *)NewObject(mcc->mcc_Class, NULL, ButtonFrame, MUIA_Font, MUIV_Font_Big, // StringFrame, MUIA_String_AdvanceOnCR, TRUE, MUIA_String_Format, MUIV_String_Format_Center, MUIA_String_Contents, "This is a wonderful example string!", MUIA_CycleChain, TRUE, End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cRight-Aligned", End, Child, bstring2 = NewObject(mcc->mcc_Class, NULL, MUIA_CycleChain, TRUE, // StringFrame, MUIA_String_AdvanceOnCR, TRUE, MUIA_String_Contents, "This is a wonderful example string!", MUIA_String_Format, MUIV_String_Format_Right, End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cStringObject", End, Child, StringObject, StringFrame, MUIA_String_AdvanceOnCR, TRUE, MUIA_String_Contents, "This is a standard StringObject", MUIA_String_Format, MUIV_String_Format_Right, MUIA_String_MaxLen, 1024, MUIA_CycleChain, TRUE, End, Child, HGroup, Child, button = SimpleButton("Insert"), Child, bpos = SliderObject, MUIA_Slider_Horiz, TRUE, MUIA_Numeric_Max, 60, End, Child, ssize = SliderObject, MUIA_Slider_Horiz, TRUE, MUIA_Numeric_Min, -30, MUIA_Numeric_Max, 30, MUIA_Numeric_Value, 0, End, Child, numbutton = NumericbuttonObject, MUIA_Numeric_Min, -30, MUIA_Numeric_Max, 30, MUIA_Numeric_Value, 0, MUIA_Disabled, TRUE, End, End, End, End, End; if(app) { ULONG sigs; DoMethod(app, MUIM_Application_Load, MUIV_Application_Load_ENV); DoMethod(a1, MUIM_Notify, MUIA_String_Contents, MUIV_EveryTime, a2, 3, MUIM_Set, MUIA_String_Contents, MUIV_TriggerValue); DoMethod(a2, MUIM_Notify, MUIA_String_Contents, MUIV_EveryTime, a1, 3, MUIM_Set, MUIA_String_Contents, MUIV_TriggerValue); DoMethod(ssize, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, numbutton, 3, MUIM_Set, MUIA_Numeric_Value, MUIV_TriggerValue); DoMethod(bpos, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, bstring, 3, MUIM_Set, MUIA_String_BufferPos, MUIV_TriggerValue); DoMethod(ssize, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, bstring, 3, MUIM_Set, MUIA_BetterString_SelectSize, MUIV_TriggerValue); DoMethod(button, MUIM_Notify, MUIA_Pressed, FALSE, bstring, 3, MUIM_BetterString_Insert, "*Test*", MUIV_BetterString_Insert_BufferPos); DoMethod(window, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, MUIV_Notify_Application, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit); set(bstring, MUIA_BetterString_KeyDownFocus, bstring2); set(bstring2, MUIA_BetterString_KeyUpFocus, bstring); set(window, MUIA_Window_ActiveObject, bstring); set(window, MUIA_Window_DefaultObject, bstring); set(window, MUIA_Window_Open, TRUE); while((LONG)DoMethod(app, MUIM_Application_NewInput, &sigs) != MUIV_Application_ReturnID_Quit) { if(sigs) { sigs = Wait(sigs | SIGBREAKF_CTRL_C); if(sigs & SIGBREAKF_CTRL_C) break; } } DoMethod(app, MUIM_Application_Save, MUIV_Application_Save_ENV); MUI_DisposeObject(app); if(mcc) MUI_DeleteCustomClass(mcc); } DROPINTERFACE(IMUIMaster); CloseLibrary(MUIMasterBase); MUIMasterBase = NULL; } if(IFFParseBase) { DROPINTERFACE(IIFFParse); CloseLibrary(IFFParseBase); IFFParseBase = NULL; } if(UtilityBase) { DROPINTERFACE(IUtility); CloseLibrary((struct Library *)UtilityBase); } if(LayersBase) { DROPINTERFACE(ILayers); CloseLibrary(LayersBase); } if(LocaleBase) { DROPINTERFACE(ILocale); CloseLibrary(LocaleBase); } if(KeymapBase) { DROPINTERFACE(IKeymap); CloseLibrary(KeymapBase); } if(IntuitionBase) { DROPINTERFACE(IIntuition); CloseLibrary((struct Library *)IntuitionBase); } if(GfxBase) { DROPINTERFACE(IGraphics); CloseLibrary(GfxBase); } if(DiskfontBase) { DROPINTERFACE(IDiskfont); CloseLibrary(DiskfontBase); } return 0; }
int main(void) { if((IntuitionBase = (APTR)OpenLibrary("intuition.library", 38)) && GETINTERFACE(IIntuition, IntuitionBase)) if((KeymapBase = OpenLibrary("keymap.library", 37)) && GETINTERFACE(IKeymap, KeymapBase)) if((UtilityBase = (APTR)OpenLibrary("utility.library", 38)) && GETINTERFACE(IUtility, UtilityBase)) if((MUIMasterBase = OpenLibrary("muimaster.library", MUIMASTER_VMIN)) && GETINTERFACE(IMUIMaster, MUIMasterBase)) { struct MUI_CustomClass *mcc; Object *app, *window, *bstring, *button; const char *classes[] = {"BetterString.mcc", NULL}; mcc = MUI_CreateCustomClass(NULL, "BetterString.mcc", NULL, sizeof(struct InstData), ENTRY(_Dispatcher)); app = ApplicationObject, MUIA_Application_Author, "Allan Odgaard", MUIA_Application_Base, "HotkeyString-Demo", MUIA_Application_Copyright, "®1997 Allan Odgaard", MUIA_Application_Description, "HotkeyString.mcc demonstration program", MUIA_Application_Title, "HotkeyString-Demo", MUIA_Application_Version, "$VER: HotkeyString-Demo V1.0 (3-Sep-97)", MUIA_Application_UsedClasses, classes, MUIA_Application_Window, window = WindowObject, MUIA_Window_Title, "HotkeyString-Demo", MUIA_Window_ID, MAKE_ID('M','A','I','N'), MUIA_Window_RootObject, VGroup, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cHotkeyString.mcc", End, Child, HGroup, Child, bstring = ((Object *)NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_CycleChain, TRUE, MUIA_String_AdvanceOnCR, TRUE, MUIA_HotkeyString_Snoop, FALSE, End), Child, button = TextObject, ButtonFrame, MUIA_CycleChain, TRUE, MUIA_Background, MUII_ButtonBack, MUIA_Text_Contents, "Sample", MUIA_Text_SetMax, TRUE, MUIA_InputMode, MUIV_InputMode_Toggle, End, End, Child, TextObject, MUIA_Font, MUIV_Font_Tiny, MUIA_Text_Contents, "\33cConstant snoop", End, Child, NewObject(mcc->mcc_Class, NULL, StringFrame, MUIA_CycleChain, TRUE, End, End, End, End; if(app) { ULONG sigs; DoMethod(window, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, MUIV_Notify_Application, 3, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit); DoMethod(button, MUIM_Notify, MUIA_Selected, TRUE, MUIV_Notify_Window, 3, MUIM_Set, MUIA_Window_ActiveObject, bstring); DoMethod(button, MUIM_Notify, MUIA_Selected, MUIV_EveryTime, bstring, 3, MUIM_Set, MUIA_HotkeyString_Snoop, MUIV_TriggerValue); DoMethod(bstring, MUIM_Notify, MUIA_String_Contents, MUIV_EveryTime, button, 3, MUIM_Set, MUIA_Selected, FALSE); set(window, MUIA_Window_ActiveObject, bstring); set(window, MUIA_Window_Open, TRUE); while((LONG)DoMethod(app, MUIM_Application_NewInput, &sigs) != (LONG)MUIV_Application_ReturnID_Quit) { if(sigs) { sigs = Wait(sigs | SIGBREAKF_CTRL_C); if(sigs & SIGBREAKF_CTRL_C) break; } } MUI_DisposeObject(app); if(mcc) MUI_DeleteCustomClass(mcc); } DROPINTERFACE(IMUIMaster); CloseLibrary(MUIMasterBase); } if(UtilityBase) { DROPINTERFACE(IUtility); CloseLibrary((struct Library *)UtilityBase); } if(KeymapBase) { DROPINTERFACE(IKeymap); CloseLibrary(KeymapBase); } if(IntuitionBase) { DROPINTERFACE(IIntuition); CloseLibrary((struct Library *)IntuitionBase); } return 0; }