diff options
author | joye <joye> | 2014-03-17 21:35:18 (GMT) |
---|---|---|
committer | joye <joye> | 2014-03-17 21:35:18 (GMT) |
commit | 616e63f07f6fb11f568c68cb84df210dac876753 (patch) | |
tree | 2ed56818f4a36d6bdea3e775a02f41f97aff9e97 | |
parent | e397c807bc33cf9af19714912ffb69a30b4014b6 (diff) | |
download | blt-616e63f07f6fb11f568c68cb84df210dac876753.zip blt-616e63f07f6fb11f568c68cb84df210dac876753.tar.gz blt-616e63f07f6fb11f568c68cb84df210dac876753.tar.bz2 |
*** empty log message ***
-rw-r--r-- | bltGrMarkerBitmap.C | 4 | ||||
-rw-r--r-- | library/graph.tcl | 20 | ||||
-rw-r--r-- | src/bltConfig.C | 16 | ||||
-rw-r--r-- | src/bltConfig.h | 1 | ||||
-rw-r--r-- | src/bltGrAxis.C | 55 | ||||
-rw-r--r-- | src/bltGrElemBar.C | 7 | ||||
-rw-r--r-- | src/bltGrElemLine.C | 7 | ||||
-rw-r--r-- | src/bltGrMarker.C | 25 | ||||
-rw-r--r-- | src/bltGrMarker.h | 3 | ||||
-rw-r--r-- | src/bltGrMarkerLine.C | 4 | ||||
-rw-r--r-- | src/bltGrMarkerPolygon.C | 4 | ||||
-rw-r--r-- | src/bltGrMarkerText.C | 4 | ||||
-rw-r--r-- | tests/linemarker.tcl | 46 |
13 files changed, 120 insertions, 76 deletions
diff --git a/bltGrMarkerBitmap.C b/bltGrMarkerBitmap.C index 9d7a0af..bc5da82 100644 --- a/bltGrMarkerBitmap.C +++ b/bltGrMarkerBitmap.C @@ -60,9 +60,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BOOLEAN, "-hide", "hide", "Hide", "no", -1, Tk_Offset(BitmapMarker, hide), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(BitmapMarker, axes.x), 0, &axisObjOption, 0}, + "x", -1, Tk_Offset(BitmapMarker, axes.x), 0, &xAxisObjOption, 0}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(BitmapMarker, axes.y), 0, &axisObjOption, 0}, + "y", -1, Tk_Offset(BitmapMarker, axes.y), 0, &yAxisObjOption, 0}, {TK_OPTION_SYNONYM, "-outline", NULL, NULL, NULL, -1, 0, 0, "-foreground", 0}, {TK_OPTION_DOUBLE, "-rotate", "rotate", "Rotate", "0", -1, Tk_Offset(BitmapMarker, reqAngle), 0, NULL, 0}, diff --git a/library/graph.tcl b/library/graph.tcl index dc9bc4a..4a8410c 100644 --- a/library/graph.tcl +++ b/library/graph.tcl @@ -393,8 +393,8 @@ proc blt::FindElement { g x y } { # -------------------------------------------------------------- set markerName "bltClosest_$info(name)" catch { $g marker delete $markerName } - $g marker create text -coords { $info(x) $info(y) } \ - -name $markerName \ + $g marker create text $markerName \ + -coords { $info(x) $info(y) } \ -text "$info(name): $info(dist)\nindex $info(index)" \ -font "Arial 6" \ -anchor center -justify left \ @@ -404,8 +404,7 @@ proc blt::FindElement { g x y } { set nx [lindex $coords 0] set ny [lindex $coords 1] - $g marker create line -coords "$nx $ny $info(x) $info(y)" \ - -name line.$markerName + $g marker create line line.$markerName -coords "$nx $ny $info(x) $info(y)" blt::FlashPoint $g $info(name) $info(index) 10 blt::FlashPoint $g $info(name) [expr $info(index) + 1] 10 @@ -502,7 +501,8 @@ proc blt::ZoomStack::MarkPoint { g index } { if [$g marker exists $marker] { $g marker configure $marker -coords { $x $y } -text $text } else { - $g marker create text -coords { $x $y } -name $marker \ + $g marker create text $marker \ + -coords { $x $y } \ -font "mathmatica1 10" \ -text $text -anchor center -bg {} -justify left } @@ -637,7 +637,7 @@ proc blt::ZoomStack::TitleNext { g } { } else { set coords "-Inf Inf" } - $g marker create text -name "zoomTitle" -text "Zoom #$level" \ + $g marker create text "zoomTitle" -text "Zoom #$level" \ -coords $coords -bindtags "" -anchor nw } @@ -646,8 +646,7 @@ proc blt::ZoomStack::TitleLast { g } { set level [llength $_private($g,stack)] if { $level > 0 } { - $g marker create text -name "zoomTitle" -anchor nw \ - -text "Zoom #$level" + $g marker create text "zoomTitle" -anchor nw -text "Zoom #$level" } } @@ -758,15 +757,14 @@ proc blt::ZoomStack::Box { g } { } else { set X [lindex [$g xaxis use] 0] set Y [lindex [$g yaxis use] 0] - $g marker create line -coords $coords -name "zoomOutline" \ - -mapx $X -mapy $Y + $g marker create line "zoomOutline" \ + -coords $coords -mapx $X -mapy $Y set interval $_private($g,interval) set id [after $interval [list blt::ZoomStack::MarchingAnts $g 0]] set _private($g,afterId) $id } } - proc Blt_PostScriptDialog { g } { set top $g.top toplevel $top diff --git a/src/bltConfig.C b/src/bltConfig.C index 4c0e290..b05094d 100644 --- a/src/bltConfig.C +++ b/src/bltConfig.C @@ -43,6 +43,12 @@ extern "C" { #include "bltConfig.h" }; +void RestoreProc(ClientData clientData, Tk_Window tkwin, + char *ptr, char *savePtr) +{ + *(double*)ptr = *(double*)savePtr; +} + // State const char* stateObjOption[] = {"normal", "active", "disabled", NULL}; @@ -199,11 +205,10 @@ static Tcl_Obj* DashesGetProc(ClientData clientData, Tk_Window tkwin, // List static Tk_CustomOptionSetProc ListSetProc; static Tk_CustomOptionGetProc ListGetProc; -static Tk_CustomOptionRestoreProc ListRestoreProc; static Tk_CustomOptionFreeProc ListFreeProc; Tk_ObjCustomOption listObjOption = { - "list", ListSetProc, ListGetProc, ListRestoreProc, ListFreeProc, NULL + "list", ListSetProc, ListGetProc, RestoreProc, ListFreeProc, NULL }; static int ListSetProc(ClientData clientData, Tcl_Interp *interp, @@ -243,12 +248,6 @@ static Tcl_Obj* ListGetProc(ClientData clientData, Tk_Window tkwin, return listObjPtr; }; -static void ListRestoreProc(ClientData clientData, Tk_Window tkwin, - char *ptr, char *savePtr) -{ - *(double*)ptr = *(double*)savePtr; -} - static void ListFreeProc(ClientData clientData, Tk_Window tkwin, char *ptr) { @@ -256,4 +255,3 @@ static void ListFreeProc(ClientData clientData, Tk_Window tkwin, if (argv) Tcl_Free((char*)argv); } - diff --git a/src/bltConfig.h b/src/bltConfig.h index a520ba6..5c41d55 100644 --- a/src/bltConfig.h +++ b/src/bltConfig.h @@ -49,6 +49,7 @@ typedef struct { extern Tk_ObjCustomOption pointObjOption; extern Tk_ObjCustomOption dashesObjOption; extern Tk_ObjCustomOption listObjOption; +extern Tk_CustomOptionRestoreProc RestoreProc; extern void Blt_SetDashes (Display *display, GC gc, Blt_Dashes *dashesPtr); diff --git a/src/bltGrAxis.C b/src/bltGrAxis.C index f9f09ac..2eda587 100644 --- a/src/bltGrAxis.C +++ b/src/bltGrAxis.C @@ -106,11 +106,16 @@ typedef int (GraphAxisProc)(Tcl_Interp* interp, Graph* graphPtr, static Tk_CustomOptionSetProc AxisSetProc; static Tk_CustomOptionGetProc AxisGetProc; -static Tk_CustomOptionRestoreProc AxisRestoreProc; static Tk_CustomOptionFreeProc AxisFreeProc; -Tk_ObjCustomOption axisObjOption = +Tk_ObjCustomOption xAxisObjOption = { - "axis", AxisSetProc, AxisGetProc, AxisRestoreProc, AxisFreeProc, NULL + "xaxis", AxisSetProc, AxisGetProc, RestoreProc, AxisFreeProc, + (ClientData)CID_AXIS_X + }; +Tk_ObjCustomOption yAxisObjOption = + { + "yaxis", AxisSetProc, AxisGetProc, RestoreProc, AxisFreeProc, + (ClientData)CID_AXIS_Y }; static int AxisSetProc(ClientData clientData, Tcl_Interp* interp, @@ -140,12 +145,6 @@ static Tcl_Obj* AxisGetProc(ClientData clientData, Tk_Window tkwin, return Tcl_NewStringObj(name, -1); }; -static void AxisRestoreProc(ClientData clientData, Tk_Window tkwin, - char *ptr, char *savePtr) -{ - *(double*)ptr = *(double*)savePtr; -} - static void AxisFreeProc(ClientData clientData, Tk_Window tkwin, char *ptr) { @@ -191,11 +190,10 @@ static Tcl_Obj* LimitGetProc(ClientData clientData, Tk_Window tkwin, static Tk_CustomOptionSetProc TicksSetProc; static Tk_CustomOptionGetProc TicksGetProc; -static Tk_CustomOptionRestoreProc TicksRestoreProc; static Tk_CustomOptionFreeProc TicksFreeProc; Tk_ObjCustomOption ticksObjOption = { - "ticks", TicksSetProc, TicksGetProc, TicksRestoreProc, TicksFreeProc, NULL + "ticks", TicksSetProc, TicksGetProc, RestoreProc, TicksFreeProc, NULL }; static int TicksSetProc(ClientData clientData, Tcl_Interp* interp, @@ -232,7 +230,7 @@ static int TicksSetProc(ClientData clientData, Tcl_Interp* interp, static Tcl_Obj* TicksGetProc(ClientData clientData, Tk_Window tkwin, char *widgRec, int offset) { - Ticks* ticksPtr = *(Ticks**) (widgRec + offset); + Ticks* ticksPtr = *(Ticks**)(widgRec + offset); if (ticksPtr) { int cnt = ticksPtr->nTicks; @@ -248,12 +246,6 @@ static Tcl_Obj* TicksGetProc(ClientData clientData, Tk_Window tkwin, return Tcl_NewListObj(0, NULL); } -static void TicksRestoreProc(ClientData clientData, Tk_Window tkwin, - char *ptr, char *savePtr) -{ - *(double*)ptr = *(double*)savePtr; -} - static void TicksFreeProc(ClientData clientData, Tk_Window tkwin, char *ptr) { @@ -264,29 +256,38 @@ static void TicksFreeProc(ClientData clientData, Tk_Window tkwin, static Tk_CustomOptionSetProc ObjectSetProc; static Tk_CustomOptionGetProc ObjectGetProc; +static Tk_CustomOptionFreeProc ObjectFreeProc; Tk_ObjCustomOption objectObjOption = { - "object", ObjectSetProc, ObjectGetProc, NULL, NULL, NULL, + "object", ObjectSetProc, ObjectGetProc, RestoreProc, ObjectFreeProc, NULL, }; static int ObjectSetProc(ClientData clientData, Tcl_Interp* interp, Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec, - int offset, char* save, int flags) + int offset, char* savePtr, int flags) { - Tcl_Obj** objectPtr = (Tcl_Obj**)(widgRec + offset); + Tcl_Obj** objectPtrPtr = (Tcl_Obj**)(widgRec + offset); + *(double*)savePtr = *(double*)objectPtrPtr; + Tcl_IncrRefCount(*objPtr); - if (*objectPtr) - Tcl_DecrRefCount(*objectPtr); - *objectPtr = *objPtr; + *objectPtrPtr = *objPtr; return TCL_OK; } static Tcl_Obj* ObjectGetProc(ClientData clientData, Tk_Window tkwin, - char *widgRec, int offset) + char *widgRec, int offset) +{ + Tcl_Obj** objectPtrPtr = (Tcl_Obj**)(widgRec + offset); + return *objectPtrPtr; +} + +static void ObjectFreeProc(ClientData clientData, Tk_Window tkwin, + char *ptr) { - Tcl_Obj** objectPtr = (Tcl_Obj**)(widgRec + offset); - return *objectPtr; + Tcl_Obj* objectPtr = *(Tcl_Obj**)ptr; + if (objectPtr) + Tcl_DecrRefCount(objectPtr); } static Tk_OptionSpec optionSpecs[] = { diff --git a/src/bltGrElemBar.C b/src/bltGrElemBar.C index 28f956c..b808d11 100644 --- a/src/bltGrElemBar.C +++ b/src/bltGrElemBar.C @@ -230,7 +230,8 @@ static Tk_ObjCustomOption styleObjOption = extern Tk_ObjCustomOption barPenObjOption; extern Tk_ObjCustomOption pairsObjOption; extern Tk_ObjCustomOption valuesObjOption; -extern Tk_ObjCustomOption axisObjOption; +extern Tk_ObjCustomOption xAxisObjOption; +extern Tk_ObjCustomOption yAxisObjOption; static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_CUSTOM, "-activepen", "activePen", "ActivePen", @@ -271,9 +272,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_RELIEF, "-legendrelief", "legendRelief", "LegendRelief", "flat", -1, Tk_Offset(BarElement, legendRelief), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(BarElement, axes.x), 0, &axisObjOption, MAP_ITEM}, + "x", -1, Tk_Offset(BarElement, axes.x), 0, &xAxisObjOption, MAP_ITEM}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(BarElement, axes.y), 0, &axisObjOption, MAP_ITEM}, + "y", -1, Tk_Offset(BarElement, axes.y), 0, &yAxisObjOption, MAP_ITEM}, {TK_OPTION_SYNONYM, "-outline", NULL, NULL, NULL, -1, 0, 0, "-foreground", 0}, {TK_OPTION_CUSTOM, "-pen", "pen", "Pen", NULL, -1, Tk_Offset(BarElement, normalPenPtr), diff --git a/src/bltGrElemLine.C b/src/bltGrElemLine.C index 701ddb1..5fd28c1 100644 --- a/src/bltGrElemLine.C +++ b/src/bltGrElemLine.C @@ -487,7 +487,8 @@ static Tcl_Obj* SymbolGetProc(ClientData clientData, Tk_Window tkwin, extern Tk_ObjCustomOption linePenObjOption; extern Tk_ObjCustomOption pairsObjOption; extern Tk_ObjCustomOption valuesObjOption; -extern Tk_ObjCustomOption axisObjOption; +extern Tk_ObjCustomOption xAxisObjOption; +extern Tk_ObjCustomOption yAxisObjOption; static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_CUSTOM, "-activepen", "activePen", "ActivePen", @@ -529,9 +530,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_PIXELS, "-linewidth", "lineWidth", "LineWidth", "1", -1, Tk_Offset(LineElement, builtinPen.traceWidth), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(LineElement, axes.x), 0, &axisObjOption, MAP_ITEM}, + "x", -1, Tk_Offset(LineElement, axes.x), 0, &xAxisObjOption, MAP_ITEM}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(LineElement, axes.y), 0, &axisObjOption, MAP_ITEM}, + "y", -1, Tk_Offset(LineElement, axes.y), 0, &yAxisObjOption, MAP_ITEM}, {TK_OPTION_INT, "-maxsymbols", "maxSymbols", "MaxSymbols", "0", -1, Tk_Offset(LineElement, reqMaxSymbols), 0, NULL, 0}, {TK_OPTION_COLOR, "-offdash", "offDash", "OffDash", diff --git a/src/bltGrMarker.C b/src/bltGrMarker.C index b07500b..e1c49ca 100644 --- a/src/bltGrMarker.C +++ b/src/bltGrMarker.C @@ -180,14 +180,21 @@ static Tcl_Obj* JoinStyleGetProc(ClientData clientData, Tk_Window tkwin, static int CreateMarker(Graph* graphPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { - char* name = Tcl_GetString(objv[4]); int offset = 5; + char* name =NULL; char ident[128]; - // name given? - if (name[0] == '-') { + if (objc == 4) { + offset = 4; sprintf_s(ident, 128, "marker%d", graphPtr->nextMarkerId++); name = ident; - offset = 4; + } + else { + name = Tcl_GetString(objv[4]); + if (name[0] == '-') { + offset = 4; + sprintf_s(ident, 128, "marker%d", graphPtr->nextMarkerId++); + name = ident; + } } int isNew; @@ -271,16 +278,6 @@ static void DestroyMarker(Marker *markerPtr) if (markerPtr->link) Blt_Chain_DeleteLink(graphPtr->markers.displayList, markerPtr->link); - /* - if (markerPtr->axes.x) - Blt_ReleaseAxis(markerPtr->axes.x); - if (markerPtr->axes.y) - Blt_ReleaseAxis(markerPtr->axes.y); - - if (markerPtr->worldPts) - free(markerPtr->worldPts); - */ - Tk_FreeConfigOptions((char*)markerPtr, markerPtr->optionTable, graphPtr->tkwin); diff --git a/src/bltGrMarker.h b/src/bltGrMarker.h index fe9401c..9f1ebd0 100644 --- a/src/bltGrMarker.h +++ b/src/bltGrMarker.h @@ -95,6 +95,7 @@ int Blt_BoxesDontOverlap(Graph* graphPtr, Region2d *extsPtr); extern Tk_ObjCustomOption coordsObjOption; extern Tk_ObjCustomOption capStyleObjOption; extern Tk_ObjCustomOption joinStyleObjOption; -extern Tk_ObjCustomOption axisObjOption; +extern Tk_ObjCustomOption xAxisObjOption; +extern Tk_ObjCustomOption yAxisObjOption; #endif diff --git a/src/bltGrMarkerLine.C b/src/bltGrMarkerLine.C index f33a376..edda9ec 100644 --- a/src/bltGrMarkerLine.C +++ b/src/bltGrMarkerLine.C @@ -58,9 +58,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BOOLEAN, "-hide", "hide", "Hide", "no", -1, Tk_Offset(LineMarker, hide), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(LineMarker, axes.x), 0, &axisObjOption, 0}, + "x", -1, Tk_Offset(LineMarker, axes.x), 0, &xAxisObjOption, 0}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(LineMarker, axes.y), 0, &axisObjOption, 0}, + "y", -1, Tk_Offset(LineMarker, axes.y), 0, &yAxisObjOption, 0}, {TK_OPTION_COLOR, "-outline", "outline", "Outline", STD_NORMAL_FOREGROUND, -1, Tk_Offset(LineMarker, outlineColor), TK_OPTION_NULL_OK, NULL, 0}, diff --git a/src/bltGrMarkerPolygon.C b/src/bltGrMarkerPolygon.C index 51110e2..db4a80d 100644 --- a/src/bltGrMarkerPolygon.C +++ b/src/bltGrMarkerPolygon.C @@ -58,9 +58,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BOOLEAN, "-hide", "hide", "Hide", "no", -1, Tk_Offset(PolygonMarker, hide), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(PolygonMarker, axes.x), 0, &axisObjOption, 0}, + "x", -1, Tk_Offset(PolygonMarker, axes.x), 0, &xAxisObjOption, 0}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(PolygonMarker, axes.y), 0, &axisObjOption, 0}, + "y", -1, Tk_Offset(PolygonMarker, axes.y), 0, &yAxisObjOption, 0}, {TK_OPTION_COLOR, "-outline", "outline", "Outline", STD_NORMAL_FOREGROUND, -1, Tk_Offset(PolygonMarker, outline), TK_OPTION_NULL_OK, NULL, 0}, diff --git a/src/bltGrMarkerText.C b/src/bltGrMarkerText.C index e51c1eb..6060c08 100644 --- a/src/bltGrMarkerText.C +++ b/src/bltGrMarkerText.C @@ -60,9 +60,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BOOLEAN, "-hide", "hide", "Hide", "no", -1, Tk_Offset(TextMarker, hide), 0, NULL, 0}, {TK_OPTION_CUSTOM, "-mapx", "mapX", "MapX", - "x", -1, Tk_Offset(TextMarker, axes.x), 0, &axisObjOption, 0}, + "x", -1, Tk_Offset(TextMarker, axes.x), 0, &xAxisObjOption, 0}, {TK_OPTION_CUSTOM, "-mapy", "mapY", "MapY", - "y", -1, Tk_Offset(TextMarker, axes.y), 0, &axisObjOption, 0}, + "y", -1, Tk_Offset(TextMarker, axes.y), 0, &yAxisObjOption, 0}, {TK_OPTION_SYNONYM, "-outline", NULL, NULL, NULL, -1, 0, 0, "-foreground", 0}, {TK_OPTION_PIXELS, "-padx", "padX", "PadX", "4", -1, Tk_Offset(TextMarker, style.xPad), 0, NULL, 0}, diff --git a/tests/linemarker.tcl b/tests/linemarker.tcl new file mode 100644 index 0000000..e3df272 --- /dev/null +++ b/tests/linemarker.tcl @@ -0,0 +1,46 @@ +source base.tcl + +set w .line +set graph [bltLineGraph $w] +return +set marker [$graph marker create line tt \ + -element data1 \ + -coords "1 50 1.5 100 1 150" \ + -linewidth 10] + +#bltTest2 $graph $marker -bindtags +bltTest2 $graph $marker -cap round +#bltTest2 $graph $marker -coords +bltTest2 $graph $marker -dashes dashdot +bltTest2 $graph $marker -dashes dashdot dashoffset 10 +bltTest2 $graph $marker -element data2 +#bltTest2 $graph $marker -fill +bltTest2 $graph $marker -join round +bltTest2 $graph $marker -linewidth 1 +bltTest2 $graph $marker -hide yes +#bltTest2 $graph $marker -mapx +#bltTest2 $graph $marker -mapy +bltTest2 $graph $marker -outline green +#bltTest2 $graph $marker -state +#bltTest2 $graph $marker -under +#bltTest2 $graph $marker -xoffset +#bltTest2 $graph $marker -xor +#bltTest2 $graph $marker -yoffset + +#bltCmd $graph marker axis +#bltCmd $graph marker bind marker ?sequence command? +#bltCmd $graph marker cget marker ?option? +#bltCmd $graph marker configure marker ?option value?... +#bltCmd $graph marker create type marker ?option value?... +bltCmd $graph marker exists $marker +#bltCmd $graph marker find "enclosed|overlapping x1 y1 x2 y2" +#bltCmd $graph marker get name +#bltCmd $graph marker lower "marker ?afterMarker?" +#bltCmd $graph marker names "?pattern?..." +#bltCmd $graph marker raise "marker ?beforeMarker?" +bltCmd $graph marker type $marker +bltCmd $graph marker delete $marker + +echo "done" +#bltPlotDestroy $w + |