Add gfx:PointF support to mate::Converter
It's needed by atom_api_screen, BuildPrototype function on Windows.
This commit is contained in:
parent
622544a902
commit
c786abf1e9
3 changed files with 36 additions and 10 deletions
|
@ -35,6 +35,28 @@ bool Converter<gfx::Point>::FromV8(v8::Isolate* isolate,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
v8::Local<v8::Value> Converter<gfx::PointF>::ToV8(v8::Isolate* isolate,
|
||||||
|
const gfx::PointF& val) {
|
||||||
|
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
||||||
|
dict.SetHidden("simple", true);
|
||||||
|
dict.Set("x", val.x());
|
||||||
|
dict.Set("y", val.y());
|
||||||
|
return dict.GetHandle();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Converter<gfx::PointF>::FromV8(v8::Isolate* isolate,
|
||||||
|
v8::Local<v8::Value> val,
|
||||||
|
gfx::PointF* out) {
|
||||||
|
mate::Dictionary dict;
|
||||||
|
if (!ConvertFromV8(isolate, val, &dict))
|
||||||
|
return false;
|
||||||
|
float x, y;
|
||||||
|
if (!dict.Get("x", &x) || !dict.Get("y", &y))
|
||||||
|
return false;
|
||||||
|
*out = gfx::PointF(x, y);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
v8::Local<v8::Value> Converter<gfx::Size>::ToV8(v8::Isolate* isolate,
|
v8::Local<v8::Value> Converter<gfx::Size>::ToV8(v8::Isolate* isolate,
|
||||||
const gfx::Size& val) {
|
const gfx::Size& val) {
|
||||||
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#define ATOM_COMMON_NATIVE_MATE_CONVERTERS_GFX_CONVERTER_H_
|
#define ATOM_COMMON_NATIVE_MATE_CONVERTERS_GFX_CONVERTER_H_
|
||||||
|
|
||||||
#include "native_mate/converter.h"
|
#include "native_mate/converter.h"
|
||||||
|
#include "ui/gfx/geometry/point_f.h"
|
||||||
|
|
||||||
namespace display {
|
namespace display {
|
||||||
class Display;
|
class Display;
|
||||||
|
@ -27,6 +28,15 @@ struct Converter<gfx::Point> {
|
||||||
gfx::Point* out);
|
gfx::Point* out);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct Converter<gfx::PointF> {
|
||||||
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||||
|
const gfx::PointF& val);
|
||||||
|
static bool FromV8(v8::Isolate* isolate,
|
||||||
|
v8::Local<v8::Value> val,
|
||||||
|
gfx::PointF* out);
|
||||||
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct Converter<gfx::Size> {
|
struct Converter<gfx::Size> {
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, const gfx::Size& val);
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, const gfx::Size& val);
|
||||||
|
|
|
@ -711,8 +711,7 @@ describe('<webview> tag', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO(alexeykuzmin): Enable the tests.
|
describe('devtools-opened event', () => {
|
||||||
xdescribe('devtools-opened event', () => {
|
|
||||||
it('should fire when webview.openDevTools() is called', async () => {
|
it('should fire when webview.openDevTools() is called', async () => {
|
||||||
loadWebView(webview, {
|
loadWebView(webview, {
|
||||||
src: `file://${fixtures}/pages/base-page.html`
|
src: `file://${fixtures}/pages/base-page.html`
|
||||||
|
@ -726,8 +725,7 @@ describe('<webview> tag', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO(alexeykuzmin): Enable the tests.
|
describe('devtools-closed event', () => {
|
||||||
xdescribe('devtools-closed event', () => {
|
|
||||||
it('should fire when webview.closeDevTools() is called', async () => {
|
it('should fire when webview.closeDevTools() is called', async () => {
|
||||||
loadWebView(webview, {
|
loadWebView(webview, {
|
||||||
src: `file://${fixtures}/pages/base-page.html`
|
src: `file://${fixtures}/pages/base-page.html`
|
||||||
|
@ -742,8 +740,7 @@ describe('<webview> tag', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO(alexeykuzmin): Enable the tests.
|
describe('devtools-focused event', () => {
|
||||||
xdescribe('devtools-focused event', () => {
|
|
||||||
it('should fire when webview.openDevTools() is called', async () => {
|
it('should fire when webview.openDevTools() is called', async () => {
|
||||||
loadWebView(webview, {
|
loadWebView(webview, {
|
||||||
src: `file://${fixtures}/pages/base-page.html`
|
src: `file://${fixtures}/pages/base-page.html`
|
||||||
|
@ -1212,10 +1209,7 @@ describe('<webview> tag', function () {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO(alexeykuzmin): Enable the test.
|
it('loads devtools extensions registered on the parent window', async () => {
|
||||||
// The app crashes if this test and "devtools-opened event" tests
|
|
||||||
// are run at the same time.
|
|
||||||
xit('loads devtools extensions registered on the parent window', async () => {
|
|
||||||
const w = await openTheWindow({ show: false })
|
const w = await openTheWindow({ show: false })
|
||||||
BrowserWindow.removeDevToolsExtension('foo')
|
BrowserWindow.removeDevToolsExtension('foo')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue