[gobject-introspection/wip/transformer] Refactor property implementation.
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection/wip/transformer] Refactor property implementation.
- Date: Fri, 30 Jul 2010 22:04:29 +0000 (UTC)
commit 145744f9b6de836cfb6445b65ff15118fce2a456
Author: Zachary Goldberg <zgoldberg src gnome org>
Date: Thu Jul 29 05:19:31 2010 -0400
Refactor property implementation.
giscanner/gicodeformatters.py | 44 +++++++++++++++++++++++++++++++++++++---
giscanner/gidocgen.py | 39 +++--------------------------------
2 files changed, 44 insertions(+), 39 deletions(-)
---
diff --git a/giscanner/gicodeformatters.py b/giscanner/gicodeformatters.py
index 13a2cae..ac848f2 100644
--- a/giscanner/gicodeformatters.py
+++ b/giscanner/gicodeformatters.py
@@ -30,10 +30,46 @@ class DocBookFormatter(object):
clazz.render_enum(writer, entity.get_data(), **args)
elif entity.get_type() == FIELD:
clazz.render_field(writer, entity.get_data(), **args)
+ elif entity.get_type() == PROPERTY:
+ clazz.render_property(writer, entity.get_data(), **args)
@classmethod
- def render_field(clazz, writer, enum, divs=True, **args):
- writer.write_line("%s - %s" % (enum.name, clazz.get_type_string(enum.type)), do_escape=True)
+ def render_property(clazz, writer, prop, divs=False, **args):
+ writer.write_line(""")
+
+ writer.write_tag("link", [
+ ("linkend", "%s%s-%s-%s" % (
+ prop.parent_class.name,
+ prop.name,
+ PROPERTY,
+ clazz.name
+ ))],
+ prop.name)
+ writer.write_line(""")
+ writer.write_line(space(30 - len(prop.name)))
+ writer.write_tag("link", [
+ ("linkend",
+ clazz.render_typelinkname(prop.type,
+ prop.namespace.name))],
+ clazz.get_type_string(
+ prop.type))
+ writer.write_line("%s: " % space(
+ 25 - len(clazz.get_type_string(prop.type))))
+
+ rwstring = []
+ if prop.readable:
+ rwstring.append("Read")
+ if prop.writable:
+ rwstring.append("Write")
+ if prop.construct_only:
+ rwstring.append("Construct Only")
+
+ writer.write_line(" / ".join(rwstring))
+ writer.write_line("\n")
+
+ @classmethod
+ def render_field(clazz, writer, field, divs=True, **args):
+ writer.write_line("%s - %s" % (field.name, clazz.get_type_string(field.type)), do_escape=True)
@classmethod
def render_enum(clazz, writer, enum, divs=True, **args):
@@ -79,7 +115,7 @@ class DocBookFormatter(object):
"%s%s-%s-%s" % (
method.parent_class.name,
method.name,
- "method",
+ METHOD,
clazz.name))],
clazz.get_method_name(method))
else:
@@ -174,7 +210,7 @@ class CDocBookFormatter(DocBookFormatter):
return parameters
param = Parameter("self", method.parent_class.glib_type_struct,
- transfer=None)
+ transfer=None, direction="in")
parameters = [p for p in parameters] # Make a copy
if not param.type.ctype:
diff --git a/giscanner/gidocgen.py b/giscanner/gidocgen.py
index 199d1e4..5e05cb0 100644
--- a/giscanner/gidocgen.py
+++ b/giscanner/gidocgen.py
@@ -154,8 +154,8 @@ class DocBookWriter(DocWriter):
[('id', func_id),
('role', 'function')])
self.writer.write_tag("title", [], entity.get_name())
-
-
+
+
with self.writer.tagcontext("indexterm",
[("zone", "%s" % func_id)]):
self.writer.write_tag("primary", [], func_id)
@@ -177,7 +177,7 @@ class DocBookWriter(DocWriter):
"Synopsis")
with self.writer.tagcontext('synopsis'):
- for entity in page.get_entities():
+ for entity in page.get_entities("method"):
formatter.render(self.writer, entity,
divs=False, method_name_link=True)
@@ -268,38 +268,7 @@ class DocBookWriter(DocWriter):
self.writer.push_tag("synopsis")
self.writer.disable_whitespace()
for prop in page.get_entities("property"):
- self.writer.write_line(""")
-
- self.writer.write_tag("link", [
- ("linkend", "%s-%s-%s_%s" % (
- page.namespace.name,
- page.name,
- prop.get_data().name,
- formatter.name
- ))],
- prop.get_data().name)
- self.writer.write_line(""")
- self.writer.write_line(space(30 - len(prop.get_data().name)))
- self.writer.write_tag("link", [
- ("linkend",
- formatter.render_typelinkname(prop.get_data().type,
- page.namespace.name))],
- formatter.get_type_string(
- prop.get_data().type))
- self.writer.write_line("%s: " % space(
- 25 - len(formatter.get_type_string(
- prop.get_data().type))))
-
- rwstring = []
- if prop.get_data().readable:
- rwstring.append("Read")
- if prop.get_data().writable:
- rwstring.append("Write")
- if prop.get_data().construct_only:
- rwstring.append("Construct Only")
-
- self.writer.write_line(" / ".join(rwstring))
- self.writer.write_line("\n")
+ formatter.render(self.writer, prop, page=page)
self.writer.enable_whitespace()
self.writer.pop_tag()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]