Tags: emk/halyard
Tags
0.5.42 - 20 Oct 2009 This release includes a few more bug fixes which we want to make before declaring this engine stable. Of particular interest is the new %card% .focus! method, which can be used to focus the stage on startup. Eric Kidd (3): Correctly enable/disable accelerators in full-screen mode LICENSE.txt: Convert line endings to CRLF for use on Windows Add %card% .focus! method
0.5.41 - 15 Oct 2009 This release includes just a single fix, to make the use of Tamale as the user data directory consistent between all Scheme code, by pushing the code to switch to the Tamale user data directory up into (script-user-data-directory). Brian Campbell (2): Use Tamale user data directory for all script user data access Fix build failure in Common tests due to calling 'DataPath prim
0.5.40 - 13 Oct 2009 This release includes a few more tools for migrating an installed program from Tamale to Halyard. We add a stub executable that can replace Tamale.exe as the target of old shortcuts, which then simply invokes engine/win32/Halyard.exe with the same arguments. This stub executable is not part of the normal build and deploy process; it must be built and deployed manually to projects that need it. We also add a mode in which we use the Tamale user data directory instead of the Halyard user data directory, if a Tamale user data directory is present and the program has requested this, to seamlessly provide access to all old saved data. You can enable this feature by create a file named config/USE-TAMALE-DIRECTORY-FOR-USER-PREFS Brian Campbell (3): Updater: Add LnkTrampoline project to redirect user with old shortcuts Updater: LnkTrampoline: Use backslashes when launching engine data-file.ss: Use Tamale user data directory if specified and exists
0.5.39 - 8 Oct 2009 This release focuses on two areas, the update installer and providing better native widget support. The update installer has been taught how to clean up programs which were installed with the old, pre 0.5 program layout. This involves deleting any extra files and directories in the PLT search path, as well as ensuring that the case of files and directories is corrected, as the filesystem is case insensitive while PLT is not. There have been a few bug fixes and performance fixes as well. There are two new native widgets added, %list-box% and an experimental %pop-up-menu%. Look in elements.ss for documentation on %list-box%. As %pop-up-menu% is experimental and the interface subject to change, it is in it's own file "halyard/pop-up-menu.ss" and must be required manually. We have also added code signing for our executables, and more importantly our update installer, so users updating on Vista or newer will get nicer dialog boxes about updating. Brian Campbell (15): Updater: Fix path to re-launch executable Updater: Fix performance regression in download-update Updater: Extract superclass of UpdateInstallerTest Updater: Add test coverage for smarter update installer Updater: Delete vestigial files in script and collect directories Updater: Delete vestigial directories in script and collect dirs Updater: Downcase file and directory names when doing cleanup. Updater: Add logging when marking updates as impossible Updater: Fix bug in which we would try to delete non-empty directories Updater: Rename directories that differ only in case Updater: Case rename directories even when all files within them change Updater: Look for executable in various places if we don't find it Updater: Code review cleanup Widgets: Build fixes for pop-up-menu.ss Merge branch 'widgets' Eric Kidd (4): buildfile.rb: Sign our binaries when requested Widgets: Add new %list-box% element Widgets: Rename selection -> selection-list in %list-box% Widgets: Add pop-up menu widget
0.5.38 - 1 Sep 2009 This release of Halyard substantially improves the updater to no longer require downloads for files which are already present on the system, though they may be moved to other locations in the update. This will allow updating of large programs in which, for example, the media directory has moved, without having to download all of the media again. We also fix a bug in which an extra 1-pixel wide light colored border appeared in full-screen mode, due to the wxAUI art provider. Brian Campbell (16): UpdateInstaller: Add unit tests for parsing full manifest UpdateInstaller: Begin implementing ManifestDiff class UpdateInstaller: Rename Manifest -> FileSpec, merge ManifestDiff UpdateInstaller: Change static members to init methods UpdateInstaller: Add support for copying files from tree to pool UpdateInstaller: Add notes on model behind new behavior UpdateInstaller: More notes on model of new behavior UpdateInstaller: Change init methods back to static members, tweak names UpdateInstaller: Use boost:unordered_set, _map, and _multimap UpdateInstaller: Implement file moves, deletes, and copies via the pool UpdateInstaller: Record current state in todo/updater-update.txt Updater: Provide stronger guarantees for MANIFEST-DIFF Updater: Only download files that we do not already have on disk Updater: Remove vestigial remains of MANIFEST-DIFF UpdateInstaller: Code review cleanups Merge branch 'master' of git:https://github.com/emk/halyard Eric Kidd (1): Remove border from stage in full-screen mode
0.5.37 - 28 Aug 2009 This release of Halyard replaces the high-level HACP client with asynchronous implementation that handles errors internally. It also includes a new DATA-FILE->HASH-TABLE function which, when given a path, will load a user preference file in data-file.ss format and convert it to a hash table. See the commit message for that patch for example code. Eric Kidd (4): %easy-url-request%: Add on-transfer-finished callback HACP: Allow keyword parameters to be passed to %url-request%s HACP: Rewrite high-level client to run asynchronously data-file.ss: Export data-file->hash-table for reading old prefs
0.5.36 - 4 Aug 2009 This release of Halyard includes a preliminary implementation of HACP, a protocol for talking to a "learning management system" via HTTP. It's similar to SCORM, but it can be used from outside of a browser. Our HACP implementation has a number of important limitations: 1. It relies on two custom HACP extensions to register new users and create HACP sessions. 2. It ignores the data returned by HACP GetParam requests. 3. The main API is not yet asynchronous, and the error-handling is weak. Basically, we're using HACP as a write-only protocol to report facts about the user. This implementation is extremely preliminary, and only intended to support development of Halyard code which uses HACP experimentally. We also add UUID-generation functions using the review-stage boost::uuid library. On Windows, these UUIDs are actually generated by Windows. On other platforms, we rely on potentially predictable random number generators. There are also a number of improvements to %easy-url-request% and subclasses, based on actual use. Eric Kidd (28): LICENSE.txt: Add licensing info for boost::uuid Add a (uuid) function for generating universally unique identifiers Delete %json-request% elements created during unit tests Add a %http-post-form-request% to simulate web form submission %url-request%: Move parameter support to %easy-url-request% json.ss: Use hash tables instead of "assoc vectors" %json-request%: Allow HTTP POST requests to return JSON response HACP: Implement our custom setup extensions HACP: Implement GetParam request which ignores the response HACP: Implement PutParam request HACP: Allow objectives to be written using PutParam request HACP: Use proper "percent encoding" for keys, values and data http-test-server.rb: Fix undefined variable errors HACP: Implement valid-hacp-status? for range-checking HACP: Add support for setting simple HACP fields HACP: Add support for setting the status of objectives HACP: Add placeholder for high-level API UUID: Add uuid? function for recognizing UUID strings HACP: Rough in high-level API, and assign UUIDs to users HACP: Register current user with the server util.ss: Export make-log-exception-fn HACP: Create a new HACP session HACP: Don't raise errors in test server during normal unit testing HACP: Make initial GetParam request HACP: Make PutParam requests HACP: Don't re-register known users HACP: Do not allow hyphens in auto-generated student IDs HACP: Send "Lesson_Status" field instead of incorrect "Status" field Scott McMurray (1): Import uuid_alt_v13_pod
0.5.35 - 7 July 2009 This version of Halyard fixes many long-standing Z-order, visibility and cursor-grabbing bugs. To fix these bugs, we replaced our flat C++ element list with a hierarchy based on the Scheme node hierarchy. The new behavior is currently turned off by default, although this will change in the next engine release. In the meantime, you can observe the new semantics by passing the following parameter to .new: :has-legacy-z-order-and-visibility? #f You will want to add the following to the startup code of all existing Halyard programs: (require (lib "deprecated.ss" "halyard")) (set! (compatibility-default 'has-legacy-z-order-and-visibility?) #t) We strongly recommend against changing this default at the library level--instead, change the default on a per-program basis. Most libraries should work correctly in either mode, with the occasional addition of a :has-legacy-z-order-and-visibility? override. Here's a summary of what changes when the new features are enabled: 1. Elements are now drawn immediately after their parent node, and not in order of global creation. Hit-testing has been updated in a similar fashion. 2. By default, all elements specify ':wants-cursor? #t'. The default cursor, however, has changed from 'hand to 'inherit, _except_ for subclasses of %basic-button% and %clickable-zone%. Other %custom-element% subclasses with mouse-* handlers should be updated to explicitly set their cursor to something appropriate. 3. Mouse grabbing will now send events to the children of the grabbed element. Under normal circumstances, these will propagate back up to the element itself. 4. %element% .raise-to-top! now raises an element above its immediate siblings, but not necessarily above all other elements on the card. 5. Putting an element into the drag layer should also put all of its children into the drag layer as well. 6. Calling (set! (elem .shown?) #f) will also make its children invisible. Calling (set! (elem .shown?) #t) will make the children visible _only_ if they were visible before. When upgrading to this new engine, select 'Reset to Default Perspective' from the 'Window' menu, and you will gain access to a new 'Elements' pane. This pane shows all currently-active elements. Hidden elements are shown using grey text. This engine introduces the new API (find-node-at point), which takes a point in screen coordinates, and returns the node at that point; currently, it only returns elements, but if cards or groups become clickable in the future, may return those. This engine also includes an important bug-fix for stale event handling, and some preliminary Linux/wxGTK patches from Robinson. Brian Campbell (5): C++ nodes: Bugfix for legacy z-order emulation on group-parented elems C++ nodes: Use current group member as legacy element parent Don't mark events as stale if their timestamp equals sMaxStaleTime C++ nodes: Add FindNodeAt primitive and FIND-NODE-AT function C++ nodes: Fix sementics of legacy children for current group member Eric Kidd (59): Cleanup: Add 'indent-tabs-mode: nil' to fix-prologues.pl Cleanup: Change C++ prologues to include 'indent-tabs-mode: nil' Cleanup: Convert tabs to spaces Cleanup: Modify fix-comments to strip "/////" clutter Cleanup: Strip "/////" clutter from comments Cleanup: Add tool for updating brace style Cleanup: Convert braces to Java style Merge branch 'cleanup' of [email protected]:emk/halyard Merge branch 'for-merge' of git:https://github.com/colonelqubit/halyard Cairo: Fix text in compile-time error message gnome-autogen.sh: Look for glibtool on the Mac gitignore: Ignore libtool-generated files fix-comments.pl: Modify to strip more "//////////" clutter Cleanup: Strip top-level "//////////" clutter ASSERT: Check condition at call site, not in separate function Doxygen: Run 'doxygen -u' to update Doxyfile Doxygen: Fix infinite loop when generating API docs wxAui: Fix incomplete comment found in code review boost: Upgrade to 1.39.0 C++ nodes: Make Node a superclass of Element C++ nodes: Modify Wait primitive to look up element like other primitives C++ nodes: Use BOOST_FOREACH to loop over mElements C++ nodes: Add a name-to-Node map to Stage C++ nodes: Replace Stage::FindElement with FindNode C++ nodes: Convert more mElements loops to use mNodes Stage: Make our use of dynamic_cast_tag more consistent C++ nodes: Convert Element addition and removal to support Nodes C++ nodes: Rename more Stage APIs to refer to Nodes configure: Require Boost 1.34.0 or later C++ nodes: Add C++ counterpart to %group-member% C++ nodes: Add C++ counterpart to %invisible-element% C++ nodes: Add C++ counterpart to %root-node% Node: Don't pass inStage to every constructor C++ nodes: Break Card and CardGroup into separate classes C++ nodes: Implement Node::GetParent() C++ nodes: Implement Node::(RegisterWith|UnregisterFrom)Parent configure: Require Boost 1.38.0 Elements pane: Add a primitive "Elements" pane Elements pane: Use "display names" for nodes Elements pane: Expand GroupMembers automatically Elements pane: Display icons for nodes Elements pane: Display italic class names for anonymous nodes Elements pane: Show the names of hidden nodes in grey Bug fix: Elements pane: Base event table on correct class Elements pane: Only update when visible C++ nodes: Keep track of legacy Z-order relationships C++ nodes: Composite using new Z-order code C++ nodes: Make mouse grabbing use LightweightElement explicitly C++ nodes: Hit-test using new Z-order code C++ nodes: "Raise to top" using new Z-order semantics C++ nodes: Add demo code and instructions for planned features C++ nodes: Remove useless Element::GetCursorName() function C++ nodes: Tweak cursor handling for new Z-order semantics C++ nodes: Send mouse-(enter|leave) to children of grabbed element C++ nodes: Reorganize Node.h and break into sections C++ nodes: Reorganize Element.h and break into sections C++ nodes: Try to detect leaked Node objects C++ nodes: Hide and show elements using new Z-order semantics C++ nodes: Allow default z-order semantics to be changed Robinson Tryon (6): autotools: Look for BOOST_PRG_EXEC instead of BOOST_TEST_EXEC Make HalyardCheckAssertion inTest an unsigned long FileSystem: Use proper syntax to declare operator== friend /m4: Pick correct mzscheme libs based on $ac_mzscheme_want_precise_gc TValue: Make template specializations in the proper namespace HalyardEventLoop: Make __WXGTK__ builds use the standard loop
0.5.34 - 12 June 2009 This release significantly improves the Halyard developer GUI in a number of long-overdue ways: 1) We now support creating new Halyard-based programs from the GUI. 2) The "Recent Programs" list finally works. 3) We have an icon on the Macintosh. 4) Halyard's old SashFrame class has been replaced by a new AUI-based GUI, complete with dockable palettes. 5) The listener's focus and scrolling behavior has been improved significantly. 6) We now have a "Media Info" palette which shows the path and timecode of whatever element the script is waiting on. This is experimental, and will be refined further in future releases. This release also includes a few compilation fixes for recent Ubuntu versions of GCC. It probably wouldn't be too hard to get a very primitive Linux port of Halyard running if anybody is interested. This release introduces a new function in the unit test API, RUNNING-ALL-TESTS?, which specifies if we are currently running through our unit test sequence. Brian Campbell (3): Cairo: Remove warning for drawing 0-area rectangle outline Merge branch 'autogen-update' of [email protected]:lambda/halyard Halyard.sln: Don't build unnecessary projects in Libraries phase Christian Persch (2): autogen: Add -Wno-portability to automake invocation. Bug #529120... autogen: Support for automake 1.11 Eric Kidd (26): StartupDlg: Implement "recent files" list ScriptEditor: Only scan for identifiers in source directories StartupDlg: Implement "new program" radio button Stage: Factor common code out of OpenDocument, NewDocument StartupDlg: Rename mRecentFiles -> mHistory Stage: Factor out AddFileToHistory calls Reorganize .gitignore and add .DS_Store Mac: Add application icon and Info.plist wxAui: Convert StageFrame to use wxAui wxAui: Convert ScriptEditor to use wxAui wxAui: Reduce minimum window size for ScriptEditor wxAui: Bug fix: Remove extra CreateToolBar call wxAui: Save and restore frame sizes DocNotebook: Make a note of a long-standing Mac bug wxAui: Remove obsolete "TODO AUI" comment Mac: Make CFBundleExecutable name uppercase Remove ancient timecoder demo wxAui: Convert Listener to use wxAui wxAui: Tweak Listener behavior on Windows ProgramTree: Get rid of useless "Cards" node Merge branch 'aui' of [email protected]:emk/halyard wxAui: Allow user to reset frame perspective to default Bug fix: Cairo: Fix TransformRectToUnitSquare regressions wxAui: Add a "Media Info" pane with paths & timecodes Revert "HalyardCheckAssertion: Correct type of inTest to bool" wxAui: Fine-tune spacing of "Media Info" palette Robinson Tryon (11): HACKING.txt: Clarify win32 build instructions Remove unneeded declaration of Halyard::TStateDB HalyardCheckAssertion: Correct type of inTest to bool Include string.h explicitly when using strncpy Remove extra specifier from ~StyleRep() Make #endif lines use proper syntax Change default values to have correct wxString type Unit tests: Create/provide function running-all-tests? /bugs: Add card /bugs/bug-f12767-measure-text-space-before-newline /m4: Update ax_boost_unit_test_framework.m4 to the latest version /m4: Update ax_boost_test_exec_monitor.m4 to the latest version Rodney Dawes (1): autogen: Only pass --enable-maintainer-mode when AM_MAINTAINER_MODE is...
PreviousNext