}
#endif
+bool wxTopLevelWindowMSW::MSWProcessMessage(WXMSG* pMsg)
+{
+ // MSW specific feature: if the dialog has only one notebook-like child
+ // window (actually it could be any window that returns true from its
+ // HasMultiplePages()), then [Shift-]Ctrl-Tab and Ctrl-PageUp/Down keys
+ // should iterate over its pages even if the focus is outside of the
+ // control because this is how the standard MSW properties dialogs behave
+ if ( pMsg->message == WM_KEYDOWN && wxIsCtrlDown() &&
+ (pMsg->wParam == VK_TAB ||
+ pMsg->wParam == VK_PRIOR ||
+ pMsg->wParam == VK_NEXT) )
+ {
+ // check if we have a unique notebook-like child
+ wxWindow *bookctrl = NULL;
+ for ( wxWindowList::const_iterator i = GetChildren().begin(),
+ end = GetChildren().end();
+ i != end;
+ ++i )
+ {
+ wxWindow * const window = *i;
+ if ( window->HasMultiplePages() )
+ {
+ if ( bookctrl )
+ {
+ // this is the second book-like control already so don't do
+ // anything as we don't know which one should have its page
+ // changed
+ bookctrl = NULL;
+ break;
+ }
+
+ bookctrl = window;
+ }
+ }
+
+ if ( bookctrl && bookctrl->wxWindowMSW::MSWProcessMessage(pMsg) )
+ return true;
+ }
+
+ return wxTopLevelWindowBase::MSWProcessMessage(pMsg);
+}
+
WXLRESULT wxTopLevelWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam)
{
WXLRESULT rc = 0;
// ---------------------------------------------------------------------------
-bool wxTopLevelWindowMSW::SetTranslucency(int alpha)
+bool wxTopLevelWindowMSW::SetTransparent(wxByte alpha)
{
typedef DWORD (WINAPI *PSETLAYEREDWINDOWATTR)(HWND, DWORD, BYTE, DWORD);
static PSETLAYEREDWINDOWATTR pSetLayeredWindowAttributes = NULL;
- if (alpha < 0) alpha = 0;
- if (alpha > 255) alpha = 255;
-
if ( pSetLayeredWindowAttributes == NULL )
{
wxDynamicLibrary dllUser32(_T("user32.dll"));
return pSetLayeredWindowAttributes(GetHwnd(), 0, (BYTE)alpha, LWA_ALPHA) != 0;
}
-bool wxTopLevelWindowMSW::CanSetTranslucency()
+bool wxTopLevelWindowMSW::CanSetTransparent()
{
// The API is available on win2k and above