SimDesignerCanvas Control v1.5 Available

The SimDesignerCanvas is an advanced canvas control replacement for the standard Xojo Canvas control. It allows for rapid custom control development, object-oriented image handling, and automates designer interface implementation by allowing objects to be manipulated by code or drag-n-dropped. Like the Xojo IDE, it features custom object locking capabilities, visual object alignment bars, and resizable handles. The SimDesignerCanvas also features picture object layering with move forward, backward, move to the front, and move to the back. Transparencies can be maintained, and the SimDesignerCanvas can save and load entire layouts with all objects and settings in XML format. The XML format can be saved directly to file or be obtained as a string for custom project file formats, for storing in a database, or used in another manor. Any and all features can be enabled, disabled, and customized from the Xojo Inspector, or by code. Picture (CanvasObject) objects within the SimDesignerCanvas can also store properties for use in designer IDE’s or other purposes. Objects in the SimDesignerCanvas also handle events such as MouseEnter (Hover), MouseExit, ObjectMoved, ObjectCreated, ObjectResized, ObjectResizing, GotFocus (ObjectSelected), and many more (plus the standard Canvas Event Handlers), and images can be dynamically changed within these events, or anywhere within your code as desired. Built-in functions also include Object rotation and Vertical/Horizontal mirroring. Even better, if an object has been removed, the SimDesignerCanvas can undo the remove event by calling a single function at any time (even after manipulating other objects). Any picture can be added to the SimDesignerCanvas as a CanvasObject, and a few built-in CanvasObjects are automatically supported such as Shapes (adding Quadrilaterals (squares, rectangles) and Ovals; supporting PenWidth, PenHeight, and PenColor), Text Only Objects (drawn text elements with custom Font, TextSize, and TextColor), Drawable Objects (CanvasObjects which can recieve mouse/pen input and be drawn on with custom PenWidth, PenHeight, and PenColor). Objects can even accept a Caption parameter for use in labeling objects or creating custom buttons, with no additional code required. You can export the entire canvas into a variety of formats such as PNG, Pict, JPG, GIF, BMP, and TIFF; supporting transparencies (if the image format supports transparencies) or call the FlattenedImage function, returning a Picture object of the entire canvas for use elsewhere in your software. Extending the CanvasObject Class is easy since it can accept any Graphics/Picture class objects, and all CanvasObject properties and custom properties can be accessed at any time, anywhere. StyledText objects are also supported and can be added to the canvas and moved around and resized freely, preserving their properties, and automatically handle word-wrapping. One of the best features of the SimDesignerCanvas is its ability to also export the entire canvas (all CanvasObjects and Backgrounds) in HTML format converting StyledText, object sizing and positioning, background position and sizing, all into native HTML elements! It is truly a “What you see is what you get” (WYSIWYG) Canvas control that is easy to use, and removes the complexities of designer interface development, so you can work on other faculties of your software immediately. All the common tasks and picture object management is handled for you!

The source code included in the download contains the SimDesignerCanvas control, and a full demo application featuring all of the built-in functions, a ReadMe outlining all available functions, properties and abilities, plus demo XML project formats that can be loaded by the demo application.

Exporting to pure RTF format including StyledText and images is currently under development.

Download: http://www.xojodevspot.com/demos/SimDesignerCanvas.zip

HTML Export Demo (See included XML project HTML-Demo.XML) http://www.xojodevspot.com/demos/HTMLDemo.html

The control has been commercially tested in a variety of software from electronic circuit board/PCB design,

story/article publication software, HTML editors, and even a non-public iOS compiler called Simulanics iBuilder 2.0, written entirely with Xojo!

It has been tested in numerous applications, and for the first time ever, will be made available to the public here.

If you have any suggestions, need help, or would like to use this control commercially or in your own software, please feel free to contact me.

Wow.

Very nice Matthew.

One serious remark.
It really looks horrible on a Mac.

[quote=82859:@Paul Sondervan]Very nice Matthw one serious remark.
It really looks horrible on a Mac.

[/quote]

