390 lines
20 KiB
Plaintext
390 lines
20 KiB
Plaintext
wxLua ChangeLog
|
|
===============
|
|
|
|
version 2.8.10.0 (released 05/25/2009)
|
|
--------------------------------------------------------------------
|
|
|
|
- Updated Lua to 5.1.4
|
|
|
|
* Changed the %typedef binding to work as the C/C++ typedefs work.
|
|
The usage is reversed from how it was in previous versions.
|
|
You will need to swap the parameters for it in your bindings.
|
|
Example: %typedef long wxTextCoord
|
|
- Added more C/C++ operators in the bindings.
|
|
- wxLuaEdit now prints values in the console like the Lua executable.
|
|
* Changed signature of wxLuaState::RunBuffer() to take a const char*
|
|
instead of an const unsigned char*, cast to (const char*) as appropriate.
|
|
- Allow wxLuaState::RunString/Buffer() and friends to allow for values left
|
|
on the stack. The default is to leave none as before.
|
|
- Added wxTextUrlEvent to the bindings.
|
|
- Fixed double -> unsigned integer using all 32 bits conversion.
|
|
Fixes wxSTC_MASK_FOLDERS problem, thanks to Andre Arpin.
|
|
- Allow multiple inheritance in the bindings. Changed members of
|
|
wxLuaBindClass to reflect that base class info are stored in arrays.
|
|
|
|
version 2.8.7.0 (released 02/02/2008)
|
|
--------------------------------------------------------------------
|
|
|
|
- Streamlined wxLuaBinding::RegisterBinding(...) and remove the bool
|
|
"registerClasses" since it didn't do anything useful anyway.
|
|
If there needs to be a way to reregister the wxLua functions it should
|
|
to be implemented from the ground up.
|
|
- Renamed the functions wxlua_txxx to wxluaT_xxx to make it easier to
|
|
search for their usage. The functions in the wxLuaState used to be
|
|
called just "txxx" and are now called wxluaT_Xxx where the first
|
|
letter of each word is capitalized for searching.
|
|
- Made wxluaT_insert(L, idx) not pop the value that it refs since
|
|
it may not be the one at the top of the stack.
|
|
- Made wxLuaCheckStack class work a little nicer for easier debugging in C++.
|
|
- Use wxSIGKILL to kill debuggee process since wxSIGTERM doesn't work in MSW.
|
|
- wxLuaStackDialog has better search for all columns, collapse and expand
|
|
tables, and show metatables. It also now uses a virtual wxListCtrl so
|
|
it's much faster. You can expand both key and values of a table and
|
|
more information is provided about items wxLua knows about.
|
|
- Separated the "tags" for C++ classes from "refs" for objects we want a
|
|
handle on in the Lua registry by putting them in separate tables.
|
|
- Removed wxlua_pushkey_XXX #defines since we now have a few tables in the
|
|
registry that we use and those methods were not useful anymore.
|
|
The lightuserdata keys are now const char* strings with a descriptive name,
|
|
however it is the mem address that is used as the table key.
|
|
- wxluaT_newtag() now leaves the created table on the stack.
|
|
- Removed wxluaT_newweaktag() and wxluaT_settagmethod() since they were
|
|
not needed anymore.
|
|
|
|
* A large portion of the internal workings of the wxLuaState have been
|
|
rewritten. All of the data that was stored in wxLuaStateData that might
|
|
be needed by a function taking a lua_State* is now in the
|
|
LUA_REGISTRYINDEX. C functions have been added to access these values.
|
|
The generated bindings no longer need to have "wxLuaState wxlState(L);"
|
|
since everything can be done with the C functions.
|
|
The result is that wxLua should be faster.
|
|
|
|
- Applied patches to Lua 5.1.2 #8-11
|
|
lua_setfenv may crash if called over an invalid object.
|
|
- Made the garbage collector more aggressive since we push void* pointers
|
|
but the data behind them may be quite large. Unfortunately there is no
|
|
mechanism to give a size hint to Lua without modifying Lua.
|
|
lua_gc(L, LUA_GCSETPAUSE, 120); lua_gc(L, LUA_GCSETSTEPMUL, 400);
|
|
- Added wxLuaArtProvider with virtual functions to create custom
|
|
wxArtProviders in Lua.
|
|
|
|
* Allowed using wxObject:DynamicCast() on an object and be able to use the
|
|
object as both types. The problem was that wxEvent:GetEventObject()
|
|
returned a wxObject which overwrote the wxWindow (perhaps) that you had as
|
|
a userdata in Lua already.
|
|
Additionally, if you delete an object all of the userdata that wrap it
|
|
have their metatables cleared for safety.
|
|
|
|
Functions renamed since they don't do the same thing or behave the same.
|
|
wxluaO_istrackedobject -> wxluaO_isgcobject
|
|
wxluaO_addtrackedobject -> wxluaO_addgcobject
|
|
wxluaO_removetrackedobject -> wxluaO_deletegcobject
|
|
|
|
- Created a central luauserdata:delete() function for the bindings to reduce
|
|
code. wxLua_userdata_delete(L)
|
|
* Changed signature of the function wxLuaState::SetLuaDebugHook() so that
|
|
the inputs to lua_sethook() are together and in the same order.
|
|
- Renamed wxLuaCallback to wxLuaEventCallback to make it more clear that
|
|
it is a callback for the wxEvents using wxEvtHandlers.
|
|
|
|
- Removed wxluabind_removetableforcall(L) used in the bindings to determine
|
|
if the function was called from the tables used for class constructors.
|
|
It makes more sense to call an intermediatary function to remove
|
|
the table before calling the real function.
|
|
- Removed the wxLuaFunction class since we no longer need it. It was a
|
|
userdata with a __call metatable to call the real function we want.
|
|
We now push the actual function or an overload function helper with the
|
|
wxLuaBindMethod struct as an upvalue to give better error messages.
|
|
The new way should be faster since it doesn't generate as much garbage.
|
|
- Added wxlua_argerror(L, stack_idx, type_str) to give a far more
|
|
informative message from the bindings when the wrong type is an arg to
|
|
a function.
|
|
- Renamed WXLUAARG_XXX to WXLUA_TXXX to match LUA_TXXX.
|
|
|
|
* Do not create a separate overload function in the bindings since we can
|
|
just as easily check for multiple functions using the wxLuaBindMethod
|
|
and call the generic overload function or just the single function.
|
|
|
|
* Updated the naming conventions of the wxLua C/C++ functions to get rid of
|
|
the term "tag" which dates back to Lua 4. Lua 5 does not use "tags", but
|
|
rather metatables to attach functions to userdata in Lua.
|
|
The new term for the C++ objects that wxLua wraps in Lua userdata and
|
|
assigns a metatable to are wxLua types.
|
|
WXLUA_TXXX types < WXLUA_T_MAX correspond to the LUA_TXXX Lua types.
|
|
wxLua types > WXLUA_T_MAX are types from the bindings and denote a class or struct.
|
|
- Most notably for people who have written their own overrides for their
|
|
bindings will be that wxLuaState::PushUserTag() is now wxluaT_PushUserDataType().
|
|
Those two functions existed before, but basically did the same thing.
|
|
The calling arguments of PushUserTag() were taken however and were the
|
|
reverse of what PushUserDataType() had.
|
|
- wxluaT_new/get/set/tag() are now wxluaT_new/setmetatable() and
|
|
wxluaT_type() where the latter works just like lua_type(), but returns
|
|
one of the wxLua types.
|
|
|
|
- Fix crash in wxListCtrl and wxTreeCtrl::AssignImageList() to use the
|
|
%ungc tag to release wxLua from deleting the input wxImageList.
|
|
- Added image sample translated from C++ by Hakki Dogusan.
|
|
|
|
* Changed wxLuaState_Type enum for wxLuaState(lua_State*, wxLuaState_Type)
|
|
Removed wxLUASTATE_USESTATE and you now | together wxLUASTATE_SETSTATE with
|
|
wxLUASTATE_OPENBINDINGS if you want the bindings opened.
|
|
Cleans up the creation of the wxLuaState so a precreated lua_State
|
|
should be able to be used easier.
|
|
- Remove poorly named wxLuaState::LuaError() and CheckRunError() and
|
|
replaced them with the C functions wxlua_errorinfo() and wxlua_LUA_ERR_msg()
|
|
respectively.
|
|
- Added wxlua_pushargs(wxChar**, int) for a standard way to push args
|
|
into Lua.
|
|
- Copy Lua's print() function to print_lua() instead of simply
|
|
overwriting it in case someone really wants to use it.
|
|
|
|
- Revised the build system, specially the configure script under Linux which
|
|
now accepts more options and automatically detects the presence/absence of
|
|
each wxWidgets library when --enable-wxbind* options are left in "auto" mode
|
|
|
|
* Updated Lua to 5.1.3
|
|
|
|
- Added static bool wxLuaState::sm_wxAppMainLoop_will_run so that Lua code
|
|
that calls "wx.wxGetApp:MainLoop()" will not do anything. C++ coders
|
|
should call it if they create a wxLuaState and run Lua code from
|
|
their wxApp:OnInit() when wxApp:IsMainLoopRunning() returns false.
|
|
See the apps for usage.
|
|
|
|
* The wxLua type numbers are now generated when the first wxLuaState is created
|
|
rather then when the bindings are registered into Lua. This means that
|
|
each wxLua type stays the same for the life of the program no matter what
|
|
bindings are installed or in what order.
|
|
- The copy of the wxLuaBindingList in the wxLuaState was removed since it is
|
|
no longer needed. Renamed the functions static wxLuaBinding::GetBindXXX()
|
|
to FindBindXXX() since they no longer needed the extra wxLuaBindingList parameter
|
|
and they had the same signature as the existing GetBindXXX() functions.
|
|
Removed the wxLuaBinding::Clone() function as it is no longer used.
|
|
- Added wxLuaState::RegisterBinding(wxLuaBinding*) function to register
|
|
single bindings at a time. You may also reregister bindings, which means
|
|
that their metatable functions are simple rewritten.
|
|
|
|
- Removed the wxLuaBinding::PreRegister() and PostRegister() functions and
|
|
made RegisterBinding() virtual
|
|
Note: wxLuaBinding::RegisterBinding() now leaves the Lua table that the
|
|
binding objects were installed into on the stack. You must pop it.
|
|
* The rules.lua for genwxbind.lua now uses wxLuaBinding_class_declaration and
|
|
wxLuaBinding_class_implementation to replace wxLuaBinding_preregister and
|
|
wxLuaBinding_postregister. You may now add whatever you like to the class
|
|
declaration and implementation source code.
|
|
|
|
- Updated bitlib to version 25.
|
|
|
|
version 2.8.4.2
|
|
--------------------------------------------------------------------
|
|
|
|
- Separated the wxWidgets bindings into the libraries that wxWidgets
|
|
uses. wxadv, wxaui, wxbase, wxcore, etc...
|
|
|
|
- Allow bool = 1/0 and 1/0 = bool in wxlua_getboolean/integer/number.
|
|
- Fix bug in prematurely garbage collecting userdata.
|
|
The userdata was previously keyed on the pointer to the data instead
|
|
of a pointer to the Lua userdata that wraps the data.
|
|
- Moved wxLUA_VERSION... bindings into the 'wxlua' table.
|
|
- Applied patch to lparser.c
|
|
"Too many variables in an assignment may cause a C stack overflow"
|
|
- Streamline creation of a wxLuaState and finding the wxLuaState from
|
|
an existing lua_State,
|
|
See wxlstate.h for changes to the enum WXLUASTATE_ATTACH/SETSTATE
|
|
to be more complete.
|
|
|
|
version 2.8.4.1
|
|
--------------------------------------------------------------------
|
|
|
|
- Made wxLUA_USE_wxMediaCtrl and wxLUA_USE_wxGLCanvas 1 by default.
|
|
They are #if wxUSE_MEDIACTRL and wxUSE_GLCANVAS so they are only included
|
|
if the wxWidgets you compile against uses them.
|
|
- Added media.wx.lua sample to show off the wxMediaCtrl
|
|
- Fixed the argtags for integer arrays.
|
|
|
|
version 2.8.4.0
|
|
--------------------------------------------------------------------
|
|
|
|
- Added RUNTIME_LIBS and THREADING options to the build system to allow
|
|
to statically compile against the C runtime (only for some win compilers)
|
|
- Added all of the wxWidget's wxUSE_XXX conditions to the bindings
|
|
- Hopefully fixed the wx2lua and lua2wx string conversion for unicode
|
|
and high ascii characters.
|
|
- Removed gc destructor functions, we can do it in the gc function itself.
|
|
- Removed wxLua_AddTrackedObject functions, use wxLuaState::AddTrackedObject.
|
|
- Updated lua to 5.1.2
|
|
- Removed wxEVT_LUA_CONSOLE compatibility #define, use wxEVT_LUA_PRINT now
|
|
- Refactored and cleaned up socket debugging code.
|
|
Removed exception code.
|
|
Removed DebuggerService code as it wasn't used.
|
|
- Put derived functions into the LUA_REGISTRYINDEX instead of the
|
|
wxLuaState's m_pDerivedList.
|
|
- Change the wxLuaStackDialog to use a wxListCtrl instead of a hacked
|
|
wxTreeCtrl that tries to act like a listctrl. Cleaner, faster, and smaller.
|
|
|
|
- **** Big changes to the wxLua syntax! ****
|
|
Hopefully this will be the last since it is now a little more flexible and
|
|
logical with far fewer gotcha's since it matches the C++ documentation
|
|
very closely now.
|
|
- Removed wx.wxNull, the NULL tag for NULL pointers. Use wx.NULL now.
|
|
- *** Removed MOST %renamed functions so that they are not overloaded.
|
|
For example wxSizer::AddWindow/AddSizer is now just wxSizer::Add!
|
|
Removed most renamed constructors like wxEmptyBitmap, wxBitmapFromFile
|
|
and you now need only call wxBitmap(...). wxLua will determine which
|
|
appropriate function to call at runtime.
|
|
- Changed class member enums to be accessed by
|
|
wx.ClassName.enumName instead of previously wx.ClassName_enumName.
|
|
- Changed static class member functions to be accessed by
|
|
wx.ClassName.StaticFuncName instead of previously wx.ClassName_StaticFuncName
|
|
- Changed the class constructor functions to be a lua table instead of a C
|
|
function. You can call the table using the __call metable, there is no
|
|
code change required for wxLua scripts. You can get a pointer to the C
|
|
function using the "new" table item of the class table if you actually want
|
|
to get at the function.
|
|
- Binding changes:
|
|
Replaced %define %string with %define_string.
|
|
Replaced %define %pointer with %define_pointer.
|
|
Replaced %define %object with %define_object.
|
|
Replaced %define %event with %define_event.
|
|
Note: %define alone is still just for numbers.
|
|
Removed %overload tag since this is done automatically.
|
|
Added %override_name tag to enforce the name of the C function to use since
|
|
the binding generator will append 1,2,3,... to overloaded functions.
|
|
Removed %static and %static_only since these are automatically handled
|
|
and static functions are put into the class table.
|
|
Removed %property tag since these are generated on the fly.
|
|
Depricated %constructor tag, use %rename NewConstructor ClassName(...)
|
|
It is currently kept for very special cases, none of which exist now.
|
|
- Changed version strings and numbers to match how wxWidgets defines them.
|
|
WXLUA_MAJOR_VERSION -> wxLUA_MAJOR_VERSION
|
|
WXLUA_MINOR_VERSION -> wxLUA_MINOR_VERSION
|
|
WXLUA_RELEASE_VERSION -> wxLUA_RELEASE_NUMBER
|
|
WXLUA_SUBRELEASE_VERSION -> wxLUA_SUBRELEASE_NUMBER
|
|
WXLUA_VERSION_STRING -> wxLUA_VERSION_STRING
|
|
WXCHECK_WXLUA_VERSION -> wxLUA_CHECK_VERSION
|
|
Added wxLUA_CHECK_VERSION_FULL
|
|
- Renamed wxConfigBase::Destroy() to Delete() to match the %delete generated
|
|
functions.
|
|
|
|
- Renamed WXLUACLASS, WXLUAMETHOD, WXLUADEFINE, WXLUASTRING, WXLUAEVENT
|
|
structs to wxLuaBindClass, wxLuaBindMethod, wxLuaBindDefine,
|
|
wxLuaBindString, and wxLuaBindEvent.
|
|
- Renamed the GetLua[Class]List functions in wxLuaBindings to
|
|
Get[Class]Array, since they're C arrays not wxLists.
|
|
- Renamed wxLuaState::LuaCall to LuaPCall since that's what it calls
|
|
and changed the parameters to match lua_pcall.
|
|
|
|
- Removed binding helpers wxArrayString_FromLuaTable and
|
|
wxArrayInt_FromLuaTable since the conversion is now automatic and the
|
|
function can take either a table or a wxArrayXXX. See notes in binding.html.
|
|
- Fixed sorting function for the listctrl.
|
|
- Added validator.wx.lua to test wxGenericValidators and wxTextValidators,
|
|
both of which work again.
|
|
- Rename all functions dealing with "enumeration" to "integer" since it's
|
|
more generic and that's what it's often used for.
|
|
|
|
- Event handling is faster now that we store the wxLuaBindEvent struct
|
|
instead of the wxEventType and then have to look up the struct each time.
|
|
|
|
- Changed calling base class function from base_[FunctionName] to just
|
|
_[Function Name]. This is faster and more reliable since if a function
|
|
was called "base_XXX" before there would have been a problem.
|
|
|
|
- Changed the Delete() function from the %delete tag for classes to just
|
|
delete() to avoid any future name clashes since delete() is never allowed
|
|
to be a function name in C++.
|
|
|
|
- Moved the wxStyledTextCtrl class and it's 1268 defines into the wxstc table.
|
|
- Moved wxLuaObject, wxLuaDebugger (and friends) into the wxlua table and
|
|
added more functions for inspecting userdata and the bindings.
|
|
- Added the bit library from Reuben Thomas and put it into the bit table.
|
|
- Fix mismatches between the bindings base classes and what they really are.
|
|
|
|
- Add back the treectrl to the Stack Dialog so you get a tree on the left
|
|
and the list on the right.
|
|
- Added functions to get the items that wxLua tracks (userdata) to know
|
|
if you need to garbage collect things
|
|
- Use qsort and bsearch to find the class member functions to run.
|
|
Combined with using integer items in lua's registry ~ %25 faster.
|
|
- Make wxLuaDebugData a real wxObject refed class that can !Ok(), before
|
|
it always created it's ref data even if it wasn't used.
|
|
|
|
- Add %gc, %ungc, %gc_this, and %ungc_this tags for fine tuning of tracking
|
|
and releasing userdata objects by functions that take ownership of the data
|
|
or release it.
|
|
|
|
- Apply patches 1-6 for Lua 5.1.2
|
|
|
|
version 2.8.0.0 (released 24/12/2006)
|
|
--------------------------------------------------------------------
|
|
|
|
- Fixed wxSocketBase::ReadMsg for reading less bytes, Steve Kieu
|
|
- Fixed unicode conversion in wx2lua and lua2wx, thanks Steve Kieu
|
|
- Switched from lua 5.0 to lua 5.1, updated to 5.1.1 (6/11/06)
|
|
- All bindings for wxWidgets have been updated to 2.6.3
|
|
- Reordered bindings/wxwidgets/overrides.hpp to follow binding *.i files
|
|
- Fixed %member tag for bindings to work properly
|
|
- Added %overload for the bindings to handle overloaded function calls
|
|
- Added %operator tag for the bindings to handle C++ operators
|
|
- Fixed printing and in general overridden functions that call base_XXX funcs
|
|
- Added wxLuaFreeze program to create wxLua executables
|
|
- Changed wxLuaBindings::OnRegister to Pre/PostRegister
|
|
update your rules files for generating your bindings
|
|
- Changed naming conventions of generated C binding functions by
|
|
prepending "wxLua_" to them. This affects the %overrides so that you have
|
|
to also prepend "wxLua_" as %override wxLua_SomeFunction and also add
|
|
"wxLua_" to the name of the overridden C function.
|
|
- static classmember functions now work and have the naming convention of
|
|
classname_functionname. eg. wxButton_GetDefaultSize()
|
|
- Added wxGLCanvas and wxGLContext to the bindings, see wxLUA_USE_wxGLCanvas
|
|
- user-set C*FLAGS are now considered when building
|
|
(previously they were ignored)
|
|
- now the lua executable is called wxlua-lua to avoid conflicts
|
|
with other installations of lua and a verbatim lua5.1 library and
|
|
executable is created instead
|
|
- updated wrapper generators and all build system for shared builds
|
|
(under Windows)
|
|
- added the new module "luamodule" which can be used to create a wx.dll/.so
|
|
module to use with the require() function of lua with the verbatim interpreter
|
|
- *** Changed wxEvtHandler::ConnectEvent to wxEvtHandler::Connect since there
|
|
is NO C++ function called ConnectEvent.
|
|
- Fixed wxEvtHandler::Connect[Event] to follow the C++ winID semantics for the
|
|
case where there is no winId supplied, use wxID_ANY.
|
|
- Finished cleaning up the code, moved all the code in
|
|
modules/wxlua/include/internal.h and modules/wxlua/src/internal.cpp
|
|
to other files. Please include wxlua/wxlstate.h instead of this file.
|
|
- Cleanup debugging socket code
|
|
- Add wxVERSION and wxCHECK_VERSION as well as WXLUA_XXX_VERSION bindings
|
|
- Removed wxLuaHandler (in wxluasocket) and made wxLuaDebuggerBase a
|
|
wxEvtHandler derived class to handle debugger events.
|
|
- Renamed all the wxluasocket enums, wx events, and classnames to directly
|
|
specify what they are used for, eg. debugger and debuggee.
|
|
- Cleaned up and made more robust the wxlua IDE app.
|
|
- Moved distribution-stuff into "distrib" to make it clear what is build-related
|
|
and what is for making wxLua distributions
|
|
- Added PCH support
|
|
- Builds with different configurations are fully supported: both the build
|
|
directory and the output folders for the libraries and for the binaries are
|
|
named with the chosen configuration so that there should be no clashes
|
|
when compiling wxLua with different settings.
|
|
- Added the --with-lua-prefix configure's option or LUA_DIR option to allow
|
|
to use an external LUA library for building wxLua.
|
|
- Building under wxMac has been greatly improved thanks to Anders F Björklund;
|
|
release 2.8.0.0 also includes a Mac bundle.
|
|
|
|
|
|
version 2.6.2.0 (released 10/03/2006)
|
|
--------------------------------------------------------------------
|
|
|
|
- imported wxLua in SourceForge CVS servers
|
|
- added bakefile build system
|
|
- added InnoSetup and Autopackage scripts for packaging
|
|
- created wxLua website
|
|
- updated samples to use sizers
|
|
|
|
|
|
versions < 2.6.2.0
|
|
--------------------------------------------------------------------
|
|
|
|
- the pre-SF releases were kept at http://www.luascript.thersgb.net
|
|
which is now unavailable
|