module gfx {
module geom {
interface Shape { };
interface Rectangle : [Shape] { };
interface Path : [Shape] { };
};
interface GraphicsContext {
void fillShape([geom::Shape] s);
void strokeShape([geom::Shape] s);
};
};
module geom {
interface Shape { };
interface Rectangle : [Shape] { };
interface Path : [Shape] { };
};
interface Shape { };
interface Rectangle : [Shape] { };
interface Path : [Shape] { };
interface GraphicsContext {
void fillShape([geom::Shape] s);
void strokeShape([geom::Shape] s);
};
void fillShape([geom::Shape] s);
void strokeShape([geom::Shape] s);
module gui {
interface Widget { };
interface Window : [Widget] {
[gfx::GraphicsContext] getGraphicsContext();
};
interface Button : [Widget] { };
};
interface Widget { };
interface Window : [Widget] {
[gfx::GraphicsContext] getGraphicsContext();
};
[gfx::GraphicsContext] getGraphicsContext();
interface Button : [Widget] { };