+ gtk_label_set_text_with_mnemonic(w, wxGTK_CONV(labelGTK));
+#else
+ gtk_label_set(w, wxGTK_CONV(labelGTK));
+#endif
+}
+
+void wxControl::GTKSetLabelForFrame(GtkFrame *w, const wxString& label)
+{
+ wxControl::SetLabel(label);
+
+ // frames don't support mnemonics even under GTK+ 2
+ const wxString labelGTK = GTKRemoveMnemonics(label);
+
+ gtk_frame_set_label(w, labelGTK.empty() ? (char *)NULL
+ : wxGTK_CONV(labelGTK));
+}
+
+// worker function implementing both GTKConvert/RemoveMnemonics()
+//
+// notice that under GTK+ 1 we only really need to support MNEMONICS_REMOVE as
+// it doesn't support mnemonics anyhow but this would make the code so ugly
+// that we do the same thing for GKT+ 1 and 2
+enum MnemonicsFlag
+{
+ MNEMONICS_REMOVE,
+ MNEMONICS_CONVERT
+};
+
+static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)