view src/mbaf/mbapp.c @ 439:254854ed479c

Fix bug of _find_shape_in_pos(). It can not find a correct shape for a specified point. Since it call _shape_pos_is_in_cairo() directly, cairo_new_path() is not called to clear path after each calling for a shape. So, old path would interference later testing. It should call _shape_pos_is_in() instead of _shape_pos_is_in_cairo().
author Thinker K.F. Li <thinker@branda.to>
date Thu, 30 Jul 2009 15:42:47 +0800
parents 2e97e8082d83
children 84ce2d4a8c3f
line wrap: on
line source

#include <mb.h>
#include <mbapp.h>
MBApp *MBApp_Init(char *module)
{
    MBApp *app = (MBApp *) malloc(sizeof(MBApp));
    X_MB_runtime_t *rt;

    rt = X_MB_new(":0.0", 800, 600);

    app->rt = rt;
    app->rdman =  X_MB_rdman(rt);
    app->kbevents = X_MB_kbevents(rt);
    app->rootsprite= sprite_load(module,app->rdman, app->rdman->root_coord);
    rdman_attach_backend(app->rdman, rt);
    MB_SPRITE_GOTO_SCENE(app->rootsprite, 1);
    return app;
}

void MBApp_setData(MBApp *app,void *data)
{
    app->private = (void *) data;
}

mb_tman_t *MBApp_getTimer(MBApp *app)
{
    return X_MB_tman(app->rt);
}

void MBApp_loop(MBApp *en)
{
    /*
     * Start handle connections, includes one to X server.
     * User start to interact with the application.
     */
    X_MB_handle_connection(en->rt);

    /*
     * Clean
     */
    X_MB_free(en->rt);
    free(en);
}