/* * Del Test * -------- * Test if del() works correctly on buttons, and menus. */ #include void del_win(menuitem m) { window w = parentwindow(m); del(w); } void del_item(control c) { del(c); } void del_data(menuitem mi) { menu m = (menu) getdata(mi); del(m); } void del_twice(menuitem mi) { del(mi); doevent(); del(mi); } void main(void) { int i; window w; menubar mb; menu m[9]; menuitem mi[9]; button b[9]; w = newwindow("Test del", rect(20,20,400,300), StandardWindow); setbackground(w, Blue); mb = newmenubar(NULL); m[0] = newmenu("File"); mi[0] = newmenuitem("Quit", 'Q', del_win); m[1] = newmenu("Edit"); mi[1] = newmenuitem("Remove Item 1", 0, del_item); mi[2] = newmenuitem("Remove Item 2", 0, del_item); mi[3] = newmenuitem("Remove Item 3", 0, del_item); m[2] = newmenu("Hidden"); hide(m[2]); m[3] = newmenu("Special"); mi[4] = newmenuitem("Remove Item 1", 0, del_item); mi[5] = newmenuitem("Remove Item 2", 0, del_item); mi[6] = newmenuitem("Remove Item 3", 0, del_item); mi[7] = newmenuitem("-", 0, NULL); mi[8] = newmenuitem("Remove Menu", 0, del_data); setdata(mi[8], m[3]); for (i=0; i<5; i++) b[i] = newbutton("Delete me", rect(10,10+i*50,90,35), del_item); b[5] = newbutton("Del Menubar", rect(110,10,90,35), del_data); setdata(b[5], mb); b[6] = newbutton("Del Twice", rect(110,50,90,35), del_twice); show(w); }