removed GTKConvertMnemonics() which is not used in GTK1 (which doesn't support mnemonics)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2006-02-05 22:58:41 +00:00
parent d44a933726
commit ee6dd41a50
3 changed files with 20 additions and 78 deletions

View File

@ -72,12 +72,6 @@ protected:
// remove mnemonics ("&"s) from the label
static wxString GTKRemoveMnemonics(const wxString& label);
// converts wx label to GTK+ label, i.e. basically replace "&"s with "_"s
//
// for GTK+ 1 (which doesn't support mnemonics) this is the same as
// GTKRemoveMnemonics()
static wxString GTKConvertMnemonics(const wxString &label);
// These are used by GetDefaultAttributes
static wxVisualAttributes
GetDefaultAttributesFromGTKWidget(GtkWidget* widget,

View File

@ -185,7 +185,7 @@ void wxButton::SetLabel( const wxString &lbl )
wxControl::SetLabel(label);
const wxString labelGTK = GTKConvertMnemonics(label);
const wxString labelGTK = GTKRemoveMnemonics(label);
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV(labelGTK));
}

View File

@ -105,7 +105,7 @@ void wxControl::GTKSetLabelForLabel(GtkLabel *w, const wxString& label)
// don't call the virtual function which might call this one back again
wxControl::SetLabel(label);
const wxString labelGTK = GTKConvertMnemonics(label);
const wxString labelGTK = GTKRemoveMnemonics(label);
gtk_label_set(w, wxGTK_CONV(labelGTK));
}
@ -114,25 +114,14 @@ 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)
/* static */
wxString wxControl::GTKRemoveMnemonics(const wxString& label)
{
const size_t len = label.length();
wxString labelGTK;
@ -141,72 +130,31 @@ static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
{
wxChar ch = label[i];
switch ( ch )
if ( ch == _T('&') )
{
case wxT('&'):
if ( i == len - 1 )
{
// "&" at the end of string is an error
wxLogDebug(wxT("Invalid label \"%s\"."), label.c_str());
break;
}
ch = label[++i]; // skip '&' itself
switch ( ch )
{
case wxT('&'):
// special case: "&&" is not a mnemonic at all but just
// an escaped "&"
labelGTK += wxT('&');
break;
case wxT('_'):
if ( flag == MNEMONICS_CONVERT )
{
// '_' can't be a GTK mnemonic apparently so
// replace it with something similar
labelGTK += wxT("_-");
break;
}
//else: fall through
default:
if ( flag == MNEMONICS_CONVERT )
labelGTK += wxT('_');
labelGTK += ch;
}
if ( i == len - 1 )
{
// "&" at the end of string is an error
wxLogDebug(wxT("Invalid label \"%s\"."), label.c_str());
break;
}
case wxT('_'):
if ( flag == MNEMONICS_CONVERT )
{
// escape any existing underlines in the string so that
// they don't become mnemonics accidentally
labelGTK += wxT("__");
break;
}
//else: fall through
default:
labelGTK += ch;
ch = label[++i]; // skip '&' itself
if ( ch == _T('&') )
{
// special case: "&&" is not a mnemonic at all but just an
// escaped "&"
labelGTK += wxT('&');
continue;
}
}
labelGTK += ch;
}
return labelGTK;
}
/* static */
wxString wxControl::GTKRemoveMnemonics(const wxString& label)
{
return GTKProcessMnemonics(label, MNEMONICS_REMOVE);
}
/* static */
wxString wxControl::GTKConvertMnemonics(const wxString& label)
{
return GTKRemoveMnemonics(label);
}
// ----------------------------------------------------------------------------
// wxControl styles (a.k.a. attributes)
// ----------------------------------------------------------------------------