#include "wx/caret.h"
#endif // wxUSE_CARET
+#if wxUSE_SPINCTRL
+ #include "wx/spinctrl.h"
+#endif // wxUSE_SPINCTRL
+
#include "wx/intl.h"
#include "wx/log.h"
exStyle |= WS_EX_DLGMODALFRAME;
#if defined(__WIN95__)
if ( style & wxRAISED_BORDER )
- exStyle |= WS_EX_WINDOWEDGE;
+ // It seems that WS_EX_WINDOWEDGE doesn't work, but WS_EX_DLGMODALFRAME does
+ exStyle |= WS_EX_DLGMODALFRAME; /* WS_EX_WINDOWEDGE */;
if ( style & wxSTATIC_BORDER )
exStyle |= WS_EX_STATICEDGE;
#endif
::ScreenToClient(hParentWnd, &point);
}
- // We may be faking the client origin. So a window that's really at (0,
- // 30) may appear (to wxWin apps) to be at (0, 0).
- wxPoint pt(parent->GetClientAreaOrigin());
- point.x -= pt.x;
- point.y -= pt.y;
+ if ( parent )
+ {
+ // We may be faking the client origin. So a window that's really at (0,
+ // 30) may appear (to wxWin apps) to be at (0, 0).
+ wxPoint pt(parent->GetClientAreaOrigin());
+ point.x -= pt.x;
+ point.y -= pt.y;
+ }
}
if ( x )
::ClientToScreen(hWnd, &point);
wxCurrentPopupMenu = menu;
::TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, point.x, point.y, 0, hWnd, NULL);
- wxYield();
+ wxYieldIfNeeded();
wxCurrentPopupMenu = NULL;
menu->SetInvokingWindow(NULL);
break;
case WM_MOVE:
- processed = HandleMove(LOWORD(lParam), HIWORD(lParam));
+ processed = HandleMove(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
break;
case WM_SIZE:
break;
case WM_MOUSEMOVE:
- {
- short x = LOWORD(lParam);
- short y = HIWORD(lParam);
-
- processed = HandleMouseMove(x, y, wParam);
- }
- break;
+ processed = HandleMouseMove(GET_X_LPARAM(lParam),
+ GET_Y_LPARAM(lParam),
+ wParam);
+ break;
case WM_LBUTTONDOWN:
// set focus to this window
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_MBUTTONDBLCLK:
- {
- short x = LOWORD(lParam);
- short y = HIWORD(lParam);
-
- processed = HandleMouseEvent(message, x, y, wParam);
- }
+ processed = HandleMouseEvent(message,
+ GET_X_LPARAM(lParam),
+ GET_Y_LPARAM(lParam),
+ wParam);
break;
case MM_JOY1MOVE:
case MM_JOY2BUTTONDOWN:
case MM_JOY1BUTTONUP:
case MM_JOY2BUTTONUP:
- {
- int x = LOWORD(lParam);
- int y = HIWORD(lParam);
-
- processed = HandleJoystickEvent(message, x, y, wParam);
- }
+ processed = HandleJoystickEvent(message,
+ GET_X_LPARAM(lParam),
+ GET_Y_LPARAM(lParam),
+ wParam);
break;
case WM_SYSCOMMAND:
continue;
}
- if ( wxStrcmp(buf, wxT("&Window")) == 0 )
+ if ( wxStrcmp(buf, _("&Window")) == 0 )
{
if ( !::RemoveMenu(hMenu, i, MF_BYPOSITION) )
{
height1 = parent_rect.bottom - parent_rect.top;
}
- if ( x > -1 ) x1 = x;
- if ( y > -1 ) y1 = y;
- if ( width > -1 ) width1 = width;
- if ( height > -1 ) height1 = height;
+ if ( x != -1 )
+ x1 = x;
+ if ( y != -1 )
+ y1 = y;
+ if ( width != -1 )
+ width1 = width;
+ if ( height != -1 )
+ height1 = height;
// unfortunately, setting WS_EX_CONTROLPARENT only for some windows in the
// hierarchy with several embedded panels (and not all of them) causes the
}
// generate an artificial resize event
+/* FUNCTION IS NOW A MEMBER OF wxFrame - gt
void wxWindow::SendSizeEvent()
{
RECT r;
(void)::PostMessage(GetHwnd(), WM_SIZE, SIZE_RESTORED,
MAKELPARAM(r.right - r.left, r.bottom - r.top));
}
+*/
// ---------------------------------------------------------------------------
// command messages
return GetEventHandler()->ProcessEvent(event);
}
+#if wxUSE_SPINCTRL
+ else
+ {
+ // the text ctrl which is logically part of wxSpinCtrl sends WM_COMMAND
+ // notifications to its parent which we want to reflect back to
+ // wxSpinCtrl
+ wxSpinCtrl *spin = wxSpinCtrl::GetSpinForTextCtrl(control);
+ if ( spin && spin->ProcessTextCommand(cmd, id) )
+ return TRUE;
+ }
+#endif // wxUSE_SPINCTRL
return FALSE;
}