* gw:wcp types in Guile-Gnome
@ 2017-08-17 16:06 Tommi Höynälänmaa
2017-08-27 4:01 ` David Pirotte
0 siblings, 1 reply; 4+ messages in thread
From: Tommi Höynälänmaa @ 2017-08-17 16:06 UTC (permalink / raw)
To: guile-user
Pango attributes are instances of class <gw:wcp> in Guile-Gnome but they
are not GOOPS instances (i.e. (instance? x) returns false). Class name
<pango-attribute> is not defined at all. How can I test if an arbitrary
object belongs to some specific <gw:wcp> class, e.g. if an object is a
Pango attribute?
- Tommi Höynälänmaa
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: gw:wcp types in Guile-Gnome
2017-08-17 16:06 gw:wcp types in Guile-Gnome Tommi Höynälänmaa
@ 2017-08-27 4:01 ` David Pirotte
2017-09-06 12:20 ` Tommi Höynälänmaa
0 siblings, 1 reply; 4+ messages in thread
From: David Pirotte @ 2017-08-27 4:01 UTC (permalink / raw)
To: Tommi Höynälänmaa; +Cc: guile-user
[-- Attachment #1: Type: text/plain, Size: 2676 bytes --]
Hello,
Sorry for the late response, I was hoping someone else would answer before I
could, we are not that many but there are still a few very good guile-gnome
users out there ... :)
> Pango attributes are instances of class <gw:wcp> in Guile-Gnome but they
> are not GOOPS instances (i.e. (instance? x) returns false). Class name
> <pango-attribute> is not defined at all.
Indeed, pango attributes are opaque pointers, in the manual you see:
Class: <pango-attribute>
Opaque pointer.
This class defines no direct slots.
Note that the manual is automatically generated, which is why you read 'Class:
<pango-attrobute>, but on the next entry you can also read 'Opaque pointer', which
is an indication for users that the class has not been 'optimally' wrapped:
they are not goops classes - subclass of <gobject>, such as <gtk-window>,
they are (G-Wrap) opaque pointers.
In the manual, references to <pango-attribute> means it wish to receive an opaque
pointer of the corresponding attribute ... and these are returned by the interface
creating pango attributes:
pango-attr-size-new, pango-attr-font-desc-new ...
Opaque pointers are low level G-Wrap beats, so you don't want to involve yourself
there :). Their printing representation miss leaded you to believe they are
instances of ... which is not the case. When you create an attribute:
scheme@(guile-user)> (pango-attr-size-new 10)
$3 = #<gw:wcp <pango-attribute> 0x562572ca8c40>
in the above, gw:wcp stands for 'g-wrap:wrap C type', and what you read is
just an opaque pointer printing representation for (pango-attr-size-new 10)
Just for info, below is a copy ot the automatically G-Wrap generated definition for
pango-attr-size-new [1]
> How can I test if an arbitrary object belongs to some specific <gw:wcp> class,
> e.g. if an object is a Pango attribute?
You can't, you have to use their creator interfaces and attribute list operators ...
scheme@(guile-user)> (pango-attr-list-new)
$2 = #<<pango-attr-list> 562572e2f260 [native]>
scheme@(guile-user)> (pango-attr-size-new 10)
$3 = #<gw:wcp <pango-attribute> 0x562572ca8c40>
scheme@(guile-user)> (pango-attr-list-insert $2 $3)
scheme@(guile-user)>
HTH,
David
[1]
{
const char *gw__tmp1217_arg_types[1];
static GWTypeSpec gw__tmp1218_arg_typespecs[] = { GW_TYPESPEC_CALLER_OWNED, };
gw__tmp1217_arg_types[0] = "int";
gw_wrapset_add_function(gw__tmp0_c_info, pango_attr_size_new, 1, 0, "<pango-attribute>", GW_TYPESPEC_CALLER_OWNED, gw__tmp1217_arg_types, gw__tmp1218_arg_typespecs, "pango-attr-size-new", NULL, GW_FUNCTION_FLAG_LEAVE_RUNTIME);
}
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: gw:wcp types in Guile-Gnome
2017-08-27 4:01 ` David Pirotte
@ 2017-09-06 12:20 ` Tommi Höynälänmaa
2017-09-06 22:45 ` David Pirotte
0 siblings, 1 reply; 4+ messages in thread
From: Tommi Höynälänmaa @ 2017-09-06 12:20 UTC (permalink / raw)
To: David Pirotte; +Cc: guile-user
Hi
IMHO it would not violate opaqueness if you could find out (runtime)
which wct class a wcp value belongs to.
- Tommi Höynälänmaa
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: gw:wcp types in Guile-Gnome
2017-09-06 12:20 ` Tommi Höynälänmaa
@ 2017-09-06 22:45 ` David Pirotte
0 siblings, 0 replies; 4+ messages in thread
From: David Pirotte @ 2017-09-06 22:45 UTC (permalink / raw)
To: Tommi Höynälänmaa; +Cc: guile-user
[-- Attachment #1: Type: text/plain, Size: 758 bytes --]
Hello,
> IMHO it would not violate opaqueness if you could find out (runtime)
> which wct class a wcp value belongs to.
'opaque' is just a name, there is no 'properties' such that one could 'violate' (or
not) an opaque type: these are just 'opaque' pointers, g-wrap pointers to a C
values, and these values, in the case of pango attributes, must be created using
their corresponding interface, as I wrote in my previus answer...
What you want to achieve wrt (gnome pango), in the current situation, is simply
impossible. To achieve that, you would need to 'manually' wrap pango attribute class
and subclasses ... something I'm not going to work on, sorry (and and I really would
not spend any time on this if I were you ... my 2c)
David
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-06 22:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-17 16:06 gw:wcp types in Guile-Gnome Tommi Höynälänmaa
2017-08-27 4:01 ` David Pirotte
2017-09-06 12:20 ` Tommi Höynälänmaa
2017-09-06 22:45 ` David Pirotte
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).