]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toplevel.cpp
fixed wxMBConv_iconv to work with UTF-16/32
[wxWidgets.git] / src / mac / carbon / toplevel.cpp
index c4cd59574e1a60448f864b90916b226643c7ea43..c7c49f7f2bdd3a834370cc4fd90db34fbadb7723 100644 (file)
@@ -86,12 +86,14 @@ extern long wxMacTranslateKey(unsigned char key, unsigned char code) ;
 static const EventTypeSpec eventList[] =
 {
     // TODO: remove control related event like key and mouse (except for WindowLeave events)
 static const EventTypeSpec eventList[] =
 {
     // TODO: remove control related event like key and mouse (except for WindowLeave events)
-#if 1
+
     { kEventClassKeyboard, kEventRawKeyDown } ,
     { kEventClassKeyboard, kEventRawKeyRepeat } ,
     { kEventClassKeyboard, kEventRawKeyUp } ,
     { kEventClassKeyboard, kEventRawKeyModifiersChanged } ,
     { kEventClassKeyboard, kEventRawKeyDown } ,
     { kEventClassKeyboard, kEventRawKeyRepeat } ,
     { kEventClassKeyboard, kEventRawKeyUp } ,
     { kEventClassKeyboard, kEventRawKeyModifiersChanged } ,
-#endif
+
+    { kEventClassTextInput, kEventTextInputUnicodeForKeyEvent } ,
+    { kEventClassTextInput, kEventTextInputUpdateActiveInputArea } ,
 
     { kEventClassWindow , kEventWindowShown } ,
     { kEventClassWindow , kEventWindowActivated } ,
 
     { kEventClassWindow , kEventWindowShown } ,
     { kEventClassWindow , kEventWindowActivated } ,
@@ -446,7 +448,7 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev
     Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
     Point windowMouseLocation = screenMouseLocation ;
 
     Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
     Point windowMouseLocation = screenMouseLocation ;
 
-    WindowRef window ;
+    WindowRef window = NULL;
     short windowPart = ::FindWindow(screenMouseLocation, &window);
 
     wxWindow* currentMouseWindow = NULL ;
     short windowPart = ::FindWindow(screenMouseLocation, &window);
 
     wxWindow* currentMouseWindow = NULL ;
@@ -795,12 +797,19 @@ static pascal OSStatus wxMacTopLevelWindowEventHandler( EventHandlerCallRef hand
     return result ;
 }
 
     return result ;
 }
 
+// mix this in from window.cpp
+pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) ;
+
 pascal OSStatus wxMacTopLevelEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
 {
     OSStatus result = eventNotHandledErr ;
 
     switch ( GetEventClass( event ) )
     {
 pascal OSStatus wxMacTopLevelEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
 {
     OSStatus result = eventNotHandledErr ;
 
     switch ( GetEventClass( event ) )
     {
+        case kEventClassTextInput :
+            result = wxMacUnicodeTextEventHandler( handler, event , data ) ;
+            break ;
+
         case kEventClassKeyboard :
             result = KeyboardEventHandler( handler, event , data ) ;
             break ;
         case kEventClassKeyboard :
             result = KeyboardEventHandler( handler, event , data ) ;
             break ;
@@ -1210,7 +1219,9 @@ void  wxTopLevelWindowMac::MacCreateRealWindow(
     // the root control level handler
     MacInstallEventHandler( (WXWidget) m_peer->GetControlRef() ) ;
 
     // the root control level handler
     MacInstallEventHandler( (WXWidget) m_peer->GetControlRef() ) ;
 
-#if TARGET_API_MAC_OSX
+    // Causes the inner part of the window not to be metal
+    // if the style is used before window creation.
+#if 0 // TARGET_API_MAC_OSX
     if ( m_macUsesCompositing && m_macWindow != NULL )
     {
         if ( GetExtraStyle() & wxFRAME_EX_METAL )
     if ( m_macUsesCompositing && m_macWindow != NULL )
     {
         if ( GetExtraStyle() & wxFRAME_EX_METAL )
@@ -1405,11 +1416,11 @@ bool wxTopLevelWindowMac::IsFullScreen() const
     return m_macFullScreenData != NULL ;
 }
 
     return m_macFullScreenData != NULL ;
 }
 
-void wxTopLevelWindowMac::SetExtraStyle(long exStyle) 
+void wxTopLevelWindowMac::SetExtraStyle(long exStyle)
 {
     if ( GetExtraStyle() == exStyle )
         return ;
 {
     if ( GetExtraStyle() == exStyle )
         return ;
-    
+
     wxTopLevelWindowBase::SetExtraStyle( exStyle ) ;
 
 #if TARGET_API_MAC_OSX
     wxTopLevelWindowBase::SetExtraStyle( exStyle ) ;
 
 #if TARGET_API_MAC_OSX
@@ -1422,8 +1433,8 @@ void wxTopLevelWindowMac::SetExtraStyle(long exStyle)
 #endif
 }
 
 #endif
 }
 
+// TODO: switch to structure bounds -
 // we are still using coordinates of the content view
 // we are still using coordinates of the content view
-// TODO: switch to structure bounds
 //
 void wxTopLevelWindowMac::MacGetContentAreaInset( int &left , int &top , int &right , int &bottom )
 {
 //
 void wxTopLevelWindowMac::MacGetContentAreaInset( int &left , int &top , int &right , int &bottom )
 {