[Gambas-devel] Fwd: Re: "Overriding" virtual classes
Benoît Minisini
gambas at ...1...
Fri Jul 11 20:09:52 CEST 2014
Le 10/07/2014 23:32, Tobias Boege a écrit :
>>
>> 1) Can you commit your code?
>>
>
> It's not really done yet (and by "it" I mean just the interface). It's the
> examination period currently for me, so I will take entire days off to work
> on Gambas but afterwards entire weeks to prepare.
>
> Tomorrow noon, I'll begin a Gambas day again and can hopefully incorporate
> the suggestions from gambas-user into my mind map :-)
>
>> 2) Do you want the user to implement its own graph class in Gambas or in
>> C/C++?
>>
>
> In Gambas! I succeeded to implement a Graph which is implicitly defined by
> an Image object (in pure Gambas), by inheriting native virtual classes (with
> the _Virtual_ClassName naming scheme, i.e. with underscores instead of dots,
> so that the appropriate source files can actually be created and used in
> Gambas code). I'll commit tomorrow, I hope.
>
> Regards,
> Tobi
>
Maybe you should do differently, like I did to implement the Paint class.
1) You implement only one set of classes, but they use an internal
"graph" interface that is just a structure of function pointers that do
the real job you need.
See 'cpaint_impl.cpp' in 'gb.qt4/src' for the syntax of the interface,
and 'CImage.cpp' to see how I declare using it in the Image class.
2) Then you must handle the special case of a Graph interface written in
Gambas, by making a dedicated interface that just calls the Gambas
functions, and an option to tell that you are using a Gambas class as
interface, and not a native one.
You have something like that with the highlighting method of the Editor
class. If you want to highlight Gambas code, an internal C function is
called. Otherwise a Gambas function is called.
Maybe I was not very clear, but you will ask me!
Regards,
--
Benoît Minisini
More information about the Devel
mailing list