|
Packit Service |
2781ba |
#include "config.h"
|
|
Packit Service |
2781ba |
#include <gegl.h> /* needed instead of gegl.h to be able to do full
|
|
Packit Service |
2781ba |
introspection*/
|
|
Packit Service |
2781ba |
#include <stdio.h>
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
FILE *file = NULL;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void collapse_all (GType type);
|
|
Packit Service |
2781ba |
void expand_all (GType type);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static gchar *collapsibles_html =
|
|
Packit Service |
2781ba |
" <script type='text/javascript'>/*
|
|
Packit Service |
2781ba |
" function hide(id)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" (document.getElementById(id)).style.display = \"none\";"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" function show(id)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" (document.getElementById(id)).style.display = \"block\";"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" function get_visible (id)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" var element = document.getElementById(id);"
|
|
Packit Service |
2781ba |
""
|
|
Packit Service |
2781ba |
" if (element &&"
|
|
Packit Service |
2781ba |
" element.style.display &&"
|
|
Packit Service |
2781ba |
" element.style.display != \"none\")"
|
|
Packit Service |
2781ba |
" return true;"
|
|
Packit Service |
2781ba |
" return false;"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" function set_visible (id, visible)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" var element = document.getElementById(id);"
|
|
Packit Service |
2781ba |
""
|
|
Packit Service |
2781ba |
" if (element)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" if (visible)"
|
|
Packit Service |
2781ba |
" element.style.display = \"block\";"
|
|
Packit Service |
2781ba |
" else"
|
|
Packit Service |
2781ba |
" element.style.display = \"none\";"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" function toggle_visible (id)"
|
|
Packit Service |
2781ba |
" {"
|
|
Packit Service |
2781ba |
" if (get_visible(id))"
|
|
Packit Service |
2781ba |
" set_visible(id, false);"
|
|
Packit Service |
2781ba |
" else"
|
|
Packit Service |
2781ba |
" set_visible(id,true);"
|
|
Packit Service |
2781ba |
" }"
|
|
Packit Service |
2781ba |
" /*-->*/</script>";
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static gchar *escape (const gchar *string)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
gchar buf[4095]="";
|
|
Packit Service |
2781ba |
const gchar *p=string;
|
|
Packit Service |
2781ba |
gint i=0;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
while (p && *p)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
switch (*p)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
case '<':
|
|
Packit Service |
2781ba |
buf[i++]='&';
|
|
Packit Service |
2781ba |
buf[i++]='l';
|
|
Packit Service |
2781ba |
buf[i++]='t';
|
|
Packit Service |
2781ba |
buf[i++]=';';
|
|
Packit Service |
2781ba |
break;
|
|
Packit Service |
2781ba |
case '>':
|
|
Packit Service |
2781ba |
buf[i++]='&';
|
|
Packit Service |
2781ba |
buf[i++]='g';
|
|
Packit Service |
2781ba |
buf[i++]='t';
|
|
Packit Service |
2781ba |
buf[i++]=';';
|
|
Packit Service |
2781ba |
break;
|
|
Packit Service |
2781ba |
case '&':
|
|
Packit Service |
2781ba |
buf[i++]='&';
|
|
Packit Service |
2781ba |
buf[i++]='a';
|
|
Packit Service |
2781ba |
buf[i++]='m';
|
|
Packit Service |
2781ba |
buf[i++]='p';
|
|
Packit Service |
2781ba |
buf[i++]=';';
|
|
Packit Service |
2781ba |
break;
|
|
Packit Service |
2781ba |
default:
|
|
Packit Service |
2781ba |
buf[i++]=*p;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
p++;
|
|
Packit Service |
2781ba |
buf[i]='\0';
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
return g_strdup (buf);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void introspect_overview (GType type, gint indent);
|
|
Packit Service |
2781ba |
void introspect (GType type, gint indent);
|
|
Packit Service |
2781ba |
gint stuff (gint argc, gchar **argv);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void introspection (void)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
file = stdout;
|
|
Packit Service |
2781ba |
fprintf (file, "\n"
|
|
Packit Service |
2781ba |
"<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "<head><title>GObject class introspection</title><link rel='shortcut icon' href='images/gegl.ico'/><style type='text/css'>@import url(devhelp.css);</style>%s</head><body>\n", collapsibles_html);
|
|
Packit Service |
2781ba |
fprintf (file, "
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
fprintf (file, "
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
fprintf (file, "
|
|
Packit Service |
2781ba |
collapse_all (G_TYPE_OBJECT);
|
|
Packit Service |
2781ba |
fprintf (file, "'> - /
|
|
Packit Service |
2781ba |
expand_all (G_TYPE_OBJECT);
|
|
Packit Service |
2781ba |
fprintf (file, "'> + ");
|
|
Packit Service |
2781ba |
introspect_overview (G_TYPE_OBJECT,0);
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
introspect (G_TYPE_OBJECT,0);
|
|
Packit Service |
2781ba |
fprintf (file, "</body></html>\n");
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
gint
|
|
Packit Service |
2781ba |
main (gint argc,
|
|
Packit Service |
2781ba |
gchar **argv)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
stuff (argc, argv);
|
|
Packit Service |
2781ba |
introspection ();
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
return 0;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void
|
|
Packit Service |
2781ba |
list_subclasses (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GType *children;
|
|
Packit Service |
2781ba |
guint count;
|
|
Packit Service |
2781ba |
gint no;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
children=g_type_children (type, &count);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!children)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (count)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "subclasses\n");
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (no=0; no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "%s \n", g_type_name (children[no]),
|
|
Packit Service |
2781ba |
g_type_name (children[no]));
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
g_free (children);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void
|
|
Packit Service |
2781ba |
list_superclasses (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GString *str = g_string_new ("");
|
|
Packit Service |
2781ba |
gboolean last=TRUE;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
while (type != 0)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
if (!last)
|
|
Packit Service |
2781ba |
g_string_prepend (str, "/");
|
|
Packit Service |
2781ba |
g_string_prepend (str, "");
|
|
Packit Service |
2781ba |
g_string_prepend (str, g_type_name (type));
|
|
Packit Service |
2781ba |
g_string_prepend (str, "'>");
|
|
Packit Service |
2781ba |
g_string_prepend (str, g_type_name (type));
|
|
Packit Service |
2781ba |
g_string_prepend (str, "
|
|
Packit Service |
2781ba |
type = g_type_parent (type);
|
|
Packit Service |
2781ba |
last = FALSE;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
fprintf (file, "%s\n", str->str);
|
|
Packit Service |
2781ba |
g_string_free (str, TRUE);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void
|
|
Packit Service |
2781ba |
list_properties_simple (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GParamSpec **self;
|
|
Packit Service |
2781ba |
GParamSpec **parent = NULL;
|
|
Packit Service |
2781ba |
guint n_self;
|
|
Packit Service |
2781ba |
guint n_parent=0;
|
|
Packit Service |
2781ba |
gint prop_no;
|
|
Packit Service |
2781ba |
gboolean first=TRUE;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
self = g_object_class_list_properties (
|
|
Packit Service |
2781ba |
G_OBJECT_CLASS (g_type_class_ref (type)),
|
|
Packit Service |
2781ba |
&n_self);
|
|
Packit Service |
2781ba |
if (g_type_parent (type))
|
|
Packit Service |
2781ba |
parent = g_object_class_list_properties (
|
|
Packit Service |
2781ba |
G_OBJECT_CLASS (g_type_class_ref (g_type_parent (type))),
|
|
Packit Service |
2781ba |
&n_parent);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (prop_no=0;prop_no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
gint parent_no;
|
|
Packit Service |
2781ba |
gboolean found=FALSE;
|
|
Packit Service |
2781ba |
for (parent_no=0;parent_no
|
|
Packit Service |
2781ba |
if (self[prop_no]==parent[parent_no])
|
|
Packit Service |
2781ba |
found=TRUE;
|
|
Packit Service |
2781ba |
/* only print properties if we are an addition compared to
|
|
Packit Service |
2781ba |
* the parent class
|
|
Packit Service |
2781ba |
*/
|
|
Packit Service |
2781ba |
if (!found)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (first)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "");
|
|
Packit Service |
2781ba |
first = FALSE;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
fprintf (file, "%s %s%s\n",
|
|
Packit Service |
2781ba |
g_param_spec_get_name (self[prop_no]),
|
|
Packit Service |
2781ba |
g_type_name (G_OBJECT_TYPE(self[prop_no])),
|
|
Packit Service |
2781ba |
escape (g_param_spec_get_blurb (self[prop_no])));
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
if (!first)
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (self)
|
|
Packit Service |
2781ba |
g_free (self);
|
|
Packit Service |
2781ba |
if (parent)
|
|
Packit Service |
2781ba |
g_free (parent);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void
|
|
Packit Service |
2781ba |
list_properties (GType type,
|
|
Packit Service |
2781ba |
gint indent)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GParamSpec **self;
|
|
Packit Service |
2781ba |
GParamSpec **parent = NULL;
|
|
Packit Service |
2781ba |
guint n_self;
|
|
Packit Service |
2781ba |
guint n_parent = 0;
|
|
Packit Service |
2781ba |
gint prop_no;
|
|
Packit Service |
2781ba |
gboolean first=TRUE;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
self = g_object_class_list_properties (
|
|
Packit Service |
2781ba |
G_OBJECT_CLASS (g_type_class_ref (type)),
|
|
Packit Service |
2781ba |
&n_self);
|
|
Packit Service |
2781ba |
if (g_type_parent (type))
|
|
Packit Service |
2781ba |
parent = g_object_class_list_properties (
|
|
Packit Service |
2781ba |
G_OBJECT_CLASS (g_type_class_ref (g_type_parent (type))),
|
|
Packit Service |
2781ba |
&n_parent);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (prop_no=0;prop_no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
gint parent_no;
|
|
Packit Service |
2781ba |
gboolean found=FALSE;
|
|
Packit Service |
2781ba |
for (parent_no=0;parent_no
|
|
Packit Service |
2781ba |
if (self[prop_no]==parent[parent_no])
|
|
Packit Service |
2781ba |
found=TRUE;
|
|
Packit Service |
2781ba |
/* only print properties if we are an addition compared to
|
|
Packit Service |
2781ba |
* the parent class
|
|
Packit Service |
2781ba |
*/
|
|
Packit Service |
2781ba |
if (!found)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (first)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "Properties");
|
|
Packit Service |
2781ba |
first = FALSE;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
fprintf (file, "%s %s%s\n",
|
|
Packit Service |
2781ba |
g_param_spec_get_name (self[prop_no]),
|
|
Packit Service |
2781ba |
g_type_name (G_OBJECT_TYPE(self[prop_no])),
|
|
Packit Service |
2781ba |
escape(g_param_spec_get_blurb (self[prop_no])));
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
if (!first)
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
first = TRUE;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (prop_no=0;prop_no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
gint parent_no;
|
|
Packit Service |
2781ba |
gboolean found=FALSE;
|
|
Packit Service |
2781ba |
for (parent_no=0;parent_no
|
|
Packit Service |
2781ba |
if (self[prop_no]==parent[parent_no])
|
|
Packit Service |
2781ba |
found=TRUE;
|
|
Packit Service |
2781ba |
/* only print properties if we are an addition compared to
|
|
Packit Service |
2781ba |
* the parent class
|
|
Packit Service |
2781ba |
*/
|
|
Packit Service |
2781ba |
if (found)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
if (first)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "Inherited Properties");
|
|
Packit Service |
2781ba |
first = FALSE;
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
fprintf (file, "%s %s%s\n",
|
|
Packit Service |
2781ba |
g_param_spec_get_name (self[prop_no]),
|
|
Packit Service |
2781ba |
g_type_name (G_OBJECT_TYPE(self[prop_no])),
|
|
Packit Service |
2781ba |
escape(g_param_spec_get_blurb (self[prop_no])));
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
if (!first)
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (self)
|
|
Packit Service |
2781ba |
g_free (self);
|
|
Packit Service |
2781ba |
if (parent)
|
|
Packit Service |
2781ba |
g_free (parent);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
static void
|
|
Packit Service |
2781ba |
details_for_type (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
list_properties (type, 0);
|
|
Packit Service |
2781ba |
fprintf (file, "\n");
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void
|
|
Packit Service |
2781ba |
collapse_all (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GType *children;
|
|
Packit Service |
2781ba |
guint count;
|
|
Packit Service |
2781ba |
gint no;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "hide(\"x_%s\");", g_type_name(type));
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
children=g_type_children (type, &count);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!children)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (no=0; no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
collapse_all (children[no]);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
g_free (children);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void
|
|
Packit Service |
2781ba |
expand_all (GType type)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GType *children;
|
|
Packit Service |
2781ba |
guint count;
|
|
Packit Service |
2781ba |
gint no;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "show(\"x_%s\");", g_type_name(type));
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
children=g_type_children (type, &count);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!children)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (no=0; no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
expand_all (children[no]);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
g_free (children);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void
|
|
Packit Service |
2781ba |
introspect (GType type,
|
|
Packit Service |
2781ba |
gint indent)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GType *children;
|
|
Packit Service |
2781ba |
guint count;
|
|
Packit Service |
2781ba |
gint no;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, " \n");
|
|
Packit Service |
2781ba |
fprintf (file, "\n", g_type_name (type),
|
|
Packit Service |
2781ba |
g_type_name (type));
|
|
Packit Service |
2781ba |
list_superclasses (type);
|
|
Packit Service |
2781ba |
details_for_type (type);
|
|
Packit Service |
2781ba |
list_subclasses (type);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
children=g_type_children (type, &count);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!children)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (no=0; no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
introspect (children[no], indent+2);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
g_free (children);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
void
|
|
Packit Service |
2781ba |
introspect_overview (GType type,
|
|
Packit Service |
2781ba |
gint indent)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GType *children;
|
|
Packit Service |
2781ba |
guint count;
|
|
Packit Service |
2781ba |
gint no;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!type)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "\n"
|
|
Packit Service |
2781ba |
"\n"
|
|
Packit Service |
2781ba |
"",
|
|
Packit Service |
2781ba |
g_type_name (type),
|
|
Packit Service |
2781ba |
g_type_name (type),
|
|
Packit Service |
2781ba |
g_type_name (type)
|
|
Packit Service |
2781ba |
);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
children=g_type_children (type, &count);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
list_properties_simple (type);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
if (!children)
|
|
Packit Service |
2781ba |
return;
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
for (no=0; no
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
introspect_overview (children[no], indent+1);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
fprintf (file, "");
|
|
Packit Service |
2781ba |
g_free (children);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
gint
|
|
Packit Service |
2781ba |
stuff (gint argc,
|
|
Packit Service |
2781ba |
gchar **argv)
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
g_thread_init (NULL);
|
|
Packit Service |
2781ba |
gegl_init (&argc, &argv);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
{
|
|
Packit Service |
2781ba |
GeglNode *gegl = g_object_new (GEGL_TYPE_NODE, NULL);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
GeglNode *save = gegl_node_new_child (gegl,
|
|
Packit Service |
2781ba |
"operation", "gegl:png-save",
|
|
Packit Service |
2781ba |
"path", "/dev/null",
|
|
Packit Service |
2781ba |
NULL);
|
|
Packit Service |
2781ba |
GeglNode *crop = gegl_node_new_child (gegl,
|
|
Packit Service |
2781ba |
"operation", "gegl:crop",
|
|
Packit Service |
2781ba |
"x", 0.0,
|
|
Packit Service |
2781ba |
"y", 0.0,
|
|
Packit Service |
2781ba |
"width", 50.0,
|
|
Packit Service |
2781ba |
"height", 50.0,
|
|
Packit Service |
2781ba |
NULL);
|
|
Packit Service |
2781ba |
GeglNode *png_load = gegl_node_new_child (gegl,
|
|
Packit Service |
2781ba |
"operation", "gegl:checkerboard",
|
|
Packit Service |
2781ba |
NULL);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
/* connect operations */
|
|
Packit Service |
2781ba |
gegl_node_link_many (png_load, crop, save, NULL);
|
|
Packit Service |
2781ba |
|
|
Packit Service |
2781ba |
/* then the whole output region */
|
|
Packit Service |
2781ba |
gegl_node_process (save);
|
|
Packit Service |
2781ba |
g_object_unref (gegl);
|
|
Packit Service |
2781ba |
}
|
|
Packit Service |
2781ba |
return 0;
|
|
Packit Service |
2781ba |
}
|