SimDesignerCanvas v1.5 Released

New updated Demo. All custom controls have been replaced with custom controls developed using the SimDesignerCanvas!

There are no limitations of use for the SimDesignerCanvas control within the Xojo IDE. Developer’s are welcome
to use the control uninterrupted, indefinately, before deciding to buy, and may purchase from the XDS Store at
Xojo Developer’s Spot (

The unlicensed version can be obtained here:

The SimDesignerCanvas can be used as the standard Xojo canvas, but allows many features to be implemented
simply by enabling/disabling them; as well as customizing all features from color, shape, thickness, sensitivity,
and user-defined images for in-canvas locks and resize handles. Every feature is fully customizable and can be
set/enabled/disabled all from the Xojo inspector without using a single line of code!

• Re-usable fully customizable features.
• Complex Picture/CanvasObject handling is done automatically.
• Custom control development takes a fraction of the time.
• Pictures/CanvasObjects are object-oriented so they can be manipulated with less thought/code, and even
referenced by name or CanvasObject ID!

SimDesignerCanvas v1.5 Features:

• Object-Oriented Graphics Handling (Every CanvasObject has properties and act like real controls even
handling mouse events and allowing user-defined properties!)
• Ability to embed physical RectControl and ContainerControl objects within CanvasObjects.
-Embedded objects keep their location while moving CanvasObjects around, and are removed when the CanvasObject is deleted.
-Embedded objects become disabled/enabled when the CanvasObject becomes disabled/enabled.
-Embedded objects become invisible/visible when the CanvasObject becomes invisible/visible.
• Picture layering with order-manipulation/Z-Order
• Built-In Picture resizing (with “keep proportion” option for each CanvasObject) and CanvasObject rotation functions.
• Static/Animated Objects within the Canvas
• StyledText CanvasObjects
• Shape CanvasObjects
• Drawable CanvasObjects (accept mouse/pen input)
• User-definable CanvasObjects
• Grid implementations with customizable size, architectural grouping, and custom colors.
• Fully customizable designer features such as:
-Movable objects
-Resizable objects by handles
-Object alignments
-Object bounds locking
-Object position locking
• Canvas object linking/chaining (line & line with single or double arrows)
• Export the Canvas in all Xojo image formats (PNG,BMP,GIF,JPG,PICT,TIFF) with
or without transparencies.
• Export and Load the Canvas in XML format maintaining CanvasObject properties.
• Export the Canvas into HTML format. (All StyledTexts are converted to HTML elements and the webpage looks exactly like it did in the designer!)
• Send the entire canvas and StyledText objects to the printer with a single function:

  • Full-size
  • Scaled to proportionately fit
  • Scale by percentage

SimDesignerCanvas also extends the graphics class for StyledText as:

  • g.DrawStyledText (theStyledText as StyledText, x as Integer, y as Integer, wrapWidth as Integer
  • g.DrawStyledText (theStyledText as StyledText, x as Integer, y as Integer, wrapWidth as Integer, maxHeight as Integer) as StyledText
  • g.StyledTextHeight(theStyledText as StyledText, wrapWidth as Integer) as Integer

An endless supply of graphics routines and extensions in the form of modules, to be released for the SimDesignerCanvas, will ensure a wide range of complex graphics manipulation and developer needs can be covered and completed in a few or single line(s) of code.

*This release entails a StyledText and resizing fix/optimization.

Love it :slight_smile: Should be coming in handy when working on an end user report designer :slight_smile:

Matt, how do those of us that purchased a license get the new version

If you log into your Xojo Developer’s Spot account, you should see a new message in your inbox waiting for you whenever a new release is made available :slight_smile:

Here’s the newest add-on/extension to be be released. We are testing the barcodes thoroughly to ensure they scan on almost every device (some are very finicky and take a few swipes :-/)

OK, I’m probably being thick here, but what does this thing do?

Download it and try it :slight_smile: The control is free to use indefinately in the Xojo IDE. It’s a canvas replacement for Xojo that handles a number of common graphics/designer feats for you (like the app designer in Xojo is really a Canvas ;-)) …as well as greatly reduces time designing custom controls…its a canvas replacement to make “life easier” for developers in short. It allows you to do the same thing that would take you literally hours with the Xojo canvas, and do them in a matter of minutes. There are also extensions for advanced graphics manipulation to further make development easy. The canvas can also be used to create a photoshop clone in under an hour with layering already handled, mindmaps, used as an html editor/designer (even exports in html), extends the graphics class to handle styledtext printing… its features are endless. Its been used in magazine publishing, a circuit pcb designer app, html editor, photoshop clone, and quite a few other places

Try it out :slight_smile: theres no restrictions and a few demos included like custom control design.

Hey Matthew,

Did you ever tried this on a retina MBP?
You should, because it is tremendously slow. In fact, it is absolutely not useable on a retina machine.
Everything has a huge delay up to seconds. Clicking on an object takes +2 seconds before it reacts, dragging an object around is extremely slow/sluggish, …

BTW when you check this: make sure you ‘retinaze’ the compiled app. first.

[quote=90536:@Christoph De Vocht]Hey Matthew,

Did you ever tried this on a retina MBP?
You should, because it is tremendously slow. In fact, it is absolutely not useable on a retina machine.
Everything has a huge delay up to seconds. Clicking on an object takes +2 seconds before it reacts, dragging an object around is extremely slow/sluggish, …

BTW when you check this: make sure you ‘retinaze’ the compiled app. first.[/quote]

Did you try disabling alignments? The xojo framework is extremely slow using the canvas and alignments for retina devices (which is merely bounds comparison using 16 if/then checks). If you disable alignments there are no comparisons. Xojo will need to update the framework (hopefully soon) using LLVM which will handle the Paint event much more smoothly (due to optimized code) for retina devices.

The Xojo framework on retina devices is sluggish in most areas (populating listboxes, drawing to canvas, manipulating text in a textarea (especially RTF) and can be seen in over a dozen posts here in the forums in the last month alone as well as a few dozen related issues by Googling “xojo retina slow”.

But disabling the alignments should increase the speed slightly as there is “less going on” when the paint event fires.

Do you per chance have an Nvidia GForce/Optimus graphics card?

It is faster but still very slow. :slight_smile:
But you are right, running a Xojo compiled app on a Retina system can be very slowly - especially when using the canvas.
Just enable Xojo for Retina and you are in for a treat - imo absolutely not useable, and I am not referring to the bugs. The GUI speed is awful.

I have a MBP Retina i7 with Intel Iris Pro and Nvidia Gefore GT 750M

Nvidia geoforce is known to have a lag (play any 3d games?)… which is why I asked… my last Mac had the same card…have my eyes set on one with an optimus graphics card which is suppose to be better. I have faith in Xojo. I’m sure the new compiler will fix some lag issues retina apps have with speed. Although using obj-c (xcode) to build retina cocoa apps have some graphical speed issues as well. :-/ It may simply be an apple issue and outside of Xojo’s control.

What are you referring to? I’ve seen nothing like this.

Possible fix:

Written in obj-c - slow text response

Xojo Slow Listbox’

Cnet - retina - why such poor performance

Retina- Bad product?

Slow PDFs

Macrumors - evidence of sluggish performance

Just a few of the 100+ thousand recent issues reported by retina users…

Most of those are random tech support problems involving people who just happen to have retina machines. Including the last one who happened to have a load of apps in their login item list.

What have they got to do with Objective-C or Xcode?

Nothing…its the graphics card and performance thereof. Thats the point…that its not only xojo applications, even obj-c/xcode apps have the same issue("…as well…")… which points to the fact that Xojo is not “responsible” for the poor performance, a developer can do nothing to rectify the issue; rather the graphics card-retina conversion poses the entire problem…Apple is aware of the issue and is rectifying it with new cards and chipsets in newer models. Not really a gamer, but Blizzard™ pulled retina world of warcraft due to the issue of low FPS. It makes sense for such a lag though…in hardware terms the bit stream “width” was never increased in the nvidia cards for retina, and you need more bits to occupy the higher DPI, but its being pulled at the same speed as non retina displays, only with more graphics memory (which does nothing but act as a “bit reservoir”)…(see the card and chip specs of retina vs non-retina). In cases where no invalidating/refreshing occurs, you will not notice a lag on xojo because the bit-stream is very low… Start refreshing/invalidating/repainting and everything slows down :-/

Has anyone at least profiled and compared retina and non-retina builds? That will tell you a whole bunch more than blaming it on a graphics card. Numbers, pls.

I can’t speak about the Canvas, but on the ListBox it is a big issue under Cocoa/Retina, Feedback #33168 is a Xojo verified bug. InvalidateCell( ) simply doesn’t work as documented, it causes every visible cell to have to be redrawn. Painful on Retina.

Windows - Build runs perfect
Linux - Build runs perfect
Mac OS X Cocoa Non-Retina - Build runs perfect
Mac OS X Cocoa Retina - Sluggish/Lucky if graphics intensive apps do not have a slow FPS

…what could the issue be? We are open to suggestions. I was just reporting what a Mac Rep stated upon inquiry, and showing backup evidence after doing a little research based on the Rep’s suggestion that (quote)

“most likely any graphics rendering issues you are seeing are related to a known graphics card issue found in MBPro series containing NVidia GeForce graphics cards. Retina models feature 220-227(??Can’t remember the specific number) Pixels Per Inch, whereas the non-retina models feature 115-130 (dont quote these two…i can’t remember the numbers) PPI. The cards which exist within the retina models were designed for the non-retina models and have higher graphics memory to compensate slightly for the difference…”

The point the rep made was like saying, you have 1000 marbles now instead of 500 (twice as many) but you can still only put one marble in the bag at a time…with more memory its like putting multiple marbles in your hand…but you can still only put one in the bag at a time… but having more than one in your hand at a time takes away time from having to pickup another one before putting it in the bag, so some time is saved (not much)…in the newer graphics cards “to be used”, you’ll be able to put 2 marbles in the bag (which they didn’t do from the start)…

Just stating what came straight from Apple…

But…I wish they’d fix it… we’ve gotten off topic…

While the graphics card does play a role I do not think it is the problem here. After all we are not talking about apps which put heavy demands on the graphics card, like WoW. If you have a single canvas without doing heavy calculations and it is noticable slower than the same app without canvas then the problem seems to me to be the canvas.