#include "wx/menuitem.h"
#include "wx/log.h"
+
+#if wxUSE_TOOLTIPS
#include "wx/tooltip.h"
+#endif
+
+#include "wx/intl.h"
+#include "wx/log.h"
#include "wx/msw/private.h"
bool wxWindow::Show(bool show)
{
+ m_isShown = show;
HWND hWnd = (HWND) GetHWND();
int cshow;
if (show)
cshow = SW_SHOW;
else
cshow = SW_HIDE;
- ShowWindow(hWnd, (BOOL)cshow);
+ ShowWindow(hWnd, cshow);
if (show)
{
BringWindowToTop(hWnd);
bool wxWindow::IsShown(void) const
{
- return (::IsWindowVisible((HWND) GetHWND()) != 0);
+ // Can't rely on IsWindowVisible, since it will return FALSE
+ // if the parent is not visible.
+ return m_isShown;
+// int ret = ::IsWindowVisible((HWND) GetHWND()) ;
+// return (ret != 0);
}
int wxWindow::GetCharHeight(void) const
}
case WM_KEYDOWN:
- MSWOnKeyDown((WORD) wParam, lParam);
- // we consider these message "not interesting"
+ {
+ // If this has been processed by an event handler,
+ // return 0 now (we've handled it).
+ if (MSWOnKeyDown((WORD) wParam, lParam))
+ {
+ return 0;
+ }
+
+ // we consider these message "not interesting" to OnChar
if ( wParam == VK_SHIFT || wParam == VK_CONTROL )
+ {
return Default();
+ }
// Avoid duplicate messages to OnChar for these special keys
switch ( wParam )
case VK_RIGHT:
case VK_DOWN:
case VK_UP:
- if ( ::GetKeyState(VK_CONTROL) & 0x100 )
- MSWOnChar((WORD)wParam, lParam);
+/*
+// if ( ::GetKeyState(VK_CONTROL) & 0x100 ) // Don't understand purpose of this test
+ if (!MSWOnChar((WORD)wParam, lParam))
+ return Default();
break;
-
+*/
default:
- MSWOnChar((WORD)wParam, lParam);
+ if (!MSWOnChar((WORD)wParam, lParam))
+ {
+ return Default();
+ }
+/*
if ( ::GetKeyState(VK_CONTROL) & 0x100 )
return Default();
+*/
break;
}
break;
-
+ }
case WM_KEYUP:
{
- MSWOnKeyUp((WORD) wParam, lParam);
+ if (!MSWOnKeyUp((WORD) wParam, lParam))
+ return Default();
break;
}
case WM_CHAR: // Always an ASCII character
{
- MSWOnChar((WORD)wParam, lParam, TRUE);
+ if (!MSWOnChar((WORD)wParam, lParam, TRUE))
+ return Default();
break;
}
// it
return FALSE;
}
-
+#ifndef __WIN16__
wxButton *btnDefault = GetDefaultItem();
if ( btnDefault && !bCtrlDown )
{
// else: but if there is not it makes sense to make it
// work like a TAB - and that's what we do.
// Note that Ctrl-Enter always works this way.
+#endif
}
break;
GetEventHandler()->ProcessEvent(event);
}
-void wxWindow::MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII)
+bool wxWindow::MSWOnChar(WXWORD wParam, WXLPARAM lParam, bool isASCII)
{
int id;
bool tempControlDown = FALSE;
event.m_x = pt.x; event.m_y = pt.y;
- if (!GetEventHandler()->ProcessEvent(event))
- Default();
+ if (GetEventHandler()->ProcessEvent(event))
+ return TRUE;
+ else
+ return FALSE;
}
+ else
+ return FALSE;
}
-void wxWindow::MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII)
+bool wxWindow::MSWOnKeyDown(WXWORD wParam, WXLPARAM lParam, bool isASCII)
{
int id;
event.m_x = pt.x; event.m_y = pt.y;
- if (!GetEventHandler()->ProcessEvent(event))
- Default();
+ if (GetEventHandler()->ProcessEvent(event))
+ {
+ return TRUE;
+ }
+ else return FALSE;
+ }
+ else
+ {
+ return FALSE;
}
}
-void wxWindow::MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII)
+bool wxWindow::MSWOnKeyUp(WXWORD wParam, WXLPARAM lParam, bool isASCII)
{
int id;
event.m_x = pt.x; event.m_y = pt.y;
- if (!GetEventHandler()->ProcessEvent(event))
- Default();
+ if (GetEventHandler()->ProcessEvent(event))
+ return TRUE;
+ else
+ return FALSE;
}
+ else
+ return FALSE;
}
void wxWindow::MSWOnJoyDown(int joystick, int x, int y, WXUINT flags)
if ( id == -1 )
id= m_lastWParam;
- if ( !event.ControlDown() )
+ if ( !event.ControlDown() ) // Why this test?
(void) MSWDefWindowProc(m_lastMsg, (WPARAM) id, m_lastLParam);
}
+void wxWindow::OnKeyDown(wxKeyEvent& event)
+{
+ Default();
+}
+
+void wxWindow::OnKeyUp(wxKeyEvent& event)
+{
+ Default();
+}
+
+void wxWindow::OnPaint(wxPaintEvent& event)
+{
+ Default();
+}
+
bool wxWindow::IsEnabled(void) const
{
return (::IsWindowEnabled((HWND) GetHWND()) != 0);