/* =========================================================================== Copyright (C) 2015 the OpenMoHAA team This file is part of OpenMoHAA source code. OpenMoHAA source code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. OpenMoHAA source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenMoHAA source code; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ #include "ui_local.h" uidef_t uid; uiexport_t uie; uiimport_t uii; uiGlobals_t ui; void UIE_AddFileToList(const char *name) { ui.fileList.AddTail(name); } void UIE_ResolutionChanged(void) { UIRect2D frame(0, 0, uid.vidWidth, uid.vidHeight); uWinMan.setFrame(frame); uWinMan.RefreshShadersFromList(); } void UI_GetMouseState(int *mouseX, int *mouseY, int *flags) { if (mouseX) { *mouseX = uid.mouseX; } if (mouseY) { *mouseY = uid.mouseY; } if (flags) { *flags = uid.mouseFlags; } } int UI_GetCvarInt(const char *name, int def) { cvar_t *cvar = uii.Cvar_Find(name); if (!cvar) { return def; } if (cvar->latchedString) { return atoi(cvar->latchedString); } return cvar->integer; } float UI_GetCvarFloat(const char *name, float def) { cvar_t *cvar = uii.Cvar_Find(name); if (!cvar) { return def; } if (cvar->latchedString) { return atof(cvar->latchedString); } return cvar->value; } const char *UI_GetCvarString(const char *cvar, char *def) { return uii.Cvar_GetString(cvar, def); } cvar_t *UI_FindCvar(const char *cvar) { return uii.Cvar_Find(cvar); } void UI_SetCvarInt(const char *cvar, int value) { char s[16]; Com_sprintf(s, sizeof(s), "%d", value); uii.Cvar_Set(cvar, s); } void UI_SetCvarFloat(const char *cvar, float value) { char s[16]; Com_sprintf(s, sizeof(s), "%f", value); uii.Cvar_Set(cvar, s); } void UI_ListFiles(const char *filespec) { ui.fileList.RemoveAllItems(); uii.File_ListFiles(filespec); } const char *UI_ConfigString(int index) { return uii.GetConfigstring(index); } void UI_Init(void) { UIRect2D frame(0, 0, uid.vidWidth, uid.vidHeight); ui.globalFont = new UIFont; uWinMan.Init(frame, "verdana-12"); UColor color(0, 0, 0, 0); uWinMan.setBackgroundColor(color, true); } void UI_Shutdown(void) { if (ui.globalFont) { delete ui.globalFont; ui.globalFont = NULL; } uWinMan.Shutdown(); } void UI_InitExports() { uie.AddFileToList = UIE_AddFileToList; uie.ResolutionChange = UIE_ResolutionChanged; uie.Init = UI_Init; uie.Shutdown = UI_Shutdown; uie.FontStringWidth = UI_FontStringWidth; // // OLD implementation // /* uie.KeyEvent = UI_KeyEvent; uie.MouseEvent = UI_MouseEvent; uie.Refresh = UI_Refresh; uie.DrawHUD = UI_DrawHUD; uie.IsFullscreen = UI_IsFullscreen; uie.SetActiveMenu = UI_SetActiveMenu; uie.ConsoleCommand = UI_ConsoleCommand; uie.DrawConnectScreen = UI_DrawConnectScreen; */ }