# HG changeset patch # User Jason Rumney # Date 975443282 0 # Node ID c33b80a45f6a199a9c8be3c3d013e33189fe5dd1 # Parent 670b73b06a0d0d10ac38655d57dced540f34e0ac (add_menu_item): Reset menu item text when changing type to radio button. diff -r 670b73b06a0d -r c33b80a45f6a src/ChangeLog --- a/src/ChangeLog Tue Nov 28 18:02:05 2000 +0000 +++ b/src/ChangeLog Tue Nov 28 20:28:02 2000 +0000 @@ -1,3 +1,8 @@ +2000-11-28 Jason Rumney + + * w32menu.c (add_menu_item): Reset menu item text when changing + type to radio button. + 2000-11-28 Gerd Moellmann * xselect.c (wait_for_property_change): Update copyright. diff -r 670b73b06a0d -r c33b80a45f6a src/w32menu.c --- a/src/w32menu.c Tue Nov 28 18:02:05 2000 +0000 +++ b/src/w32menu.c Tue Nov 28 20:28:02 2000 +0000 @@ -45,7 +45,7 @@ #include "dispextern.h" #undef HAVE_MULTILINGUAL_MENU -#undef HAVE_DIALOGS /* NTEMACS_TODO: Implement native dialogs. */ +#undef HAVE_DIALOGS /* TODO: Implement native dialogs. */ /******************************************************************/ /* Definitions copied from lwlib.h */ @@ -2033,7 +2033,10 @@ int return_value; if (name_is_separator (wv->name)) - fuFlags = MF_SEPARATOR; + { + fuFlags = MF_SEPARATOR; + out_string = NULL; + } else { if (wv->enabled) @@ -2057,8 +2060,8 @@ out_string = LocalAlloc (0, strlen (wv->name) + 1); strcpy (out_string, wv->name); #endif - /* NTEMACS_TODO: Why has owner drawing stopped working? */ - fuFlags = /*MF_OWNERDRAW |*/ MF_DISABLED; + /* TODO: Why has owner-draw stopped working? */ + fuFlags |= /*MF_OWNERDRAW |*/ MF_DISABLED; } /* Draw radio buttons and tickboxes. */ @@ -2077,7 +2080,7 @@ AppendMenu (menu, fuFlags, item != NULL ? (UINT) item : (UINT) wv->call_data, - (fuFlags == MF_SEPARATOR) ? NULL: out_string ); + out_string ); /* This must be done after the menu item is created. */ { @@ -2099,9 +2102,11 @@ /* CheckMenuRadioItem allows us to differentiate TOGGLE and RADIO items, but is not available on NT 3.51 and earlier. */ info.fMask |= MIIM_TYPE | MIIM_STATE; - info.fType = MFT_RADIOCHECK; + info.fType = MFT_RADIOCHECK | MFT_STRING; + info.dwTypeData = out_string; info.fState = wv->selected ? MFS_CHECKED : MFS_UNCHECKED; } + set_menu_item_info (menu, item != NULL ? (UINT) item : (UINT) wv->call_data, FALSE, &info); @@ -2154,7 +2159,7 @@ void w32_menu_display_help (HMENU menu, UINT item, UINT flags) { - int pane = 0; /* NTEMACS_TODO: Set this to pane number. */ + int pane = 0; /* TODO: Set this to pane number. */ HMODULE user32 = GetModuleHandle ("user32.dll"); FARPROC get_menu_item_info = GetProcAddress (user32, "GetMenuItemInfoA");