void nsDeviceContextOS2 :: ComputeFullAreaUsingScreen ( nsRect* outRect ) { if ( !mCachedFullRect ) { nsCOMPtr<nsIScreen> screen; FindScreen ( getter_AddRefs(screen) ); if ( screen ) { PRInt32 x, y, width, height; screen->GetRect ( &x, &y, &width, &height ); // convert to device units outRect->y = NSToIntRound(y * mDevUnitsToAppUnits); outRect->x = NSToIntRound(x * mDevUnitsToAppUnits); outRect->width = NSToIntRound(width * mDevUnitsToAppUnits); outRect->height = NSToIntRound(height * mDevUnitsToAppUnits); mWidth = width; mHeight = height; mCachedFullRect = PR_TRUE; } } else { outRect->y = 0; outRect->x = 0; outRect->width = NSToIntRound(mWidth * mDevUnitsToAppUnits); outRect->height = NSToIntRound(mHeight * mDevUnitsToAppUnits); } } // ComputeFullRectUsingScreen
/* Returns the specified screens geometry rectangle. screen can be a screen * number or any of the values FSCREEN_GLOBAL, FSCREEN_CURRENT, * FSCREEN_PRIMARY or FSCREEN_XYPOS. The arg union only has a meaning for * FSCREEN_CURRENT and FSCREEN_XYARG. For FSCREEN_CURRENT its mouse_ev member * may be given. It is tried to find out the pointer position from the event * first before querying the pointer. For FSCREEN_XYPOS the xpos member is used * to fetch the x/y position of the point on the screen. If arg is NULL, the * position 0 0 is assumed instead. * * Any of the arguments arg, x, y, w and h may be NULL. * * FSCREEN_GLOBAL: return the global screen dimensions * FSCREEN_CURRENT: return dimensions of the screen with the pointer * FSCREEN_PRIMARY: return the primary screen dimensions * FSCREEN_XYPOS: return dimensions of the screen with the given coordinates * * The function returns False if the global screen was returned and more than * one screen is configured. Otherwise it returns True. */ Bool FScreenGetScrRect( fscreen_scr_arg *arg, fscreen_scr_t screen, int *x, int *y, int *w, int *h) { screen = FindScreen(arg, screen); if (screen < first_to_check || screen > last_to_check) { screen = 0; } if (x) { *x = screens[screen].x_org; } if (y) { *y = screens[screen].y_org; } if (w) { *w = screens[screen].width; } if (h) { *h = screens[screen].height; } return !(screen == 0 && num_screens > 1); }
/* returns the screen id */ Bool FScreenGetScrId( fscreen_scr_arg *arg, fscreen_scr_t screen) { screen = FindScreen(arg, screen); if (screen < 0) { screen = FSCREEN_GLOBAL; } return screen; }
AUI_ERRCODE aui_Shell::GotoScreen( uint32 id ) { aui_Screen *screen = FindScreen( id ); Assert( screen != NULL ); if ( !screen ) return AUI_ERRCODE_HACK; if ( m_curScreen ) m_curScreen->Hide(); m_curScreen = screen; m_screenHistory->AddTail( id ); return m_curScreen->Show(); }
void nsThebesDeviceContext::ComputeClientRectUsingScreen(nsRect* outRect) { // we always need to recompute the clientRect // because the window may have moved onto a different screen. In the single // monitor case, we only need to do the computation if we haven't done it // once already, and remember that we have because we're assured it won't change. nsCOMPtr<nsIScreen> screen; FindScreen (getter_AddRefs(screen)); if (screen) { PRInt32 x, y, width, height; screen->GetAvailRect(&x, &y, &width, &height); // convert to device units outRect->y = NSIntPixelsToAppUnits(y, AppUnitsPerDevPixel()); outRect->x = NSIntPixelsToAppUnits(x, AppUnitsPerDevPixel()); outRect->width = NSIntPixelsToAppUnits(width, AppUnitsPerDevPixel()); outRect->height = NSIntPixelsToAppUnits(height, AppUnitsPerDevPixel()); } }
void nsDeviceContextOS2 :: ComputeClientRectUsingScreen ( nsRect* outRect ) { if ( !mCachedClientRect ) { nsCOMPtr<nsIScreen> screen; FindScreen ( getter_AddRefs(screen) ); if ( screen ) { PRInt32 x, y, width, height; screen->GetAvailRect ( &x, &y, &width, &height ); // convert to device units outRect->y = NSToIntRound(y * mDevUnitsToAppUnits); outRect->x = NSToIntRound(x * mDevUnitsToAppUnits); outRect->width = NSToIntRound(width * mDevUnitsToAppUnits); outRect->height = NSToIntRound(height * mDevUnitsToAppUnits); mCachedClientRect = PR_TRUE; mClientRect = *outRect; } } else *outRect = mClientRect; } // ComputeClientRectUsingScreen