# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1321996956 0 # Node ID 611893219ba94b934bfbbe2bc63077f61c8427c5 # Parent d5c1ce21577e0004e2196fac145f6aa34fbeccc5 Implemented dw_menu_delete_item() on the Mac. diff -r d5c1ce21577e -r 611893219ba9 mac/dw.m --- a/mac/dw.m Tue Nov 22 21:13:02 2011 +0000 +++ b/mac/dw.m Tue Nov 22 21:22:36 2011 +0000 @@ -7250,6 +7250,28 @@ } /* + * Deletes the menu item specified. + * Parameters: + * menu: The handle to the menu in which the item was appended. + * id: Menuitem id. + * Returns: + * DW_ERROR_NONE (0) on success or DW_ERROR_UNKNOWN on failure. + */ +int API dw_menu_delete_item(HMENUI menux, unsigned long itemid) +{ + id menu = menux; + NSMenuItem *menuitem = (NSMenuItem *)[menu itemWithTag:itemid]; + + if(menuitem != nil) + { + [menu removeItem:menuitem]; + [menuitem release]; + return DW_ERROR_NONE; + } + return DW_ERROR_UNKNOWN; +} + +/* * Sets the state of a menu item. * Parameters: * menu: The handle to the existing menu. @@ -7988,12 +8010,23 @@ DW_MUTEX_LOCK; id object = handle; - /* Handle destroying a top-levle window */ + /* Handle destroying a top-level window */ if([ object isKindOfClass:[ NSWindow class ] ]) { DWWindow *window = handle; [window close]; } + /* Handle removing menu items from menus */ + else if([ object isKindOfClass:[NSMenuItem class]]) + { + NSMenu *menu = [object menu]; + + if(menu) + { + [menu removeItem:object]; + [object release]; + } + } /* Handle destroying a control or box */ else if([object isKindOfClass:[DWBox class]] || [object isKindOfClass:[DWGroupBox class]] || [object isKindOfClass:[NSControl class]]) {