1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 Luke Kenneth Casson Leighton <lkcl@lkcl.net> 3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 Martin Soto <soto@freedesktop.org> 4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 Alp Toker <alp@atoker.com> 5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2008 Apple Inc. 6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2009 Igalia S.L. 7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */ 8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "config.h" 9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "WebKitDOMObject.h" 10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "glib-object.h" 12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "WebKitDOMBinding.h" 13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 14ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockenum { 15ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block PROP_0, 16ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block PROP_CORE_OBJECT 17ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block}; 18ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockG_DEFINE_TYPE(WebKitDOMObject, webkit_dom_object, G_TYPE_OBJECT); 20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstatic void webkit_dom_object_init(WebKitDOMObject* object) 22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 25ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockstatic void webkit_dom_object_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) 26ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 27ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block switch (prop_id) { 28ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block default: 29ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 30ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block break; 31ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block } 32ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 33ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 34ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Blockstatic void webkit_dom_object_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) 35ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block{ 36ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block switch (prop_id) { 37ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block case PROP_CORE_OBJECT: 38ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block WEBKIT_DOM_OBJECT(object)->coreObject = g_value_get_pointer(value); 39ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block break; 40ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block default: 41ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 42ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block break; 43ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block } 44ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block} 45ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstatic void webkit_dom_object_class_init(WebKitDOMObjectClass* klass) 47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block{ 48ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); 49ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block gobjectClass->set_property = webkit_dom_object_set_property; 50ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block gobjectClass->get_property = webkit_dom_object_get_property; 51ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block 52ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block g_object_class_install_property(gobjectClass, 53ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block PROP_CORE_OBJECT, 54ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block g_param_spec_pointer("core-object", 55ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block "Core Object", 56ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block "The WebCore object the WebKitDOMObject wraps", 57ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block static_cast<GParamFlags>(G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY))); 58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 60