2010年4月27日 星期二

TCL寫的自動對齊Instance小程式






























選取區域,該區域內Instance可上下或左右,0度或90度自動對齊
lakerMessage "$inst_id_pos_list" 這個可在Main Window顯示結果
下面可把laker form UI置於螢幕中心
###################return SCREEN center x y#####################################################################################################
proc get_screen_center {} {
set sc [car [exec xrandr | grep \*]]
regsub -all {x} $sc " " sxy
set x [atoi [car $sxy]] ;# screen x atoi字串轉整數,atof轉小數
set y [atoi [cadr $sxy]] ;# screen y atoi字串轉整數,atof轉小數
set cx [expr ($x)/2]
set cy [expr ($y)/2]
set sc_list [list $cx $cy] ;# screen center list
return $sc_list ;#回傳screen center list
}
######################set form ui SCREEN center#########################################################################################
proc set_form_screen_center {form_name} {

set nBcenter [get_screen_center] ;#取得螢幕中心點
set x [car [car [gtGetBBox -name $form_name]]] ;#取得視窗width
set y [cadr [car [gtGetBBox -name $form_name]]];#取得視窗height
set x1 [car $nBcenter]
set y1 [cadr $nBcenter]
set nx [expr $x1-$x/2]
set ny [expr $y1-$y/2]
set nnc [ list $nx $ny ]
gtSetOrigin -name $form_name -orig $nnc ;#將視窗置於螢幕中心
}
#############################################MAIN proc###################################################################################




沒有留言: