The SVG Terminal Protocol: SVGT/0.2 (revision a) Copyright 2006 by Liam Breck SVG Terminal home page: http://networkimprov.net/airwrx/awscene.html The SVG Terminal module for Firefox implements this protocol. This draft published 1 March 2006. 1. Connection 1.1 Clients initiate connections on a known, but not neccesarily standard, IP port. Clients may receive port information for the host via an ad hoc discovery mechanism, such as a local network broadcast. 1.2 The connection remains open until either side ends the session, which may happen without warning, but should be announced by a bye message. 2. Terminal messages (to host) 2.1 Commence or terminate a session SVGT/0.2 SP inp SP hello|bye CR LF 2.2 Send keyboard input SVGT/0.2 SP inp SP key-type SP key-code CR LF 2.3 Send mouse input SVGT/0.2 SP inp SP mouse-type SP x-pos , y-pos SP target-id CR LF 2.4 Send pen input TBD 3. Host messages (to term) 3.1 Terminate session SVGT/0.2 SP upd SP bye CR LF 3.2 Content update SVGT/0.2 SP upd SP size-in-bytes CR LF LF [list of elements and/or text node updates] 3.2.1 Elements have the form: [children] LF LF LF LF LF children of an element are not checked for SVGT-specific attributes atupdate indicates that only attributes should be updated, otherwise any children of an existing element are replaced gets the referenced item's BBox() dimensions; its width & height attributes set minimums is a container for a set of text elements, one per line workaround for Firefox 1.5 which lacks size methods for tspan is a line of text; xy="" places it below the previous line 3.2.2 Text node updates have the form: text to insert LF LF (deletion) replacement text LF text-pos may be found in an embedded tspan (TBI) 3.3 Specify text highlight and caret (TBI) hlid identifies highlight object to create/modify 3.4 Specify wrapping text (creates tspan for each line) (SVG1.2 textArea isn't accessible for highlighting) TBD 3.5 Specify insets in wrapping text TBD 3.6 Incrementally update bitmap graphics attached to an image element TBD 3.7 Specify external object; handled outside of DOM (e.g. OLE) TBD 3.8 Set pointer icon TBD 3.9 Play sound TBD 3.10 Request local object (client opens a file dialog and returns its contents) TBD