From 53e22b11857fed62e2313d6d84d90f88ed412ffb Mon Sep 17 00:00:00 2001 From: Alexander Harkness Date: Mon, 29 Jul 2013 12:13:03 +0100 Subject: Changed everyting to Unix line endings. --- source/LuaWindow.h | 192 ++++++++++++++++++++++++++--------------------------- 1 file changed, 96 insertions(+), 96 deletions(-) (limited to 'source/LuaWindow.h') diff --git a/source/LuaWindow.h b/source/LuaWindow.h index de24170df..60c24996d 100644 --- a/source/LuaWindow.h +++ b/source/LuaWindow.h @@ -1,96 +1,96 @@ - -// LuaWindow.h - -// Declares the cLuaWindow class representing a virtual window that plugins may create and open for the player - - - - - -#pragma once - -#include "UI/Window.h" -#include "ItemGrid.h" - - - - - -// fwd: Plugin_NewLua.h -class cPlugin_NewLua; - - - - - -// tolua_begin - -/** A window that has been created by a Lua plugin and is handled entirely by that plugin -This object needs extra care with its lifetime management: -- It is created by Lua, so Lua expects to garbage-collect it later -- normal cWindow objects are deleted in their ClosedByPlayer() function if the last player closes them -To overcome this, this object overloads the Destroy functions, which doesn't let the ClosedByPlayer() -delete the window, but rather leaves it dangling, with only Lua having the reference to it. -Additionally, to forbid Lua from deleting this object while it is used by players, the manual bindings for -cPlayer:OpenWindow check if the window is of this class, and if so, make a global Lua reference for this object. -This reference needs to be unreferenced in the Destroy() function. -*/ -class cLuaWindow : - public cWindow, - public cItemGrid::cListener -{ - typedef cWindow super; - -public: - /// Create a window of the specified type, with a slot grid of a_SlotsX * a_SlotsY size - cLuaWindow(cWindow::WindowType a_WindowType, int a_SlotsX, int a_SlotsY, const AString & a_Title); - - virtual ~cLuaWindow(); - - /// Returns the internal representation of the contents that are manipulated by Lua - cItemGrid & GetContents(void) { return m_Contents; } - - // tolua_end - - /** Sets the plugin reference and the internal Lua object reference index - used for preventing Lua's GC to collect this class while the window is open - */ - void SetLuaRef(cPlugin_NewLua * a_Plugin, int a_LuaRef); - - /// Returns true if SetLuaRef() has been called - bool IsLuaReferenced(void) const; - - /// Sets the callback function (Lua reference) to call when the window is about to close - void SetOnClosing(cPlugin_NewLua * a_Plugin, int a_FnRef); - - /// Sets the callback function (Lua reference) to call when a slot is changed - void SetOnSlotChanged(cPlugin_NewLua * a_Plugin, int a_FnRef); - -protected: - /// Contents of the non-inventory part - cItemGrid m_Contents; - - /// The plugin that has opened the window and owns the m_LuaRef - cPlugin_NewLua * m_Plugin; - - /// The Lua object reference, used for keeping the object alive as long as any player has the window open - int m_LuaRef; - - /// The Lua reference for the callback to call when the window is closing for any player - int m_OnClosingFnRef; - - /// The Lua reference for the callback to call when a slot has changed - int m_OnSlotChangedFnRef; - - // cWindow overrides: - virtual bool ClosedByPlayer(cPlayer & a_Player, bool a_CanRefuse) override; - virtual void Destroy(void) override; - - // cItemGrid::cListener overrides: - virtual void OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) override; -} ; // tolua_export - - - - - + +// LuaWindow.h + +// Declares the cLuaWindow class representing a virtual window that plugins may create and open for the player + + + + + +#pragma once + +#include "UI/Window.h" +#include "ItemGrid.h" + + + + + +// fwd: Plugin_NewLua.h +class cPlugin_NewLua; + + + + + +// tolua_begin + +/** A window that has been created by a Lua plugin and is handled entirely by that plugin +This object needs extra care with its lifetime management: +- It is created by Lua, so Lua expects to garbage-collect it later +- normal cWindow objects are deleted in their ClosedByPlayer() function if the last player closes them +To overcome this, this object overloads the Destroy functions, which doesn't let the ClosedByPlayer() +delete the window, but rather leaves it dangling, with only Lua having the reference to it. +Additionally, to forbid Lua from deleting this object while it is used by players, the manual bindings for +cPlayer:OpenWindow check if the window is of this class, and if so, make a global Lua reference for this object. +This reference needs to be unreferenced in the Destroy() function. +*/ +class cLuaWindow : + public cWindow, + public cItemGrid::cListener +{ + typedef cWindow super; + +public: + /// Create a window of the specified type, with a slot grid of a_SlotsX * a_SlotsY size + cLuaWindow(cWindow::WindowType a_WindowType, int a_SlotsX, int a_SlotsY, const AString & a_Title); + + virtual ~cLuaWindow(); + + /// Returns the internal representation of the contents that are manipulated by Lua + cItemGrid & GetContents(void) { return m_Contents; } + + // tolua_end + + /** Sets the plugin reference and the internal Lua object reference index + used for preventing Lua's GC to collect this class while the window is open + */ + void SetLuaRef(cPlugin_NewLua * a_Plugin, int a_LuaRef); + + /// Returns true if SetLuaRef() has been called + bool IsLuaReferenced(void) const; + + /// Sets the callback function (Lua reference) to call when the window is about to close + void SetOnClosing(cPlugin_NewLua * a_Plugin, int a_FnRef); + + /// Sets the callback function (Lua reference) to call when a slot is changed + void SetOnSlotChanged(cPlugin_NewLua * a_Plugin, int a_FnRef); + +protected: + /// Contents of the non-inventory part + cItemGrid m_Contents; + + /// The plugin that has opened the window and owns the m_LuaRef + cPlugin_NewLua * m_Plugin; + + /// The Lua object reference, used for keeping the object alive as long as any player has the window open + int m_LuaRef; + + /// The Lua reference for the callback to call when the window is closing for any player + int m_OnClosingFnRef; + + /// The Lua reference for the callback to call when a slot has changed + int m_OnSlotChangedFnRef; + + // cWindow overrides: + virtual bool ClosedByPlayer(cPlayer & a_Player, bool a_CanRefuse) override; + virtual void Destroy(void) override; + + // cItemGrid::cListener overrides: + virtual void OnSlotChanged(cItemGrid * a_ItemGrid, int a_SlotNum) override; +} ; // tolua_export + + + + + -- cgit v1.2.3