// // GetPrimaryScreen // // The screen with the menubar/taskbar. This shouldn't be needed very // often. // NS_IMETHODIMP nsScreenManagerWin :: GetPrimaryScreen(nsIScreen** aPrimaryScreen) { *aPrimaryScreen = CreateNewScreenObject ( nullptr ); // addrefs return NS_OK; } // GetPrimaryScreen
NS_IMETHODIMP nsScreenManagerWin :: ScreenForNativeWidget(void *aWidget, nsIScreen **outScreen) { HMONITOR mon = MonitorFromWindow ((HWND) aWidget, MONITOR_DEFAULTTOPRIMARY); *outScreen = CreateNewScreenObject (mon); return NS_OK; }
// // ScreenForRect // // Returns the screen that contains the rectangle. If the rect overlaps // multiple screens, it picks the screen with the greatest area of intersection. // // The coordinates are in pixels (not twips) and in screen coordinates. // NS_IMETHODIMP nsScreenManagerWin :: ScreenForRect ( PRInt32 inLeft, PRInt32 inTop, PRInt32 inWidth, PRInt32 inHeight, nsIScreen **outScreen ) { if ( !(inWidth || inHeight) ) { NS_WARNING ( "trying to find screen for sizeless window, using primary monitor" ); *outScreen = CreateNewScreenObject ( nullptr ); // addrefs return NS_OK; } RECT globalWindowBounds = { inLeft, inTop, inLeft + inWidth, inTop + inHeight }; HMONITOR genScreen = ::MonitorFromRect( &globalWindowBounds, MONITOR_DEFAULTTOPRIMARY ); *outScreen = CreateNewScreenObject ( genScreen ); // addrefs return NS_OK; } // ScreenForRect
// // GetPrimaryScreen // // The screen with the menubar/taskbar. This shouldn't be needed very // often. // NS_IMETHODIMP nsScreenManagerPh :: GetPrimaryScreen( nsIScreen * *aPrimaryScreen ) { *aPrimaryScreen = CreateNewScreenObject(); // addrefs return NS_OK; }