]> git.saurik.com Git - wxWidgets.git/commitdiff
allow wxDisplaySize to be called with NULL parameters
authorGilles Depeyrot <gilles_depeyrot@mac.com>
Wed, 28 May 2003 18:46:32 +0000 (18:46 +0000)
committerGilles Depeyrot <gilles_depeyrot@mac.com>
Wed, 28 May 2003 18:46:32 +0000 (18:46 +0000)
implement GetMetric for wxSYS_SCREEN_X & wxSYS_SCREEN_X using wxDisplaySize

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20752 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/settings.cpp
src/mac/carbon/utils.cpp
src/mac/settings.cpp
src/mac/utils.cpp

index 9c33a5bf2f9f4bf0385ce6056a199c2d1354f7d9..eebf21927bddc8e6fd8852ac712c561509e5dd99 100644 (file)
@@ -151,13 +151,16 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
 // Get a system metric, e.g. scrollbar size
 int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
 {
+    int value;
+
     switch ( index)
     {
         case wxSYS_MOUSE_BUTTONS:
-                    return 2; // we emulate a two button mouse (ctrl + click = right button )
+            // we emulate a two button mouse (ctrl + click = right button )
+            return 2;
         case wxSYS_BORDER_X:
             // TODO
-                    return 0;
+            return 0;
         case wxSYS_BORDER_Y:
             // TODO
             return 0;
@@ -210,11 +213,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
             // TODO
             return 0;
         case wxSYS_SCREEN_X:
-            // TODO
-            return 0;
+            wxDisplaySize(&value, NULL);
+            return value;
         case wxSYS_SCREEN_Y:
-            // TODO
-            return 0;
+            wxDisplaySize(NULL, &value);
+            return value;
         case wxSYS_FRAMESIZE_X:
             // TODO
             return 0;
index 7066114eb1caa2bd173aae33056d01e5153b10fe..cbc92280bc90e3dc760e8534cb36d8b945072112 100644 (file)
@@ -458,8 +458,12 @@ void wxDisplaySize(int *width, int *height)
     BitMap screenBits;
     GetQDGlobalsScreenBits( &screenBits );
     
-    *width = screenBits.bounds.right - screenBits.bounds.left  ;
-    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    if (width != NULL) { 
+        *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    }
+    if (height != NULL) { 
+        *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    }
 }
 
 void wxDisplaySizeMM(int *width, int *height)
@@ -467,8 +471,13 @@ void wxDisplaySizeMM(int *width, int *height)
     wxDisplaySize(width, height);
     // on mac 72 is fixed (at least now ;-)
     float cvPt2Mm = 25.4 / 72;
-    *width = int( *width * cvPt2Mm );
-    *height = int( *height * cvPt2Mm );
+
+    if (width != NULL) { 
+        *width = int( *width * cvPt2Mm );
+    }
+    if (height != NULL) { 
+        *height = int( *height * cvPt2Mm );
+    }
 }
 
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
@@ -479,8 +488,12 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
     if (x) *x = 0;
     if (y) *y = 0;
 
-    *width = screenBits.bounds.right - screenBits.bounds.left  ;
-    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    if (width != NULL) { 
+        *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    }
+    if (height != NULL) { 
+        *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    }
 
     SInt16 mheight ;
 #if TARGET_CARBON
@@ -488,8 +501,10 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 #else
     mheight = LMGetMBarHeight() ;
 #endif
-    *height -= mheight ;
-    if ( y )
+    if (height != NULL) { 
+        *height -= mheight ;
+    }
+    if (y)
         *y = mheight ;
 }
 
index 9c33a5bf2f9f4bf0385ce6056a199c2d1354f7d9..eebf21927bddc8e6fd8852ac712c561509e5dd99 100644 (file)
@@ -151,13 +151,16 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
 // Get a system metric, e.g. scrollbar size
 int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
 {
+    int value;
+
     switch ( index)
     {
         case wxSYS_MOUSE_BUTTONS:
-                    return 2; // we emulate a two button mouse (ctrl + click = right button )
+            // we emulate a two button mouse (ctrl + click = right button )
+            return 2;
         case wxSYS_BORDER_X:
             // TODO
-                    return 0;
+            return 0;
         case wxSYS_BORDER_Y:
             // TODO
             return 0;
@@ -210,11 +213,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
             // TODO
             return 0;
         case wxSYS_SCREEN_X:
-            // TODO
-            return 0;
+            wxDisplaySize(&value, NULL);
+            return value;
         case wxSYS_SCREEN_Y:
-            // TODO
-            return 0;
+            wxDisplaySize(NULL, &value);
+            return value;
         case wxSYS_FRAMESIZE_X:
             // TODO
             return 0;
index 7066114eb1caa2bd173aae33056d01e5153b10fe..cbc92280bc90e3dc760e8534cb36d8b945072112 100644 (file)
@@ -458,8 +458,12 @@ void wxDisplaySize(int *width, int *height)
     BitMap screenBits;
     GetQDGlobalsScreenBits( &screenBits );
     
-    *width = screenBits.bounds.right - screenBits.bounds.left  ;
-    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    if (width != NULL) { 
+        *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    }
+    if (height != NULL) { 
+        *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    }
 }
 
 void wxDisplaySizeMM(int *width, int *height)
@@ -467,8 +471,13 @@ void wxDisplaySizeMM(int *width, int *height)
     wxDisplaySize(width, height);
     // on mac 72 is fixed (at least now ;-)
     float cvPt2Mm = 25.4 / 72;
-    *width = int( *width * cvPt2Mm );
-    *height = int( *height * cvPt2Mm );
+
+    if (width != NULL) { 
+        *width = int( *width * cvPt2Mm );
+    }
+    if (height != NULL) { 
+        *height = int( *height * cvPt2Mm );
+    }
 }
 
 void wxClientDisplayRect(int *x, int *y, int *width, int *height)
@@ -479,8 +488,12 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
     if (x) *x = 0;
     if (y) *y = 0;
 
-    *width = screenBits.bounds.right - screenBits.bounds.left  ;
-    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    if (width != NULL) { 
+        *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    }
+    if (height != NULL) { 
+        *height = screenBits.bounds.bottom - screenBits.bounds.top ;
+    }
 
     SInt16 mheight ;
 #if TARGET_CARBON
@@ -488,8 +501,10 @@ void wxClientDisplayRect(int *x, int *y, int *width, int *height)
 #else
     mheight = LMGetMBarHeight() ;
 #endif
-    *height -= mheight ;
-    if ( y )
+    if (height != NULL) { 
+        *height -= mheight ;
+    }
+    if (y)
         *y = mheight ;
 }