+ // we assume that buttons use the same labels as menu items but unlike them
+ // they should never use ellipsis
+ if ( (flags & wxSTOCK_FOR_BUTTON) == wxSTOCK_FOR_BUTTON )
+ {
+ wxString baseLabel;
+ if ( stockLabel.EndsWith("...", &baseLabel) )
+ stockLabel = baseLabel;
+
+ wxASSERT_MSG( !(flags & wxSTOCK_WITH_ACCELERATOR),
+ "button labels never use accelerators" );
+ }
+
+#ifdef __WXMSW__
+ // special case: the "Cancel" button shouldn't have a mnemonic under MSW
+ // for consistency with the native dialogs (which don't use any mnemonic
+ // for it because it is already bound to Esc implicitly)
+ if ( id == wxID_CANCEL )
+ flags &= ~wxSTOCK_WITH_MNEMONIC;
+#endif // __WXMSW__
+