proc OptionalMessageWin { var  msg } {
    global GidPriv 
    
    set GidPriv($var) [.central.s info variables $var]
    
    if { !$GidPriv($var)} return
    

    set w .gid.optionalmessage
    if { [winfo exists $w] } {
      destroy $w
    }

    InitWindow $w [_ "Info"] OptionalMessageWindowGeom
    
    frame $w.frm1
    text $w.frm1.text1 -height 3
    $w.frm1.text1 insert end $msg
    checkbutton $w.frm1.check1 -text [_ "Don't show it again"] \
	    -variable GidPriv($var) -onvalue 0 -offvalue 1
    

    set def_back [$w cget -background]
    frame $w.frmButtons -bg [CCColorActivo $def_back]

    button $w.frmButtons.b1 -text [_ "Close"] -command "CloseCmd $var $w"  -underline 0 -width 14
    button $w.frmButtons.b2 -text [_ "See Boundary"] -command "SeeBoundaryCmd $var $w" -underline 0 -width 14

    proc CloseCmd { var w } {
	global GidPriv
	.central.s process escape escape escape escape utilities variables $var $GidPriv($var) escape
	destroy $w
	if { $GidPriv($var) == 0 } {
	    set msg [_ "To show again this window use:"]
	    append msg "\nUtilities Variables $var 1"
	    WarnWin $msg
	} 
    }

    proc SeeBoundaryCmd { var w } {
	global GidPriv
	.central.s process escape escape escape escape utilities variables $var $GidPriv($var) escape
	.central.s process escape escape escape escape meshing boundaries \                 
	destroy $w
	if { $GidPriv($var) == 0 } {
	    set msg [_ "To show again this window use:"]
	    append msg "\nUtilities Variables $var 1"
	    WarnWin $msg
	} 
    }
    
    
    # Geometry management
    grid $w.frm1 -sticky nsew
    grid $w.frm1.text1 -sticky nsew -padx 3 -pady 3
    grid $w.frm1.check1 -sticky w -padx 3 -pady 3
   
    
    grid $w.frmButtons -sticky ews -columnspan 7
    grid $w.frmButtons.b1 $w.frmButtons.b2 -padx 3 -pady 3
    grid columnconf $w "0" -weight 1
    grid rowconfigure $w "0" -weight 1
    grid rowconfigure $w.frm1 "0" -weight 1
    grid columnconf $w.frm1 "0" -weight 1
    
    
    focus $w.frmButtons.b2
    
    bind $w <Alt-c> "tkButtonInvoke $w.frmButtons.b1"
    bind $w <Escape> "tkButtonInvoke $w.frmButtons.b1"
    bind $w <Return> "tkButtonInvoke $w.frmButtons.b2"

    wm minsize $w 240 120
}