// Created: 1998-01-01
// RCS-ID: $Id$
// Copyright: (c) Stefan Csomor
-// Licence: wxWidgets licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
-#pragma implementation "app.h"
-#endif
-
#include "wx/defs.h"
#include "wx/window.h"
static long sleepTime = 0 ;
#endif
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
BEGIN_EVENT_TABLE(wxApp, wxEvtHandler)
EVT_IDLE(wxApp::OnIdle)
EVT_END_SESSION(wxApp::OnEndSession)
EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession)
END_EVENT_TABLE()
-#endif
-
const short kMacMinHeap = (29 * 1024) ;
// platform specific static variables
// due to the rather low-level event API of wxWidgets, we cannot use RunApplicationEventLoop
// but have to use ReceiveNextEvent dealing with events manually, therefore we also have
-// deal with clicks in the menu bar explicitely
+// to deal with clicks in the menu bar explicitly
pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ;
event.m_x = ev->where.h;
event.m_y = ev->where.v;
- event.m_timeStamp = ev->when;
+ event.SetTimestamp( ev->when );
wxWindow* focus = wxWindow::FindFocus() ;
event.SetEventObject(focus);
::GetWindowAttributes( frontWindow , &frontWindowAttributes ) ;
short windowPart = ::FindWindow(ev->where, &window);
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ;
if ( wxPendingDelete.Member(win) )
return ;
break ;
default:
{
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ;
if ( win )
win->MacMouseUp( ev , windowPart ) ;
}
bool wxGetKeyState(wxKeyCode key) //virtual key code if < 10.2.x, else see below
{
-#if __WXMAC_CARBON__
-//#ifdef __DARWIN__
-// wxHIDKeyboard keyboard;
-// return keyboard.IsActive(key);
-//#else
-// TODO: Have it use HID Manager on OSX...
-//if OS X > 10.2 (i.e. 10.2.x)
-//a known apple bug prevents the system from determining led
-//states with GetKeys... can only determine caps lock led
- return !!(GetCurrentKeyModifiers() & wxKeyCodeToMacModifier(key));
-#else
- KeyMap keymap;
- GetKeys(keymap);
- return !!(BitTst(keymap, (sizeof(KeyMap)*8) - key));
-#endif
+ wxASSERT_MSG(key != WXK_LBUTTON && key != WXK_RBUTTON && key !=
+ WXK_MBUTTON, wxT("can't use wxGetKeyState() for mouse buttons"));
+
+ KeyMap keymap;
+ GetKeys(keymap);
+ return !!(BitTst(keymap, (sizeof(KeyMap)*8) - key));
}
#if !TARGET_CARBON
event.m_x = wherex;
event.m_y = wherey;
- event.m_timeStamp = when;
+ event.SetTimestamp(when);
event.SetEventObject(focus);
handled = focus->GetEventHandler()->ProcessEvent( event ) ;
if ( handled && event.GetSkipped() )
{
// if window is not having a focus still testing for default enter or cancel
// TODO add the UMA version for ActiveNonFloatingWindow
- wxWindow* focus = wxFindWinFromMacWindow( FrontWindow() ) ;
+ wxWindow* focus = wxFindWinFromMacWindow( (WXWindow) FrontWindow() ) ;
if ( focus )
{
if ( keyval == WXK_RETURN )
event.m_x = wherex;
event.m_y = wherey;
- event.m_timeStamp = when;
+ event.SetTimestamp(when);
event.SetEventObject(focus);
handled = focus->GetEventHandler()->ProcessEvent( event ) ;
// if it is a floater we activate/deactivate the front non-floating window instead
window = ::FrontNonFloatingWindow() ;
}
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ;
if ( win )
win->MacActivate( ev->when , activate ) ;
}
{
EventRecord* ev = (EventRecord*) evr ;
WindowRef window = (WindowRef) ev->message ;
- wxTopLevelWindowMac * win = wxFindWinFromMacWindow( window ) ;
+ wxTopLevelWindowMac * win = wxFindWinFromMacWindow( (WXWindow) window ) ;
if ( win )
{
if ( !wxPendingDelete.Member(win) )
if ( oldFrontWindow )
{
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( oldFrontWindow ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) oldFrontWindow ) ;
if ( win )
win->MacActivate( ev->when , false ) ;
}
if ( newFrontWindow )
{
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( newFrontWindow ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) newFrontWindow ) ;
if ( win )
win->MacActivate( ev->when , true ) ;
}
event.m_metaDown = ev->modifiers & cmdKey;
event.m_x = ev->where.h;
event.m_y = ev->where.v;
- event.m_timeStamp = ev->when;
+ event.SetTimestamp( ev->when );
event.SetEventObject(this);
if ( wxWindow::s_lastMouseWindow )
{
case inContent :
{
- wxTopLevelWindowMac* win = wxFindWinFromMacWindow( window ) ;
+ wxTopLevelWindowMac* win = wxFindWinFromMacWindow( (WXWindow) window ) ;
if ( win )
win->MacMouseMoved( ev , windowPart ) ;
else
event.m_x = x;
event.m_y = y;
- event.m_timeStamp = timestamp;
+ event.SetTimestamp(timestamp);
if ( wxWindow::s_lastMouseWindow )
{