Hacker News new | past | comments | ask | show | jobs | submit login

I've been kicking around the idea of a plain-text GUI to demonstrate what a "GUI Markup Standard" may work like. Making a graphics-enabled version is a lot work for a demo.

VB-classic also had a text-based mouse-able GUI option for a short while, but it never took off. It was based on ANSI escape sequences for DOS consoles, which is sort of in-between "pure text" and graphics. A pure-text GUI is also doable, but console approach is probably more compact because it can use colors as cues instead of symbols.

An alternative or supplement to a markup standard is a text-based screen designer. Both a pure-ASCII and console text UI can be defined using plain text for semi-WYSIWYG designing. Rough example:

     $ Employee Edit Form
     * _thisLine.title
     $ Last: [#last    ] First: [#firstname] MI: [#MI]
     * #last:fullname=last_name, required=true; #MI:fullanem=mid_initl
     $    {#Save}    {#Cancel}   {#Other}
     * #Save:click=_thisForm.submit; #Cancel:click= _thisForm.close
     * #Other:click=specialProcedureX(), display="Other Options"
Symbols and conventions:

     $ = start of template line
     * = start of definition or command line
     [...] = input widget template
     {...} = button template
     # = start of reference name. 
     "fullName=" = use if actual database name is diff from reference name
     ; = definition or command separator
     "type=" = to define widget type, such as SELECT (not shown)
     "display=" use if actual label is different from reference label
Notes: "type=label" can be used to make bold or italics. The definition line(s) don't have to follow the template lines in most cases. One can thus optionally put most definition lines at the bottom. It may make interpreting the template easier for some people.

Interactive shell libraries exist. They are quite common for Unix oriented tools. Might be possible to reimplement the same API for a GUI

An example product? Note that I was talking about two different things: a GUI markup standard (probably XML based), and an ASCII WYSIWYG GUI designer. I'll make the distinction clearer in an edit.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact