Re: [Vala] Genie, subclassing and some help!
- From: Andrew <rugby471 gmail com>
- To: Abderrahim Kitouni <a kitouni gmail com>
- Cc: vala-list gnome org
- Subject: Re: [Vala] Genie, subclassing and some help!
- Date: Fri, 25 Jun 2010 18:49:21 +0100
On 25/06/10 10:29, Abderrahim Kitouni wrote:
Hi,
2010/6/25 Andrew <rugby471 gmail com>:
On 25/06/10 09:00, Abderrahim Kitouni wrote:
Hi,
2010/6/25 Andrew <rugby471 gmail com>:
Thankyou for your help.
I tried the first method but it didn't work (it is a Gtk object and so I
doubted it would due to what you said above). I then tried to do the
second method but I didn't really understand what to do.
Could you do an example with this
http://people.canonical.com/~ted/libappindicator/current/AppIndicator.html#app-indicator-new
?
Take a look at the properties section [1], the "construct only"
properties cannot be changed afterwards and so need to be passed to
Object(...) if you don't want the default value. The other is
icon-name (which becomes icon_name in Vala/Genie).
What we notice here is that the "usually" part in my past message
doesn't work : category is passed to the creation method as an enum
but is stored in the property as a string. I'm not sure how to do the
mapping, you may need to look at the source of app_indicator_new
HTH,
Abderrahim
[1] http://people.canonical.com/~ted/libappindicator/current/AppIndicator.html#AppIndicator.properties
Sorry maybe I didn't explain, I am using Genie for the VERY FIRST time
and so what you are saying doesn't really mean anything to me.
Could you give me an example that I could learn off of?
I assumed you knew a bit of C and GObject to look at the source [1],
you need to do something similar to this function in your construct
(be careful to reindent correctly when copy-pasting)
construct (id: string, icon: string, category: AppIndicatorCategory)
Object(id: id, icon_name: icon, category: category_from_enum(category))
def category_from_enum (category: AppIndicatorCategory): string
var categ_cls = (EnumClass) typeof(AppIndicatorCategory).class_ref()
return categ_class.get_value(category).value_nick
I didn't test this code but it should work.
It's not always that difficult with Genie/Vala (Object(id: id,
icon_name: icon, category: category) should be enough), it's just that
this library is a bit weird (the value is an enum in the constructor
and internally, but is exposed as a string to gobject). I think you
should report this.
HTH,
Abderrahim
[1]
http://bazaar.launchpad.net/~indicator-applet-developers/indicator-application/trunk/annotate/head:/src/app-indicator.c#L1009
Thankyou very much :-) That seemed to work and hopefully I shall try
less ambitious things next time :-)
However now I get this error, is this a bug in the library (this is
without invoking a new instance of the subclass, just compiling the
definition of the subclass)?
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c: In
function ‘wapp_indicator_category_from_enum’:
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c:82: error:
‘APP_INDICATOR_TYPE_CATEGORY’ undeclared (first use in this function)
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c:82: error:
(Each undeclared identifier is reported only once
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c:82: error:
for each function it appears in.)
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c: In
function ‘wapp_indicator_get_type’:
/home/andrew/Software/Projects/wasiliana/src/indicator.vala.c:160:
error: ‘APP_INDICATOR_TYPE_INDICATOR’ undeclared (first use in this
function)
error: cc exited with status 256
--
Andrew
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]