lottie/vector : add a example to test the vector module.
[platform/core/uifw/lottie-player.git] / example / evasapp.h
1 #ifndef EVASAPP_H
2 #define EVASAPP_H
3
4 #ifndef EFL_BETA_API_SUPPORT
5 #define EFL_BETA_API_SUPPORT
6 #endif
7
8 #ifndef EFL_EO_API_SUPPORT
9 #define EFL_EO_API_SUPPORT
10 #endif
11
12 #include <Eo.h>
13 #include <Efl.h>
14 #include <Evas.h>
15 #include <Ecore.h>
16 #include <Ecore_Evas.h>
17 #include <Ecore_Input.h>
18 #include<vector>
19 #include<string>
20
21
22 typedef void (*appCb)(void *userData, void *extra);
23 class EvasApp
24 {
25 public:
26     EvasApp(int w, int h);
27     void setup();
28     void resize(int w, int h);
29     int width() const{ return mw;}
30     int height() const{ return mh;}
31     void run();
32     Ecore_Evas * ee() const{return mEcoreEvas;}
33     Evas * evas() const {return mEvas;}
34     Efl_VG * root() const {return mRoot;}
35     void addExitCb(appCb exitcb, void *data) {mExitCb = exitcb; mExitData = data;}
36     void addResizeCb(appCb resizecb, void *data) {mResizeCb = resizecb; mResizeData = data;}
37     void addKeyCb(appCb keycb, void *data) {mKeyCb = keycb; mKeyData = data;}
38     void addRenderPreCb(appCb renderPrecb, void *data) {mRenderPreCb = renderPrecb; mRenderPreData = data;}
39     static std::vector<std::string> jsonFiles(const std::string &dir, bool recurse=false);
40 public:
41     int           mw;
42     int           mh;
43     Ecore_Evas   *mEcoreEvas;
44     Evas         *mEvas;
45     Efl_VG       *mRoot;
46     Evas_Object  *mVg;
47     Evas_Object  *mBackground;
48     appCb        mResizeCb;
49     void        *mResizeData;
50     appCb        mExitCb;
51     void        *mExitData;
52     appCb        mKeyCb;
53     void        *mKeyData;
54     appCb        mRenderPreCb;
55     void        *mRenderPreData;
56 };
57 #endif //EVASAPP_H