## Introduction Over the past years I had the opportunity to work with various widget toolkit in java, among them the old AWT and Swing, the new JavaFX or out of curiosity SWT and QtJambi. And we also find web-like widgets toolkit like JSP,JSF,JQuery,GWT... There are many, some are dead, some are going fine, still none really slove all the simple needs I had. - **AWT** is very limited and has no android support - **Swing** is getting old, requires a lot of efforts to extend and has no android support - **JavaFX** don't support OpenGL pane, has a desatrous image API, an obscure future and has no android support - **SWT** and **QtJambi** are not always friendly to use and require JNI bindings. - **Web-like**... well no real layouts, messing code html/css/less/js, browser issues, techs changing every 2years, slow and a pain to debug... Things are always more or less the same, lucky for me I work in a domain which also has a lot of rendering : GIS (Geographic Information System). GIS or Maps unlike computer science are far older and have many decades of experience in semiology and symbology. Specifications related to rendering such as **IHO S-52**, **OGC Symbology encoding** or **ISO Portrayal Service** are way more complex and advanced. I used those as reference to define something new, as a result the Unlicense-Lib widget toolkit doesn't use CSS but something new which looks pretty much like CSS but far more efficient and adapted for widgets, I called this new format 'Rules-Style' (files in *.rs) which you will discover later in those tutorials. ### Hello World Without any more waiting here is the Hello world frame code : ``` Frame frame = FrameManagers.getManager().createFrame(false); frame.setSize(800,600); frame.setTitle(new Chars("Hello World")); frame.setVisible(true); ``` If you are not familiar with Unlicense-Lib, you must know that the project do not use any API for the standard JVM, everything has been rewrite from scratch, including 'String' which are called 'Chars' here and you will see how this API change can be a really bonus when dealing wih internationalisation. Widgets ------- - [Widget](./Widget.html) - [WLabel](./WLabel.html) - WButton - WTextField - WTextArea - WSpinner - WSlider - WRangeSlider - WCheckBox - WContainer - WSplitPane - WScrollPane - WTable - WTree - WTreeTable - OpenGL Frames ------ - Frame - Dialog Layouts ------- - [Layout](./Layout.html) - AbsoluteLayout - [BorderLayout](./BorderLayout.html) - [GridLayout](./GridLayout.html) - LineLayout - PairLayout - StackLayout - CircularLayout - FormLayout Components ---------- - WPathChooser - WColorChooser - WDateChooser Rules-Style ----------- - [syntax](./Style.html) - properties - borders - rules - triggers Internationalisation -------------------- - Translating interfaces Advanced -------- - Creating a new widget - Creating a new layout