static BOOL mf_Pointer_Set(rdpContext* context, const rdpPointer* pointer);
static BOOL mf_Pointer_SetNull(rdpContext* context);
static BOOL mf_Pointer_SetDefault(rdpContext* context);
+static BOOL mf_Pointer_SetPosition(rdpContext* context, UINT32 x, UINT32 y);
static BOOL mac_begin_paint(rdpContext* context);
static BOOL mac_end_paint(rdpContext* context);
if (settings->AsyncInput)
{
if (!(inputThread = CreateThread(NULL, 0,
- (LPTHREAD_START_ROUTINE) mac_client_input_thread, context, 0, NULL)))
+ (LPTHREAD_START_ROUTINE) mac_client_input_thread, context, 0, NULL)))
{
WLog_ERR(TAG, "failed to create async input thread");
goto disconnect;
cursors = [[NSMutableArray alloc] initWithCapacity:10];
// setup a mouse tracking area
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[self
- visibleRect] options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
- NSTrackingCursorUpdate | NSTrackingEnabledDuringMouseDrag |
- NSTrackingActiveWhenFirstResponder owner:self userInfo:nil];
+ visibleRect] options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
+ NSTrackingCursorUpdate | NSTrackingEnabledDuringMouseDrag |
+ NSTrackingActiveWhenFirstResponder owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
// Set the default cursor
currentCursor = [NSCursor arrowCursor];
self->pasteboard_timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(onPasteboardTimerFired:) userInfo:nil repeats:YES];
});
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[self
- visibleRect] options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
- NSTrackingCursorUpdate | NSTrackingEnabledDuringMouseDrag |
- NSTrackingActiveWhenFirstResponder owner:self userInfo:nil];
+ visibleRect] options:NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
+ NSTrackingCursorUpdate | NSTrackingEnabledDuringMouseDrag |
+ NSTrackingActiveWhenFirstResponder owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
[trackingArea release];
}
rdp_pointer.Set = mf_Pointer_Set;
rdp_pointer.SetNull = mf_Pointer_SetNull;
rdp_pointer.SetDefault = mf_Pointer_SetDefault;
+ rdp_pointer.SetPosition = mf_Pointer_SetPosition;
settings = instance->settings;
if (!gdi_init(instance, PIXEL_FORMAT_BGRX32))
MRDPView* view = (MRDPView*) mfc->view;
PasswordDialog* dialog = [PasswordDialog new];
dialog.serverHostname = [NSString stringWithFormat:@"%@:%u",
- [NSString stringWithCString:instance->settings->ServerHostname encoding:
- NSUTF8StringEncoding],
- instance->settings->ServerPort];
+ [NSString stringWithCString:instance->settings->ServerHostname encoding:
+ NSUTF8StringEncoding],
+ instance->settings->ServerPort];
if (*username)
dialog.username = [NSString stringWithCString:*username encoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
if (*password)
dialog.password = [NSString stringWithCString:*password encoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
if (*domain)
dialog.domain = [NSString stringWithCString:*domain encoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
[dialog performSelectorOnMainThread:@selector(runModal:) withObject:[view
window] waitUntilDone:TRUE];
if (ok)
{
const char* submittedUsername = [dialog.username cStringUsingEncoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
*username = malloc((strlen(submittedUsername) + 1) * sizeof(char));
strcpy(*username, submittedUsername);
const char* submittedPassword = [dialog.password cStringUsingEncoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
*password = malloc((strlen(submittedPassword) + 1) * sizeof(char));
strcpy(*password, submittedPassword);
const char* submittedDomain = [dialog.domain cStringUsingEncoding:
- NSUTF8StringEncoding];
+ NSUTF8StringEncoding];
*domain = malloc((strlen(submittedDomain) + 1) * sizeof(char));
strcpy(*domain, submittedDomain);
}
/* store cursor bitmap image in representation - required by NSImage */
bmiRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:
- (unsigned char**) &cursor_data
- pixelsWide:rect.size.width
- pixelsHigh:rect.size.height
- bitsPerSample:8
- samplesPerPixel:4
- hasAlpha:YES
- isPlanar:NO
- colorSpaceName:NSDeviceRGBColorSpace
- bitmapFormat:0
- bytesPerRow:rect.size.width * GetBytesPerPixel(format)
- bitsPerPixel:0];
+ (unsigned char**) &cursor_data
+ pixelsWide:rect.size.width
+ pixelsHigh:rect.size.height
+ bitsPerSample:8
+ samplesPerPixel:4
+ hasAlpha:YES
+ isPlanar:NO
+ colorSpaceName:NSDeviceRGBColorSpace
+ bitmapFormat:0
+ bytesPerRow:rect.size.width * GetBytesPerPixel(format)
+ bitsPerPixel:0];
mrdpCursor->bmiRep = bmiRep;
/* create an image using above representation */
image = [[NSImage alloc] initWithSize:[bmiRep size]];
return TRUE;
}
+static BOOL mf_Pointer_SetPosition(rdpContext* context, UINT32 x, UINT32 y)
+{
+ mfContext* mfc = (mfContext*) context;
+
+ if (!mfc)
+ return FALSE;
+
+ /* TODO: Set pointer position */
+ return TRUE;
+}
+
CGContextRef mac_create_bitmap_context(rdpContext* context)
{
CGContextRef bitmap_context;