:slight_smile: Apologies, the included demo of version 1.0 is only to show functionality and briefly introduce the control. Version 1.1 is almost ready with double the features (and expanded such as Rotate by radian, blur, sharpen, etc), and a new demo app which migrates most features into a menubar, allowing a larger demo canvas space to sandbox the demo. I’ve even optimized the drawing surface object allowing for more rapid smooth drawing, and am adding brush shapes as well… Can’t forget full RTF support (what a doozie) is on its way. Plus I added bounds canvasobject locking (lock left, right, top, bottom) and integrated that into the HTML export to allow floating objects. Version 1.2 will be available for demo soon. Next step…web edition :slight_smile:

In version 1.0, I forgot to mention that the canvasobjects are movable by using the keyboard arrow keys and can be “tabbed” to the next object.

If you have any requests or suggestions of functionality would love to hear them! Also have “snap-to-alignment” in the works. :slight_smile:

A design for OSX,
the only problem is, the kColorPicker background is not transparent (Pic2)

SDCanvasOSX

The color picker is not part of the SimDesignerCanvas controls. it is a free control that available from ivanomonti and is not managed by me. It was only used to replace the dull Xojo colorpicker that is used by default.

Have you looked into Jeremie Leroy’s “Color Wheel”?

I have a color picker that I didnt use in the demo (its a separate control I have available at XDS)…this demo is only to illustrate the SimDesignerCanvas control…I’ll leave color picker choices upto the developers using the SimDesignerCanvas control :slight_smile: version 1.2 of the SimDesignerCanvas demo has the updated SimDesignerCanvas control and the colorpicker has been changed in the new demo interface. I have also added demos in version 1.2 of how to rapidly create custom controls using the SimDesignerCanvas such as rollover buttons, custom menu controls, custom toolbars, breadcrumb bars and custom tab controls. The current demo only show designer functions available. If I have time before i post version 1.2 on Tuesday, I may even make a little animated rpg game with the SimDesignerCanvas Control to demonstrate the object oriented graphics handling :slight_smile:

Matthew, this is just great!
Kudos!

I believe that Ivano Monti has stopped working/programming with Xojo/Real Studio.
His website has a great picture of Microsoft Visual Studio and the classes has has made are no longer available on his site.

[quote=83164:@Paul Sondervan]I believe that Ivano Monti has stopped working/programming with Xojo/Real Studio.
His website has a great picture of Microsoft Visual Studio and the classes has has made are no longer available on his site.[/quote]

They are still available if you contact him directly, or you can obtain the free ones from the Xojo Developer’s Library available for download on my site at xojodevspot.com (front page, side right column). I believe he still develops cross platform using visual studio and the cross platform .net framework called Mono (for which there is a larger userbase and availability of controls and support over Xojo). In his case of developing custom UI elements, there is a greater monetary potential to be made in the Microsoft/Mono userbase which extends into the “millions of developers” looking for UI elements, over “a few thousand” (maybe handful?) of Xojo developers. A lot of Italian companies also stick with industrial “standard” languages that the “majority” use and when you do work for them don’t want to see an “emerging” language used; they want to know that if you are no longer needed (or available), they can pull a handful of developers “of the street” (so to speak) to work on the existing code. Not all Italian companies…Being italian myself, I’ve done a lot of development for italian/latin companies, and this has been the trend. Although, the Xojo hesitant companies once seeing Xojo’s capabilities and speed of development, were overly impressed. :slight_smile:

Matt, this is a fantastic bit of kit. I can see lots of uses for this. Will you be selling the source code? What is the licensing?

One thing I noticed that when resizing an object from its corner handles it allows you to size width/height independently. Is there a way of locking the aspect ratio so the width and height scale from the corner handles?

In version 1.2 there is indeed aspect ratio resizing :slight_smile: version 1.0 is currently available in the XDS Store at www.xojodevspot.com and comes with lifetime updates and per request changes to the code if needed. Purchasing the encrypted or source code version gives you the right to use the control in any software you create; but source containing the encrypted control or source to the control cannot be made publicly available (giving the control away freely for use to others is a no-no). You may modify the source as you see fit, but cannot resell the source or encrypted control. Version 1.2 is truly amazing, and almost ready with optimizations in many places and new built-in features.

Sorry for the delay of version 1.2. It will be up and ready tomorrow. I have been testing and adding a few more ‘goodies’. :slight_smile:

Heres a screenshot of the new layout for the primary demo :slight_smile:

Matthew,

