DIAStateType GetDIAState( void ) { switch ( hardware ) { #ifdef SUPPORT_DIA_SONY case DIA_HARDWARE_SONY1: { Coord extentY; PushCoordinateSystemToStandard(); WinGetDisplayExtent( NULL, &extentY ); PopCoordinateSystem(); if ( 240 <= extentY ) return DIA_STATE_NO_STATUS_BAR; else if ( 225 <= extentY ) return DIA_STATE_MIN; else return DIA_STATE_MAX; break; } case DIA_HARDWARE_SONY2: { UInt16 state; Err err; err = VskGetState( sonyRefNum, vskStateResize, &state ); if ( err != errNone ) return DIA_STATE_UNDEFINED; switch ( state ) { case vskResizeMax: return DIA_STATE_MAX; case vskResizeMin: return DIA_STATE_MIN; case vskResizeNone: return DIA_STATE_NO_STATUS_BAR; default: return DIA_STATE_UNDEFINED; } } #endif #ifdef SUPPORT_DIA_HANDERA case DIA_HARDWARE_HANDERA: if ( SilkWindowMaximized() ) return DIA_STATE_MAX; else return DIA_STATE_MIN; #endif #ifdef HAVE_PALM_DIA_SDK case DIA_HARDWARE_PALM10: case DIA_HARDWARE_PALM11: switch ( PINGetInputAreaState() ) { case pinInputAreaOpen: return DIA_STATE_MAX; case pinInputAreaClosed: case pinInputAreaNone: return DIA_STATE_MIN; default: return DIA_STATE_UNDEFINED; } #endif default: return DIA_STATE_MAX; } }
/* Check if this is an unknown device with non-standard screen size so we can make proper use of the screen size. */ static DIAHardwareType InitializeUnknown( void ) { Coord extentX; Coord extentY; PushCoordinateSystemToStandard(); WinGetDisplayExtent( &extentX, &extentY ); PopCoordinateSystem(); if ( extentX != STD_EXTENT_X || extentY != STD_EXTENT_Y ) return DIA_HARDWARE_UNKNOWN; else return DIA_HARDWARE_NONE; }
void DIA_HandleResizeEvent() { EventType event; RectangleType* bounds; Coord x, y; MemSet(&event, sizeof(event), 0); event.eType=(eventsEnum)winDisplayChangedEvent; bounds=&event.data.winDisplayChanged.newBounds; WinGetDisplayExtent(&x, &y); bounds->extent.x=x; bounds->extent.y=y; EvtAddUniqueEventToQueue(&event, 0, true); }
void GetHiddenStatusBarArea( RectangleType* area ) { MemSet( area, sizeof( RectangleType ), 0 ); if ( DIA_STATE_NO_STATUS_BAR != GetDIAState() ) { return; } switch ( hardware ) { case DIA_HARDWARE_SONY2: case DIA_HARDWARE_SONY1: case DIA_HARDWARE_PALM11: case DIA_HARDWARE_PALM10: { Coord extentX; Coord extentY; WinGetDisplayExtent( &extentX, &extentY ); switch ( extentX ) { case 160: /* 160 x 240 */ area->topLeft.x = 0; area->topLeft.y = 225; area->extent.x = 160; area->extent.y = 240 - 225; break; case 240: /* 240 x 160 */ area->topLeft.x = 225; area->topLeft.y = 0; area->extent.x = 240 - 225; area->extent.y = 160; break; case 320: /* 320 x 480 */ area->topLeft.x = 0; area->topLeft.y = 450; area->extent.x = 320; area->extent.y = 480 - 450; break; case 480: /* 480 x 320 */ area->topLeft.x = 450; area->topLeft.y = 0; area->extent.x = 480 - 450; area->extent.y = 320; break; default: break; } break; } default: break; } }
static Boolean MatchLastExtents( void ) { static Coord lastX; static Coord lastY; Coord extentX; Coord extentY; extentX = lastX; extentY = lastY; PushCoordinateSystemToStandard(); WinGetDisplayExtent( &lastX, &lastY ); PopCoordinateSystem(); return extentX == lastX && extentY == lastY; }
void GetHiddenStatusBarArea( RectangleType* area ) { if ( DIA_STATE_NO_STATUS_BAR != GetDIAState() ) { MemSet( area, sizeof( RectangleType ), 0 ); } else { Coord extentX; Coord extentY; WinGetDisplayExtent( &extentX, &extentY ); switch ( extentX ) { case 160: /* 160 x 240 */ area->topLeft.x = 0; area->topLeft.y = 225; area->extent.x = 160; area->extent.y = 240 - 225; break; case 240: /* 240 x 160 */ area->topLeft.x = 225; area->topLeft.y = 0; area->extent.x = 240 - 225; area->extent.y = 160; break; case 320: /* 320 x 480 */ area->topLeft.x = 0; area->topLeft.y = 450; area->extent.x = 320; area->extent.y = 480 - 450; break; case 480: /* 480 x 320 */ area->topLeft.x = 450; area->topLeft.y = 0; area->extent.x = 480 - 450; area->extent.y = 320; break; default: MemSet( area, sizeof( RectangleType ), 0 ); break; } } }