初期化
- wxControl::CreateはwxWindowMac::Createを呼び出す。(include/wx/osx/control.h,src/osx/carbon/control.cpp)
- wxWindowMac::Createでは、m_macIsUserPaneがtrueならwxWidgetImpl::CreateUserPaneを呼び出す。(src/osx/window_osx.cpp)
- wxWidgetImpl::CreateUserPaneでは、[[wxNSView alloc] initWithFrame:r]してnew wxWidgetCocoaImpl(...)する。(src/osx/cocoa/window.mm)
イベント処理
- wxNSView(や、wxNS***という名前のクラス)の+initializeメソッドでは、クラス自身についてwxOSXCocoaClassAddWXMethodsを呼び出す。(src/osx/cocoa/window.mm)
- wxOSXCocoaClassAddWXMethodsでは、対象のクラスに、mouseDown:やらkeyDown:やらのメソッドを登録する。(src/osx/cocoa/window.mm)
- その際のメソッドの実体(IMP)はwxOSX_mouseEventやらwxOSX_keyEventやらに設定する。(src/osx/cocoa/window.mm)
- wxOSX_mouseEventやらwxOSX_keyEventやらでは、wxWidgetCocoaImpl*を取得してwxWidgetCocoaImpl::mouseEventやらwxWidgetCocoaImpl::keyEventやらを呼び出す。(src/osx/cocoa/window.mm)
- wxWidgetCocoaImpl::mouseEventやらwxWidgetCocoaImpl::keyEventやらでは、wxWidgetCocoaImpl::DoHandleMouseEventやらwxWidgetCocoaImpl::DoHandleKeyEventやらを呼び出す。イベントが処理されなかった場合は、superに回す。(src/osx/cocoa/window.mm)
- wxWidgetCocoaImpl::DoHandleMouseEventやらwxWidgetCocoaImpl::DoHandleKeyEventやらでは、wxMouseEventやらwxKeyEventやらのオブジェクトを作って放流する。(src/osx/cocoa/window.mm)
最終更新:2011年01月01日 22:40