Congratulations and thank you for such an amazing add-on! It’s just what I’ve been looking for to add some major functionality to my project, however, I’m experiencing a bit of price resistance that I just can’t get past, especially when we can purchase apps like in MacHeist for such an extraordinary price and value, where I don’t think twice about the price.

It basically comes down to whether you want to get as many Xojo developers to purchase it as possible. As I hobbyist programmer, I’m not receiving any money for any apps that I create, so I have to carefully consider any add-ons to buy. At the moment, I just can’t justify purchasing for $75. I know you deserve to be remunerated for your efforts, but I’m wondering if you would consider re-thinking the price for the encrypted version.

Just a thought.

Cheers
Grant

[quote=83855:@Grant Singleton]Matthew,

Congratulations and thank you for such an amazing add-on! It’s just what I’ve been add some major functionality to my project, however, I’m experiencing a bit of price resistance that I just can’t get past, especially when we can purchase apps like in MacHeist for such an extraordinary price and value, where I don’t think twice about the price.

It basically comes down to whether you want to get as many Xojo developers to purchase it as possible. As I hobbyist programmer, I’m not receiving any money for any apps that I create, so I have to carefully consider any add-ons to buy. At the moment, I just can’t justify purchasing for $75. I know you deserve to be remunerated for your efforts, but I’m wondering if you would consider re-thinking the price for the encrypted version.

Just a thought.

Cheers
Grant[/quote]

Hi Grant,

I do offer separated license pricing for academic use of my controls and not-for-profit (free)/non-profit software usage. The encrypted academic/not-for-profit version of the SimDesignerCanvas is 50% off ($35.00) and if you ever decide to change licensing, you only pay the difference. All licenses come with updates, and per request feature add-ons/changes. Plus, if you ever have a question or need assistance I’m available to assist. The academic/not-for-profit version has not been added to the XDS Store yet, but should be available later today with the release of version 1.2. When it is posted, you may download the update, and try it out before deciding to buy or not. The demo apps come with uncompiled code so you can change it around and see how it all works. Demos contain the fully working encrypted SimDesignerCanvas (only works in the Xojo IDE, not standalone compiled software).

SimDesignerCanvas Control Version 1.2 is available and I have greatly reduced all XDS Store item prices (30%-50% off) from today until May 6th, 2014. All updates for 1 year, priority bug fix and support, see additional licensing explained in the demo application if you are unsure.

Academic/Non-Profit (Encrypted) - $20.00 USD

Commercial (Encrypted) - $50.00 USD

Commercial (FULL SOURCE - Unencrypted) - $110.00 USD

Latest Demo : http://www.xojodevspot.com/demos/SimDesignerCanvas.zip

Wow! Fantastic!

Does each object come with a tag property? I’m looking at translating user text objects with database fields. e.g. a user can create a text object with either their on text, or text from a database record.

Cheers
Grant

[quote=84078:@Grant Singleton]Wow! Fantastic!

Does each object come with a tag property? I’m looking at translating user text objects with database fields. e.g. a user can create a text object with either their on text, or text from a database record.

Cheers
Grant[/quote]

Each canvasobject can store as many tags/properties as you like in the form of a dictionary; which can store any datatype or direct reference to a class/object (even recordsets).

See CanvasObject.Property.Value(“anything”) = Any text/class/object.

If you need help in the actual setup, or need a demonstration, I’d be glad to do either. Perhaps you could elaborate a little bit of what you intend? If you are looking to convert user drawn text to digitized text, I have experimental OCR (Optical Character Reeading) classes I’d be glad to share as well. The “translation” confused me slightly. But I’d love to get as many demonstrations out there as possible, as the Control’s capabilities really are endless. Not only can each canvasobject have its own properties, each designer canvas can store properties as well. For example, if each canvasobject represented a student each with their own properties and abilities, the container designer canvas could be the school or a class, with its own properties; in essence which could effect each student, or interact with each student based on “its” own properties. Everything is object oriented and remains in a hierarchical architecture… which is what makes managing the canvasobjects so easy. Im trying to finish up the custom control demo which I’ll post soon showing all sorts of custom tabs, buttons, breadcrumb bars, scroll bars, accordions, and how to embed other control objects inside canvas objects. :slight_smile:

Matthew, again fantastic!

Sounds like you’ve covered most scenarios covered, me included.

PRINTING! Are you planning a easy way to get SimDesignerCanvas onto paper? This is my main goal.

Cheers
Grant