00001 00007 /* 00008 Copyright (C) 2002-2010 UFO: Alien Invasion. 00009 00010 This program is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU General Public License 00012 as published by the Free Software Foundation; either version 2 00013 of the License, or (at your option) any later version. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00018 00019 See the GNU General Public License for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with this program; if not, write to the Free Software 00023 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00024 00025 */ 00026 00027 #ifndef CLIENT_UI_UI_INTERNAL_H 00028 #define CLIENT_UI_UI_INTERNAL_H 00029 00030 #define UI_MAX_WINDOWS 128 00031 #define UI_MAX_COMPONENTS 64 00032 #define UI_MAX_WINDOWSTACK 32 00033 #define UI_MAX_ACTIONS 2*8192 00034 #define UI_MAX_VARIABLESTACK 64 00035 00036 #include "node/ui_node_window.h" 00037 #include "node/ui_node_model.h" 00038 #include "ui_actions.h" 00039 #include "ui_nodes.h" 00040 #include "ui_icon.h" 00041 #include "ui_input.h" 00042 #include "ui_expression.h" 00043 #include "ui_data.h" 00044 00048 typedef struct uiGlobal_s { 00049 00058 uiSharedData_t sharedData[UI_MAX_DATAID]; 00059 00063 uiValue_t variableStack[UI_MAX_VARIABLESTACK]; 00064 00065 int numNodes; 00066 00067 uiNode_t* windows[UI_MAX_WINDOWS]; 00068 int numWindows; 00069 00070 uiNode_t* components[UI_MAX_COMPONENTS]; 00071 int numComponents; 00072 00073 byte *adata, *curadata; 00074 int adataize; 00075 00076 uiNode_t *windowStack[UI_MAX_WINDOWSTACK]; 00077 int windowStackPos; 00078 00079 uiAction_t actions[UI_MAX_ACTIONS]; 00080 int numActions; 00081 00082 uiModel_t models[UI_MAX_MODELS]; 00083 int numModels; 00084 00085 uiExcludeRect_t excludeRect[UI_MAX_EXLUDERECTS]; 00086 int numExcludeRect; 00087 00088 uiIcon_t icons[UI_MAX_ICONS]; 00089 int numIcons; 00090 00091 uiKeyBinding_t keyBindings[UI_MAX_KEYBINDING]; 00092 int numKeyBindings; 00093 00094 } uiGlobal_t; 00095 00096 extern uiGlobal_t ui_global; 00097 00098 extern memPool_t *ui_sysPool; 00099 extern memPool_t *ui_dynStringPool; 00100 extern memPool_t *ui_dynPool; 00101 00102 #endif