drawable: add fallback function.
This commit is contained in:
@@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
static GWENHYWFAR_CB void _freeData(void *bp, void *p);
|
static GWENHYWFAR_CB void _freeData(void *bp, void *p);
|
||||||
|
|
||||||
|
static int _drawFallback(AQDG_OBJECT *object, AQDG_DRAW_CONTEXT *g);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@@ -41,6 +43,7 @@ AQDG_OBJECT *AQDG_DrawableObject_new(AQDG_OBJECT *parent, uint32_t options)
|
|||||||
GWEN_INHERIT_SETDATA(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, object, xo, _freeData);
|
GWEN_INHERIT_SETDATA(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, object, xo, _freeData);
|
||||||
|
|
||||||
AQDG_Object_SetOptions(object, options);
|
AQDG_Object_SetOptions(object, options);
|
||||||
|
xo->drawFn=_drawFallback;
|
||||||
|
|
||||||
if (parent && GWEN_INHERIT_ISOFTYPE(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, parent)) {
|
if (parent && GWEN_INHERIT_ISOFTYPE(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, parent)) {
|
||||||
xo->fontId=AQDG_DrawableObject_GetFontId(parent);
|
xo->fontId=AQDG_DrawableObject_GetFontId(parent);
|
||||||
@@ -198,26 +201,34 @@ int AQDG_DrawableObject_Draw(AQDG_OBJECT *object, AQDG_DRAW_CONTEXT *g)
|
|||||||
AQDG_OBJECT_DRAWABLE *xo;
|
AQDG_OBJECT_DRAWABLE *xo;
|
||||||
|
|
||||||
xo=GWEN_INHERIT_GETDATA(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, object);
|
xo=GWEN_INHERIT_GETDATA(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, object);
|
||||||
if (xo) {
|
if (xo && xo->drawFn)
|
||||||
if (xo->drawFn)
|
return xo->drawFn(object, g);
|
||||||
return xo->drawFn(object, g);
|
}
|
||||||
else {
|
return 0;
|
||||||
AQDG_OBJECT *child;
|
}
|
||||||
|
|
||||||
AQDG_Draw_Context_DrawFilledRect(g,
|
|
||||||
xo->backgroundPenId,
|
|
||||||
AQDG_Object_GetAbsoluteX(object),
|
int _drawFallback(AQDG_OBJECT *object, AQDG_DRAW_CONTEXT *g)
|
||||||
AQDG_Object_GetAbsoluteY(object),
|
{
|
||||||
AQDG_Object_GetWidth(object),
|
AQDG_OBJECT_DRAWABLE *xo;
|
||||||
AQDG_Object_GetHeight(object));
|
|
||||||
child=AQDG_Object_Tree2_GetFirstChild(object);
|
xo=GWEN_INHERIT_GETDATA(AQDG_OBJECT, AQDG_OBJECT_DRAWABLE, object);
|
||||||
while(child) {
|
if (xo) {
|
||||||
AQDG_DrawableObject_Draw(child, g);
|
AQDG_OBJECT *child;
|
||||||
child=AQDG_Object_Tree2_GetNext(child);
|
|
||||||
}
|
AQDG_Draw_Context_DrawFilledRect(g,
|
||||||
return 1;
|
xo->backgroundPenId,
|
||||||
}
|
AQDG_Object_GetAbsoluteX(object),
|
||||||
|
AQDG_Object_GetAbsoluteY(object),
|
||||||
|
AQDG_Object_GetWidth(object),
|
||||||
|
AQDG_Object_GetHeight(object));
|
||||||
|
child=AQDG_Object_Tree2_GetFirstChild(object);
|
||||||
|
while(child) {
|
||||||
|
AQDG_DrawableObject_Draw(child, g);
|
||||||
|
child=AQDG_Object_Tree2_GetNext(child);
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -230,3 +241,4 @@ int AQDG_DrawableObject_Draw(AQDG_OBJECT *object, AQDG_DRAW_CONTEXT *g)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user