The macro processing function can now return a second value, which is
the index of the line to make active, which must be one of the lines in
the selection. If it is not, or if the value is not present, then the
active line is left unchanged if it is in the new selection, or set to
the first line of the new selection if it is not.
Closes#1435.
Originally committed to SVN as r6398.
If the second return value from the validate function exists and is a
non-empty string, replace the macro's help text with that string.
Revert r6327, as this is a better solution to the same problem.
Closes#1413.
Originally committed to SVN as r6352.
Rather than passing a string as the second argument to
aegisub.register_macro, they can now pass a function which will be
called (with no arguments) to get a help string.
Originally committed to SVN as r6327.
Add agi::ProgressSink and agi::BackgroundRunner interfaces to libaegisub
which represent a generic progress sink and a thing which calls funtions
that need progress sinks. Make DialogProgress implement
agi::BackgroundRunner, invoking the passed function on a worker thread
and giving it a progress sink to update the dialog with.
Rewrite Automation4::ProgressSink, LuaThreadedCall and all related
classes to be based on agi::ProgressSink. Automation now simply uses
DialogProgress (although that's merely an implementation detail) and
adds a single method to route dialog opening from the worker thread to
the GUI thread.
Originally committed to SVN as r5634.
Kill vfr.h and vfr.cpp and use the libaegisub versions of them instead.
Rather than the globals VFR_Input and VFR_Output, everything related to
frame rate is now part of the video context. Most things which used to
use VFR_Output now call VideoContext::TimeAtFrame etc.; video providers,
rather than modifying VFR_Input directly, now have getters for their
frame rates which VideoContext calls. Read-only public access to
VFR_Input and VFR_Output are still provided (hopefully temporarily) for
a few things which were awkward to do through VideoContext.
The Avisynth provider now might correctly handle VFR MKVs which can be
opened with DirectShowSource but not DSS2.
Rework keyframe handling as well, so that it continues to match the vfr
handling in design and implementation.
Originally committed to SVN as r4662.
* Update agi_pre.h to include some missing headers, also move required windowsheaders to the top of the list
* Use <> versus "" for the wx header in avisynth_wrap.cpp
* Remove xx/wx.h from agi_pre.h as it's included by wxprec.h.
Originally committed to SVN as r3513.
Document all functions, class, struct, union, enum, macro, variable, typedefs. This isn't the actual document in itself but empty documentation using any old documentation if it was there.
This was done using exuberant ctags to get tag info, then a TCL script to parse/remove old comments and convert them into Doxygen-style.
Some notes:
* Anything labeled 'DOCME' needs to be documented, @param and @return have been left blank as it would be annoying to delete the 'DOCME' from every one of those.
* Some multiline comments may have been munged into single line comments
* Leave the /// comments above global variables with a space, if they're harder to read then we'll be less likey to use them.
* Enum comments can go after the enumeration itself '[value] /// comment'
* include/aegisub/*.h haven't been converted yet, this will be done in a later commit
* Some documentation blocks are in the wrong place, in the .h when it should be in the .cpp, or vice versa.
See http://devel.aegisub.org/wiki/Doxygen for some details on Doxygen and a 'style guide'.
Originally committed to SVN as r3312.
* Swap old email + website address with 'Aegisub Project http://www.aegisub.org/'
* Set categories for all files (jfs)
* Add descriptions for each file (jfs)
* Add $Id$ keyword
Originally committed to SVN as r3310.