LibRCC
|
00001 /* 00002 LibRCC - public interface 00003 00004 Copyright (C) 2005-2008 Suren A. Chilingaryan <csa@dside.dyndns.org> 00005 00006 This library is free software; you can redistribute it and/or modify it 00007 under the terms of the GNU Lesser General Public License version 2.1 or later 00008 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, but WITHOUT 00011 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00012 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 00013 for more details. 00014 00015 You should have received a copy of the GNU Lesser General Public License 00016 along with this program; if not, write to the Free Software Foundation, Inc., 00017 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00018 */ 00019 00020 #ifndef _LIBRCC_UI_H 00021 #define _LIBRCC_UI_H 00022 00023 #include <librcc.h> 00024 00025 #ifdef __cplusplus 00026 extern "C" { 00027 #endif 00028 00029 typedef struct rcc_ui_context_t *rcc_ui_context; 00030 00031 /******************************************************************************* 00032 ************************************ Names ************************************* 00033 *******************************************************************************/ 00034 00035 struct rcc_name_t { 00036 const char *sn; 00037 const char *name; 00038 }; 00039 typedef struct rcc_name_t rcc_name; 00040 00041 typedef const char *rcc_option_value_name; 00042 typedef rcc_option_value_name *rcc_option_value_names; 00043 00044 struct rcc_option_name_t { 00045 rcc_option option; 00046 const char *name; 00047 rcc_option_value_names value_names; 00048 }; 00049 typedef struct rcc_option_name_t rcc_option_name; 00050 00051 int rccUiSetLanguageNames(rcc_ui_context ctx, rcc_name *names); 00052 int rccUiSetCharsetNames(rcc_ui_context ctx, rcc_name *names); 00053 int rccUiSetEngineNames(rcc_ui_context ctx, rcc_name *names); 00054 00055 int rccUiSetOptionNames(rcc_ui_context ctx, rcc_option_name *names); 00056 int rccUiSetClassNames(rcc_ui_context ctx); 00057 00058 /* page & boxes */ 00059 typedef const char *rcc_ui_box_name; 00060 struct rcc_ui_language_frame_name_t { 00061 const char *title; 00062 rcc_ui_box_name language; 00063 }; 00064 typedef struct rcc_ui_language_frame_name_t rcc_ui_language_frame_name; 00065 struct rcc_ui_charset_frame_name_t { 00066 const char *title; 00067 }; 00068 typedef struct rcc_ui_charset_frame_name_t rcc_ui_charset_frame_name; 00069 struct rcc_ui_engine_frame_name_t { 00070 const char *title; 00071 rcc_ui_box_name engine; 00072 }; 00073 typedef struct rcc_ui_engine_frame_name_t rcc_ui_engine_frame_name; 00074 struct rcc_ui_page_name_t { 00075 const char *title; 00076 rcc_ui_language_frame_name language; 00077 rcc_ui_charset_frame_name charset; 00078 rcc_ui_engine_frame_name engine; 00079 }; 00080 typedef struct rcc_ui_page_name_t rcc_ui_page_name; 00081 00082 rcc_ui_page_name *rccUiGetDefaultPageName(); 00083 00084 const char *rccUiGetLanguageName(rcc_ui_context ctx, rcc_language_id language_id); 00085 const char *rccUiGetClassName(rcc_ui_context ctx, rcc_class_id class_id); 00086 const char *rccUiGetCharsetName(rcc_ui_context ctx, rcc_language_id language_id, rcc_class_id class_id, rcc_charset_id charset_id); 00087 const char *rccUiGetEngineName(rcc_ui_context ctx, rcc_language_id language_id, rcc_engine_id engine_id); 00088 const char *rccUiGetOptionName(rcc_ui_context ctx, rcc_option option); 00089 const char *rccUiGetOptionValueName(rcc_ui_context ctx, rcc_option option, rcc_option_value value); 00090 00091 /******************************************************************************* 00092 ************************************ API *************************************** 00093 *******************************************************************************/ 00094 00095 typedef void *rcc_ui_widget; 00096 typedef void *rcc_ui_box; 00097 typedef void *rcc_ui_frame; 00098 typedef void *rcc_ui_page; 00099 00103 int rccUiInit(); 00109 void rccUiFree(); 00110 00118 rcc_ui_context rccUiCreateContext(rcc_context rccctx); 00124 void rccUiFreeContext(rcc_ui_context ctx); 00125 00126 int rccUiHideOption(rcc_ui_context ctx, rcc_option option); 00127 int rccUiUnHideOption(rcc_ui_context ctx, rcc_option option); 00128 00134 int rccUiRestoreLanguage(rcc_ui_context ctx); 00140 int rccUiRestore(rcc_ui_context ctx); 00146 int rccUiUpdate(rcc_ui_context ctx); 00147 00148 rcc_ui_widget rccUiGetLanguageMenu(rcc_ui_context ctx); 00149 rcc_ui_widget rccUiGetCharsetMenu(rcc_ui_context ctx, rcc_class_id id); 00150 rcc_ui_widget rccUiGetEngineMenu(rcc_ui_context ctx); 00151 rcc_ui_widget rccUiGetOptionMenu(rcc_ui_context ctx, rcc_option option); 00152 00153 rcc_ui_box rccUiGetLanguageBox(rcc_ui_context ctx, const char *title); 00154 rcc_ui_box rccUiGetCharsetBox(rcc_ui_context ctx, rcc_class_id id, const char *title); 00155 rcc_ui_box rccUiGetEngineBox(rcc_ui_context ctx, const char *title); 00156 rcc_ui_box rccUiGetOptionBox(rcc_ui_context ctx, rcc_option option, const char *title); 00157 00158 rcc_ui_frame rccUiGetLanguageFrame(rcc_ui_context ctx, rcc_ui_language_frame_name *name); 00159 rcc_ui_frame rccUiGetCharsetsFrame(rcc_ui_context ctx, rcc_ui_charset_frame_name *name); 00160 rcc_ui_frame rccUiGetEngineFrame(rcc_ui_context ctx, rcc_ui_engine_frame_name *name); 00161 00170 rcc_ui_page rccUiGetPage(rcc_ui_context ctx, rcc_ui_page_name *name); 00171 00172 #ifdef __cplusplus 00173 } 00174 #endif 00175 00176 #endif /* _LIBRCC_UI_H */