wxBORDER_THEME now means 'use an appropriate themed border' on all plaforms
as opposed to wxBORDER_NONE which may or may not show a border, depending on control. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48761 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -52,15 +52,16 @@ window class or on all platforms.
|
|||||||
|
|
||||||
\twocolwidtha{5cm}%
|
\twocolwidtha{5cm}%
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
|
\twocolitem{\windowstyle{wxBORDER\_DEFAULT}}{The window class will decide the kind of border to show, if any.}
|
||||||
\twocolitem{\windowstyle{wxBORDER\_SIMPLE}}{Displays a thin border around the window. wxSIMPLE\_BORDER is the old name
|
\twocolitem{\windowstyle{wxBORDER\_SIMPLE}}{Displays a thin border around the window. wxSIMPLE\_BORDER is the old name
|
||||||
for this style. }
|
for this style. }
|
||||||
\twocolitem{\windowstyle{wxBORDER\_DOUBLE}}{Displays a double border. wxDOUBLE\_BORDER is the old name for this style. Windows and Mac only.}
|
|
||||||
\twocolitem{\windowstyle{wxBORDER\_SUNKEN}}{Displays a sunken border. wxSUNKEN\_BORDER is the old name for this style.}
|
\twocolitem{\windowstyle{wxBORDER\_SUNKEN}}{Displays a sunken border. wxSUNKEN\_BORDER is the old name for this style.}
|
||||||
\twocolitem{\windowstyle{wxBORDER\_RAISED}}{Displays a raised border. wxRAISED\_BORDER is the old name for this style. }
|
\twocolitem{\windowstyle{wxBORDER\_RAISED}}{Displays a raised border. wxRAISED\_BORDER is the old name for this style. }
|
||||||
\twocolitem{\windowstyle{wxBORDER\_STATIC}}{Displays a border suitable for a static control. wxSTATIC\_BORDER is the old name for this style. Windows only. }
|
\twocolitem{\windowstyle{wxBORDER\_STATIC}}{Displays a border suitable for a static control. wxSTATIC\_BORDER is the old name for this style. Windows only. }
|
||||||
\twocolitem{\windowstyle{wxBORDER\_THEME}}{Displays a themed border where possible. Currently this has an effect on Windows XP and above only.
|
\twocolitem{\windowstyle{wxBORDER\_THEME}}{Displays a native border suitable for a control, on the current platform. On Windows XP or Vista, this will be a themed border; on most other platforms
|
||||||
For more information on themed borders, please see \helpref{Themed borders on Windows}{wxmswthemedborders}.}
|
a sunken border will be used. For more information for themed borders on Windows, please see \helpref{Themed borders on Windows}{wxmswthemedborders}.}
|
||||||
\twocolitem{\windowstyle{wxBORDER\_NONE}}{Displays no border, overriding the default border style for the window. wxNO\_BORDER is the old name for this style.}
|
\twocolitem{\windowstyle{wxBORDER\_NONE}}{Displays no border, overriding the default border style for the window. wxNO\_BORDER is the old name for this style.}
|
||||||
|
\twocolitem{\windowstyle{wxBORDER\_DOUBLE}}{This style is obsolete and should not be used.}
|
||||||
\twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint
|
\twocolitem{\windowstyle{wxTRANSPARENT\_WINDOW}}{The window is transparent, that is, it will not receive paint
|
||||||
events. Windows only.}
|
events. Windows only.}
|
||||||
\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.}
|
\twocolitem{\windowstyle{wxTAB\_TRAVERSAL}}{Use this to enable tab traversal for non-dialog windows.}
|
||||||
|
@@ -35,16 +35,10 @@ If you don't specify a border style for a wxTextCtrl in rich edit mode, wxWidget
|
|||||||
the control themed borders automatically, where previously they would take the Windows 95-style
|
the control themed borders automatically, where previously they would take the Windows 95-style
|
||||||
sunken border. Other native controls such as wxTextCtrl in non-rich edit mode, and wxComboBox,
|
sunken border. Other native controls such as wxTextCtrl in non-rich edit mode, and wxComboBox,
|
||||||
already paint themed borders where appropriate. To use themed borders on other windows, such
|
already paint themed borders where appropriate. To use themed borders on other windows, such
|
||||||
as wxPanel, pass the wxBORDER\_THEME style, or pass no border style.
|
as wxPanel, pass the wxBORDER\_THEME style, or (apart from wxPanel) pass no border style.
|
||||||
|
|
||||||
Note that in wxWidgets 2.9 and above, wxBORDER\_THEME is defined to be 0 and it is not necessary
|
In general, specifying wxBORDER\_THEME will cause a border of some kind to be used, chosen by the platform
|
||||||
to pass the border style explicitly: wxWidgets will deduce the correct border style itself if there
|
and control class. To leave the border decision entirely to wxWidgets, pass wxBORDER\_DEFAULT.
|
||||||
is none supplied. Because of the requirements of binary compatibility, this automatic border
|
|
||||||
capability could not be put into wxWidgets 2.8 except for built-in, native controls. So in 2.8, the border
|
|
||||||
must be specified for custom controls and windows.
|
|
||||||
|
|
||||||
Since specifying wxBORDER\_THEME is defined as 0 and is the equivalent of abstaining on the
|
|
||||||
border style decision, on non-Windows platforms a suitable border style will be chosen.
|
|
||||||
This is not to be confused with specifying wxBORDER\_NONE, which says that there should
|
This is not to be confused with specifying wxBORDER\_NONE, which says that there should
|
||||||
definitely be {\it no} border.
|
definitely be {\it no} border.
|
||||||
|
|
||||||
@@ -53,6 +47,8 @@ definitely be {\it no} border.
|
|||||||
The way that wxMSW decides whether to apply a themed border is as follows.
|
The way that wxMSW decides whether to apply a themed border is as follows.
|
||||||
The theming code calls wxWindow::GetBorder() to obtain a border. If no border style has been
|
The theming code calls wxWindow::GetBorder() to obtain a border. If no border style has been
|
||||||
passed to the window constructor, GetBorder() calls GetDefaultBorder() for this window.
|
passed to the window constructor, GetBorder() calls GetDefaultBorder() for this window.
|
||||||
|
If wxBORDER\_THEME was passed to the window constructor, GetBorder() calls GetDefaultBorderForControl().
|
||||||
|
|
||||||
The implementation of wxWindow::GetDefaultBorder() on wxMSW calls wxWindow::CanApplyThemeBorder()
|
The implementation of wxWindow::GetDefaultBorder() on wxMSW calls wxWindow::CanApplyThemeBorder()
|
||||||
which is a virtual function that tells wxWidgets whether a control can have a theme
|
which is a virtual function that tells wxWidgets whether a control can have a theme
|
||||||
applied explicitly (some native controls already paint a theme in which case we should not
|
applied explicitly (some native controls already paint a theme in which case we should not
|
||||||
|
@@ -1407,7 +1407,7 @@ enum wxBorder
|
|||||||
wxBORDER_RAISED = 0x04000000,
|
wxBORDER_RAISED = 0x04000000,
|
||||||
wxBORDER_SUNKEN = 0x08000000,
|
wxBORDER_SUNKEN = 0x08000000,
|
||||||
wxBORDER_DOUBLE = 0x10000000, /* deprecated */
|
wxBORDER_DOUBLE = 0x10000000, /* deprecated */
|
||||||
wxBORDER_THEME = wxBORDER_DEFAULT,
|
wxBORDER_THEME = wxBORDER_DOUBLE,
|
||||||
|
|
||||||
/* a mask to extract border style from the combination of flags */
|
/* a mask to extract border style from the combination of flags */
|
||||||
wxBORDER_MASK = 0x1f200000
|
wxBORDER_MASK = 0x1f200000
|
||||||
|
@@ -1387,7 +1387,7 @@ protected:
|
|||||||
// this allows you to implement standard control borders without
|
// this allows you to implement standard control borders without
|
||||||
// repeating the code in different classes that are not derived from
|
// repeating the code in different classes that are not derived from
|
||||||
// wxControl
|
// wxControl
|
||||||
virtual wxBorder GetDefaultBorderForControl() const { return wxWindowBase::GetDefaultBorder(); }
|
virtual wxBorder GetDefaultBorderForControl() const { return wxBORDER_SUNKEN; }
|
||||||
|
|
||||||
// Get the default size for the new window if no explicit size given. TLWs
|
// Get the default size for the new window if no explicit size given. TLWs
|
||||||
// have their own default size so this is just for non top-level windows.
|
// have their own default size so this is just for non top-level windows.
|
||||||
|
@@ -2415,6 +2415,10 @@ wxBorder wxWindowBase::GetBorder(long flags) const
|
|||||||
{
|
{
|
||||||
border = GetDefaultBorder();
|
border = GetDefaultBorder();
|
||||||
}
|
}
|
||||||
|
else if ( border == wxBORDER_THEME )
|
||||||
|
{
|
||||||
|
border = GetDefaultBorderForControl();
|
||||||
|
}
|
||||||
|
|
||||||
return border;
|
return border;
|
||||||
}
|
}
|
||||||
|
@@ -4317,8 +4317,11 @@ void wxWindowGTK::GtkScrolledWindowSetBorder(GtkWidget* w, int wxstyle)
|
|||||||
gtkstyle = GTK_SHADOW_OUT;
|
gtkstyle = GTK_SHADOW_OUT;
|
||||||
else if (wxstyle & wxBORDER_SUNKEN)
|
else if (wxstyle & wxBORDER_SUNKEN)
|
||||||
gtkstyle = GTK_SHADOW_IN;
|
gtkstyle = GTK_SHADOW_IN;
|
||||||
|
#if 0
|
||||||
|
// Now obsolete
|
||||||
else if (wxstyle & wxBORDER_DOUBLE)
|
else if (wxstyle & wxBORDER_DOUBLE)
|
||||||
gtkstyle = GTK_SHADOW_ETCHED_IN;
|
gtkstyle = GTK_SHADOW_ETCHED_IN;
|
||||||
|
#endif
|
||||||
else //default
|
else //default
|
||||||
gtkstyle = GTK_SHADOW_IN;
|
gtkstyle = GTK_SHADOW_IN;
|
||||||
|
|
||||||
|
@@ -1359,11 +1359,14 @@ WXDWORD wxWindowMSW::MSWGetStyle(long flags, WXDWORD *exstyle) const
|
|||||||
|
|
||||||
switch ( border )
|
switch ( border )
|
||||||
{
|
{
|
||||||
case wxBORDER_DEFAULT: // also wxBORDER_THEME
|
default:
|
||||||
break;
|
case wxBORDER_DEFAULT:
|
||||||
|
wxFAIL_MSG( _T("unknown border style") );
|
||||||
|
// fall through
|
||||||
|
|
||||||
case wxBORDER_NONE:
|
case wxBORDER_NONE:
|
||||||
case wxBORDER_SIMPLE:
|
case wxBORDER_SIMPLE:
|
||||||
|
case wxBORDER_THEME:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case wxBORDER_STATIC:
|
case wxBORDER_STATIC:
|
||||||
@@ -1379,13 +1382,9 @@ WXDWORD wxWindowMSW::MSWGetStyle(long flags, WXDWORD *exstyle) const
|
|||||||
style &= ~WS_BORDER;
|
style &= ~WS_BORDER;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
// case wxBORDER_DOUBLE:
|
||||||
wxFAIL_MSG( _T("unknown border style") );
|
// *exstyle |= WS_EX_DLGMODALFRAME;
|
||||||
break;
|
// break;
|
||||||
|
|
||||||
case wxBORDER_DOUBLE:
|
|
||||||
*exstyle |= WS_EX_DLGMODALFRAME;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// wxUniv doesn't use Windows dialog navigation functions at all
|
// wxUniv doesn't use Windows dialog navigation functions at all
|
||||||
|
Reference in New Issue
Block a user