[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Assign a table as a sub-table passing it in by a function argument
- From: "RJP Computing" <rjpcomputing@...>
- Date: Thu, 31 May 2007 22:16:53 -0400
Hi all,
I am new so please be excuse this question if it is simple. I am trying to create a module in lua that has a function that registers a table in a, local to that module, table. I am having a problem getting the table that is passed into the register function to actually be added in the index of the table. I think an example will make this question a bit easier to see.
<widgetbase.lua - Base module that a bunch of other files will use to register there existence>
-- import dependencies
local table = require( 'table' )
local print = print
local pairs = pairs
local type = type
-- Create a new module
module( ... )
-- Table of all the registered widgets.
-- This can be used later to iterate through them and pick out the
-- properties of interest.
registeredWidgets = {}
-- FUNCTIONS ------------------------------------------------------------------
--
-- Returns the registered widgets container.
-- @return Table that contains all the registered widgets.
function GetRegisteredWidgets()
return registeredWidgets
end
-- Registers the widget with the common table, that will contain all the available
-- widgets and their properties.
-- This is one big table that all the widgets and there inherited classes will be in.
-- The key is the widget's name.
-- @param name The name of the table that will hold all the widgets properties.
-- @param widget This is a table containing the total widget after all items have been created.
function RegisterWidget( name, widget )
registeredWidgets[name] = widget
end
<common.lua - Here is a lua file that uses the RegisterWidget()>
-- Include the module "WidgetBase" to make this an official widget.
WidgetBase = require( "widgetbase" )
-- Create a table that will hold all the properties.
local window = {}
-- Add the properties to the widget.
window.id =
WidgetBase.wxID_ANY
window.pos = { x = -1, y = -1 }
window.size = { width = -1, height = -1 }
window.minimum_size = { width = -1, height = -1 }
window.maximum_size = { width = -1, height = -1 }
-- Register the widget with the Lua engine after all the properties have been created.
WidgetBase.RegisterWidget( "window", window )
<test.lua - Now to test all this>
-- Load the base classed first.
dofile( "common.lua" )
-- Lets see if we can get at the list of registered widgets.
print( "---- registeredWidgets ----" );
for name, var in pairs( WidgetBase.GetRegisteredWidgets() ) do
print( name, "\t", val );
end
print ("---- END - registeredWidgets ----\n\n");
--- OUTPUT ---
---- registeredWidgets ----
-- wxWindow nil
-- wxButton nil
---- END - registeredWidgets ----
Sorry for the large example, but I am really stuck. I didn't expect the 'nil' for the register "name". Can somebody please help?
--
Regards,
Ryan
RJP Computing