Skip to content

Tags: emk/halyard

Tags

v0.5.42

Toggle v0.5.42's commit message
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

v0.5.41

Toggle v0.5.41's commit message
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

v0.5.40

Toggle v0.5.40's commit message
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

v0.5.39

Toggle v0.5.39's commit message
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

v0.5.38.1

Toggle v0.5.38.1's commit message
0.5.38.1 - 4 Sep 2009

This is a bugfix release, to fix a problem in which QuickTime media failed to
play when launched in command line or runtime mode.

Brian Campbell (1):
      FileSystem: Simplify paths containing . and .. when setting base dirs

v0.5.38

Toggle v0.5.38's commit message
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

v0.5.37

Toggle v0.5.37's commit message
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

v0.5.36

Toggle v0.5.36's commit message
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

v0.5.35

Toggle v0.5.35's commit message
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

v0.5.34

Toggle v0.5.34's commit message
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...