|
|
|
@ -231,6 +231,8 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT GetFrameSize(AvnSize* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -1541,7 +1543,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
return pt; |
|
|
|
} |
|
|
|
|
|
|
|
- (AvnPoint)toAvnPoint:(CGPoint)p |
|
|
|
+ (AvnPoint)toAvnPoint:(CGPoint)p |
|
|
|
{ |
|
|
|
AvnPoint result; |
|
|
|
|
|
|
|
@ -1598,7 +1600,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
} |
|
|
|
|
|
|
|
auto localPoint = [self convertPoint:[event locationInWindow] toView:self]; |
|
|
|
auto avnPoint = [self toAvnPoint:localPoint]; |
|
|
|
auto avnPoint = [AvnView toAvnPoint:localPoint]; |
|
|
|
auto point = [self translateLocalPoint:avnPoint]; |
|
|
|
AvnVector delta; |
|
|
|
|
|
|
|
@ -1943,7 +1945,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
- (NSDragOperation)triggerAvnDragEvent: (AvnDragEventType) type info: (id <NSDraggingInfo>)info |
|
|
|
{ |
|
|
|
auto localPoint = [self convertPoint:[info draggingLocation] toView:self]; |
|
|
|
auto avnPoint = [self toAvnPoint:localPoint]; |
|
|
|
auto avnPoint = [AvnView toAvnPoint:localPoint]; |
|
|
|
auto point = [self translateLocalPoint:avnPoint]; |
|
|
|
auto modifiers = [self getModifiers:[[NSApp currentEvent] modifierFlags]]; |
|
|
|
NSDragOperation nsop = [info draggingSourceOperationMask]; |
|
|
|
@ -2376,6 +2378,48 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent |
|
|
|
_parent->BaseEvents->PositionChanged(position); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
- (AvnPoint) translateLocalPoint:(AvnPoint)pt |
|
|
|
{ |
|
|
|
pt.Y = [self frame].size.height - pt.Y; |
|
|
|
return pt; |
|
|
|
} |
|
|
|
|
|
|
|
- (void)sendEvent:(NSEvent *)event |
|
|
|
{ |
|
|
|
if(_parent != nullptr) |
|
|
|
{ |
|
|
|
switch(event.type) |
|
|
|
{ |
|
|
|
case NSEventTypeLeftMouseDown: |
|
|
|
{ |
|
|
|
auto avnPoint = [AvnView toAvnPoint:[event locationInWindow]]; |
|
|
|
auto point = [self translateLocalPoint:avnPoint]; |
|
|
|
AvnVector delta; |
|
|
|
|
|
|
|
_parent->BaseEvents->RawMouseEvent(NonClientLeftButtonDown, [event timestamp] * 1000, AvnInputModifiersNone, point, delta); |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case NSEventTypeMouseEntered: |
|
|
|
{ |
|
|
|
_parent->UpdateCursor(); |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
case NSEventTypeMouseExited: |
|
|
|
{ |
|
|
|
[[NSCursor arrowCursor] set]; |
|
|
|
} |
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[super sendEvent:event]; |
|
|
|
} |
|
|
|
@end |
|
|
|
|
|
|
|
class PopupImpl : public virtual WindowBaseImpl, public IAvnPopup |
|
|
|
|