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:
parent
d44a933726
commit
ee6dd41a50
@ -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,
|
||||
|
@ -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));
|
||||
}
|
||||
|
@ -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)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user