summaryrefslogtreecommitdiff
path: root/pjsip-apps/src/pjsystest/gui.h
blob: 0ae1ba36c65735cf78bad8c81d9b3b86d1938f0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef __GUI_H__
#define __GUI_H__

#include <pj/types.h>

PJ_BEGIN_DECL

typedef char gui_title[32];

typedef void (*gui_menu_handler) (void);

typedef struct gui_menu 
{
    gui_title		 title;
    gui_menu_handler	 handler;
    unsigned		 submenu_cnt;
    struct gui_menu	*submenus[16];
} gui_menu;

enum gui_flag 
{
    WITH_OK = 0,
    WITH_YESNO = 1,
    WITH_OKCANCEL = 2
};

enum gui_key
{
    KEY_CANCEL = '9',
    KEY_NO = '0',
    KEY_YES = '1',
    KEY_OK = '1',
};

/* Initialize GUI with the menus and stuff */
PJ_DECL(pj_status_t) gui_init(gui_menu *menu);

/* Run GUI main loop */
PJ_DECL(pj_status_t) gui_start(gui_menu *menu);

/* Signal GUI mainloop to stop */
PJ_DECL(void) gui_destroy(void);

/* AUX: display messagebox */
PJ_DECL(enum gui_key) gui_msgbox(const char *title, const char *message, enum gui_flag flag);

/* AUX: sleep */
PJ_DECL(void) gui_sleep(unsigned sec);


PJ_END_DECL


#endif	/* __GUI_H__ */