123
This commit is contained in:
105
Editor/Include/IPreferencesPage.h
Normal file
105
Editor/Include/IPreferencesPage.h
Normal file
@@ -0,0 +1,105 @@
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Engine Source File.
|
||||
// Copyright (C), Crytek Studios, 2001-2004.
|
||||
// -------------------------------------------------------------------------
|
||||
// File name: IPreferencesPage.h
|
||||
// Version: v1.00
|
||||
// Created: 28/10/2003 by Timur.
|
||||
// Compilers: Visual Studio.NET 2003
|
||||
// Description:
|
||||
// -------------------------------------------------------------------------
|
||||
// History:
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __IPreferencesPage_h__
|
||||
#define __IPreferencesPage_h__
|
||||
#pragma once
|
||||
|
||||
#include "Plugin.h"
|
||||
/*
|
||||
* IPreferencePage is the interface class for preferences pages.
|
||||
*/
|
||||
struct IPreferencesPage
|
||||
{
|
||||
virtual void Release() = 0;
|
||||
|
||||
//! Return category where this preferences page belongs.
|
||||
virtual const char* GetCategory() = 0;
|
||||
|
||||
//! Title of this preferences page.
|
||||
virtual const char* GetTitle() = 0;
|
||||
|
||||
//! Returns Page window.
|
||||
virtual CWnd* GetWindow() = 0;
|
||||
|
||||
//! Called by the editor when the Apply Now button is clicked.
|
||||
virtual void OnApply() = 0;
|
||||
|
||||
//! Called by the editor when the Cancel button is clicked.
|
||||
virtual void OnCancel() = 0;
|
||||
|
||||
//! Called by the editor when the Cancel button is clicked, and before the cancel has taken place.
|
||||
//! @return true to perform Cancel operation, false to abort Cancel.
|
||||
virtual bool OnQueryCancel() = 0;
|
||||
|
||||
//! Called by the editor when the preferences page is made the active page or is not longer the active page.
|
||||
//! @param bActive true when page become active, false when page deactivated.
|
||||
virtual void OnSetActive( bool bActive ) = 0;
|
||||
|
||||
//! Called by the editor when the OK, Apply Now, or Close button is clicked.
|
||||
virtual void OnOK() = 0;
|
||||
|
||||
//! Access to variable block for this preferences page.
|
||||
virtual CVarBlock* GetVars() = 0;
|
||||
};
|
||||
|
||||
/*! Interface used to create new preferences pages.
|
||||
You can query this interface from any IClassDesc interface with ESYSTEM_CLASS_PREFERENCE_PAGE system class Id.
|
||||
*/
|
||||
struct __declspec( uuid("{D494113C-BF13-4171-9171-0333DF10EAFC}") ) IPreferencesPageCreator
|
||||
{
|
||||
//! Get number of preferences page hosted by this class.
|
||||
virtual int GetPagesCount() = 0;
|
||||
//! Creates a new preferences page by page index.
|
||||
//! @param index must be within 0 <= index < GetPagesCount().
|
||||
virtual IPreferencesPage* CreatePage( int index,const CRect &rc,CWnd *pParentWnd ) = 0;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* IPreferencesPageClassDesc is a plugin class description for all IPreferencesPage derived classes.
|
||||
*/
|
||||
struct IPreferencesPageClassDesc : public IClassDesc
|
||||
{
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// IClassDesc implementation.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
virtual ESystemClassID SystemClassID() { return ESYSTEM_CLASS_PREFERENCE_PAGE; };
|
||||
|
||||
//! This method returns the human readable name of the class.
|
||||
virtual const char* ClassName() { return "Preferences Page"; };
|
||||
|
||||
//! This method returns Category of this class, Category is specifing where this plugin class fits best in
|
||||
//! create panel.
|
||||
virtual const char* Category() { return "Preferences"; };
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//! Show a modal about dialog / message box for the plugin.
|
||||
virtual void ShowAbout() {};
|
||||
|
||||
virtual bool CanExitNow() { return true; };
|
||||
|
||||
//! The plugin should write / read its data to the passed stream. The data is saved to or loaded
|
||||
//! from the editor project file. This function is called during the usual save / load process of
|
||||
//! the editor's project file
|
||||
virtual void Serialize( CXmlArchive &ar ) {};
|
||||
|
||||
//! Editor can send to class various events.
|
||||
virtual void Event( EClassEvent event ) {};
|
||||
|
||||
};
|
||||
|
||||
#endif // __IPreferencesPage_h__
|
||||
|
||||
Reference in New Issue
Block a user