// EMERGENT GAME TECHNOLOGIES PROPRIETARY INFORMATION // // This software is supplied under the terms of a license agreement or // nondisclosure agreement with Emergent Game Technologies and may not // be copied or disclosed except in accordance with the terms of that // agreement. // // Copyright (c) 1996-2007 Emergent Game Technologies. // All Rights Reserved. // // Emergent Game Technologies, Chapel Hill, North Carolina 27517 // http://www.emergent.net #pragma once #include "IService.h" #include "SettingChangedEventArgs.h" namespace Emergent{ namespace Gamebryo{ namespace SceneDesigner{ namespace PluginAPI{ namespace StandardServices { public __delegate void SettingChangedHandler(Object* pmSender, SettingChangedEventArgs* pmEventArgs); /// /// Summary description for ISettingsService. /// public __gc __interface ISettingsService : public IService { /// /// This will set the value of a setting only if it does not /// already exist. It's a way of setting a default. /// /// The unique key to be used to store the /// object /// The default object to store if one does not /// exist /// The location in which to store /// the settings object void RegisterSettingsObject(String* strName, Object* pmObject, SettingsCategory eCategory); /// /// Retrieves and object form the system settings /// /// Unique key string to /// retieve the settigns object /// The location from which to retrieve /// the settings object /// The settings object Object* GetSettingsObject(String* strName, SettingsCategory eCategory); /// /// Sets an object in the system settings /// /// The unique key to be used to store the /// object /// The object to store /// The location in which to store /// the settings object void SetSettingsObject(String* strName, Object* pmObject, SettingsCategory eCategory); void RemoveSettingsObject(String* strName, SettingsCategory eCategory); __property String* get_ScenePath(); __property void set_ScenePath(String* strPath); __property String* get_SceneFileName(); __property void set_SceneFileName(String* strFileName); /// /// Streams the current settings infrastructure to persistent storage /// /// void SaveSettings(SettingsCategory eCategory); /// /// Reads the current settings infrastructure from persistent storage /// /// void LoadSettings(SettingsCategory eCategory); /// /// Empties the in-memory cache of settings for the indicated /// settings store /// /// void ClearSettings(SettingsCategory eCategory); void SetChangedSettingHandler(String* strName, SettingsCategory eCategory, SettingChangedHandler* pmHandler); }; }}}}}