########################################################################## # TEPAM - Tcl's Enhanced Procedure and Argument Manager ########################################################################## # # 3_doc_gen_generate.demo: This file is part of the TEPAM demo # # Copyright (C) 2013 Andreas Drollinger # # Id: 3_doc_gen_generate.demo ########################################################################## # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. ########################################################################## #### Initialization #### DemoControl(Initialization) 1 DemoControl(IsExecutable) {0} # This demo shows the way the tepam::doc_gen::generate command works. package require Tk package require tepam::doc_gen #### Procedure definition #### DemoControl(IsExecutable) {[info commands {show message}]=={}} # Define two sub-procedures of the command 'show'. tepam::procedure {show message} { -return - -short_description "Displays a simple message box" -description "This procedure allows displaying a configurable message box. It supports the following message types: * Info * Warning * Error Font, foreground and background colors are free selectable. Optionally, all messages can be logged in a log file." -args { {-mtype -default Warning -choices {Info Warning Error} -description "M. type"} {-font -type font -default {Arial 10 italic} -description "Message font"} {-level -type integer -optional -range {1 10} -description "Message level"} {-fg -type color -default black -description "Message color"} {-bg -type color -optional -description "Background color"} {-no_border -type none -description "Use a splash window style (no border)"} {-log_file -type file -optional -description "Optional message log file"} {text -type string -multiple -description "Multiple text lines to display"} } -example { show message "The document hasn't yet been saved!" show message -fg red -bg black "Please save first the document" } } { puts "show message: Procedure body not implemented" } tepam::procedure {show status} { -return - -short_description "Displays the program status" -description "This procedure displays the global program status" -args { {-font -type font -default {Arial 10 italic} -description "Message font"} {-log_file -type file -optional -description "Optional message log file"} {text -type string -multiple -description "Multiple text lines to display"} } -example { show status "The program is in a critical state!" } } { puts "show status: Procedure body not implemented" } #### Single procedure documentation with 'generate' #### DemoControl(IsExecutable) {[info commands {show message}]!={}} # This demo section generates the documentation of a single procedure (a # procedure that has no sub-procedures) in the 4 pre-defined formats. # Get the directory where the generated documents have to be stored set DocDir [tk_chooseDirectory ] # Generate the documentation in all 4 pre-defined formats tepam::doc_gen::generate -format TXT -dest_file $DocDir/generate_show_message.txt {show message} tepam::doc_gen::generate -format POD -dest_file $DocDir/generate_show_message.pod {show message} tepam::doc_gen::generate -format HTML -dest_file $DocDir/generate_show_message.html {show message} tepam::doc_gen::generate -format DT -dest_file $DocDir/generate_show_message.dt {show message} # Copy the HTML CSS file to the destination directory file copy -force [pwd]/tepam_doc_stylesheet.css $DocDir #### Multi procedure documentation with 'generate' #### DemoControl(IsExecutable) {[info commands {show message}]!={}} # This demo section generates the documentation of a procedure that # has sub-procedures in the 4 pre-defined formats. # Get the directory where the generated documents have to be stored set DocDir [tk_chooseDirectory ] # Generate the documentation in all 4 pre-defined formats tepam::doc_gen::generate -format TXT -dest_file $DocDir/generate_show.txt {show} tepam::doc_gen::generate -format POD -dest_file $DocDir/generate_show.pod {show} tepam::doc_gen::generate -format HTML -dest_file $DocDir/generate_show.html {show} tepam::doc_gen::generate -format DT -dest_file $DocDir/generate_show.dt {show} # Copy the HTML CSS file to the destination directory file copy -force [pwd]/tepam_doc_stylesheet.css $DocDir #### Documentation with 'patch' #### DemoControl(IsExecutable) {[info commands {show message}]!={}} # This demo section demonstrates the HTML documentation of multiple # procedures using a master document template in which the procedure # documentation is inserted using the command 'patch'. # Definintion of the HTML master document set HtmlMasterDoc {\ Display

tepam::doc_gen

show message

{*show message*}

show status

{*show status*} \ } # Get the directory where the generated documents have to be stored set DocDir [tk_chooseDirectory ] # Patch the master document: This will replace the placeholders by the # procedure documentation divisions: tepam::doc_gen::patch -format HTML -search_pattern {\{\*(.*?)\*\}} \ -src_string $HtmlMasterDoc -dest_file $DocDir/patch_display.html # Copy the HTML CSS file to the destination directory file copy -force [pwd]/tepam_doc_stylesheet.css [file dirname $DocFile] ########################################################################## # Id: 3_doc_gen_generate.demo # Modifications: # # Revision 1.1 2013/10/14 droll # * TEPAM Doc Gen package checkin ##########################################################################