1 /** 2 * 3 * $Id: UilDBDef.h,v 1.1 2004/08/28 19:23:37 dannybackx Exp $ 4 * 5 * Copyright (C) 1995 Free Software Foundation, Inc. 6 * Copyright (C) 1995-2000 LessTif Development Team 7 * 8 * This file is part of the GNU LessTif Library. 9 * 10 * This library is free software; you can redistribute it and/or 11 * modify it under the terms of the GNU Library General Public 12 * License as published by the Free Software Foundation; either 13 * version 2 of the License, or (at your option) any later version. 14 * 15 * This library is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * Library General Public License for more details. 19 * 20 * You should have received a copy of the GNU Library General Public 21 * License along with this library; if not, write to the Free 22 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * 24 **/ 25 26 27 #ifndef _UIL_UIL_DBDEF_H 28 #define _UIL_UIL_DBDEF_H 29 30 #ifdef __cplusplus 31 extern "C" { 32 #endif 33 34 35 #define _BIT_INDEX(_type) \ 36 (((unsigned int) (_type)) >> 3) 37 38 #define _BIT_MASK(_type) \ 39 (1 << (((unsigned int) (_type)) & 0x7)) 40 41 #define _BIT_SET(table_entry_addr, _type) \ 42 ( _BIT_MASK (_type) & \ 43 ( ((unsigned char *) (table_entry_addr)) \ 44 [ _BIT_INDEX (_type) ] ) ) 45 46 47 /* 48 * hash table size 49 */ 50 #define sym_k_hash_table_limit 127 51 52 53 /* 54 * entry types 55 */ 56 #define sym_k_error_entry (127) 57 #define sym_k_value_entry 1 58 #define sym_k_name_entry 2 59 #define sym_k_widget_entry 3 60 #define sym_k_control_entry 4 61 #define sym_k_forward_ref_entry 5 62 #define sym_k_external_def_entry 6 63 #define sym_k_argument_entry 7 64 #define sym_k_callback_entry 8 65 #define sym_k_module_entry 9 66 #define sym_k_proc_def_entry 10 67 #define sym_k_proc_ref_entry 11 68 #define sym_k_list_entry 12 69 #define sym_k_child_entry 13 70 #define sym_k_identifier_entry 14 71 #define sym_k_color_item_entry 15 72 #define sym_k_gadget_entry 16 73 #define sym_k_root_entry 17 74 #define sym_k_parent_list_entry 18 75 #define sym_k_nested_list_entry 19 76 #define sym_k_include_file_entry 20 77 #define sym_k_section_entry 21 78 #define sym_k_def_obj_entry 22 79 #define sym_k_UNUSED23_entry 23 80 #define sym_k_val_forward_ref_entry 24 81 #define sym_k_max_entry 24 82 83 84 /* 85 * entry flags 86 */ 87 #define sym_m_private (1 << 0) 88 #define sym_m_exported (1 << 1) 89 #define sym_m_imported (1 << 2) 90 #define sym_m_reference (1 << 3) 91 #define sym_m_builtin (1 << 4) 92 #define sym_m_obj_is_gadget (1 << 5) 93 94 95 /* 96 * output states 97 */ 98 #define sym_k_not_processed 0 99 #define sym_k_queued 1 100 #define sym_k_emitted 2 101 102 103 /* 104 * type values 105 */ 106 #define sym_k_any_value 1 107 #define sym_k_argument_value 2 108 #define sym_k_asciz_table_value 3 109 #define sym_k_bool_value 4 110 #define sym_k_char_8_value 5 111 #define sym_k_class_rec_name_value 6 112 #define sym_k_color_value 7 113 #define sym_k_color_table_value 8 114 #define sym_k_compound_string_value 9 115 #define sym_k_float_value 10 116 #define sym_k_font_value 11 117 #define sym_k_font_table_value 12 118 #define sym_k_icon_value 13 119 #define sym_k_identifier_value 14 120 #define sym_k_integer_value 15 121 #define sym_k_integer_table_value 16 122 #define sym_k_keysym_value 17 123 #define sym_k_pixmap_value 18 124 #define sym_k_reason_value 19 125 #define sym_k_rgb_value 20 126 #define sym_k_single_float_value 21 127 #define sym_k_string_table_value 22 128 #define sym_k_trans_table_value 23 129 #define sym_k_widget_ref_value 24 130 #define sym_k_xbitmapfile_value 25 131 #define sym_k_localized_string_value 26 132 #define sym_k_wchar_string_value 27 133 #define sym_k_fontset_value 28 134 #define sym_k_child_value 29 135 #define sym_k_max_value 29 136 #define sym_k_no_value (sym_k_max_value+1) 137 138 139 /* 140 * error values 141 */ 142 #define sym_k_error_value 0 143 #define sym_k_error_object 0 144 #define sym_k_error_charset 0 145 146 147 /* 148 * character sizes 149 */ 150 #define sym_k_onebyte_charsize 1 151 #define sym_k_twobyte_charsize 2 152 #define sym_k_mixed1_2byte_charsize 3 153 154 /* 155 * charset tags 156 */ 157 #define sym_k_userdefined_charset 1 158 #define sym_k_fontlist_default_tag 0 159 160 /* 161 * operator values 162 */ 163 #define sym_k_unspecified_op 0 164 #define sym_k_not_op 1 165 #define sym_k_unary_plus_op 2 166 #define sym_k_unary_minus_op 3 167 #define sym_k_comp_str_op 4 168 #define sym_k_wchar_str_op 5 169 #define sym_k_last_unary_op 5 170 #define sym_k_multiply_op 6 171 #define sym_k_divide_op 7 172 #define sym_k_add_op 8 173 #define sym_k_subtract_op 9 174 #define sym_k_left_shift_op 10 175 #define sym_k_right_shift_op 11 176 #define sym_k_and_op 12 177 #define sym_k_xor_op 13 178 #define sym_k_or_op 14 179 #define sym_k_cat_op 15 180 #define sym_k_last_binary_op 15 181 #define sym_k_valref_op 16 182 #define sym_k_coerce_op 17 183 #define sym_k_last_special_op 17 184 185 /* 186 * enum structure 187 */ 188 typedef struct 189 { 190 short int values_cnt; 191 unsigned short int *values; 192 } 193 UilEnumSetDescDef, *UilEnumSetDescDefPtr; 194 195 196 /* 197 * token class literals 198 */ 199 #define tkn_k_class_argument 1 200 #define tkn_k_class_charset 2 201 #define tkn_k_class_color 3 202 #define tkn_k_class_enumval 4 203 #define tkn_k_class_font 5 204 #define tkn_k_class_identifier 6 205 #define tkn_k_class_keyword 7 206 #define tkn_k_class_literal 8 207 #define tkn_k_class_reason 9 208 #define tkn_k_class_reserved 10 209 #define tkn_k_class_special 11 210 #define tkn_k_class_unused 12 211 #define tkn_k_class_class 13 212 #define tkn_k_class_child 14 213 214 /* 215 * keyword table entry 216 */ 217 typedef struct 218 { 219 unsigned char b_class; 220 unsigned short int b_subclass; 221 unsigned char b_length; 222 unsigned char b_token; 223 char *at_name; 224 } 225 key_keytable_entry_type; 226 227 228 229 #define Constraint_Tab 1 230 #define Key_Table 2 231 #define Key_Table_Case_Ins 3 232 #define Allowed_Argument_Table 4 233 #define Argument_Type_Table_Value 5 234 #define Charset_Xmstring_Names_Table 6 235 #define Charset_Wrdirection_Table 7 236 #define Charset_Parsdirection_Table 8 237 #define Charset_Charsize_Table 9 238 #define Charset_Lang_Names_Table 10 239 #define Charset_Lang_Codes_Table 11 240 #define Allowed_Control_Table 12 241 #define Enum_Set_Table 13 242 #define Argument_Enum_Set_Table 14 243 #define Enumval_Values_Table 15 244 #define Uil_Widget_Names 16 245 #define Uil_Argument_Names 17 246 #define Uil_Reason_Names 18 247 #define Uil_Enumval_names 19 248 #define Uil_Charset_Names 20 249 #define Related_Argument_Table 21 250 #define Allowed_Reason_Table 22 251 #define Uil_Widget_Funcs 23 252 #define Uil_Gadget_Funcs 24 253 #define Uil_Urm_Nondialog_Class 25 254 #define Uil_Urm_Subtree_Resource 26 255 #define Uil_Argument_Toolkit_Names 27 256 #define Uil_Reason_Toolkit_Names 28 257 #define Child_Class_Table 29 258 #define Allowed_Child_Table 30 259 #define Uil_Children_Names 31 260 261 #define DB_Compiled_Version 2 262 263 typedef struct _db_globals_struct 264 { 265 int version; 266 int uil_max_arg; 267 int uil_max_charset; 268 int charset_lang_table_max; 269 int uil_max_object; 270 int uil_max_reason; 271 int uil_max_enumval; 272 int uil_max_enumset; 273 int key_k_keyword_count; 274 int key_k_keyword_max_length; 275 int uil_max_child; 276 } 277 _db_globals; 278 279 typedef struct _db_header_struct 280 { 281 int table_id; 282 int num_items; 283 int table_size; 284 } 285 _db_header, *_db_header_ptr; 286 287 288 #ifdef __cplusplus 289 } 290 #endif 291 292 293 #endif /* _UIL_UIL_H */ 294