apply FSL(Flora Software License)
[apps/core/preloaded/settings.git] / setting-common / include / setting-cfg.h
1 /*
2   * Copyright 2012  Samsung Electronics Co., Ltd
3   *
4   * Licensed under the Flora License, Version 1.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *     http://www.tizenopensource.org/license
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16
17
18 /**
19  *@defgroup setting-cfg
20  *configuration file management.
21  *Setting app is based on JSON scripting for configuration management.
22  */
23
24 #ifndef __SETTING_CFG_H__
25 #define __SETTING_CFG_H__
26
27 #include <glib.h>
28 #include <json-glib/json-glib.h>
29 #include <setting-common-resource.h>
30 #include <bundle.h>
31
32 /*****/
33
34 typedef enum _Cfg_Item_Type {
35         Cfg_Item_Pos_Uninstall = -1,
36         Cfg_Item_Pos_Level0 = 0,
37         Cfg_Item_Pos_Level1 = 1,
38         Cfg_Item_Pos_Level_All = 2,
39 } Cfg_Item_Position;
40
41
42 typedef enum _Cfg_Item_Reset_Type {
43         Cfg_Item_unResetable = 0,
44         Cfg_Item_Resetable = 1,
45 } Cfg_Item_Reset_Type;
46
47 typedef enum _cfg_error_type {
48         Cfg_Error_Type_Sucess = 0,
49         Cfg_Error_Type_CreateCfg_Failed = -1,
50         Cfg_Error_Type_Mkdir_Failed = -2,
51         Cfg_Error_Type_RemoveCfg_Failed = -3,
52         Cfg_Error_Type_ReadCfg_Failed = -4,
53         Cfg_Error_Type_DirPermissionDenied = -5,
54         Cfg_Error_Type_FilePermissionDenied = -6,
55 } Cfg_Error_Type;
56
57 typedef struct {
58         char *key_name;
59         char *item_name;
60         char *icon_path;
61         char *ug_args;
62         int pos;
63         int click_times;
64 } Setting_Cfg_Node_T;
65
66 void setting_cfg_print(void);
67
68 int setting_cfg_init(void);
69
70 void setting_cfg_exit(void);
71
72 int setting_cfg_file_update(void);
73
74 int setting_cfg_get_category_length(void);
75
76 char *setting_cfg_get_category_name(int category_index);
77
78 char *setting_cfg_get_category_display_name(int category_index);
79
80 void setting_cfg_set_category_display_name(int category_index, char *newstring);
81
82 int setting_cfg_get_menu_length(int category_index);
83
84 char *setting_cfg_get_string_field_idx(int category_index, int menu_index,
85                                        char *field_name);
86
87 int setting_cfg_get_int_field_idx(int category_index, int menu_index,
88                                   char *field_name);
89
90 char *setting_cfg_get_icon_path_idx(int category_index, int menu_index);
91
92 char *setting_cfg_get_ug_args_idx(int category_index, int menu_index);
93
94 char *setting_cfg_get_keyname_idx(int category_index, int menu_index);
95
96 char *setting_cfg_get_ugpath_idx(int category_index, int menu_index);
97
98 char *setting_cfg_get_ugpath(char *keyname);
99
100 int setting_cfg_get_pos_idx(int category_index, int menu_index);
101
102 int setting_cfg_get_pos(char *keyname);
103
104 void setting_cfg_set_pos_idx(int category_index, int menu_index, int pos);
105
106 void setting_cfg_set_pos(char *keyname, int pos);
107
108 int setting_cfg_get_click_times_idx(int category_index, int menu_index);
109
110 int setting_cfg_get_click_times(char *keyname);
111
112 void setting_cfg_set_click_times_idx(int category_index, int menu_index,
113                                      int click_times);
114
115 void setting_cfg_set_click_times(char *keyname, int click_times);
116
117 int setting_cfg_get_resetable_flag_idx(int category_index, int menu_index);
118
119 void setting_cfg_add_downloaded_app(char *keyname, char *icon_path,
120                                     char *ug_args, int pos);
121
122 void setting_cfg_remove_downloaded_app(char *keyname);
123
124
125 extern char *get_ug_path_from_ug_args(void *data);
126 extern bundle *get_bundle_from_ug_args(void *data);
127
128
129 #endif