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:
@@ -72,12 +72,6 @@ protected:
|
|||||||
// remove mnemonics ("&"s) from the label
|
// remove mnemonics ("&"s) from the label
|
||||||
static wxString GTKRemoveMnemonics(const wxString& 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
|
// These are used by GetDefaultAttributes
|
||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
|
GetDefaultAttributesFromGTKWidget(GtkWidget* widget,
|
||||||
|
@@ -185,7 +185,7 @@ void wxButton::SetLabel( const wxString &lbl )
|
|||||||
|
|
||||||
wxControl::SetLabel(label);
|
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));
|
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
|
// don't call the virtual function which might call this one back again
|
||||||
wxControl::SetLabel(label);
|
wxControl::SetLabel(label);
|
||||||
|
|
||||||
const wxString labelGTK = GTKConvertMnemonics(label);
|
const wxString labelGTK = GTKRemoveMnemonics(label);
|
||||||
|
|
||||||
gtk_label_set(w, wxGTK_CONV(labelGTK));
|
gtk_label_set(w, wxGTK_CONV(labelGTK));
|
||||||
}
|
}
|
||||||
@@ -114,25 +114,14 @@ void wxControl::GTKSetLabelForFrame(GtkFrame *w, const wxString& label)
|
|||||||
{
|
{
|
||||||
wxControl::SetLabel(label);
|
wxControl::SetLabel(label);
|
||||||
|
|
||||||
// frames don't support mnemonics even under GTK+ 2
|
|
||||||
const wxString labelGTK = GTKRemoveMnemonics(label);
|
const wxString labelGTK = GTKRemoveMnemonics(label);
|
||||||
|
|
||||||
gtk_frame_set_label(w, labelGTK.empty() ? (char *)NULL
|
gtk_frame_set_label(w, labelGTK.empty() ? (char *)NULL
|
||||||
: wxGTK_CONV(labelGTK));
|
: wxGTK_CONV(labelGTK));
|
||||||
}
|
}
|
||||||
|
|
||||||
// worker function implementing both GTKConvert/RemoveMnemonics()
|
/* static */
|
||||||
//
|
wxString wxControl::GTKRemoveMnemonics(const wxString& label)
|
||||||
// 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)
|
|
||||||
{
|
{
|
||||||
const size_t len = label.length();
|
const size_t len = label.length();
|
||||||
wxString labelGTK;
|
wxString labelGTK;
|
||||||
@@ -141,9 +130,8 @@ static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
|
|||||||
{
|
{
|
||||||
wxChar ch = label[i];
|
wxChar ch = label[i];
|
||||||
|
|
||||||
switch ( ch )
|
if ( ch == _T('&') )
|
||||||
{
|
{
|
||||||
case wxT('&'):
|
|
||||||
if ( i == len - 1 )
|
if ( i == len - 1 )
|
||||||
{
|
{
|
||||||
// "&" at the end of string is an error
|
// "&" at the end of string is an error
|
||||||
@@ -152,61 +140,21 @@ static wxString GTKProcessMnemonics(const wxString& label, MnemonicsFlag flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ch = label[++i]; // skip '&' itself
|
ch = label[++i]; // skip '&' itself
|
||||||
switch ( ch )
|
if ( ch == _T('&') )
|
||||||
{
|
{
|
||||||
case wxT('&'):
|
// special case: "&&" is not a mnemonic at all but just an
|
||||||
// special case: "&&" is not a mnemonic at all but just
|
// escaped "&"
|
||||||
// an escaped "&"
|
|
||||||
labelGTK += wxT('&');
|
labelGTK += wxT('&');
|
||||||
break;
|
continue;
|
||||||
|
}
|
||||||
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;
|
labelGTK += ch;
|
||||||
}
|
}
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return labelGTK;
|
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)
|
// wxControl styles (a.k.a. attributes)
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user