]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/iphone/utils.mm
Add wxTimer::StartOnce().
[wxWidgets.git] / src / osx / iphone / utils.mm
index 738b52dffa9719fabfa170788adb7e254016cdfa..cd21d51fb9244c06fde7791a766f4a76dbf5226f 100644 (file)
@@ -1,10 +1,10 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/osx/cocoa/utils.mm
+// Name:        src/osx/iphone/utils.mm
 // Purpose:     various cocoa utility functions
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     1998-01-01
 // Purpose:     various cocoa utility functions
 // Author:      Stefan Csomor
 // Modified by:
 // Created:     1998-01-01
-// RCS-ID:      $Id: utils.mm 48805 2007-09-19 14:52:25Z SC $
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) Stefan Csomor
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include <AudioToolbox/AudioServices.h>
 
 
 #include <AudioToolbox/AudioServices.h>
 
-#if wxUSE_BASE
-
-// Emit a beeeeeep
-void wxBell()
-{
-    // would be kSystemSoundID_UserPreferredAlert but since the headers aren't correct, add it manually
-    AudioServicesPlayAlertSound(0x00001000 );
-}
+#if 1 // wxUSE_BASE
 
 // ----------------------------------------------------------------------------
 // Common Event Support
 
 // ----------------------------------------------------------------------------
 // Common Event Support
@@ -61,6 +54,10 @@ void wxBell()
        wxTheApp->OnInit();
 }
 
        wxTheApp->OnInit();
 }
 
+- (void)applicationWillTerminate:(UIApplication *)application { 
+    wxCloseEvent event;
+    wxTheApp->OnEndSession(event);
+}
 
 - (void)dealloc {
        [super dealloc];
 
 - (void)dealloc {
        [super dealloc];
@@ -74,14 +71,6 @@ bool wxApp::CallOnInit()
     return true;
 }
 
     return true;
 }
 
-int wxApp::OnRun()
-{
-    wxMacAutoreleasePool pool;
-    const char* appname = "app";
-    UIApplicationMain( 1, (char**) &appname, nil, @"wxAppDelegate" );
-    return 1;
-}
-
 bool wxApp::DoInitGui()
 {
     return true;
 bool wxApp::DoInitGui()
 {
     return true;
@@ -91,14 +80,26 @@ void wxApp::DoCleanUp()
 {
 }
 
 {
 }
 
-void wxMacWakeUp()
+#endif // wxUSE_BASE
+
+#if wxUSE_GUI
+
+// Emit a beeeeeep
+void wxBell()
 {
 {
-    // TODO
+    // would be kSystemSoundID_UserPreferredAlert but since the headers aren't correct, add it manually
+    AudioServicesPlayAlertSound(0x00001000 );
 }
 
 }
 
-#endif // wxUSE_BASE
+// ----------------------------------------------------------------------------
+// Launch default browser
+// ----------------------------------------------------------------------------
 
 
-#if wxUSE_GUI
+bool wxDoLaunchDefaultBrowser(const wxString& url, int flags)
+{
+    return [[UIApplication sharedApplication] openURL:[NSURL URLWithString:wxCFStringRef(url).AsNSString()]]
+        == YES;
+}
 
 // TODO : reorganize
 
 
 // TODO : reorganize
 
@@ -117,6 +118,11 @@ extern UIFont* CreateUIFont( const wxFont& font )
     return [UIFont fontWithName:wxCFStringRef(font.GetFaceName() ).AsNSString() size:font.GetPointSize()];
 }
 
     return [UIFont fontWithName:wxCFStringRef(font.GetFaceName() ).AsNSString() size:font.GetPointSize()];
 }
 
+CFArrayRef CopyAvailableFontFamilyNames()
+{
+    return (CFArrayRef) [[UIFont familyNames] retain];
+}
+
 extern void DrawTextInContext( CGContextRef context, CGPoint where, UIFont *font, NSString* text )
 {
     bool contextChanged = ( UIGraphicsGetCurrentContext() != context );
 extern void DrawTextInContext( CGContextRef context, CGPoint where, UIFont *font, NSString* text )
 {
     bool contextChanged = ( UIGraphicsGetCurrentContext() != context );
@@ -136,6 +142,7 @@ extern CGSize MeasureTextInContext( UIFont *font, NSString* text )
 
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 {
 
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 {
+#if 0
     CGRect r = [[UIScreen mainScreen] applicationFrame];
     CGRect bounds = [[UIScreen mainScreen] bounds];
     if ( bounds.size.height > r.size.height )
     CGRect r = [[UIScreen mainScreen] applicationFrame];
     CGRect bounds = [[UIScreen mainScreen] bounds];
     if ( bounds.size.height > r.size.height )
@@ -162,13 +169,31 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
         if ( height )
             *height = r.size.width;
     }
         if ( height )
             *height = r.size.width;
     }
+#else
+    // it's easier to treat the status bar as an element of the toplevel window 
+    // instead of the desktop in order to support easy rotation
+    if ( x )
+        *x = 0;
+    if ( y )
+        *y = 0;
+    wxDisplaySize(width, height);
+#endif
 }
 
 void wxGetMousePosition( int* x, int* y )
 {
 }
 
 void wxGetMousePosition( int* x, int* y )
 {
-//    wxPoint pt = wxFromNSPoint(NULL, [NSEvent mouseLocation]);
+    if ( x )
+        *x = 0;
+    if ( y )
+        *y = 0;
 };
 
 };
 
+wxMouseState wxGetMouseState()
+{
+    wxMouseState ms;
+    return ms;
+}    
+
 // Returns depth of screen
 int wxDisplayDepth()
 {
 // Returns depth of screen
 int wxDisplayDepth()
 {
@@ -181,7 +206,7 @@ void wxDisplaySize(int *width, int *height)
     CGRect r = [[UIScreen mainScreen] applicationFrame];
     CGRect bounds = [[UIScreen mainScreen] bounds];
 
     CGRect r = [[UIScreen mainScreen] applicationFrame];
     CGRect bounds = [[UIScreen mainScreen] bounds];
 
-    if ( bounds.size.height > r.size.height )
+    if ( UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]) )
     {
         // portrait
         if ( width )
     {
         // portrait
         if ( width )
@@ -316,4 +341,4 @@ wxString wxGetOsDescription()
 }
 
 
 }
 
 
-#endif // wxOSX_USE_IPHONE
\ No newline at end of file
+#endif // wxOSX_USE_IPHONE