コード例 #1
0
ファイル: seed-ffi.c プロジェクト: dannote/seed
SeedObject
seed_module_init(SeedEngine *local_eng)
{
  SeedObject library_constructor;
  seed_class_definition ffi_library_def = seed_empty_class;
  seed_class_definition ffi_function_def = seed_empty_class;

  ffi_library_def.class_name = "FFILibrary";
  ffi_library_def.finalize = seed_ffi_library_finalize;
  ffi_library_def.get_property = seed_ffi_library_get_property;
  
  ffi_function_def.class_name = "FFIFunction";
  ffi_function_def.finalize = seed_ffi_function_finalize;
  ffi_function_def.static_values = ffi_function_values;
  ffi_function_def.call_as_function = seed_ffi_function_call;
  
  ffi_library_class = seed_create_class (&ffi_library_def);
  ffi_function_class = seed_create_class (&ffi_function_def);

  eng = local_eng;
  namespace_ref = seed_make_object (eng->context, NULL, NULL);
  
  library_constructor = seed_make_constructor (eng->context, ffi_library_class, seed_ffi_construct_library);
  seed_object_set_property (eng->context, namespace_ref, "Library", library_constructor);
  
  return namespace_ref;
}
コード例 #2
0
ファイル: seed-libxml.c プロジェクト: iRi-E/GNOME-Seed
static void
seed_libxml_define_stuff ()
{
  SeedObject node_proto;

  seed_class_definition xml_doc_class_def = seed_empty_class;
  seed_class_definition xml_node_class_def = seed_empty_class;
  seed_class_definition xml_attr_class_def = seed_empty_class;
  seed_class_definition xml_xpath_class_def = seed_empty_class;
  seed_class_definition xml_xpathobj_class_def = seed_empty_class;

  xml_doc_class_def.class_name="XMLDocument";
  xml_doc_class_def.static_functions = doc_funcs;
  xml_doc_class_def.static_values = doc_values;
  xml_doc_class_def.finalize = seed_xml_doc_finalize;
  xml_doc_class = seed_create_class (&xml_doc_class_def);

  xml_node_class_def.class_name="XMLNode";
  xml_node_class_def.static_functions = node_funcs;
  xml_node_class_def.static_values = node_values;
  xml_node_class_def.finalize = seed_xml_node_finalize;
  xml_node_class_def.initialize = seed_xml_node_init;
  xml_node_class = seed_create_class (&xml_node_class_def);

  xml_attr_class_def.class_name="XMLAttribute";
  xml_attr_class_def.static_functions = attr_funcs;
  xml_attr_class_def.static_values = attr_values;
  xml_attr_class_def.finalize = seed_xml_node_finalize;
  xml_attr_class_def.initialize = seed_xml_node_init;
  xml_attr_class = seed_create_class (&xml_attr_class_def);

  xml_xpath_class_def.class_name = "XMLXPathContext";
  xml_xpath_class_def.finalize = seed_xml_xpath_finalize;
  xml_xpath_class_def.static_functions = xpath_funcs;
  xml_xpath_class = seed_create_class (&xml_xpath_class_def);

  xml_xpathobj_class_def.class_name = "XMLXPathObj";
  xml_xpathobj_class_def.finalize = seed_xml_xpathobj_finalize;
  xml_xpathobj_class_def.static_values = xpathobj_values;
  xml_xpathobj_class = seed_create_class (&xml_xpathobj_class_def);

  seed_create_function (eng->context, "parseFile",
			(SeedFunctionCallback) seed_xml_parse_file,
			namespace_ref);
  seed_create_function (eng->context, "parseString",
			(SeedFunctionCallback) seed_xml_parse_string,
			namespace_ref);

  node_proto = seed_object_get_prototype (eng->context,
					  seed_make_object (eng->context,
							    xml_node_class,
							    NULL));
  seed_make_object (eng->context, xml_node_class, NULL);
  seed_object_set_property (eng->context, namespace_ref, "_nodeProto", node_proto);
  seed_simple_evaluate (eng->context, "imports.extensions.xml", NULL);
}
コード例 #3
0
ファイル: seed-sqlite.c プロジェクト: iRi-E/GNOME-Seed
SeedObject
seed_module_init(SeedEngine * local_eng)
{
  SeedObject db_constructor;
  seed_class_definition sqlite_class_def = seed_empty_class;

  eng = local_eng;

  namespace_ref = seed_make_object(eng->context, 0, 0);

  define_errors(eng);

  sqlite_class_def.class_name = "Database";
  sqlite_class_def.finalize = sqlite_database_finalize;
  sqlite_class_def.static_functions = database_funcs;

  sqlite_class = seed_create_class(&sqlite_class_def);

  db_constructor = seed_make_constructor(eng->context,
					 sqlite_class,
					 sqlite_construct_database);
  seed_object_set_property(eng->context,
			   namespace_ref, "Database", db_constructor);

  return namespace_ref;
}
コード例 #4
0
ファイル: seed-gettext.c プロジェクト: iRi-E/GNOME-Seed
SeedObject
seed_module_init(SeedEngine *local_eng)
{
	SeedGlobalContext ctx = local_eng->context;

	seed_class_definition gettext_ns_class_def = seed_empty_class;
    gettext_ns_class_def.static_functions = gettext_funcs;

	SeedClass gettext_ns_class = seed_create_class(&gettext_ns_class_def);

	ns_ref = seed_make_object (ctx, gettext_ns_class, NULL);
	seed_value_protect (ctx, ns_ref);

	/* define enums for setlocale. Where to put them?  */

	DEFINE_ENUM_MEMBER(ns_ref, LC_CTYPE);
	DEFINE_ENUM_MEMBER(ns_ref, LC_NUMERIC);
	DEFINE_ENUM_MEMBER(ns_ref, LC_TIME);
	DEFINE_ENUM_MEMBER(ns_ref, LC_COLLATE);
	DEFINE_ENUM_MEMBER(ns_ref, LC_MONETARY);
	DEFINE_ENUM_MEMBER(ns_ref, LC_MESSAGES);
	DEFINE_ENUM_MEMBER(ns_ref, LC_ALL);
	DEFINE_ENUM_MEMBER(ns_ref, LC_PAPER);
	DEFINE_ENUM_MEMBER(ns_ref, LC_NAME);
	DEFINE_ENUM_MEMBER(ns_ref, LC_ADDRESS);
	DEFINE_ENUM_MEMBER(ns_ref, LC_TELEPHONE);
	DEFINE_ENUM_MEMBER(ns_ref, LC_MEASUREMENT);
	DEFINE_ENUM_MEMBER(ns_ref, LC_IDENTIFICATION);
	DEFINE_ENUM_MEMBER(ns_ref, LC_CTYPE);

	return ns_ref;
}
コード例 #5
0
ファイル: seed-cairo-matrix.c プロジェクト: dannote/seed
void
seed_define_cairo_matrix (SeedContext ctx,
			  SeedObject namespace_ref)
{
  seed_class_definition matrix_def = seed_empty_class;

  matrix_def.class_name = "Matrix";
  matrix_def.static_functions = matrix_funcs;
  seed_matrix_class = seed_create_class (&matrix_def);

  seed_object_set_property (ctx, namespace_ref, "Matrix", seed_make_object (ctx, seed_matrix_class, NULL));
}
コード例 #6
0
ファイル: seed-readline.c プロジェクト: dannote/seed
SeedObject
seed_module_init(SeedEngine * local_eng)
{
  seed_class_definition readline_ns_class_def = seed_empty_class;
  readline_ns_class_def.static_functions = readline_funcs;
  
  SeedClass readline_ns_class = seed_create_class(&readline_ns_class_def);

  eng = local_eng;

  namespace_ref = seed_make_object(eng->context, readline_ns_class, 0);

  return namespace_ref;
}
コード例 #7
0
ファイル: seed-cairo-surface.c プロジェクト: iRi-E/GNOME-Seed
void
seed_define_cairo_surface (SeedContext ctx,
			   SeedObject namespace_ref)
{
  seed_class_definition surface_def = seed_empty_class;

  surface_def.class_name = "Surface";
  surface_def.finalize = seed_cairo_surface_finalize;
  surface_def.static_functions = surface_funcs;
  surface_def.static_values = surface_values;

  seed_cairo_surface_class = seed_create_class (&surface_def);

  seed_define_cairo_image_surface (ctx, namespace_ref);
  seed_define_cairo_pdf_surface (ctx, namespace_ref);
}
コード例 #8
0
void
seed_define_cairo_pdf_surface (SeedContext ctx,
				 SeedObject namespace_ref)
{
  seed_class_definition pdf_def = seed_empty_class;

  pdf_def.class_name = "PDFSurface";
  pdf_def.static_values = pdf_surface_values;
  pdf_def.parent_class = seed_get_cairo_surface_class ();
  pdf_def.static_functions = pdf_surface_funcs;
  seed_cairo_pdf_surface_class = seed_create_class (&pdf_def);

  pdf_surface_constructor_ref = seed_make_constructor (ctx,
							 NULL,
							 //seed_cairo_pdf_surface_class,
							 seed_cairo_construct_pdf_surface);
  seed_object_set_property (ctx, namespace_ref, "PDFSurface", pdf_surface_constructor_ref);
}
コード例 #9
0
ファイル: seed-gi.c プロジェクト: GNOME/seed
SeedObject
gjs_compat_define_gi_stuff(SeedEngine* eng)
{
    SeedContext context = eng->context;
    SeedObject module;
    gboolean ret;

    module = seed_make_object(context, seed_create_class(&system_def), NULL);

    SeedValue seed = seed_object_get_property(context, eng->global, "Seed");
    SeedValue argv = seed_object_get_property(context, seed, "argv");

    ret = seed_object_set_property(
      context, module, "version",
      (SeedValue) seed_value_from_int(context, GJS_COMPAT_VERSION, NULL));

    return module;
}
コード例 #10
0
ファイル: seed-cairo-pattern.c プロジェクト: iRi-E/GNOME-Seed
void
seed_define_cairo_pattern (SeedContext ctx,
			   SeedObject namespace_ref)
{
  SeedObject linear_constructor, radial_constructor;
  seed_class_definition pattern_def = seed_empty_class;

  pattern_def.class_name = "Pattern";
  pattern_def.finalize = seed_cairo_pattern_finalize;
  pattern_def.static_functions = pattern_funcs;

  seed_cairo_pattern_class = seed_create_class (&pattern_def);

  linear_constructor = seed_make_constructor (ctx, NULL, seed_cairo_construct_linear_gradient);
  seed_object_set_property(ctx, namespace_ref, "LinearGradient", linear_constructor);

  radial_constructor = seed_make_constructor (ctx, NULL, seed_cairo_construct_radial_gradient);
  seed_object_set_property(ctx, namespace_ref, "RadialGradient", radial_constructor);
}
コード例 #11
0
ファイル: dbus-exports.c プロジェクト: iRi-E/GNOME-Seed
static SeedObject
exports_new (SeedContext ctx,
	     DBusBusType which_bus)
{
  SeedObject exports;
  SeedObject global;

  global = seed_context_get_global_object (ctx);
  if (!seed_js_exports_class)
    {
      seed_class_definition def = seed_empty_class;
      def.initialize = exports_constructor;
      def.finalize = exports_finalize;

      seed_js_exports_class = seed_create_class (&def);
    }
  exports = seed_make_object (ctx, seed_js_exports_class, NULL);

  return exports;
}
コード例 #12
0
ファイル: seed-multiprocessing.c プロジェクト: dannote/seed
SeedObject
seed_module_init(SeedEngine * local_eng)
{
  SeedObject pipe_constructor;
  seed_class_definition pipe_class_def = seed_empty_class;
  eng = local_eng;

  namespace_ref = seed_make_object(eng->context, 0, 0);

  pipe_class_def.class_name = "Pipe";
  pipe_class_def.static_functions = pipe_funcs;
  pipe_class_def.finalize = pipe_finalize;

  pipe_class = seed_create_class(&pipe_class_def);

  pipe_constructor = seed_make_constructor(eng->context,
					   0, seed_construct_pipe);

  seed_object_set_property(eng->context,
			   namespace_ref, "Pipe", pipe_constructor);

  return namespace_ref;
}