Re: [Vala] bah! protected indeed! Re: structs unions and types
- From: Sam Liddicott <sam liddicott com>
- To: Jared Moore <jaredm gmx com>
- Cc: vala-list gnome org
- Subject: Re: [Vala] bah! protected indeed! Re: structs unions and types
- Date: Mon, 23 Jun 2008 15:28:30 +0100
* Jared Moore wrote, On 23/06/08 13:27:
Hi Sam,
I'm having trouble understanding exactly what you are trying to access
where. Would you please be able to send a complete and minimal test
case, i.e. a standalone program which is as small as possible and
demonstrates the problem.
sorry; I'm confusing my larger design problem with smaller technical
problems and it makes it hard to see what the specific complaint is.
here is a small file; t.vala, compile it with:
valac --pkg gtk+-2.0 t.vala
The problem is that Subclass cannot access protected member "widgets" of
the Superclass.
sam mojojojo:~/projects/vala/phoneui/src$ valac --pkg gtk+-2.0 t.vala
t.vala:13.5-13.16: error: Access to private member `window_widgets.blah'
denied
widgets.blah=null;
^^^^^^^^^^^^
Compilation failed: 1 error(s), 0 warning(s)
The widgets member is declared in the .h file (therefore public-ish),
but vala still call's it private.
using Gtk;
protected struct window_widgets {
Gtk.Object blah;
}
public class Superclass : Gtk.Object {
protected window_widgets widgets;
}
public class Subclass : Superclass {
construct {
widgets.blah=null;
}
}
Cheers,
Jared
2008/6/23 Sam Liddicott <sam liddicott com>:
Even defining it as an outer class makes vala think that it is private:
/* widgets is still private */
public class window_widgets {
Gtk.Widget blah;
Gtk.Widget blah2;
}
public class PhoneUIGlade : Gtk.Object {
protected Glade.XML xml;
public window_widgets widgets;
}
but if I go back to a struct, it "works" and for some reason isn't giving me
incomplete class either.
public struct window_widgets {
Gtk.Widget blah;
Gtk.Widget blah2;
}
public class PhoneUIGlade : Gtk.Object {
protected Glade.XML xml;
public window_widgets widgets;
}
But if I change "public" to "protected" (below) the generated .h files are
correctly exposing the protected members, but vala still complains that:
Access to private member `window_widgets.blah' denied
if a subclass tries to access the widgets member.
protected struct window_widgets {
Gtk.Widget blah;
Gtk.Widget blah2;
}
public class PhoneUIGlade : Gtk.Object {
protected Glade.XML xml;
protected window_widgets widgets;
}
* Sam Liddicott wrote, On 23/06/08 12:58:
public class PhoneUIGlade : Gtk.Object {
protected Glade.XML xml;
public class window_widgets {
Gtk.Widget blah;
Gtk.Widget blah2;
}
protected window_widgets widgets;
private Module module;
}
Does not work; a subclass cannot access the protected member "widgets" with
the error:
error: Access to private member `PhoneUIGlade.window_widgets.blah' denied
Making the class and variable public do not work:
public class PhoneUIGlade : Gtk.Object {
protected Glade.XML xml;
public class window_widgets {
Gtk.Widget blah;
Gtk.Widget blah2;
}
public window_widgets widgets;
private Module module;
}
aggghhhh
Sam
________________________________
_______________________________________________
Vala-list mailing list
Vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list
_______________________________________________
Vala-list mailing list
Vala-list gnome org
http://mail.gnome.org/mailman/listinfo/vala-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]