|
|
|
@ -4,6 +4,14 @@ class Screens : public ComSingleObject<IAvnScreens, &IID_IAvnScreens> |
|
|
|
{ |
|
|
|
public: |
|
|
|
FORWARD_IUNKNOWN() |
|
|
|
|
|
|
|
private: |
|
|
|
CGFloat PrimaryDisplayHeight() |
|
|
|
{ |
|
|
|
return NSMaxY([[[NSScreen screens] firstObject] frame]); |
|
|
|
} |
|
|
|
|
|
|
|
public: |
|
|
|
virtual HRESULT GetScreenCount (int* ret) override |
|
|
|
{ |
|
|
|
@autoreleasepool |
|
|
|
@ -25,15 +33,15 @@ class Screens : public ComSingleObject<IAvnScreens, &IID_IAvnScreens> |
|
|
|
|
|
|
|
auto screen = [[NSScreen screens] objectAtIndex:index]; |
|
|
|
|
|
|
|
ret->Bounds.X = [screen frame].origin.x; |
|
|
|
ret->Bounds.Y = [screen frame].origin.y; |
|
|
|
ret->Bounds.Height = [screen frame].size.height; |
|
|
|
ret->Bounds.Width = [screen frame].size.width; |
|
|
|
ret->Bounds.X = [screen frame].origin.x; |
|
|
|
ret->Bounds.Y = PrimaryDisplayHeight() - [screen frame].origin.y - ret->Bounds.Height; |
|
|
|
|
|
|
|
ret->WorkingArea.X = [screen visibleFrame].origin.x; |
|
|
|
ret->WorkingArea.Y = [screen visibleFrame].origin.y; |
|
|
|
ret->WorkingArea.Height = [screen visibleFrame].size.height; |
|
|
|
ret->WorkingArea.Width = [screen visibleFrame].size.width; |
|
|
|
ret->WorkingArea.X = [screen visibleFrame].origin.x; |
|
|
|
ret->WorkingArea.Y = ret->Bounds.Height - [screen visibleFrame].origin.y - ret->WorkingArea.Height; |
|
|
|
|
|
|
|
ret->PixelDensity = [screen backingScaleFactor]; |
|
|
|
|
|
|
|
|