/* =========================================================================== Doom 3 GPL Source Code Copyright (C) 1999-2011 id Software LLC, a ZeniMax Media company. This file is part of the Doom 3 GPL Source Code ("Doom 3 Source Code"). Doom 3 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 3 of the License, or (at your option) any later version. Doom 3 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 Doom 3 Source Code. If not, see . In addition, the Doom 3 Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the Doom 3 Source Code. If not, please request a copy in writing from id Software at the address below. If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA. =========================================================================== */ #ifndef REGISTRYOPTIONS_H_ #define REGISTRYOPTIONS_H_ class rvRegistryOptions { public: static const int MAX_MRU_SIZE = 4; rvRegistryOptions(); void Init( const char *key ); // Write the options to the registery bool Save ( void ); // Read the options from the registry bool Load ( void ); // Window placement routines void SetWindowPlacement ( const char* name, HWND hwnd ); bool GetWindowPlacement ( const char* name, HWND hwnd ); // List view column sizes void SetColumnWidths ( const char* name, HWND list ); void GetColumnWidths ( const char* name, HWND list ); // Set routines void SetFloat ( const char* name, float v ); void SetLong ( const char* name, long v ); void SetBool ( const char* name, bool v ); void SetString ( const char* name, const char* v ); void SetVec4 ( const char* name, idVec4& v ); void SetBinary ( const char* name, const unsigned char* data, int size ); // Get routines float GetFloat ( const char* name ); long GetLong ( const char* name ); bool GetBool ( const char* name ); const char* GetString ( const char* name ); idVec4 GetVec4 ( const char* name ); void GetBinary ( const char* name, unsigned char* data, int size ); // MRU related methods void AddRecentFile ( const char* filename ); const char* GetRecentFile ( int index ); int GetRecentFileCount ( void ); private: idList mRecentFiles; idDict mValues; idStr mBaseKey; }; ID_INLINE void rvRegistryOptions::SetFloat ( const char* name, float v ) { mValues.SetFloat ( name, v ); } ID_INLINE void rvRegistryOptions::SetLong ( const char* name, long v ) { mValues.SetInt ( name, v ); } ID_INLINE void rvRegistryOptions::SetBool ( const char* name, bool v ) { mValues.SetBool ( name, v ); } ID_INLINE void rvRegistryOptions::SetString ( const char* name, const char* v ) { mValues.Set ( name, v ); } ID_INLINE void rvRegistryOptions::SetVec4 ( const char* name, idVec4& v ) { mValues.SetVec4 ( name, v ); } ID_INLINE float rvRegistryOptions::GetFloat ( const char* name ) { return mValues.GetFloat ( name ); } ID_INLINE long rvRegistryOptions::GetLong ( const char* name ) { return mValues.GetInt ( name ); } ID_INLINE bool rvRegistryOptions::GetBool ( const char* name ) { return mValues.GetBool ( name ); } ID_INLINE const char* rvRegistryOptions::GetString ( const char* name ) { return mValues.GetString ( name ); } ID_INLINE idVec4 rvRegistryOptions::GetVec4 ( const char* name ) { return mValues.GetVec4 ( name ); } ID_INLINE int rvRegistryOptions::GetRecentFileCount ( void ) { return mRecentFiles.Num ( ); } ID_INLINE const char* rvRegistryOptions::GetRecentFile ( int index ) { return mRecentFiles[index].c_str ( ); } #endif // REGISTRYOPTIONS_H_