From 61d150b29f6ff51cd57535ae46b452af0cf3c9b1 Mon Sep 17 00:00:00 2001 From: William Joye Date: Fri, 30 Mar 2018 12:42:43 -0400 Subject: update ds9 view parser --- ds9/library/colorbar.tcl | 6 +++-- ds9/library/layout.tcl | 9 +++++++ ds9/parsers/colorbarparser.tac | 26 ++++++++++---------- ds9/parsers/viewparser.tac | 55 ++++++++++++++++++++++-------------------- 4 files changed, 55 insertions(+), 41 deletions(-) diff --git a/ds9/library/colorbar.tcl b/ds9/library/colorbar.tcl index 56bf164..2207886 100644 --- a/ds9/library/colorbar.tcl +++ b/ds9/library/colorbar.tcl @@ -1486,11 +1486,13 @@ proc ProcessColorbarCmd {varname iname} { } } -proc ColorbarCmdView {which value} { +proc ColorbarCmdSet {which value {cmd {}}} { global colorbar set colorbar($which) $value - UpdateView + if {$cmd != {}} { + eval $cmd + } } proc ColorbarCmdFontStyle {value} { diff --git a/ds9/library/layout.tcl b/ds9/library/layout.tcl index 32b6245..ea30ef3 100644 --- a/ds9/library/layout.tcl +++ b/ds9/library/layout.tcl @@ -1026,6 +1026,15 @@ proc ProcessViewCmd {varname iname} { } } +proc ViewCmdSet {which value {cmd {}}} { + global view + + set view($which) $value + if {$cmd != {}} { + eval $cmd + } +} + proc ProcessSendViewCmd {proc id param} { global view diff --git a/ds9/parsers/colorbarparser.tac b/ds9/parsers/colorbarparser.tac index e96c97b..be54253 100644 --- a/ds9/parsers/colorbarparser.tac +++ b/ds9/parsers/colorbarparser.tac @@ -30,25 +30,25 @@ command : colorbar | colorbar {yyclearin; YYACCEPT} STRING_ ; -colorbar : yesno {global view; set view(colorbar) $1; UpdateView} +colorbar : yesno {ViewCmdSet colorbar $1 UpdateView} # backward compatibility | MATCH_ {MatchColorCurrent} - | LOCK_ yesno {global colorbar; set colorbar(lock) $2; LockColorCurrent} + | LOCK_ yesno {ColorbarCmdSet lock $2 LockColorCurrent} - | NUMERICS_ yesno {ColorbarCmdView numerics $2} - | SPACE_ space {ColorbarCmdView space $2} - | FONT_ font {ColorbarCmdView font $2} - | FONTSIZE_ INT_ {ColorbarCmdView font,size $2} - | FONTWEIGHT_ fontWeight {ColorbarCmdView font,weight $2} - | FONTSLANT_ fontSlant {ColorbarCmdView font,slant $2} - | FONTSTYLE_ fontStyle {ColorbarCmdFontStyle $2} + | NUMERICS_ yesno {ColorbarCmdSet numerics $2 UpdateView} + | SPACE_ space {ColorbarCmdSet space $2 UpdateView} + | FONT_ font {ColorbarCmdSet font $2 UpdateView} + | FONTSIZE_ INT_ {ColorbarCmdSet font,size $2 UpdateView} + | FONTWEIGHT_ fontWeight {ColorbarCmdSet font,weight $2 UpdateView} + | FONTSLANT_ fontSlant {ColorbarCmdSet font,slant $2 UpdateView} + | FONTSTYLE_ fontStyle {ColorbarCmdFontStyle $2 UpdateView} - | orientation {ColorbarCmdView orientation $1} + | orientation {ColorbarCmdSet orientation $1 UpdateView} # backward compatibility - | ORIENTATION_ orientation {ColorbarCmdView orientation $2} + | ORIENTATION_ orientation {ColorbarCmdSet orientation $2 UpdateView} - | SIZE_ INT_ {ColorbarCmdView size $2} - | TICKS_ INT_ {ColorbarCmdView ticks $2} + | SIZE_ INT_ {ColorbarCmdSet size $2 UpdateView} + | TICKS_ INT_ {ColorbarCmdSet ticks $2 UpdateView} ; space : VALUE_ {set _ 1} diff --git a/ds9/parsers/viewparser.tac b/ds9/parsers/viewparser.tac index 7684be8..5a96c88 100644 --- a/ds9/parsers/viewparser.tac +++ b/ds9/parsers/viewparser.tac @@ -43,39 +43,42 @@ command : view view : layout | LAYOUT_ layout - | INFO_ yesno {global view; set view(info) $2; UpdateView} - | PANNER_ yesno {global view; set view(panner) $2; UpdateView} - | MAGNIFIER_ yesno {global view; set view(magnifier) $2; UpdateView} - | BUTTONS_ yesno {global view; set view(buttons) $2; UpdateView} - | COLORBAR_ yesno {global view; set view(colorbar) $2; UpdateView} - # backward compatible - | COLORBARNUMERICS_ yesno {global colorbar; set colorbar(numerics) $2; UpdateView} - | GRAPH_ graph - # backward compatible - | HORZGRAPH_ yesno {global view; set view(graph,horz) $2; UpdateView} - # backward compatible - | VERTGRAPH_ yesno {global view; set view(graph,vert) $2; UpdateView} - | FILENAME_ yesno {global view; set view(info,filename) $2; UpdateView} - | OBJECT_ yesno {global view; set view(info,object) $2; UpdateView} - | KEYWORD_ yesno {global view; set view(info,keyword) $2; UpdateView} - | KEYVALUE_ STRING_ {global view; set view(info,keyvalue) $2; UpdateView} - | MINMAX_ yesno {global view; set view(info,minmax) $2; UpdateView} - | LOWHIGH_ yesno {global view; set view(info,lowhigh) $2; UpdateView} - | UNITS_ yesno {global view; set view(info,units) $2; UpdateView} - | coordsys yesno {global view; set view(info,$1) $2; UpdateView} - | wcssys yesno {global view; set view(info,$1) $2; UpdateView} - | FRAME_ yesno {global view; set view(info,frame) $2; UpdateView} + | KEYVALUE_ STRING_ {ViewCmdSet info,keyvalue $2 UpdateView} + | INFO_ yesno {ViewCmdSet info $2 UpdateView} + | PANNER_ yesno {ViewCmdSet panner $2 UpdateView} + | MAGNIFIER_ yesno {ViewCmdSet magnifier $2 UpdateView} + | BUTTONS_ yesno {ViewCmdSet buttons $2 UpdateView} + | COLORBAR_ yesno {ViewCmdSet colorbar $2 UpdateView} + +# backward compatible + | COLORBARNUMERICS_ yesno {ColorbarCmdSet numerics $2 UpdateView} + + | GRAPH_ orient yesno {ViewCmdSet graph,$1 $2 UpdateView} + +# backward compatible + | HORZGRAPH_ yesno {ViewCmdSet graph,horz $2 UpdateView} + | VERTGRAPH_ yesno {ViewCmdSet graph,vert $2 UpdateView} + + | FILENAME_ yesno {ViewCmdSet info,filename $2 UpdateView} + | OBJECT_ yesno {ViewCmdSet info,object $2 UpdateView} + | KEYWORD_ yesno {ViewCmdSet info,keyword $2 UpdateView} + | MINMAX_ yesno {ViewCmdSet info,minmax $2 UpdateView} + | LOWHIGH_ yesno {ViewCmdSet info,lowhigh $2 UpdateView} + | UNITS_ yesno {ViewCmdSet info,units $2 UpdateView} + | coordsys yesno {ViewCmdSet info,$1 $2 UpdateView} + | wcssys yesno {ViewCmdSet info,$1 $2 UpdateView} + | FRAME_ yesno {ViewCmdSet info,frame $2 UpdateView} | RED_ yesno {global rgb; set rgb(red) $2; RGBView} | GREEN_ yesno {global rgb; set rgb(green) $2; RGBView} | BLUE_ yesno {global rgb; set rgb(blue) $2; RGBView} ; -layout : HORIZONTAL_ {global view; set view(layout) horizontal; ViewHorzCmd} - | VERTICAL_ {global view; set view(layout) vertical; ViewVertCmd} +layout : HORIZONTAL_ {ViewCmdSet layout horizontal ViewHorzCmd} + | VERTICAL_ {ViewCmdSet layout vertical ViewVertCmd} ; -graph : HORIZONTAL_ yesno {global view; set view(graph,horz) $2; UpdateView} - | VERTICAL_ yesno {global view; set view(graph,vert) $2; UpdateView} +orient : HORIZONTAL_ {set _ horz} + | VERTICAL_ {set _ vert} ; %% -- cgit v0.12