// 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);
};
}}}}}