diff options
Diffstat (limited to 'src/bin/pgaccess/lib/forms.tcl')
-rw-r--r-- | src/bin/pgaccess/lib/forms.tcl | 1263 |
1 files changed, 0 insertions, 1263 deletions
diff --git a/src/bin/pgaccess/lib/forms.tcl b/src/bin/pgaccess/lib/forms.tcl deleted file mode 100644 index 631c3537c72..00000000000 --- a/src/bin/pgaccess/lib/forms.tcl +++ /dev/null @@ -1,1263 +0,0 @@ -namespace eval Forms { - -proc {new} {} { -global PgAcVar - Window show .pgaw:FormDesign:menu - tkwait visibility .pgaw:FormDesign:menu - Window show .pgaw:FormDesign:toolbar - tkwait visibility .pgaw:FormDesign:toolbar - Window show .pgaw:FormDesign:attributes - tkwait visibility .pgaw:FormDesign:attributes - Window show .pgaw:FormDesign:draft - design:init -} - - -proc {open} {formname} { - forms:load $formname run - design:run -} - -proc {design} {formname} { - forms:load $formname design -} - - -proc {design:change_coords} {} { -global PgAcVar - set PgAcVar(fdvar,dirty) 1 - set i $PgAcVar(fdvar,attributeFrame) - if {$i == 0} { - # it's the form - set errmsg "" - if {[catch {wm geometry .pgaw:FormDesign:draft $PgAcVar(fdvar,c_width)x$PgAcVar(fdvar,c_height)+$PgAcVar(fdvar,c_left)+$PgAcVar(fdvar,c_top)} errmsg] != 0} { - showError $errmsg - } - return - } - set c [list $PgAcVar(fdvar,c_left) $PgAcVar(fdvar,c_top) [expr $PgAcVar(fdvar,c_left)+$PgAcVar(fdvar,c_width)] [expr $PgAcVar(fdvar,c_top)+$PgAcVar(fdvar,c_height)]] - set PgAcVar(fdobj,$i,coord) $c - .pgaw:FormDesign:draft.c delete o$i - design:draw_object $i - design:draw_hookers $i -} - - -proc {design:delete_object} {} { -global PgAcVar - set i $PgAcVar(fdvar,moveitemobj) - .pgaw:FormDesign:draft.c delete o$i - .pgaw:FormDesign:draft.c delete hook - set j [lsearch $PgAcVar(fdvar,objlist) $i] - set PgAcVar(fdvar,objlist) [lreplace $PgAcVar(fdvar,objlist) $j $j] - set PgAcVar(fdvar,dirty) 1 -} - - -proc {design:draw_hook} {x y} { - .pgaw:FormDesign:draft.c create rectangle [expr $x-2] [expr $y-2] [expr $x+2] [expr $y+2] -fill black -tags hook -} - - -proc {design:draw_hookers} {i} { -global PgAcVar - foreach {x1 y1 x2 y2} $PgAcVar(fdobj,$i,coord) {} - .pgaw:FormDesign:draft.c delete hook - design:draw_hook $x1 $y1 - design:draw_hook $x1 $y2 - design:draw_hook $x2 $y1 - design:draw_hook $x2 $y2 -} - - -proc {design:draw_grid} {} { - for {set i 0} {$i<100} {incr i} { - .pgaw:FormDesign:draft.c create line 0 [expr {$i*6}] 1000 [expr {$i*6}] -fill #afafaf -tags grid - .pgaw:FormDesign:draft.c create line [expr {$i*6}] 0 [expr {$i*6}] 1000 -fill #afafaf -tags grid - } -} - - -proc {design:draw_object} {i} { -global PgAcVar -set c $PgAcVar(fdobj,$i,coord) -foreach {x1 y1 x2 y2} $c {} -.pgaw:FormDesign:draft.c delete o$i -set wfont $PgAcVar(fdobj,$i,font) -switch $wfont { - {} {set wfont $PgAcVar(pref,font_normal) ; set PgAcVar(fdobj,$i,font) normal} - normal {set wfont $PgAcVar(pref,font_normal)} - bold {set wfont $PgAcVar(pref,font_bold)} - italic {set wfont $PgAcVar(pref,font_italic)} - fixed {set wfont $PgAcVar(pref,font_fix)} -} -switch $PgAcVar(fdobj,$i,class) { - button { - design:draw_rectangle $x1 $y1 $x2 $y2 $PgAcVar(fdobj,$i,relief) $PgAcVar(fdobj,$i,bcolor) o$i - .pgaw:FormDesign:draft.c create text [expr ($x1+$x2)/2] [expr ($y1+$y2)/2] -fill $PgAcVar(fdobj,$i,fcolor) -text $PgAcVar(fdobj,$i,label) -font $wfont -tags o$i - } - text { - design:draw_rectangle $x1 $y1 $x2 $y2 $PgAcVar(fdobj,$i,relief) $PgAcVar(fdobj,$i,bcolor) o$i - } - entry { - design:draw_rectangle $x1 $y1 $x2 $y2 $PgAcVar(fdobj,$i,relief) $PgAcVar(fdobj,$i,bcolor) o$i - } - label { - set temp $PgAcVar(fdobj,$i,label) - if {$temp==""} {set temp "____"} - design:draw_rectangle $x1 $y1 $x2 $y2 $PgAcVar(fdobj,$i,relief) $PgAcVar(fdobj,$i,bcolor) o$i - .pgaw:FormDesign:draft.c create text [expr {$x1+1}] [expr {$y1+1}] -text $temp -fill $PgAcVar(fdobj,$i,fcolor) -font $wfont -anchor nw -tags o$i - } - checkbox { - design:draw_rectangle [expr $x1+2] [expr $y1+5] [expr $x1+12] [expr $y1+15] raised #a0a0a0 o$i - .pgaw:FormDesign:draft.c create text [expr $x1+20] [expr $y1+3] -text $PgAcVar(fdobj,$i,label) -anchor nw \ - -fill $PgAcVar(fdobj,$i,fcolor) -font $wfont -tags o$i - } - radio { - .pgaw:FormDesign:draft.c create oval [expr $x1+4] [expr $y1+5] [expr $x1+14] [expr $y1+15] -fill white -tags o$i - .pgaw:FormDesign:draft.c create text [expr $x1+24] [expr $y1+3] -text $PgAcVar(fdobj,$i,label) -anchor nw \ - -fill $PgAcVar(fdobj,$i,fcolor) -font $wfont -tags o$i - } - query { - .pgaw:FormDesign:draft.c create oval $x1 $y1 [expr $x1+20] [expr $y1+20] -fill white -tags o$i - .pgaw:FormDesign:draft.c create text [expr $x1+5] [expr $y1+4] -text Q -anchor nw -font $PgAcVar(pref,font_normal) -tags o$i - } - listbox { - design:draw_rectangle $x1 $y1 [expr $x2-12] $y2 sunken $PgAcVar(fdobj,$i,bcolor) o$i - design:draw_rectangle [expr $x2-11] $y1 $x2 $y2 sunken gray o$i - .pgaw:FormDesign:draft.c create line [expr $x2-5] $y1 $x2 [expr $y1+10] -fill #808080 -tags o$i - .pgaw:FormDesign:draft.c create line [expr $x2-10] [expr $y1+9] $x2 [expr $y1+9] -fill #808080 -tags o$i - .pgaw:FormDesign:draft.c create line [expr $x2-10] [expr $y1+9] [expr $x2-5] $y1 -fill white -tags o$i - .pgaw:FormDesign:draft.c create line [expr $x2-5] $y2 $x2 [expr $y2-10] -fill #808080 -tags o$i - .pgaw:FormDesign:draft.c create line [expr $x2-10] [expr $y2-9] $x2 [expr $y2-9] -fill white -tags o$i - .pgaw:FormDesign:draft.c create line [expr $x2-10] [expr $y2-9] [expr $x2-5] $y2 -fill white -tags o$i - } -} -.pgaw:FormDesign:draft.c raise hook -} - -proc {design:draw_rectangle} {x1 y1 x2 y2 relief color tag} { - if {$relief=="raised"} { - set c1 white - set c2 #606060 - } - if {$relief=="sunken"} { - set c1 #606060 - set c2 white - } - if {$relief=="ridge"} { - design:draw_rectangle $x1 $y1 $x2 $y2 raised none $tag - design:draw_rectangle [expr {$x1+1}] [expr {$y1+1}] [expr {$x2+1}] [expr {$y2+1}] sunken none $tag - design:draw_rectangle [expr {$x1+2}] [expr {$y1+2}] $x2 $y2 flat $color $tag - return - } - if {$relief=="groove"} { - design:draw_rectangle $x1 $y1 $x2 $y2 sunken none $tag - design:draw_rectangle [expr {$x1+1}] [expr {$y1+1}] [expr {$x2+1}] [expr {$y2+1}] raised none $tag - design:draw_rectangle [expr {$x1+2}] [expr {$y1+2}] $x2 $y2 flat $color $tag - return - } - if {$color != "none"} { - .pgaw:FormDesign:draft.c create rectangle $x1 $y1 $x2 $y2 -outline "" -fill $color -tags $tag - } - if {$relief=="flat"} { - return - } - .pgaw:FormDesign:draft.c create line $x1 $y1 $x2 $y1 -fill $c1 -tags $tag - .pgaw:FormDesign:draft.c create line $x1 $y1 $x1 $y2 -fill $c1 -tags $tag - .pgaw:FormDesign:draft.c create line $x1 $y2 $x2 $y2 -fill $c2 -tags $tag - .pgaw:FormDesign:draft.c create line $x2 $y1 $x2 [expr 1+$y2] -fill $c2 -tags $tag -} - - -proc {design:init} {} { -global PgAcVar - PgAcVar:clean fdvar,* - PgAcVar:clean fdobj,* - catch {.pgaw:FormDesign:draft.c delete all} - # design:draw_grid - set PgAcVar(fdobj,0,name) {f1} - set PgAcVar(fdobj,0,class) form - set PgAcVar(fdobj,0,command) {} - set PgAcVar(fdvar,formtitle) "New form" - set PgAcVar(fdvar,objnum) 0 - set PgAcVar(fdvar,objlist) {} - set PgAcVar(fdvar,oper) none - set PgAcVar(fdvar,tool) point - set PgAcVar(fdvar,resizable) 1 - set PgAcVar(fdvar,dirty) 0 -} - - -proc {design:item_click} {x y} { -global PgAcVar - set PgAcVar(fdvar,oper) none - set PgAcVar(fdvar,moveitemobj) {} - set il [.pgaw:FormDesign:draft.c find overlapping $x $y $x $y] - .pgaw:FormDesign:draft.c delete hook - if {[llength $il] == 0} { - design:show_attributes 0 - return - } - set tl [.pgaw:FormDesign:draft.c gettags [lindex $il 0]] - set i [lsearch -glob $tl o*] - if {$i == -1} return - set objnum [string range [lindex $tl $i] 1 end] - set PgAcVar(fdvar,moveitemobj) $objnum - set PgAcVar(fdvar,moveitemx) $x - set PgAcVar(fdvar,moveitemy) $y - set PgAcVar(fdvar,oper) move - design:show_attributes $objnum - design:draw_hookers $objnum -} - - -proc {forms:load} {name mode} { -global PgAcVar CurrentDB - design:init - set PgAcVar(fdvar,formtitle) $name - if {$mode=="design"} { - Window show .pgaw:FormDesign:draft - Window show .pgaw:FormDesign:menu - Window show .pgaw:FormDesign:attributes - Window show .pgaw:FormDesign:toolbar - } - set res [wpg_exec $CurrentDB "select * from pga_forms where formname='$PgAcVar(fdvar,formtitle)'"] - set info [lindex [pg_result $res -getTuple 0] 1] - pg_result $res -clear - set PgAcVar(fdobj,0,name) [lindex $info 0] - set PgAcVar(fdvar,objnum) [lindex $info 1] - # check for old format , prior to 0.97 that - # save here the objlist (deprecated) - set temp [lindex $info 2] - if {[lindex $temp 0] == "FS"} { - set PgAcVar(fdobj,0,command) [lindex $temp 1] - } else { - set PgAcVar(fdobj,0,command) {} - } - set PgAcVar(fdvar,objlist) {} - set PgAcVar(fdvar,geometry) [lindex $info 3] - set i 1 - foreach objinfo [lrange $info 4 end] { - lappend PgAcVar(fdvar,objlist) $i - set PgAcVar(fdobj,$i,class) [lindex $objinfo 0] - set PgAcVar(fdobj,$i,name) [lindex $objinfo 1] - set PgAcVar(fdobj,$i,coord) [lindex $objinfo 2] - set PgAcVar(fdobj,$i,command) [lindex $objinfo 3] - set PgAcVar(fdobj,$i,label) [lindex $objinfo 4] - set PgAcVar(fdobj,$i,variable) [lindex $objinfo 5] - design:setDefaultReliefAndColor $i - set PgAcVar(fdobj,$i,value) $PgAcVar(fdobj,$i,name) - if {[llength $objinfo] > 6 } { - set PgAcVar(fdobj,$i,value) [lindex $objinfo 6] - set PgAcVar(fdobj,$i,relief) [lindex $objinfo 7] - set PgAcVar(fdobj,$i,fcolor) [lindex $objinfo 8] - set PgAcVar(fdobj,$i,bcolor) [lindex $objinfo 9] - set PgAcVar(fdobj,$i,borderwidth) [lindex $objinfo 10] - set PgAcVar(fdobj,$i,font) [lindex $objinfo 11] - # for space saving purposes we have saved onbly the first letter - switch $PgAcVar(fdobj,$i,font) { - n {set PgAcVar(fdobj,$i,font) normal} - i {set PgAcVar(fdobj,$i,font) italic} - b {set PgAcVar(fdobj,$i,font) bold} - f {set PgAcVar(fdobj,$i,font) fixed} - } - } - if {$mode=="design"} {design:draw_object $i} - incr i - } - if {$mode=="design"} {wm geometry .pgaw:FormDesign:draft $PgAcVar(fdvar,geometry)} -} - - -proc {design:mouse_down} {x y} { -global PgAcVar - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - set PgAcVar(fdvar,xstart) $x - set PgAcVar(fdvar,ystart) $y - if {$PgAcVar(fdvar,tool)=="point"} { - design:item_click $x $y - return - } - set PgAcVar(fdvar,oper) draw -} - - -proc {design:mouse_move} {x y} { -global PgAcVar - #set PgAcVar(fdvar,msg) "x=$x y=$y" - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - set oper "" - catch {set oper $PgAcVar(fdvar,oper)} - if {$oper=="draw"} { - catch {.pgaw:FormDesign:draft.c delete curdraw} - .pgaw:FormDesign:draft.c create rectangle $PgAcVar(fdvar,xstart) $PgAcVar(fdvar,ystart) $x $y -tags curdraw - return - } - if {$oper=="move"} { - set dx [expr $x-$PgAcVar(fdvar,moveitemx)] - set dy [expr $y-$PgAcVar(fdvar,moveitemy)] - .pgaw:FormDesign:draft.c move o$PgAcVar(fdvar,moveitemobj) $dx $dy - .pgaw:FormDesign:draft.c move hook $dx $dy - set PgAcVar(fdvar,moveitemx) $x - set PgAcVar(fdvar,moveitemy) $y - set PgAcVar(fdvar,dirty) 1 - } -} - -proc {design:setDefaultReliefAndColor} {i} { -global PgAcVar - set PgAcVar(fdobj,$i,borderwidth) 1 - set PgAcVar(fdobj,$i,relief) flat - set PgAcVar(fdobj,$i,fcolor) {} - set PgAcVar(fdobj,$i,bcolor) {} - set PgAcVar(fdobj,$i,font) normal - switch $PgAcVar(fdobj,$i,class) { - button { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #d9d9d9 - set PgAcVar(fdobj,$i,relief) raised - } - text { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #fefefe - set PgAcVar(fdobj,$i,relief) sunken - } - entry { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #fefefe - set PgAcVar(fdobj,$i,relief) sunken - } - label { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #d9d9d9 - set PgAcVar(fdobj,$i,relief) flat - } - checkbox { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #d9d9d9 - set PgAcVar(fdobj,$i,relief) flat - } - radio { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #d9d9d9 - set PgAcVar(fdobj,$i,relief) flat - } - listbox { - set PgAcVar(fdobj,$i,fcolor) #000000 - set PgAcVar(fdobj,$i,bcolor) #fefefe - set PgAcVar(fdobj,$i,relief) sunken - } - } -} - -proc {design:mouse_up} {x y} { -global PgAcVar - set x [expr 3*int($x/3)] - set y [expr 3*int($y/3)] - if {$PgAcVar(fdvar,oper)=="move"} { - set PgAcVar(fdvar,moveitem) {} - set PgAcVar(fdvar,oper) none - set oc $PgAcVar(fdobj,$PgAcVar(fdvar,moveitemobj),coord) - set dx [expr $x - $PgAcVar(fdvar,xstart)] - set dy [expr $y - $PgAcVar(fdvar,ystart)] - set newcoord [list [expr $dx+[lindex $oc 0]] [expr $dy+[lindex $oc 1]] [expr $dx+[lindex $oc 2]] [expr $dy+[lindex $oc 3]]] - set PgAcVar(fdobj,$PgAcVar(fdvar,moveitemobj),coord) $newcoord - design:show_attributes $PgAcVar(fdvar,moveitemobj) - design:draw_hookers $PgAcVar(fdvar,moveitemobj) - return - } - if {$PgAcVar(fdvar,oper)!="draw"} return - set PgAcVar(fdvar,oper) none - .pgaw:FormDesign:draft.c delete curdraw - # Check for x2<x1 or y2<y1 - if {$x<$PgAcVar(fdvar,xstart)} {set temp $x ; set x $PgAcVar(fdvar,xstart) ; set PgAcVar(fdvar,xstart) $temp} - if {$y<$PgAcVar(fdvar,ystart)} {set temp $y ; set y $PgAcVar(fdvar,ystart) ; set PgAcVar(fdvar,ystart) $temp} - # Check for too small sizes - if {[expr $x-$PgAcVar(fdvar,xstart)]<20} {set x [expr $PgAcVar(fdvar,xstart)+20]} - if {[expr $y-$PgAcVar(fdvar,ystart)]<10} {set y [expr $PgAcVar(fdvar,ystart)+10]} - incr PgAcVar(fdvar,objnum) - set i $PgAcVar(fdvar,objnum) - lappend PgAcVar(fdvar,objlist) $i - - set PgAcVar(fdobj,$i,class) $PgAcVar(fdvar,tool) - set PgAcVar(fdobj,$i,coord) [list $PgAcVar(fdvar,xstart) $PgAcVar(fdvar,ystart) $x $y] - set PgAcVar(fdobj,$i,name) $PgAcVar(fdvar,tool)$i - set PgAcVar(fdobj,$i,label) $PgAcVar(fdvar,tool)$i - set PgAcVar(fdobj,$i,command) {} - set PgAcVar(fdobj,$i,variable) {} - set PgAcVar(fdobj,$i,value) {} - - design:setDefaultReliefAndColor $i - - design:draw_object $i - design:show_attributes $i - set PgAcVar(fdvar,moveitemobj) $i - design:draw_hookers $i - set PgAcVar(fdvar,tool) point - set PgAcVar(fdvar,dirty) 1 -} - - -proc {design:save} {name} { -global PgAcVar CurrentDB - if {[string length $PgAcVar(fdobj,0,name)]==0} { - tk_messageBox -title [intlmsg Warning] -message [intlmsg "Forms need an internal name, only literals, low case"] - return 0 - } - if {[string length $PgAcVar(fdvar,formtitle)]==0} { - tk_messageBox -title [intlmsg Warning] -message [intlmsg "Form must have a name"] - return 0 - } - set info [list $PgAcVar(fdobj,0,name) $PgAcVar(fdvar,objnum) [list FS $PgAcVar(fdobj,0,command)] [wm geometry .pgaw:FormDesign:draft]] - foreach i $PgAcVar(fdvar,objlist) { - set wfont $PgAcVar(fdobj,$i,font) - if {[lsearch {normal bold italic fixed} $wfont] != -1} { - set wfont [string range $wfont 0 0] - } - lappend info [list $PgAcVar(fdobj,$i,class) $PgAcVar(fdobj,$i,name) $PgAcVar(fdobj,$i,coord) $PgAcVar(fdobj,$i,command) $PgAcVar(fdobj,$i,label) $PgAcVar(fdobj,$i,variable) $PgAcVar(fdobj,$i,value) $PgAcVar(fdobj,$i,relief) $PgAcVar(fdobj,$i,fcolor) $PgAcVar(fdobj,$i,bcolor) $PgAcVar(fdobj,$i,borderwidth) $wfont] - } - sql_exec noquiet "delete from pga_forms where formname='$PgAcVar(fdvar,formtitle)'" - regsub -all "'" $info "''" info - sql_exec noquiet "insert into pga_forms values ('$PgAcVar(fdvar,formtitle)','$info')" - Mainlib::cmd_Forms - set PgAcVar(fdvar,dirty) 0 - return 1 -} - - -proc {design:set_name} {} { -global PgAcVar - set i $PgAcVar(fdvar,moveitemobj) - foreach k $PgAcVar(fdvar,objlist) { - if {($PgAcVar(fdobj,$k,name)==$PgAcVar(fdvar,c_name)) && ($i!=$k)} { - tk_messageBox -title [intlmsg Warning] -message [format [intlmsg "There is another object (a %s) with the same name.\nPlease change it!"] $PgAcVar(fdobj,$k,class)] - return - } - } - set PgAcVar(fdobj,$i,name) $PgAcVar(fdvar,c_name) - design:show_attributes $i - set PgAcVar(fdvar,dirty) 1 -} - - -proc {design:set_text} {} { -global PgAcVar - design:draw_object $PgAcVar(fdvar,moveitemobj) - set PgAcVar(fdvar,dirty) 1 -} - - -proc {design:createAttributesFrame} {i} { -global PgAcVar - # Check if attributes frame is already created for that item - - if {[info exists PgAcVar(fdvar,attributeFrame)]} { - if {$PgAcVar(fdvar,attributeFrame) == $i} return - } - set PgAcVar(fdvar,attributeFrame) $i - - # Delete old widgets from the frame - foreach wid [winfo children .pgaw:FormDesign:attributes.f] { - destroy $wid - } - - set row 0 - set base .pgaw:FormDesign:attributes.f - grid columnconf $base 1 -weight 1 - - set objclass $PgAcVar(fdobj,$i,class) - - # if i is zero, then the object is the form - - if {$i == 0} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg {Startup script}] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,command) \ - -background #fefefe -borderwidth 1 -width 200 - button $base.b$row \ - -borderwidth 1 -padx 1 -pady 0 -text ... -command " - Window show .pgaw:FormDesign:commands - set PgAcVar(fdvar,commandFor) $i - .pgaw:FormDesign:commands.f.txt delete 1.0 end - .pgaw:FormDesign:commands.f.txt insert end \$PgAcVar(fdobj,$i,command)" - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - grid $base.b$row \ - -in $base -column 2 -row $row -columnspan 1 -rowspan 1 - incr row - } - - # does it have a text attribute ? - if {[lsearch {button label radio checkbox} $objclass] > -1} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg Text] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,label) \ - -background #fefefe -borderwidth 1 -width 200 - bind $base.e$row <Key-Return> "Forms::design:set_text" - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 -sticky w - incr row - } - - # does it have a variable attribute ? - if {[lsearch {button label radio checkbox entry} $objclass] > -1} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg Variable] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,variable) \ - -background #fefefe -borderwidth 1 -width 200 - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - incr row - } - - # does it have a Command attribute ? - if {[lsearch {button checkbox} $objclass] > -1} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg Command] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,command) \ - -background #fefefe -borderwidth 1 -width 200 - button $base.b$row \ - -borderwidth 1 -padx 1 -pady 0 -text ... -command " - Window show .pgaw:FormDesign:commands - set PgAcVar(fdvar,commandFor) $i - .pgaw:FormDesign:commands.f.txt delete 1.0 end - .pgaw:FormDesign:commands.f.txt insert end \$PgAcVar(fdobj,$i,command)" - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - grid $base.b$row \ - -in $base -column 2 -row $row -columnspan 1 -rowspan 1 - incr row - } - - # does it have a value attribute ? - if {[lsearch {radio checkbox} $objclass] > -1} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg Value] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,value) \ - -background #fefefe -borderwidth 1 -width 200 - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - incr row - } - - # does it have fonts ? - if {[lsearch {label button entry listbox text checkbox radio} $objclass] > -1} { - label $base.lfont \ - -borderwidth 0 -text [intlmsg Font] - grid $base.lfont \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -pady 2 -sticky w - entry $base.efont -textvariable PgAcVar(fdobj,$i,font) \ - -background #fefefe -borderwidth 1 -width 200 - bind $base.efont <Key-Return> "Forms::design:draw_object $i ; set PgAcVar(fdvar,dirty) 1" - grid $base.efont \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 -sticky w - menubutton $base.mbf \ - -borderwidth 1 -menu $base.mbf.m -padx 2 -pady 0 \ - -text {...} -font $PgAcVar(pref,font_normal) -relief raised - menu $base.mbf.m \ - -borderwidth 1 -cursor {} -tearoff 0 -font $PgAcVar(pref,font_normal) - foreach font {normal bold italic fixed} { - $base.mbf.m add command \ - -command " - set PgAcVar(fdobj,$i,font) $font - Forms::design:draw_object $i - set PgAcVar(fdvar,dirty) 1 - " -label $font - } - grid $base.mbf \ - -in $base -column 2 -row $row -columnspan 1 -rowspan 1 -pady 2 -padx 2 -sticky w - incr row - } - - # does it have colors ? - if {[lsearch {label button radio checkbox entry listbox text} $objclass] > -1} { - label $base.lcf \ - -borderwidth 0 -text [intlmsg Foreground] - label $base.scf \ - -background $PgAcVar(fdobj,$i,fcolor) -borderwidth 1 -relief sunken -width 200 - button $base.bcf \ - -command "set tempcolor \[tk_chooseColor -initialcolor $PgAcVar(fdobj,$i,fcolor) -title {Choose color}\] - if {\$tempcolor != {}} { - set PgAcVar(fdobj,$i,fcolor) \$tempcolor - $base.scf configure -background \$PgAcVar(fdobj,$i,fcolor) - set PgAcVar(fdvar,dirty) 1 - Forms::design:draw_object $i - }" \ - -borderwidth 1 -padx 1 -pady 0 -text ... - grid $base.lcf \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.scf \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - grid $base.bcf \ - -in $base -column 2 -row $row -columnspan 1 -rowspan 1 - incr row - label $base.lcb \ - -borderwidth 0 -text Background - label $base.scb \ - -background $PgAcVar(fdobj,$i,bcolor) -borderwidth 1 -relief sunken -width 200 - button $base.bcb \ - -command "set tempcolor \[tk_chooseColor -initialcolor $PgAcVar(fdobj,$i,bcolor) -title {Choose color}\] - if {\$tempcolor != {}} { - set PgAcVar(fdobj,$i,bcolor) \$tempcolor - $base.scb configure -background \$PgAcVar(fdobj,$i,bcolor) - set PgAcVar(fdvar,dirty) 1 - Forms::design:draw_object $i - }" \ - -borderwidth 1 -padx 1 -pady 0 -text ... - grid $base.lcb \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.scb \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 -sticky w - grid $base.bcb \ - -in $base -column 2 -row $row -columnspan 1 -rowspan 1 - incr row - } - - # does it have border types ? - if {[lsearch {label button entry listbox text} $objclass] > -1} { - label $base.lrelief \ - -borderwidth 0 -text [intlmsg Relief] - grid $base.lrelief \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -pady 2 -sticky w - menubutton $base.mb \ - -borderwidth 2 -menu $base.mb.m -padx 4 -pady 3 -width 100 -relief $PgAcVar(fdobj,$i,relief) \ - -text groove -textvariable PgAcVar(fdobj,$i,relief) \ - -font $PgAcVar(pref,font_normal) - menu $base.mb.m \ - -borderwidth 1 -cursor {} -tearoff 0 -font $PgAcVar(pref,font_normal) - foreach brdtype {raised sunken ridge groove flat} { - $base.mb.m add command \ - -command " - set PgAcVar(fdobj,$i,relief) $brdtype - $base.mb configure -relief \$PgAcVar(fdobj,$i,relief) - Forms::design:draw_object $i - " -label $brdtype - } - grid $base.mb \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -pady 2 -padx 2 -sticky w - incr row - - } - - # is it a DataControl ? - if {$objclass == "query"} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg SQL] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,command) \ - -background #fefefe -borderwidth 1 -width 200 - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - incr row - } - - # does it have a borderwidth attribute ? - if {[lsearch {button label radio checkbox entry listbox text} $objclass] > -1} { - label $base.l$row \ - -borderwidth 0 -text [intlmsg {Border width}] - entry $base.e$row -textvariable PgAcVar(fdobj,$i,borderwidth) \ - -background #fefefe -borderwidth 1 -width 200 - grid $base.l$row \ - -in $base -column 0 -row $row -columnspan 1 -rowspan 1 -sticky w - grid $base.e$row \ - -in $base -column 1 -row $row -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - incr row - } - - - # The last dummy label - - label $base.ldummy -text {} -borderwidth 0 - grid $base.ldummy -in $base -column 0 -row 100 - grid rowconf $base 100 -weight 1 - -} - - -proc {design:show_attributes} {i} { -global PgAcVar - set objclass $PgAcVar(fdobj,$i,class) - set PgAcVar(fdvar,c_class) $objclass - design:createAttributesFrame $i - set PgAcVar(fdvar,c_name) $PgAcVar(fdobj,$i,name) - if {$i == 0} { - # Object 0 is the form - set c [split [winfo geometry .pgaw:FormDesign:draft] x+] - set PgAcVar(fdvar,c_top) [lindex $c 3] - set PgAcVar(fdvar,c_left) [lindex $c 2] - set PgAcVar(fdvar,c_width) [lindex $c 0] - set PgAcVar(fdvar,c_height) [lindex $c 1] - return - } - set c $PgAcVar(fdobj,$i,coord) - set PgAcVar(fdvar,c_top) [lindex $c 1] - set PgAcVar(fdvar,c_left) [lindex $c 0] - set PgAcVar(fdvar,c_width) [expr [lindex $c 2]-[lindex $c 0]] - set PgAcVar(fdvar,c_height) [expr [lindex $c 3]-[lindex $c 1]] -} - - -proc {design:run} {} { -global PgAcVar CurrentDB DataControlVar -set base .$PgAcVar(fdobj,0,name) -if {[winfo exists $base]} { - wm deiconify $base; return -} -toplevel $base -class Toplevel -wm focusmodel $base passive -wm geometry $base $PgAcVar(fdvar,geometry) -wm maxsize $base 785 570 -wm minsize $base 1 1 -wm overrideredirect $base 0 -wm resizable $base 1 1 -wm deiconify $base -wm title $base $PgAcVar(fdvar,formtitle) -foreach item $PgAcVar(fdvar,objlist) { -set coord $PgAcVar(fdobj,$item,coord) -set name $PgAcVar(fdobj,$item,name) -set wh "-width [expr 3+[lindex $coord 2]-[lindex $coord 0]] -height [expr 3+[lindex $coord 3]-[lindex $coord 1]]" -set visual 1 - -set wfont $PgAcVar(fdobj,$item,font) -switch $wfont { - {} {set wfont $PgAcVar(pref,font_normal)} - normal {set wfont $PgAcVar(pref,font_normal)} - bold {set wfont $PgAcVar(pref,font_bold)} - italic {set wfont $PgAcVar(pref,font_italic)} - fixed {set wfont $PgAcVar(pref,font_fix)} -} - -namespace forget ::DataControl($base.$name) - -# Checking if relief ridge or groove has borderwidth 2 -if {[lsearch {ridge groove} $PgAcVar(fdobj,$item,relief)] != -1} { - if {$PgAcVar(fdobj,$item,borderwidth) < 2} { - set PgAcVar(fdobj,$item,borderwidth) 2 - } -} - -# Checking if borderwidth is okay -if {[lsearch {0 1 2 3 4 5} $PgAcVar(fdobj,$item,borderwidth)] == -1} { - set PgAcVar(fdobj,$item,borderwidth) 1 -} - -set cmd {} -catch {set cmd $PgAcVar(fdobj,$item,command)} - -switch $PgAcVar(fdobj,$item,class) { - button { - button $base.$name -borderwidth 1 -padx 0 -pady 0 -text "$PgAcVar(fdobj,$item,label)" \ - -fg $PgAcVar(fdobj,$item,fcolor) -bg $PgAcVar(fdobj,$item,bcolor) \ - -borderwidth $PgAcVar(fdobj,$item,borderwidth) \ - -relief $PgAcVar(fdobj,$item,relief) -font $wfont -command [subst {$cmd}] - if {$PgAcVar(fdobj,$item,variable) != ""} { - $base.$name configure -textvariable $PgAcVar(fdobj,$item,variable) - } - } - checkbox { - checkbutton $base.$name -onvalue t -offvalue f -font $wfont \ - -fg $PgAcVar(fdobj,$item,fcolor) \ - -borderwidth $PgAcVar(fdobj,$item,borderwidth) \ - -command [subst {$cmd}] \ - -text "$PgAcVar(fdobj,$item,label)" -variable "$PgAcVar(fdobj,$item,variable)" -borderwidth 1 - set wh {} - } - query { - set visual 0 - set DataControlVar($base.$name,sql) $PgAcVar(fdobj,$item,command) - namespace eval ::DataControl($base.$name) "proc open {} { - global CurrentDB DataControlVar - variable tuples - catch {unset tuples} - set wn \[focus\] ; setCursor CLOCK - set res \[wpg_exec \$CurrentDB \"\$DataControlVar($base.$name,sql)\"\] - pg_result \$res -assign tuples - set fl {} - foreach fd \[pg_result \$res -lAttributes\] {lappend fl \[lindex \$fd 0\]} - set DataControlVar($base.$name,fields) \$fl - set DataControlVar($base.$name,recno) 0 - set DataControlVar($base.$name,nrecs) \[pg_result \$res -numTuples\] - setCursor NORMAL - }" - namespace eval ::DataControl($base.$name) "proc setSQL {sqlcmd} { - global DataControlVar - set DataControlVar($base.$name,sql) \$sqlcmd - }" - namespace eval ::DataControl($base.$name) "proc getRowCount {} { - global DataControlVar - return \$DataControlVar($base.$name,nrecs) - }" - namespace eval ::DataControl($base.$name) "proc getRowIndex {} { - global DataControlVar - return \$DataControlVar($base.$name,recno) - }" - namespace eval ::DataControl($base.$name) "proc moveTo {newrecno} { - global DataControlVar - set DataControlVar($base.$name,recno) \$newrecno - }" - namespace eval ::DataControl($base.$name) "proc close {} { - variable tuples - catch {unset tuples} - }" - namespace eval ::DataControl($base.$name) "proc getFieldList {} { - global DataControlVar - return \$DataControlVar($base.$name,fields) - }" - namespace eval ::DataControl($base.$name) "proc fill {lb fld} { - global DataControlVar - variable tuples - \$lb delete 0 end - for {set i 0} {\$i<\$DataControlVar($base.$name,nrecs)} {incr i} { - \$lb insert end \$tuples\(\$i,\$fld\) - } - }" - namespace eval ::DataControl($base.$name) "proc moveFirst {} {global DataControlVar ; set DataControlVar($base.$name,recno) 0}" - namespace eval ::DataControl($base.$name) "proc moveNext {} {global DataControlVar ; incr DataControlVar($base.$name,recno) ; if {\$DataControlVar($base.$name,recno)==\[getRowCount\]} {moveLast}}" - namespace eval ::DataControl($base.$name) "proc movePrevious {} {global DataControlVar ; incr DataControlVar($base.$name,recno) -1 ; if {\$DataControlVar($base.$name,recno)==-1} {moveFirst}}" - namespace eval ::DataControl($base.$name) "proc moveLast {} {global DataControlVar ; set DataControlVar($base.$name,recno) \[expr \[getRowCount\] -1\]}" - namespace eval ::DataControl($base.$name) "proc updateDataSet {} {\ - global DataControlVar - global DataSet - variable tuples - set i \$DataControlVar($base.$name,recno) - foreach fld \$DataControlVar($base.$name,fields) { - catch { - upvar DataSet\($base.$name,\$fld\) dbvar - set dbvar \$tuples\(\$i,\$fld\) - } - } - }" - namespace eval ::DataControl($base.$name) "proc clearDataSet {} { - global DataControlVar - global DataSet - catch { foreach fld \$DataControlVar($base.$name,fields) { - catch { - upvar DataSet\($base.$name,\$fld\) dbvar - set dbvar {} - } - }} - }" - } - radio { - radiobutton $base.$name -font $wfont -text "$PgAcVar(fdobj,$item,label)" \ - -fg $PgAcVar(fdobj,$item,fcolor) -bg $PgAcVar(fdobj,$item,bcolor) -variable $PgAcVar(fdobj,$item,variable) \ - -value $PgAcVar(fdobj,$item,value) -borderwidth 1 - set wh {} - } - entry { - set var {} ; catch {set var $PgAcVar(fdobj,$item,variable)} - entry $base.$name -bg $PgAcVar(fdobj,$item,bcolor) -fg $PgAcVar(fdobj,$item,fcolor) \ - -borderwidth $PgAcVar(fdobj,$item,borderwidth) -font $wfont \ - -relief $PgAcVar(fdobj,$item,relief) -selectborderwidth 0 -highlightthickness 0 - if {$var!=""} {$base.$name configure -textvar $var} - } - text { - text $base.$name -fg $PgAcVar(fdobj,$item,fcolor) -bg $PgAcVar(fdobj,$item,bcolor) \ - -relief $PgAcVar(fdobj,$item,relief) -borderwidth $PgAcVar(fdobj,$item,borderwidth) \ - -font $wfont - } - label { - # set wh {} - label $base.$name -font $wfont -anchor nw -padx 0 -pady 0 -text $PgAcVar(fdobj,$item,label) \ - -borderwidth $PgAcVar(fdobj,$item,borderwidth) \ - -relief $PgAcVar(fdobj,$item,relief) -fg $PgAcVar(fdobj,$item,fcolor) -bg $PgAcVar(fdobj,$item,bcolor) - set var {} ; catch {set var $PgAcVar(fdobj,$item,variable)} - if {$var!=""} {$base.$name configure -textvar $var} - } - listbox { - listbox $base.$name -bg $PgAcVar(fdobj,$item,bcolor) -highlightthickness 0 -selectborderwidth 0 \ - -borderwidth $PgAcVar(fdobj,$item,borderwidth) -relief $PgAcVar(fdobj,$item,relief) \ - -fg $PgAcVar(fdobj,$item,fcolor) -bg $PgAcVar(fdobj,$item,bcolor) -font $wfont -yscrollcommand [subst {$base.sb$name set}] - scrollbar $base.sb$name -borderwidth 1 -command [subst {$base.$name yview}] -orient vert -highlightthickness 0 - eval [subst "place $base.sb$name -x [expr [lindex $coord 2]-14] -y [expr [lindex $coord 1]-1] -width 16 -height [expr 3+[lindex $coord 3]-[lindex $coord 1]] -anchor nw -bordermode ignore"] - } -} -if $visual {eval [subst "place $base.$name -x [expr [lindex $coord 0]-1] -y [expr [lindex $coord 1]-1] -anchor nw $wh -bordermode ignore"]} -} -if {$PgAcVar(fdobj,0,command) != ""} { - uplevel #0 $PgAcVar(fdobj,0,command) -} -} - -proc {design:close} {} { -global PgAcVar - if {$PgAcVar(fdvar,dirty)} { - if {[tk_messageBox -title [intlmsg Warning] -message [intlmsg "Do you want to save the form into the database?"] -type yesno -default yes]=="yes"} { - if {[design:save $PgAcVar(fdvar,formtitle)]==0} {return} - } - } - catch {Window destroy .pgaw:FormDesign:draft} - catch {Window destroy .pgaw:FormDesign:toolbar} - catch {Window destroy .pgaw:FormDesign:menu} - catch {Window destroy .pgaw:FormDesign:attributes} - catch {Window destroy .pgaw:FormDesign:commands} - catch {Window destroy .$PgAcVar(fdobj,0,name)} -} - -} - -proc vTclWindow.pgaw:FormDesign:draft {base} { - if {$base == ""} { - set base .pgaw:FormDesign:draft - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 377x315+50+130 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm deiconify $base - wm title $base [intlmsg "Form design"] - bind $base <Key-Delete> { - Forms::design:delete_object - } - bind $base <Key-F1> "Help::load form_design" - canvas $base.c \ - -background #a0a0a0 -height 207 -highlightthickness 0 -relief ridge \ - -selectborderwidth 0 -width 295 - bind $base.c <Button-1> { - Forms::design:mouse_down %x %y - } - bind $base.c <ButtonRelease-1> { - Forms::design:mouse_up %x %y - } - bind $base.c <Motion> { - Forms::design:mouse_move %x %y - } - pack $base.c \ - -in .pgaw:FormDesign:draft -anchor center -expand 1 -fill both -side top -} - -proc vTclWindow.pgaw:FormDesign:attributes {base} { - if {$base == ""} { - set base .pgaw:FormDesign:attributes - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 237x300+461+221 - wm maxsize $base 785 570 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base [intlmsg "Attributes"] - - # The identification frame - - frame $base.fi \ - -borderwidth 2 -height 75 -relief groove -width 125 - label $base.fi.lclass \ - -borderwidth 0 -text [intlmsg Class] - entry $base.fi.eclass -textvariable PgAcVar(fdvar,c_class) \ - -borderwidth 1 -width 200 - label $base.fi.lname \ - -borderwidth 0 -text [intlmsg Name] - entry $base.fi.ename -textvariable PgAcVar(fdvar,c_name) \ - -background #fefefe -borderwidth 1 -width 200 - bind $base.fi.ename <Key-Return> { - Forms::design:set_name - } - - - # The geometry frame - - frame $base.fg \ - -borderwidth 2 -height 75 -relief groove -width 125 - entry $base.fg.e1 -textvariable PgAcVar(fdvar,c_width) \ - -background #fefefe -borderwidth 1 -width 5 - entry $base.fg.e2 -textvariable PgAcVar(fdvar,c_height) \ - -background #fefefe -borderwidth 1 -width 5 - entry $base.fg.e3 -textvariable PgAcVar(fdvar,c_left) \ - -background #fefefe -borderwidth 1 -width 5 - entry $base.fg.e4 -textvariable PgAcVar(fdvar,c_top) \ - -background #fefefe -borderwidth 1 -width 5 - bind $base.fg.e1 <Key-Return> { - Forms::design:change_coords - } - bind $base.fg.e2 <Key-Return> { - Forms::design:change_coords - } - bind $base.fg.e3 <Key-Return> { - Forms::design:change_coords - } - bind $base.fg.e4 <Key-Return> { - Forms::design:change_coords - } - label $base.fg.l1 \ - -borderwidth 0 -text Width - label $base.fg.l2 \ - -borderwidth 0 -text Height - label $base.fg.l3 \ - -borderwidth 0 -text Left - label $base.fg.l4 \ - -borderwidth 0 -text Top - label $base.fg.lx1 \ - -borderwidth 0 -text x - label $base.fg.lp1 \ - -borderwidth 0 -text + - label $base.fg.lp2 \ - -borderwidth 0 -text + - - # The frame for the rest of the attributes (dynamically generated) - - - frame $base.f \ - -borderwidth 2 -height 75 -relief groove -width 125 - - - # Geometry for "identification frame" - - - place $base.fi \ - -x 5 -y 5 -width 230 -height 55 -anchor nw -bordermode ignore - grid columnconf $base.fi 1 -weight 1 - grid $base.fi.lclass \ - -in $base.fi -column 0 -row 0 -columnspan 1 -rowspan 1 -sticky w - grid $base.fi.eclass \ - -in $base.fi -column 1 -row 0 -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - grid $base.fi.lname \ - -in $base.fi -column 0 -row 1 -columnspan 1 -rowspan 1 -sticky w - grid $base.fi.ename \ - -in $base.fi -column 1 -row 1 -columnspan 1 -rowspan 1 -padx 2 \ - -sticky w - - - - # Geometry for "geometry frame" - - place $base.fg \ - -x 5 -y 60 -width 230 -height 45 -anchor nw -bordermode ignore - grid $base.fg.e1 \ - -in $base.fg -column 0 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.e2 \ - -in $base.fg -column 2 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.e3 \ - -in $base.fg -column 4 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.e4 \ - -in $base.fg -column 6 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.l1 \ - -in $base.fg -column 0 -row 1 -columnspan 1 -rowspan 1 - grid $base.fg.l2 \ - -in $base.fg -column 2 -row 1 -columnspan 1 -rowspan 1 - grid $base.fg.l3 \ - -in $base.fg -column 4 -row 1 -columnspan 1 -rowspan 1 - grid $base.fg.l4 \ - -in $base.fg -column 6 -row 1 -columnspan 1 -rowspan 1 - grid $base.fg.lx1 \ - -in $base.fg -column 1 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.lp1 \ - -in $base.fg -column 5 -row 0 -columnspan 1 -rowspan 1 - grid $base.fg.lp2 \ - -in $base.fg -column 3 -row 0 -columnspan 1 -rowspan 1 - - place $base.f -x 5 -y 105 -width 230 -height 190 -anchor nw - -} - - -proc vTclWindow.pgaw:FormDesign:commands {base} { -global PgAcVar - if {$base == ""} { - set base .pgaw:FormDesign:commands - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 640x480+120+100 - wm maxsize $base 785 570 - wm minsize $base 1 19 - wm overrideredirect $base 0 - wm resizable $base 1 1 - wm title $base [intlmsg "Command"] - frame $base.f \ - -borderwidth 2 -height 75 -relief groove -width 125 - scrollbar $base.f.sb \ - -borderwidth 1 -command {.pgaw:FormDesign:commands.f.txt yview} -orient vert -width 12 - text $base.f.txt \ - -font $PgAcVar(pref,font_fix) -height 1 -tabs {20 40 60 80 100 120 140 160 180 200} \ - -width 200 -yscrollcommand {.pgaw:FormDesign:commands.f.sb set} - frame $base.fb \ - -height 75 -width 125 - button $base.fb.b1 \ - -borderwidth 1 \ - -command { - set PgAcVar(fdobj,$PgAcVar(fdvar,commandFor),command) [.pgaw:FormDesign:commands.f.txt get 1.0 "end - 1 chars"] - Window hide .pgaw:FormDesign:commands - set PgAcVar(fdvar,dirty) 1 - } -text [intlmsg Save] -width 5 - button $base.fb.b2 \ - -borderwidth 1 -command {Window hide .pgaw:FormDesign:commands} \ - -text [intlmsg Cancel] - pack $base.f \ - -in .pgaw:FormDesign:commands -anchor center -expand 1 -fill both -side top - pack $base.f.sb \ - -in .pgaw:FormDesign:commands.f -anchor e -expand 1 -fill y -side right - pack $base.f.txt \ - -in .pgaw:FormDesign:commands.f -anchor center -expand 1 -fill both -side top - pack $base.fb \ - -in .pgaw:FormDesign:commands -anchor center -expand 0 -fill none -side top - pack $base.fb.b1 \ - -in .pgaw:FormDesign:commands.fb -anchor center -expand 0 -fill none -side left - pack $base.fb.b2 \ - -in .pgaw:FormDesign:commands.fb -anchor center -expand 0 -fill none -side top -} - -proc vTclWindow.pgaw:FormDesign:menu {base} { - if {$base == ""} { - set base .pgaw:FormDesign:menu - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel - wm focusmodel $base passive - wm geometry $base 432x74+0+0 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base [intlmsg "Form designer"] - frame $base.f1 \ - -height 75 -relief groove -width 125 - label $base.f1.l1 \ - -borderwidth 0 -text "[intlmsg {Form name}] " - entry $base.f1.e1 \ - -background #fefefe -borderwidth 1 -textvariable PgAcVar(fdvar,formtitle) - frame $base.f2 \ - -height 75 -relief groove -width 125 - label $base.f2.l \ - -borderwidth 0 -text "[intlmsg {Form's window internal name}] " - entry $base.f2.e \ - -background #fefefe -borderwidth 1 -textvariable PgAcVar(fdobj,0,name) - frame $base.f3 \ - -height 1 -width 125 - button $base.f3.b1 \ - -command {set PgAcVar(fdvar,geometry) [wm geometry .pgaw:FormDesign:draft] ; Forms::design:run} -padx 1 \ - -text [intlmsg {Test form}] - button $base.f3.b2 \ - -command {destroy .$PgAcVar(fdobj,0,name)} -padx 1 \ - -text [intlmsg {Close test form}] - button $base.f3.b3 \ - -command {Forms::design:save nimic} -padx 1 -text [intlmsg Save] - button $base.f3.b4 \ - -command {Forms::design:close} \ - -padx 1 -text [intlmsg Close] - pack $base.f1 \ - -in .pgaw:FormDesign:menu -anchor center -expand 0 -fill x -pady 2 -side top - pack $base.f1.l1 \ - -in .pgaw:FormDesign:menu.f1 -anchor center -expand 0 -fill none -side left - pack $base.f1.e1 \ - -in .pgaw:FormDesign:menu.f1 -anchor center -expand 1 -fill x -side left - pack $base.f2 \ - -in .pgaw:FormDesign:menu -anchor center -expand 0 -fill x -pady 1 -side top - pack $base.f2.l \ - -in .pgaw:FormDesign:menu.f2 -anchor center -expand 0 -fill none -side left - pack $base.f2.e \ - -in .pgaw:FormDesign:menu.f2 -anchor center -expand 1 -fill x -side left - pack $base.f3 \ - -in .pgaw:FormDesign:menu -anchor center -expand 0 -fill x -pady 2 -side bottom - pack $base.f3.b1 \ - -in .pgaw:FormDesign:menu.f3 -anchor center -expand 0 -fill none -side left - pack $base.f3.b2 \ - -in .pgaw:FormDesign:menu.f3 -anchor center -expand 0 -fill none -side left - pack $base.f3.b3 \ - -in .pgaw:FormDesign:menu.f3 -anchor center -expand 0 -fill none -side left - pack $base.f3.b4 \ - -in .pgaw:FormDesign:menu.f3 -anchor center -expand 0 -fill none -side right -} - - -proc vTclWindow.pgaw:FormDesign:toolbar {base} { -global PgAcVar - foreach wid {button frame radiobutton checkbutton label text entry listbox query} { - image create photo "icon_$wid" -file [file join $PgAcVar(PGACCESS_HOME) images icon_$wid.gif] - } - if {$base == ""} { - set base .pgaw:FormDesign:toolbar - } - if {[winfo exists $base]} { - wm deiconify $base; return - } - toplevel $base -class Toplevel -menu .pgaw:FormDesign:toolbar.m17 - wm focusmodel $base passive - wm geometry $base 29x235+1+130 - wm maxsize $base 1009 738 - wm minsize $base 1 1 - wm overrideredirect $base 0 - wm resizable $base 0 0 - wm deiconify $base - wm title $base [intlmsg "Toolbar"] - button $base.b1 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) button} -image icon_button \ - -padx 9 -pady 3 - button $base.b3 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) radio} \ - -image icon_radiobutton -padx 9 -pady 3 - button $base.b4 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) checkbox} \ - -image icon_checkbutton -padx 9 -pady 3 - button $base.b5 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) label} -image icon_label \ - -padx 9 -pady 3 - button $base.b6 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) text} -image icon_text \ - -padx 9 -pady 3 - button $base.b7 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) entry} -image icon_entry \ - -padx 9 -pady 3 - button $base.b8 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) listbox} -image icon_listbox \ - -padx 9 -pady 3 - button $base.b9 \ - -borderwidth 1 -command {set PgAcVar(fdvar,tool) query} -height 21 \ - -image icon_query -padx 9 -pady 3 -width 20 - grid $base.b1 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 2 -columnspan 1 -rowspan 1 - grid $base.b3 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 4 -columnspan 1 -rowspan 1 - grid $base.b4 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 5 -columnspan 1 -rowspan 1 - grid $base.b5 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 0 -columnspan 1 -rowspan 1 - grid $base.b6 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 6 -columnspan 1 -rowspan 1 - grid $base.b7 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 1 -columnspan 1 -rowspan 1 - grid $base.b8 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 7 -columnspan 1 -rowspan 1 - grid $base.b9 \ - -in .pgaw:FormDesign:toolbar -column 0 -row 8 -columnspan 2 -rowspan 3 -} - |