2010-11-19 5 views
0

Я пытаюсь сделать плагин для браузеров в Mac OSX.Как получить глобальные координаты (экран, устройство) с помощью CGContext?

Я получил CGContext из браузера.

Так что я могу рисовать с ним.

Что я должен сделать, это окно для обработки кто-то советовать мне в этом удивительном месте :)

я могу сделать прозрачное окно легко, но я могу переместить это окно правильного положения события.

Я точно знаю размер окна, но могу определить происхождение окна.

Только у меня есть CGContextRef.

Я пробовал это.

NSRect rect = [mywindow frame]; 

CGPoint origin; 
origin.x = rect.origin.x; 
origin.y = rect.origin.y; 

CGPoint globalOrigin = CGContextConvertPointToDeviceSpace(cgContext, origin); 

if (globalOrigin.x != origin.x || globalOrigin.y != origin.y) { 
    NSPoint newPoint; 
    newPoint.x = globalOrigin.x; 
    newPoint.y = globalOrigin.y; 
    [mywindow setFrameOrigin:newPoint]; 
} 

Но не повезло. Он вернул значение, что я дал ему

Любые советы?

Заранее спасибо.

ответ

0

CGContext, который вы получаете в плагине NPAPI, не обязательно связан с каким-либо окном, поэтому невозможно отобразить из CGContext в местоположение на экране.

0

ответ smorgan правильный.

Для кого-то, кому может понадобиться больше объяснений, я добавлю свои мысли.

Я думаю, что процесс плагина имеет CGContext, который не имеет реального окна os. потому что браузер требует окна, но процесс плагина просто переносит данные чертежа в браузерный процесс, поэтому CGContext процесса плагина НЕ имеет места. Это может быть просто буфер памяти.

Спасибо smorgan.