ReleaseNotes:Planimate 6.00 Release Notes
- NEW Plot mode "Area Stepped" added
- FIX HandlePopupMenu routine operation now handles disabled items in sub menus properly.
- FIX When adding an attribute, options in the "attribute" button submenu are now unavailable as the attribute needs to be committed to before they can operate on it (Add View does an explicit OK).
- NEW Object properties ObjectPanelWidth and ObjectPanelHeight now support an object index of 0 to refer to the top level panel (which does not have an owning portal).
- NEW Panel option "Process Pan Gestures". When enabled, pan gestures on touch enabled devices will be sent to the panel as PanelDrag broadcasts using the new codes BeginPan, Pan and EndPan.
- FIX The Write Row Labels / Write Column Labels option names for the change->File->Write operation were swapped.
- FIX Scroll wheel now supported for table views in popups
- NOTE Significant internal cleanup - MinG and Linux (batch) builds fixed Updated VC build framework to SDK 7.1 Gesture API is loaded dynamically so PL still runs under XP Are any customers still using XP?
- FIX Fix routine text import - was not supporting inbuilt expression functions
- fIX A model is now loaded if its DB is dropped on Planimate's shortcut
- FIX Overlapping None and Help button in colour chooser in table editing
- FIX Routine text import supports comments
- NEW Experimental import routine lines from clipboard in Routine Editor menubar File / Import From Clipboard
Currently supports most operations. Eventually this will be used for text importing of routine code and perhaps for editing in the longer term.
Any line numbers present (square brackets before the actual operation) are ignored during the import.
- NEW Experimental parsing of complete routine lines
Press "F" in the routine editor to inserting a line by typing it, eg "p.attribute = 123". Note there is no popup help for routine operations, yet.
- CHANGE Using '$' in attribute names is no longer supported. Existing names containing '$' can be renamed to a name without this character.
- FIX The About Box now properly accomodates the banner image (570x264) and has been rewritten to support PNG resources.
- NOTE Internal cleanup/rewrites to attribute reference (callers to FormatValue()) and distribution dialog field order changes and general rewrites to make it text parser friendly and consistent.
- NOTE New file format due to distribution dialog cleanup
- NEW The font defaults dialog has a new button which will reset the default font categories to default fonts.
This is useful when loading older models that reference fonts like MS Sans Serif.
Customised fonts selected in objects/views are retained.
- NEW When editing panel options, the options for its owning portal are now also available in the category hierarchy.
- NEW The Debug Window / Event Types dialog has a new option for "Repaints" which will log the routines which trigger forced repaints / force repaint panels.
- CHANGE The "Show Log Viewer" option only appears in the menubar if "Planimate Log Viewer PBA.EXE" is present in the same folder as Planimate.EXE.
- NEW Find->Advanced can now find viewports and open the context menu for a selected viewport.
- NEW Gantt Views support a new column "_fillpercent" This value determines how much of the bar is filled from bottom to top, 0 = empty (just outline if present), 50 = half full, 100 = totally full.
- FIX About box for PBA was being shown even if no _APPLOGO file was found and the model option "Hide About Box in PBA" was selected.
- FIX Setting INI Display options StartW and StartH to -1 cause Planimate to initialise to as big as possible to avoid its default panelwidth/height (also set in the INI file) from needing scrollbars.
- FIX Typos in editor palette
- FIX Updated _!SYSTEM.DB with better find icon
- FIX Filling pipe bins with GDI+ was excessively slow so its back to GDI for them (10x faster).
- CHANGE The INI default for a panel background colour is PanelBackgroundColor. Older obsolete entries removed.
- FIX An entry generating events with random arrival times could not be followed by a routine generating random numbers in lookahead without an intervening capacity object.
This is now supported.
- FIX Column Overlay view "In Place Edit" where you can drag points on a graph now works in a basic manner.
This may be improved further if there is any interest in this capability.
- CHANGE Title bar more compact once a model is loaded
- NEW Routine operation EncodeARGB simplifies creating a colour value with transparency.
- NEW Routine operations for standard message box dialogs. They support setting message text and a title. if the title is empty a default title is used. String operations are useful in building up text from attributes, labels and quoted text.
MessageBox() : Show a message with an OK button
MessageBoxConfirm() : Question with OK (1) and Cancel (0) buttons
MessageBoxYN() : Question with Yes (1) and No (0) buttons
MessageBoxYNC() : Question with Yes (1), No (0) and Cancel (-1)
Using these operations instead of Dialog() is recommended.
- NEW Paint Text Objects have a new option "Multi-line text mode". When set, you can resize the text box and the text is wrapped to fit it.
- NEW Paint Text Objects have a new option "Process Text Expression" When set, the text you type for the paint object is interpreted dynamically like ODBC and Change-File expression text.
You can reference portal attributes with "p.name" (no quotes) and a few text system attributes, the most useful being s.OwningPortalLocation which will use the name of the first owning portal found which is in the model object list.
Simple string expressions can be constructed using "&" to combine literal strings and other references.
eg: by using: "Location: " & s.OwningPortalLocation the paint text object will show the name of a location on a spatial network subsystem without having to do any more coding or string handling within the subsystem.
- CHANGE A few dialogs in PL now use the standard windows dialog for yes/no and yes/no/cancel questions.
- NEW Routine operations that take text parameters now default to a string "" in the editor instead of the numerical valud 1.
TIP: you can change this to text formatted attributes/cells, regular attributes/cells (their formatted value is used), label list members or a combination using the '&' string concatenation operation.
- FIX Grid view was not updating properly in RGB mode
- NEW Grid view has a new option "No Single Updates (Needs Repaint)" which prevents the grid view updating as indivudual cells are changed. This can speed up large grid views as the modeller can change many cells then do a single repaint (ForceRepaint, RepaintPanel etc)
- FIX Missing text in state icon selection menu
- FIX ARGB colour handling in cases where data is converted to a colour was not handling the large numbers involved properly. Fixed paint object properties, view properties, graph properties and a couple of other routine ops which set colour.
- FIX Cleanups to image/icon handling
Newer format BMP files are now supported (typically 24 bit and compressed).
- FIX BMP, PNG and JPG files are now supported as the PBA about box image.
- FIX Fixed a few file extention descriptions
- FIX RemovePortal() ensures the main window view is not inside the portal being removed from the model.
- REMOVE Removed "Pause On Overflow" queue option
- NOTE Future versions of Planimate will remove support for "Planimate Grey" transparency using BMPs now that PNG is supported. That version will ship with new DB files and a tool to convert BMPs with Planimate Grey transparency to PNG format.
- NOTE JPGs are now loaded using GDI+ instead of COM IPicture class
- NOTE A lot of Internal renames to panel and class management code
- NEW Planimate PBAs now get a "generic" ICO for their application and window icons if an ICO is not specifically chosen. The icon used is present in a new updated _!SYSTEM.DB which is incuded in this release.
- NEW Planimate-as-a-DLL API new functions PL_SetColumnFormat PL_InsertRow, PL_DeleteRow PL_InsertColumn, PL_DeleteColumn PL_SetColumn, PL_GetColumn (these existed but are now added to enum)
- NEW A model can set s.CancelClose during processing of a close broadcast to cancel the close of the model. This is useful if the user of a PBA accidentally presses [x] and the model wants to confirm quitting.
Setting this is only relevant during the close broadcast.
- FIX Creating a standalone EXE with customised application icon was failing under Win7 because the resource APIs do not like manipulating the new 256x256 large icon, requiring a work-around.
- FIX The about box "last saved" information is now updated when a model is saved. Previously it only showed the save state for the loaded model.
- FIX Gantt Views with outline rects would draw incorrect rectangles if there were entries in the gantt table which, for a given position on the gantt, were set such that a bar was opened at a time on an lower layer and subsequently closed at an earlier time on a higher layer.
- NEW Command line option /DUMPTEXT causes Planimate to dump all paint text and tool tips to file _pltext.txt. This occurs each time a model is loaded. This is useful for creating a summary of all paint text in the model which could later be used to facilitate translation.
- NEW Planimate now has a new application icon consistent with InterDynamics' new branding
- NEW The editor palette empty slot is now associated with "Find"
- NOTE NEW _!system.db is needed with this version (included)
- FIX Planimate would fault in /batch mode if the model attempted to set a custom menubar using the SetMenuBar() routine operation.
Doing so is now ignored.
TIP:models can use "s.BackgroundRun" to determine if running in batch mode.
- FIX Pipe line drawing was drawing extra lines in stopped mode
- CHANGE The default debug file when /debugfile is used as a command line parameter is now "planimate.dbg". You can override the debugfile using "/DEBUGFILE="filename"
- NEW "/debugapi /debugfile" options will create a trace-log of all API calls and the thread that called them in the debugfile.
- NEW Gantt View now supports _color2 for colouring bars with a gradient
- FIX _linecolor in log driven graph configuration table
- FIX Changed an internal flag value so ARGB values of 0xFFFFFFFF in graphs will work properly.
- FIX Adding view of item class attribute now works again
- CHANGE Made the "tension" value for curve plots an integer (nominally 0..100)
- NEW Graph plot mode "Curve" is like Line but uses a curve-fit draw. This makes use of a parameter "Tension" (can be set as _tension in the log driven configuration table). This sets how "loose" the curve is through the points, 0 = line, 0.4 = default, 1 = sloppy.
- NEW Graph plot property "Antialias" (_antialias for log driven configuration table) controls if antialiasing is used. For tight overlays with thin lines, it may be desirable to turn it off.
- FIX Graph views now clip against borders
- FIX Implement caching for line plots to prevent seams between adjacent line segments (particularly in log driven graphs with periodic data thats not changing). This also draws the bends in the line without breaks.
- FIX Pipe's were not drawing last segment in edit mode, very noticeable if the pipe was configured to few graphical sections
- FIX Mode and style changes in Log Driven graph data now work for area plots and are supported in the new line plot enhancement.
- FIX Can now select images from a model DB which has a dot in its filename
- FIX Put in a clamp to prevent very wide scale ranges and very narrow scale/grid intervals from locking up Planimate
- FIX Graphics dialog colour editing for table views
- NOTE Cleanup of co-ordinate/draw handling particularly in gantt blocks and all objects that use the basic rectangle edited using the "Graphics" dialog.
- FIX Fix long train animation when train is entering a capacity off a road in the reverse direction
- NEW Custom colours in the Planimate colour palette can now include transparency. This is edited by clicking colours in the Tools->Colour Palette dialog.
- NEW Planimate-as-a-DLL new PL_GetSystemInfo code: PLSI_PAUSEAFTERADVANCE
This sets a flag in the engine which controls whether Planimate pauses after an advance-to-time (1) or continues (0, default).
This must be set after the model run is started and gets reset to 0 at run start.
It should be set before an advance to time (PLSI_ADVANCETOTIME) to ensure it takes effect as Planimate is running in a different thread.
- CHANGE Now report any attempt to set palette colurs 0..15 which are reserved and unchangeable.
- CHANGE Reverted to GDI for text display as string sizing/placement was unreliable under GDI+. Re-enabled bitmap fonts and removed the translation for "MS Sans Serif", though it still stands that bitmap fonts should be avoided where possible as when large fonts are installed, they will cause problems in tight layouts.
- NEW Hold ctrl while selecting a font shows a dialog enabling the font height to be specified in pixels instead of points (1/72th of an inch). This is useful in Planimate since panel layouts are pixel based.
The standard font dialog only enables font size to be specified in whole points. Using this enables font sizes corresponding to fractional point sizes to be selected.
A future version may have a new font dialog that supports fractional font point sizes.
- FIX Train tail mode still processed for roads even if the display option is off
- FIX Adjusted table cell padding
- FIX Graphs with unused overlays would close PL due to not checking for this case when updating graph views.
- CHANGE Renamed _TrainTailExit to _TrainTailExitTrk
- NEW Border style "Rounded Double" has double edge and "Rounded Edge" has single edge.
- NEW Release notes now called ReleaseNotes.txt
- FIX Disappearing train length when train in portal (train icon is shown when its inside portal again)
- This version is a major upgrade to Planimate's graphics and presentation
- capabilities, particularly in graphs. Anti-aliased lines and text are now
- standard. Basic graphic elements now support transparency, transparent
- gradients and full RGB colours (not constrained by palette).
- Version 6.0.0 begins a new numbering scheme and names and branding imagery
- are also updated.
- Older models will need review and the new abilities give much scope
- for improving their appearance.
- NEW A new version numbering system is now in place with three numbers (major,minor,fix)
5.36i would be 5.36.9 in the new system.
The Planimate build chain has been updated to package releases into zip files with the new name format.
- NEW Version information which Windows Explorer can display is now part of the Planimate EXEs.
- NEW A new attribute for trains on track models using train length enables modellers to store data (eg: a management row index) which will be returned to the model when a train tail broadcast is sent.
s.TrainTailData should be set just before the item enters a road or a multiserver in length mode. When the train's tail exits the road/multiserver and the _TrainTailExit broadcast is sent, it will include the data if an item attribute called "_taildata1" exists.
If before the train left [A] it set s.TrainTailData = 123 then when the tail crosses [B] the _TrainTailExit broadcast sent to [B] will have i._taildata1 set to 123
In the future further data fields may be added.
- NEW Planimate now supports full colour with transparency in paint, view "Graphics" and graphs.
A colour is set by 4 values: Alpha (transparency), Red, Green & Blue, these are known as "ARGB" colours.
Specific colours can be choesn anywhere a colour is selected, or palette colours can continue to be used.
A new colour picker supports the selection of an ARGB colour using decimal values, hex notation (AARRGGBB), the windows colour picker as well as the existing palette colours.
Planimate distinguishes between a palette colour and an ARGB selection. If you pick a colour from the palette (or the name list) then you will see its RGB values but Planimate will retain it as a palette index, meaning if the palette changes, the colour will track it.
When you change the ARGB values or use the windows colour selector, Planimate stores the colour as an independent ARGB value. This is indicated in the name list (at the bottom).
The colour preview in the colour picker and colour previews in other places such as
- the graphics dialog
- the table view graphics colours
- colour items in the options editor
now highlight when a colour is partially transparent (ie: Alpha is between 1..254) by showing the colour over black and white sub-boxes.
Internally Planimate stores ARGB colours as 4 8-bit values packed together.
MSB ................. LSB [alpha][blue][green][red]
if alpha is 255 (0xFF) the colour is opaque if alpha is 0, the colour is a palette index instead (0..63 in the LSB) or the special "None" colour (255 in the LSB)
The internal byte ordering has blue and red reversed to ARGB notation as this is how COLORREFs are stored by Windows and some models might have colours in this form.
However if you use the colour picker and the new value format "Colour Value AARRGGBB", the swapping will be transparent.
NEW New value format "Colour Value AARRGGBB" enables a colour to be specified as 8 hex digits. This is useful for configuration tables.
- NEW Graph Views (Column Overlay, Log Driven, Gantt and Train) have been substantially rewritten.
As well as now supporting anti-aliasing, many new properties have been added and a new "Graph Settings" options editor replaces the "Scale Settings" context menu.
New features of the graphs include
- X and Y "tick" marks
- graph axis lines
- RHS grid lines/tick marks
- X and Y scale labels
- Background colour (including gradient) separately set
for the plot area
with colour, line width, line style and font for each item set separately.
There are nearly 100 properties and a new options dialog groups them together to ease editing. This dialog supports selection of values, line style, colour, font and use of time notation for intervals. It also supports export and import of graph settings to template files, to assist in reusing graph configurations.
The new graph view properties are in the _tableview_properties label list and the SetViewProperty()/GetViewProperty() routine operations support the numeric ones.
NEW Graph Plot Enhancements for Column Overlay and Log Driven Graphs
In addition to anti-aliasing for lines, there have been significant enhancement to the graph plot modes.
Log Driven Graph plots have additional properties of "_color2" and "_linecolor". Their use depends on the plot mode:
For Line and Stepped overlays, "_linecolor" is used if present instead of "_color".
For Horizontal Bar and Gantt overlays, if _color2 is set as well as _color then the bar is drawn with a gradient from top to bottom. Setting _border_color draws a border around the bar.
The same applies for Vertical Bar (histogram) except the gradient is from left to right.
For Area plots, setting _color2 sets a gradient from the top edge of the plot to the bottom edge, with the area filled in depending on its height. The _Bordercolor, _borderstyle and _width set the style of the edge of the area plot. Note that area plots are cached and drawn last to ensure the area is filled cleanly.
For Point mode, if _color2 is set then the points are drawn with a gradient from center to edge. _width sets the radius and _bordercolor sets the edge.
The Column Overlay graph overlay editor enables editing most of the properties that are available to the log driven graph plots, hence bringing the two view types closer in ability even though their data input differs.
In addition, the clipping of graphs to the edge is handled differently, particularly for Line and Area plots. As you zoom in, there is less distortion of lines extending past the edge.
- CHANGE Graph View option "Deferred Drawing" is now always on and no longer presented as an option. Graph Views now are built off-screen and update to the screen once ready.
- CHANGE The previous format "Color Value RRGGBB" and the EncodeRGB() operation now set the alpha to 0xFF to create an opaque colour. A new EncodeARGB() is forthcoming.
- NOTE The graph _colorrgb value is obsolete as _color now supports RGB and alpha. It still will work. If you convert a model to use _color, make sure existing colour values are updated to have the alpha byte set to 255. For a log driven graph configuration table, it is useful to format the colour columns as ARGB.
- NEW Lines (flow paths, tracks, spatial links, pipe outlines, graph view lines, paint lines, gantt block connectors) are drawn using anti-aliasing and can be partially transparent where the colour is an option.
- NEW The menubar Settings -> Colour Palette option now shows a different dialog to the colour pick dialog and is where you can customise the colour palettes.
- NEW Text/font handling now uses new rendering which supports anti-aliased text. Due to differences in the sizing/kerning of characters, there may be issues in cases where text size was precisely matched to the display.
Note that with displays having higher resolutions, it is more common to find the windows font scaling options in use which could cause problems if space is not allowed for it as Planimate layout is pixel based.
The new text engine does not support old bitmap fonts, only scalable vector fonts. Many old Planimate models used the bitmap "MS Sans Serif" font. Planimate will automatically substitute "Microsoft Sans Serif" upon load of such models. This is a vector replacement font.
- NEW The Customise default fonts dialog now shows a preview of the selected category and the font picker only shows vector fonts.
- NEW Paint ovals are now anti-alised and as a bonus, they now will use the "Text" colour to set up a gradient from their center (background) colour to their edge. This is separate to their border colour which draws the edge.
- NEW Rounded edge buttons/boxes are anti-aliased and much improved. You can use paint button click states to customise the click effect for round edge buttons.
- NEW Command line option /VERSION causes Planimate to exit after writing the planimat.dbg file. This file includes a line with the version number.
- REMOVE Removed rounded border styles except rounded and rounded edge.