RISCOS.com

www.riscos.com Technical Support:
DDE (Desktop Development Environment)

 


FrontEnd protocols


Star Commands

Two star commands are supported:

*FrontEnd_Start -app <application name>
                -desc <description_filename>

*FrontEnd_SetUp -app <application_name>
                -desc <description_filename>
                -task <task-id_of_caller>
                -handle <app-specific_handle>
                -toolflags <filename>

The application specific handle can be used by the caller to identify return messages, if many *FrontEnd_SetUp commands have been made.

EBNF Grammar of Description Format

The following is an EBNF grammar for an application description:

Note: Blank lines and characters following # (up to newline) are ignored.

APPLICATION  ::= TOOLDETAILS
                 [METAOPTIONS]
                 [FILEOUTPUT]
                 [DBOX]
                 [MENU]
                 [DESELECTIONS]
                 [EXCLUSIONS]
                 [MAKE_EXCLUSIONS]
                 [ORDER]
                 [MAKE_ORDER]
                 <EOF>

TOOLDETAILS  ::= tool_details_start 
                    name <string> ";" 
                    [command_is <string>;] 
                    version <number_and_optional_date> ";" 
                    [filetype &<3digit_hexnumber> ";"] 
                    [wimpslot <integer>k ";"] 
                    [has_extended_cmdline ";"] 
                 tool_details_end

METAOPTIONS  ::= metaoptions_start 
                    [has_auto_run [on] ";"] 
                    [has_auto_save [on] 
                            {"^."}[<string>][leafname] 
                    [<string>] from icn <integer> ";"] 
                    [has_text_window ";"] 
                    [has_summary_window ";"] 
                    [display_dft_is text|summary ";"] 
                 metaoptions_end

FILEOUTPUT   ::= fileoutput_start 
                    [output_option_is <string> ";"] 
                    [output_dft_string <string> ";"] 
                    [output_dft_is (produces_output| 
                    produces_no_output) ";"] 
                 fileoutput_end

DBOX         ::= dbox_start 
                    ICONS 
                    [ICONDEFAULTS] 
                    [IMPORTS] 
                  dbox_end

MENU         ::= menu_start 
                    MENULIST 
                    [MENUDEFAULTS] 
                 menu_end

#--------------------------------------------------------

MENULIST     ::= { MENUENTRY }

MENUENTRY    ::= <string> maps_to <string>
                    [sub_menu <string> <integer> 
                            [prefix_by <string>]]
                    [produces_no_output|
                    produces_output] 
                    [not_saved] ";"

MENUDEFAULTS ::= defaults 
                 menu <integer> on | off [sub_menu 
                         <string> 
                         | <integer> 
                 { "," menu <integer> on | off [sub_menu 
                         <string> 
                         | <integer> 
                 } 
                 ";" 
                 [make_defaults 
                 menu <integer> on | off [sub_menu 
                         <string> 
                         | <integer> 
                 { 
                 "," 
                 menu <integer> on | off [sub_menu 
                 <string> 
                         | <integer> 
                 } 
                 ";" 
                 ]

#--------------------------------------------------------

ICONLIST     ::= icn <integer> { "," icn <integer> }

ENTRYLIST    ::= menu <integer> { "," menu <integer> }

ICON_ENTRYLIS::= menu|icn <integer> { "," menu|icn 
                 <integer> }

#--------------------------------------------------------

ICONS        ::= icons_start 
                    ICONDEFLIST 
                 icons_end

ICONDEFLIST  ::= { ICONDEF }

ICONDEF      ::= icn <integer> ( maps_to ([<string>]
                                 [CONVERSION])
                         [prefix_by <string>] 
                         [followed_by [spaces] OPTLIST] 
                         [separator_is <string>]
                         [produces_no_output
                         |produces_output] 
                         [not_saved] ) 
                         | (increases|decreases icn 
                                 <integer> 
                         [by] <integer> [max <integer>] 
                                        [min <integer>] ) 
                         | inserts <string> ";" 
                         | extends from icn <integer> 
                                 to icn <integer> ";"

OPTLIST      ::= OPTENTRY { "," OPTENTRY }

OPTENTRY     ::= icn <integer>

CONVERSION   ::= string|number

ICONDEFAULTS ::= defaults 
                       icn <integer> on | off | <string> 
                       | <integer> 
                       { "," icn <integer> on | off 
                       <string> | <integer> 
                       } 
                       ";" 
                    [make_defaults 
                       icn <integer> on | off | <string> 
                       | <integer> 
                       { "," icn <integer> on | off 
                       <string> | <integer> } 
                       ";" 
                       ]

#--------------------------------------------------------

DESELECTIONS ::= deselections_start 
                    DESELECTIONLIST 
                 deselections_end

DESELECTIONLIST::={ DESELECT }

DESELECT       ::= icn <integer> deselects 
                      ICON_ENTRYLIST ";"
                      | menu <integer> deselects 
                      ICON_ENTRYLIST ";"

#--------------------------------------------------------

EXCLUSIONS     ::= exclusions_start 
                      EXCLUSIONLIST 
                   exclusions_end

EXCLUSIONLIST  ::= { EXCLUDE }

EXCLUDE        ::= icn <integer> excludes 
                      ICON_ENTRYLIST ";" 
                      | menu <integer> excludes 
                      ICON_ENTRYLIST ";"

#--------------------------------------------------------

MAKE_EXLUSIONS ::= make_excludes ICON_ENTRYLIST ";"

ORDER          ::= order_is        
                      (menu|icn <integer>) | <string> | 
                      output 
                      { "," (menu|icn <integer>) |
                      <string> | output} 
                      ";"

MAKE_ORDER     ::= make_order_is 
                      (menu|icn <integer>) | <string> | 
                      output 
                      { "," (menu|icn <integer>) |
                      <string> | output} 
                      ";"

#--------------------------------------------------------

IMPORTS        ::= imports_start 
                      [wild_card_is <string> ";"] 
                      IMPORTLIST 
                   imports_end

IMPORTLIST     ::= { IMPORT }

IMPORT         ::= drag_to 
                      (icn <integer>|any|iconbar) 
                      inserts 
                      ICONLIST 
                      [separator_is <string>] ";"

WIMP Message returned after a *FrontEnd_SetUp

When an application like Make does a *FrontEnd_SetUp command, the FrontEnd module replies to that application when the user has chosen his options with a WIMP message of the format:

Byte offset Contents
+16 reason code 0x81400
+20 handle which was passed to *FrontEnd_SetUp
+24 to +36 application name
+36 ... null-terminated command-line options

This edition Copyright © 3QD Developments Ltd 2015
Last Edit: Tue,03 Nov 2015