diff options
author | Andrey Nazarov <skuller@skuller.net> | 2007-08-14 20:18:08 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2007-08-14 20:18:08 +0000 |
commit | f294db4ccf45f6274e65260dd6f9a2c5faa94313 (patch) | |
tree | e8cf1ba2bfe9c8417eec17faf912442f52fc4ef2 /source/ui_addressbook.c |
Initial import of the new Q2PRO tree.
Diffstat (limited to 'source/ui_addressbook.c')
-rw-r--r-- | source/ui_addressbook.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/source/ui_addressbook.c b/source/ui_addressbook.c new file mode 100644 index 0000000..653537b --- /dev/null +++ b/source/ui_addressbook.c @@ -0,0 +1,96 @@ +/* +Copyright (C) 1997-2001 Id Software, Inc. + +This program 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. + +This program 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 this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "ui_local.h" + +/* +============================================================================= + +ADDRESS BOOK MENU + +============================================================================= +*/ + + +typedef struct m_addressBook_s { + menuFrameWork_t menu; + menuField_t fields[MAX_LOCAL_SERVERS]; + menuStatic_t banner; +} m_addressBook_t; + +static m_addressBook_t m_addressBook; + +static void SaveChanges( void ) { + char buffer[32]; + int index; + + for( index = 0; index < MAX_LOCAL_SERVERS; index++ ) { + Com_sprintf( buffer, sizeof( buffer ), "adr%d", index ); + cvar.Set( buffer, m_addressBook.fields[index].field.text ); + } +} + +static int AddressBook_MenuCallback( int id, int msg, int param ) { + switch( msg ) { + case QM_DESTROY: + SaveChanges(); + break; + default: + break; + } + + return QMS_NOTHANDLED; +} + +static void AddressBook_MenuInit( void ) { + char buffer[32]; + int i, y; + + memset( &m_addressBook, 0, sizeof( m_addressBook ) ); + + m_addressBook.menu.callback = AddressBook_MenuCallback; + + y = 64; + for( i = 0; i < MAX_LOCAL_SERVERS; i++ ) { + Com_sprintf( buffer, sizeof( buffer ), "adr%d", i ); + + m_addressBook.fields[i].generic.type = MTYPE_FIELD; + m_addressBook.fields[i].generic.name = NULL; + m_addressBook.fields[i].generic.x = ( uis.glconfig.vidWidth - 30 * SMALLCHAR_WIDTH ) / 2 - RCOLUMN_OFFSET; + m_addressBook.fields[i].generic.y = y; + y += MENU_SPACING; + + IF_InitText( &m_addressBook.fields[i].field, 30, 60, cvar.VariableString( buffer ) ); + + Menu_AddItem( &m_addressBook.menu, &m_addressBook.fields[i] ); + } + + UI_SetupDefaultBanner( &m_addressBook.banner, "Address Book" ); + + Menu_AddItem( &m_addressBook.menu, &m_addressBook.banner ); + + +} + +void M_Menu_AddressBook_f( void ) { + AddressBook_MenuInit(); + UI_PushMenu( &m_addressBook.menu ); +} + |