messagedlg.tcl

messagedlg.tcl
This file is part of Unifix BWidget Toolkit
Index of commands:
- MessageDlg::create


MessageDlg
Comments  
Arguments  
Used by  
Uses  
namespace eval MessageDlg {
    Dialog::use

    Widget::tkinclude MessageDlg message .frame.msg \
        remove [list -cursor -highlightthickness        \
        -highlightbackground -highlightcolor        \
        -relief -borderwidth -takefocus -textvariable    \
        ] \
        rename [list -text -message]            \
        initialize [list -aspect 800 -anchor c -justify center]

    Widget::bwinclude MessageDlg Dialog :cmd \
        remove [list -modal -image -bitmap -side -anchor -separator \
        -homogeneous -padx -pady -spacing]

    Widget::declare MessageDlg {
        {-icon       Enum   info 0 {none error info question warning}}
        {-type       Enum   user 0 {abortretryignore ok okcancel \
        retrycancel yesno yesnocancel user}}
        {-buttons    String ""   0}
    }

    Widget::addmap MessageDlg "" tkMBox {
    -parent {} -message {} -default {} -title {}
    }

    proc ::MessageDlg { path args } { return [eval MessageDlg::create $path $args] }
    proc use { } {}
}


MessageDlg::create
Comments Command MessageDlg::create
Arguments path
args
Used by  
Uses Dialog::draw
Widget::parseArgs
Dialog::create
Widget::destroy
Bitmap::get
Widget::cget
Dialog::add
Widget::initFromODB
Dialog::getframe
proc MessageDlg::create { path args } {
    global tcl_platform

    array set maps [list MessageDlg {} :cmd {} .frame.msg {} tkMBox {}]
    array set maps [Widget::parseArgs MessageDlg $args]
    Widget::initFromODB MessageDlg "$path#Message" $maps(MessageDlg)

    array set dialogArgs $maps(:cmd)

    set type  [Widget::cget "$path#Message" -type]
    set icon  [Widget::cget "$path#Message" -icon]

    set defb  -1
    set canb  -1
    switch -- $type {
        abortretryignore {set lbut {abort retry ignore}}
        ok               {set lbut {ok}; set defb 0 }
        okcancel         {set lbut {ok cancel}; set defb 0; set canb 1}
        retrycancel      {set lbut {retry cancel}; set defb 0; set canb 1}
        yesno            {set lbut {yes no}; set defb 0; set canb 1}
        yesnocancel      {set lbut {yes no cancel}; set defb 0; set canb 2}
        user             {set lbut [Widget::cget "$path#Message" -buttons]}
    }

    # If the user didn't specify a default button, use our type-specific
    # default, adding its flag/value to the "user" settings and to the tkMBox
    # settings
    if { ![info exists dialogArgs(-default)] } {
    lappend maps(:cmd) -default $defb
    lappend maps(tkMBox) -default $defb
    }
    if { ![info exists dialogArgs(-cancel)] } {
        lappend maps(:cmd) -cancel $canb
    }

    # Same with title as with default
    if { ![info exists dialogArgs(-title)] } {
        set frame [frame $path -class MessageDlg]
        set title [option get $frame "${icon}Title" MessageDlg]
        destroy $frame
        if { $title == "" } {
            set title "Message"
        }
    lappend maps(:cmd) -title $title
    lappend maps(tkMBox) -title $title
    }

    # Create the "user" type dialog
    if { $type == "user" } {
        if { $icon != "none" } {
            set image [Bitmap::get $icon]
        } else {
            set image ""
        }
        eval Dialog::create $path $maps(:cmd) -image $image -modal local \
        -side bottom -anchor c
        foreach but $lbut {
            Dialog::add $path -text $but -name $but
        }
        set frame [Dialog::getframe $path]

        eval message $frame.msg $maps(.frame.msg) \
        -relief flat -borderwidth 0 -highlightthickness 0 \
        -textvariable {{}}
        pack  $frame.msg -side left -padx 3m -pady 1m -fill x -expand yes

        set res [Dialog::draw $path]
    destroy $path
    } else {
    # Do some translation of args into tk_messageBox syntax, then create
    # the tk_messageBox
    array set tkMBoxArgs $maps(tkMBox)
    set tkMBoxArgs(-default) [lindex $lbut $tkMBoxArgs(-default)]
    if { ![string equal $icon "none"] } {
        set tkMBoxArgs(-icon) $icon
    }
    if { [info exists tkMBoxArgs(-parent)] } {
        if { ![winfo exists $tkMBoxArgs(-parent)] } {
        unset tkMBoxArgs(-parent)
        }
    }
    set tkMBoxArgs(-type) $type
    set res [eval tk_messageBox [array get tkMBoxArgs]]
    set res [lsearch $lbut $res]
    }
    Widget::destroy "$path#Message"
    return $res
}
generated by zdoc.tcl on 2003-03-06 00:21:54