Synth is here!

It’s been a long time coming but Synth (the follow up to Clic and Tinkr) is finally available for download on the all new

Apart from the usual controls and application launch capabilities, Synth comes loaded with extensions for strings, FileStreams, DateTime and more along with support for NetBIOS, CIFS and XML without having to use the outdated NETMF XML namespace.

This is only a Release Candidate and I still need to get documentation up (I’ve been swamped) but if you have used Clix or Tinkr it will come naturally.

Here’s a sample to get you off and running.


Page p = new Page();

P.AddChild(new Button("Hello world", Fonts.Local.Normal, 4, 4));

Display.ActivePage = p;


I’ve grabbed a copy of this to try out with the 7" Newhaven display.

I assume the following will work to pass touch from my driver into Synth?

touch.X = e.X;
touch.Y = e.Y;

Display.RaiseTouch(Skewworks.NETMF.Synth.TouchType.TouchDown, touch, null, 1);

or do I need to make the GestureStart a real value?

touch is a Skewworkds.NETMF.Synth.Point type.

The gesture point can always be null. It’s provided in the event you want to track where a gesture starts and ends. In the case of a normal touch it’s ignored completely and not even passed to the control.

Will you be adding the ability to load controls from an XML like to had with Tinkr? I don’t see anything in the Page control to do this as yet.

I like the ability to use something like your graphical editor to create the basic layout with a GUI and then load from XML and add any additional control or update them via code. This is a nice feature with the likes of Glide and reduces the code overhead when you are making each display page.

Perfectly easy Thom. My touch driver integration with Synth was as simple as the code I posted.

Now to play around with this a bit more.

Hi Thom,

Has there been any updates on this?

1 Like

Tons, I’ve been refining controls and adding more. I’ll try and put a release out this coming weekend if not a little sooner.

Is there anything specific you’re hoping to see in this update?

Excellent. Look forward to playing with it.

Any plans to do a graphical GUI editor for it? I don’t see any way at present to load from an XML file. That reduces the code size as you don’t need to write code to create each and every control for each window.

Hi Thom,

Does the driver support display rotation?

My 6 LCD clock uses the 4.3" LCD in the portrait position and Glide doesn’t support any rotation so I am hoping your library can do this?

Yes I’ve been creating a JQuery/CSS editor for it.

I have done this for previous projects, the managed code for it is too slow to be helpful but I did create a RLP solution that worked fast enough. I’d have to think a bit on the best way to integrate that.

@ Dave, sorry I didn’t get that update out…I threw my back out (insert “old man” statements here).

I might actually push things back a bit anyway, there’s something I’m working on that I want to properly support multitouch with, so might just as well put that into Synth.

No problem Thom. My project is on hold until you get this out :slight_smile:

Well then you’ll be happy to know I already have the multitouch working. All the controls now respond to a touchId that coupled with the Cap display allows you to independently work with 5 controls at once.

There’s a bit of an overhaul happening as well. You no longer will have to Initialize() anything while still retaining the multiple app domain support.

This will keep things simple for the users (though its a bit more complicated on my end).

I have a question for you and the others though. How do we feel about the Themes that I introduced awhile ago? Do we want to keep that or revert to setting individual control appearances?

I’ve set up an Enum for the special fonts as well, don’t remember if that made it to the first release or not.

I like the themes but it would also be nice to use bitmaps for the buttons to be able to make custom look.

I may be getting a little out of control here. :think:

You can now load fonts. They have to be packaged in a library because of how NETMF handles things, but it’s pretty interesting to see. The font manager lets you request a font by Name, Name & Size, Name/Size & Bold/Italic. If it can’t find an exact match it fails back to Name & Size, then Size, then Name only then the one default font that’s loaded.

I also like the idea of ability to use bitmaps for the buttons. It actually would be nice to have two bitmaps for (enabled and disabled) button.

When is the graphical editor will be available? (not a big issue for me as I can cook-up a simple editor to generate code or just load controls dynamically from the XML generated by Glide designer at runtime)

Is there are any examples how to use other controls beside buttons?
How to use Themes?

No examples yet as its still not a “release” product yet. There’s a lot going into this, but I’ll keep updating this thread as I go.

Designer will probably be Visual Design Studio with a new plugin.

Hi Thom,

When do you plan to release the next update for us to try out?

I will release an install Monday whatever state it’s in so you can play :). Almost everything I’m doing is behind the scenes, but the impact is dramatic. You will see a new RC but definitely don’t look for a designer. There will be a sample to go with it though.

Here’s some stuff I’ve been working on:
[ol]You no longer call .Initialize() on anything
Re-introduced Cursor class
All controls support a CursorType (Defaults + Custom)
Introduced the first ever (as far as I know) dynamic font loading (oooooh yeah!)
Added ability to get fonts by any combination of Name/Size/Bold/Italic
Added FlexBitmap which allows you to use Bitmap/Image32/GIF89a interchangably
Added .ClientArea to all containers. This removes the need for TabDialogs or Windows to have Panels inside them.
Re-introduced Windows!
Windows replace Pages (just use Borderless)
Re-introduced navigation (GoForward, GoBack, ClearBack, CanGoForward, CanGoBack)
Changed Themes to SystemColors so controls can grab default colors but be easily overwritten (that was the drawback to Themes)
Removed mandatory Name in constructors (still supported for using designer, just not required if you’re working in code)
GIF89a icons for windows!
Animated Cursors!
More to come[/ol]


As promised the latest version of Synth is now online. There’s still some glitches, but you should definitely be able to get a feel for things. :slight_smile: