It is my pleasure to announce Apesuite Beta 3 which should be going out to all of our customers within the next day or two. This release is the biggest and best yet with a significant number of bugs squashed, including some workarounds for bugs in the Firemonkey platform itself. This release also adds some great new features and even a new component that moderately resembles the VCL Ribbon control.
Here's what's new and changed:
- Transforms have been completely ripped apart and overhauled. We are no longer depending on Firemonkey to render correctly and have implemented a workaround. This workaround also fixed a few bugs inherent in the way we were implementing them in a prior release. To make a long story short, skews work... nested transforms work... matrixes work... and overall, anything dependant upon transforms work much better than before.
- RTTI functions have been moved into their own unit (Apesuite.Utility.RTTI).
- Fixed a bug where style attributes opperating on the outter SVG tag would not reset when reloading a new file.
TDesigner (formerly TDesignerLayout)
- Renamed the component and associated units from TDesignerLayout to simply TDesigner.
- Implemented standard clipboard functions (Cut, Copy, Paste) and mapped standard keyboard shortcuts.
- Implemented delete function and mapped to the DELETE key.
- Implemented arrow key functions as follows:
- Arrow Keys - Move selected objects 1 point
- Ctrl+Arrow - Move selected objects 10 points.
- Alt+Arrow - Coded to Rotate (Left/Right) or Scale (Up/Down) a single selected object 1 degree, but Firemonkey does not report Alt-direction keystrokes.
- Alt+Ctrl+Arrow - Rotate (Left/Right) or Scale (Up/Down) a single selected object 5 degrees, but Firemonkey does not report Alt-direction keystrokes.
- Shift+Arrow - Shrink/Grow selected objects by 1 point.
- Shift+Ctrl+Arrow - Shrink/Grow selected objects by 10 points.
- Ctrl+Shift+Alt+Arrow - Move Selection to the outermost bounds.
- Added a default popup menu that can optionally be used which exposes functionality that is otherwise accessible only by the keyboard.
- Implemented Brint To Front / Send To Back functionality and exposed both the popup menu and via keyboard shortcuts CTRL+Minus and CTRL+Plus.
- Added methods to simplify adding objects to the designer.
- Added SaveTo and LoadFrom methods for Files and Streams
- Added AsString property to get and set the contents of the designer as a string.
- Added SelAsString to get and set the selected contents of the designer as a string.
- Added properties to control the default position for new objects and an optional delta for successive new objects.
- Refactored Selection Moves and Resizes to their own functions whcih are now common to mouse and keyboard functionality.
- Fixed several bugs and tweaked appearance a bit
TPagebar / TPageItem / TToolbox
- Created a new paged toolbar component to mimic a ribbon style interface to some degree. The intention is not to be MS Ribbon guideline compliant with this component, but rather accomplish some of the same goals in user interface design in a cross platform component. This component is in it's infancy and there is a lot that we will strive for in the future, but it's already immensely usefull as is today.
- Component is a true Firemonkey control, both technically and in spirit. It is implemented as skins so that you may tweak it's appearance and get an acceptable look and feel on each platform. A skin resource is included for Windows and Mac OSX.
- TPageBar is the container toolbar class.
- TPageItem is the pages within the bar.
- TToolbox is a bottom-captioned groupbox like container to be dropped inside of a TPageItem.
- Please refer to the image for example usage and appearance.
Runtime Layout Demo
- Permits adding a larger number of controls to the designer
- Changed interface to use the new TPagebar component as a demo
- TSVG still has a problem with scale transforms on items rendered as a Firemonkey TPath. The size is scaling correctly, but the XY position of absolute moves does not.
- TCard is not rendering for some reason. This is a top priority for the next update. In the meantime, you can use the TSVG component and load the cards from the resource folder manually.