c84fc1a980ff96a559f8efdae2b7031fd087a12e
[framework/telephony/tel-plugin-socket_communicator.git] / test / menu.h
1 /*
2  * tel-plugin-socket-communicator
3  *
4  * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #ifndef __MENU_H__
22 #define __MENU_H__
23
24 __BEGIN_DECLS
25
26 #define ANSI_COLOR_NORMAL "\e[0m"
27
28 #define ANSI_COLOR_BLACK "\e[0;30m"
29 #define ANSI_COLOR_RED "\e[0;31m"
30 #define ANSI_COLOR_GREEN "\e[0;32m"
31 #define ANSI_COLOR_BROWN "\e[0;33m"
32 #define ANSI_COLOR_BLUE "\e[0;34m"
33 #define ANSI_COLOR_MAGENTA "\e[0;35m"
34 #define ANSI_COLOR_CYAN "\e[0;36m"
35 #define ANSI_COLOR_LIGHTGRAY "\e[0;37m"
36
37 #define ANSI_COLOR_DARKGRAY "\e[1;30m"
38 #define ANSI_COLOR_LIGHTRED "\e[1;31m"
39 #define ANSI_COLOR_LIGHTGREEN "\e[1;32m"
40 #define ANSI_COLOR_YELLOW "\e[1;33m"
41 #define ANSI_COLOR_LIGHTBLUE "\e[1;34m"
42 #define ANSI_COLOR_LIGHTMAGENTA "\e[1;35m"
43 #define ANSI_COLOR_LIGHTCYAN "\e[1;36m"
44 #define ANSI_COLOR_WHITE "\e[1;37m"
45
46 #define msg(fmt,args...)  { fprintf(stdout, fmt "\n", ##args); fflush(stdout); }
47 #define msgn(fmt,args...)  { fprintf(stdout, fmt, ##args); fflush(stdout); }
48
49 #define MENU_DATA_SIZE  255
50
51 typedef struct menu_manager MManager;
52
53 struct menu_data {
54         char *key;
55         char *title;
56         struct menu_data *sub_menu;
57         int (*callback)(MManager *mm, struct menu_data *menu);
58         char *data;
59 };
60
61 MManager* menu_manager_new(struct menu_data items[], GMainLoop *mainloop);
62 int       menu_manager_run(MManager *mm);
63 int       menu_manager_set_user_data(MManager *mm, void *user_data);
64 void*     menu_manager_ref_user_data(MManager *mm);
65
66 gboolean  on_menu_manager_keyboard(GIOChannel *src, GIOCondition con, gpointer data);
67
68 __END_DECLS
69
70 #endif