LibRCC
librccui.h
Go to the documentation of this file.
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 */