allow wxDisplaySize to be called with NULL parameters

implement GetMetric for wxSYS_SCREEN_X & wxSYS_SCREEN_X using wxDisplaySize


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@20753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Gilles Depeyrot
2003-05-28 20:08:24 +00:00
parent e453562c32
commit 4f26bc4784
4 changed files with 84 additions and 44 deletions

View File

@@ -151,13 +151,16 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
int wxSystemSettingsNative::GetMetric(wxSystemMetric index) int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
{ {
int value;
switch ( index) switch ( index)
{ {
case wxSYS_MOUSE_BUTTONS: 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: case wxSYS_BORDER_X:
// TODO // TODO
return 0; return 0;
case wxSYS_BORDER_Y: case wxSYS_BORDER_Y:
// TODO // TODO
return 0; return 0;
@@ -210,11 +213,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
// TODO // TODO
return 0; return 0;
case wxSYS_SCREEN_X: case wxSYS_SCREEN_X:
// TODO wxDisplaySize(&value, NULL);
return 0; return value;
case wxSYS_SCREEN_Y: case wxSYS_SCREEN_Y:
// TODO wxDisplaySize(NULL, &value);
return 0; return value;
case wxSYS_FRAMESIZE_X: case wxSYS_FRAMESIZE_X:
// TODO // TODO
return 0; return 0;

View File

@@ -450,11 +450,15 @@ int wxDisplayDepth()
// Get size of display // Get size of display
void wxDisplaySize(int *width, int *height) void wxDisplaySize(int *width, int *height)
{ {
BitMap screenBits; BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits ); GetQDGlobalsScreenBits( &screenBits );
*width = screenBits.bounds.right - screenBits.bounds.left ; if (width != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ; *width = screenBits.bounds.right - screenBits.bounds.left ;
}
if (height != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
}
} }
void wxDisplaySizeMM(int *width, int *height) void wxDisplaySizeMM(int *width, int *height)
@@ -462,29 +466,42 @@ void wxDisplaySizeMM(int *width, int *height)
wxDisplaySize(width, height); wxDisplaySize(width, height);
// on mac 72 is fixed (at least now ;-) // on mac 72 is fixed (at least now ;-)
float cvPt2Mm = 25.4 / 72; 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) void wxClientDisplayRect(int *x, int *y, int *width, int *height)
{ {
BitMap screenBits; BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits ); GetQDGlobalsScreenBits( &screenBits );
if (x) *x = 0; if (x)
if (y) *y = 0; *x = 0;
if (y)
*y = 0;
*width = screenBits.bounds.right - screenBits.bounds.left ; if (width != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ; *width = screenBits.bounds.right - screenBits.bounds.left ;
}
if (height != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
}
SInt16 mheight ; SInt16 mheight ;
#if TARGET_CARBON #if TARGET_CARBON
GetThemeMenuBarHeight( &mheight ) ; GetThemeMenuBarHeight( &mheight ) ;
#else #else
mheight = LMGetMBarHeight() ; mheight = LMGetMBarHeight() ;
#endif #endif
*height -= mheight ; if (height != NULL) {
if ( y ) *height -= mheight ;
}
if (y)
*y = mheight ; *y = mheight ;
} }

View File

@@ -151,13 +151,16 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
// Get a system metric, e.g. scrollbar size // Get a system metric, e.g. scrollbar size
int wxSystemSettingsNative::GetMetric(wxSystemMetric index) int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
{ {
int value;
switch ( index) switch ( index)
{ {
case wxSYS_MOUSE_BUTTONS: 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: case wxSYS_BORDER_X:
// TODO // TODO
return 0; return 0;
case wxSYS_BORDER_Y: case wxSYS_BORDER_Y:
// TODO // TODO
return 0; return 0;
@@ -210,11 +213,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
// TODO // TODO
return 0; return 0;
case wxSYS_SCREEN_X: case wxSYS_SCREEN_X:
// TODO wxDisplaySize(&value, NULL);
return 0; return value;
case wxSYS_SCREEN_Y: case wxSYS_SCREEN_Y:
// TODO wxDisplaySize(NULL, &value);
return 0; return value;
case wxSYS_FRAMESIZE_X: case wxSYS_FRAMESIZE_X:
// TODO // TODO
return 0; return 0;

View File

@@ -450,11 +450,15 @@ int wxDisplayDepth()
// Get size of display // Get size of display
void wxDisplaySize(int *width, int *height) void wxDisplaySize(int *width, int *height)
{ {
BitMap screenBits; BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits ); GetQDGlobalsScreenBits( &screenBits );
*width = screenBits.bounds.right - screenBits.bounds.left ; if (width != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ; *width = screenBits.bounds.right - screenBits.bounds.left ;
}
if (height != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
}
} }
void wxDisplaySizeMM(int *width, int *height) void wxDisplaySizeMM(int *width, int *height)
@@ -462,29 +466,42 @@ void wxDisplaySizeMM(int *width, int *height)
wxDisplaySize(width, height); wxDisplaySize(width, height);
// on mac 72 is fixed (at least now ;-) // on mac 72 is fixed (at least now ;-)
float cvPt2Mm = 25.4 / 72; 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) void wxClientDisplayRect(int *x, int *y, int *width, int *height)
{ {
BitMap screenBits; BitMap screenBits;
GetQDGlobalsScreenBits( &screenBits ); GetQDGlobalsScreenBits( &screenBits );
if (x) *x = 0; if (x)
if (y) *y = 0; *x = 0;
if (y)
*y = 0;
*width = screenBits.bounds.right - screenBits.bounds.left ; if (width != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ; *width = screenBits.bounds.right - screenBits.bounds.left ;
}
if (height != NULL) {
*height = screenBits.bounds.bottom - screenBits.bounds.top ;
}
SInt16 mheight ; SInt16 mheight ;
#if TARGET_CARBON #if TARGET_CARBON
GetThemeMenuBarHeight( &mheight ) ; GetThemeMenuBarHeight( &mheight ) ;
#else #else
mheight = LMGetMBarHeight() ; mheight = LMGetMBarHeight() ;
#endif #endif
*height -= mheight ; if (height != NULL) {
if ( y ) *height -= mheight ;
}
if (y)
*y = mheight ; *y = mheight ;
} }