summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoye <joye>2014-03-17 21:35:18 (GMT)
committerjoye <joye>2014-03-17 21:35:18 (GMT)
commit616e63f07f6fb11f568c68cb84df210dac876753 (patch)
tree2ed56818f4a36d6bdea3e775a02f41f97aff9e97
parente397c807bc33cf9af19714912ffb69a30b4014b6 (diff)
downloadblt-616e63f07f6fb11f568c68cb84df210dac876753.zip
blt-616e63f07f6fb11f568c68cb84df210dac876753.tar.gz
blt-616e63f07f6fb11f568c68cb84df210dac876753.tar.bz2
*** empty log message ***
-rw-r--r--bltGrMarkerBitmap.C4
-rw-r--r--library/graph.tcl20
-rw-r--r--src/bltConfig.C16
-rw-r--r--src/bltConfig.h1
-rw-r--r--src/bltGrAxis.C55
-rw-r--r--src/bltGrElemBar.C7
-rw-r--r--src/bltGrElemLine.C7
-rw-r--r--src/bltGrMarker.C25
-rw-r--r--src/bltGrMarker.h3
-rw-r--r--src/bltGrMarkerLine.C4
-rw-r--r--src/bltGrMarkerPolygon.C4
-rw-r--r--src/bltGrMarkerText.C4
-rw-r--r--tests/linemarker.tcl46
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
+