summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjoye <joye>2014-02-07 20:56:55 (GMT)
committerjoye <joye>2014-02-07 20:56:55 (GMT)
commitead63ce425e8cf04cd117062b2c77be479fae801 (patch)
tree28a7041c71b3db333bbcc5891dfab15da262f699 /src
parent34336cdf94180cdd203a1efceef60222bbdbcfee (diff)
downloadblt-ead63ce425e8cf04cd117062b2c77be479fae801.zip
blt-ead63ce425e8cf04cd117062b2c77be479fae801.tar.gz
blt-ead63ce425e8cf04cd117062b2c77be479fae801.tar.bz2
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/bltConfig.C38
-rw-r--r--src/bltConfig.h1
-rw-r--r--src/bltGraph.C14
-rw-r--r--src/bltGraph.h4
4 files changed, 47 insertions, 10 deletions
diff --git a/src/bltConfig.C b/src/bltConfig.C
index d855330..e095eaf 100644
--- a/src/bltConfig.C
+++ b/src/bltConfig.C
@@ -126,6 +126,44 @@ static Tcl_Obj* BackgroundGetProc(ClientData clientData, Tk_Window tkwin,
return Tcl_NewStringObj("", -1);
}
+// Point
+static Tk_CustomOptionSetProc PointSetProc;
+static Tk_CustomOptionGetProc PointGetProc;
+Tk_ObjCustomOption pointObjOption =
+ {
+ "point", PointSetProc, PointGetProc, NULL, NULL, NULL
+ };
+
+static int PointSetProc(ClientData clientData, Tcl_Interp *interp,
+ Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec,
+ int offset, char* save, int flags)
+{
+ XPoint *pointPtr = (XPoint *)(widgRec + offset);
+ int x, y;
+
+ if (Blt_GetXY(interp, tkwin, Tcl_GetString(*objPtr), &x, &y) != TCL_OK)
+ return TCL_ERROR;
+
+ pointPtr->x = x;
+ pointPtr->y = y;
+
+ return TCL_OK;
+};
+
+static Tcl_Obj* PointGetProc(ClientData clientData, Tk_Window tkwin,
+ char *widgRec, int offset)
+{
+ XPoint *pointPtr = (XPoint *)(widgRec + offset);
+
+ if ((pointPtr->x != -SHRT_MAX) && (pointPtr->y != -SHRT_MAX)) {
+ char string[200];
+ sprintf_s(string, 200, "@%d,%d", pointPtr->x, pointPtr->y);
+ return Tcl_NewStringObj(string, -1);
+ }
+ else
+ return Tcl_NewStringObj("", -1);
+};
+
/* STATE */
static Blt_OptionParseProc ObjToStateProc;
diff --git a/src/bltConfig.h b/src/bltConfig.h
index c379706..f5132fe 100644
--- a/src/bltConfig.h
+++ b/src/bltConfig.h
@@ -174,6 +174,7 @@ typedef struct {
#define LineIsDashed(d) ((d).values[0] != 0)
extern Tk_ObjCustomOption backgroundObjOption;
+extern Tk_ObjCustomOption pointObjOption;
extern Blt_CustomOption stateOption;
extern Blt_CustomOption dashesOption;
diff --git a/src/bltGraph.C b/src/bltGraph.C
index 1753129..fc670a5 100644
--- a/src/bltGraph.C
+++ b/src/bltGraph.C
@@ -391,10 +391,10 @@ static int NewGraph(ClientData clientData, Tcl_Interp*interp,
graphPtr->axes.displayList = Blt_Chain_Create();
graphPtr->bindTable = Blt_CreateBindingTable(interp, tkwin, graphPtr,
PickEntry, Blt_GraphTags);
- if (Blt_CreatePageSetup(graphPtr) != TCL_OK)
- goto error;
if (Blt_CreateCrosshairs(graphPtr) != TCL_OK)
goto error;
+ if (Blt_CreatePageSetup(graphPtr) != TCL_OK)
+ goto error;
if (Blt_CreateLegend(graphPtr) != TCL_OK)
goto error;
if (Blt_CreatePen(graphPtr, "activeLine", CID_ELEM_LINE, 0, NULL) == NULL)
@@ -402,7 +402,6 @@ static int NewGraph(ClientData clientData, Tcl_Interp*interp,
if (Blt_CreatePen(graphPtr, "activeBar", CID_ELEM_BAR, 0, NULL) == NULL)
goto error;
-
Tk_CreateEventHandler(graphPtr->tkwin,
ExposureMask|StructureNotifyMask|FocusChangeMask,
GraphEventProc, (ClientData)graphPtr);
@@ -416,10 +415,10 @@ static int NewGraph(ClientData clientData, Tcl_Interp*interp,
(GraphObjConfigure(interp, graphPtr, objc-2, objv+2) != TCL_OK))
goto error;
- if (Blt_ConfigurePageSetup(graphPtr) != TCL_OK)
- goto error;
if (Blt_ConfigureObjCrosshairs(graphPtr) != TCL_OK)
goto error;
+ if (Blt_ConfigurePageSetup(graphPtr) != TCL_OK)
+ goto error;
Blt_ConfigureLegend(graphPtr);
if (Blt_DefaultAxes(graphPtr) != TCL_OK)
@@ -450,7 +449,7 @@ int Blt_GraphInstCmdProc(ClientData clientData, Tcl_Interp* interp, int objc,
return TCL_ERROR;
Tcl_Preserve(graphPtr);
- int result = (*proc) (graphPtr, interp, objc, objv);
+ int result = (*proc)(graphPtr, interp, objc, objv);
Tcl_Release(graphPtr);
return result;
}
@@ -464,8 +463,7 @@ static int CgetOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
}
Tcl_Obj* objPtr = Tk_GetOptionValue(interp, (char*)graphPtr,
graphPtr->optionTable,
- (objc == 3) ? objv[2] : NULL,
- graphPtr->tkwin);
+ objv[2], graphPtr->tkwin);
if (objPtr == NULL)
return TCL_ERROR;
else
diff --git a/src/bltGraph.h b/src/bltGraph.h
index 7e7efe3..59b6764 100644
--- a/src/bltGraph.h
+++ b/src/bltGraph.h
@@ -277,6 +277,7 @@ struct _Graph {
* already gone away. */
Tcl_Command cmdToken; /* Token for graph's widget command. */
Tk_OptionTable optionTable;
+
ClassId classId; /* Default element type */
Tk_Cursor cursor;
int inset; /* Sum of focus highlight and 3-D
@@ -531,7 +532,6 @@ extern int Blt_PolyRectClip(Region2d *extsPtr, Point2d *inputPts,
extern void Blt_ComputeBarStacks(Graph *graphPtr);
-extern void Blt_ConfigureCrosshairs(Graph *graphPtr);
extern void Blt_ConfigureLegend(Graph *graphPtr);
extern void Blt_ConfigureElements(Graph *graphPtr);
extern void Blt_ConfigureAxes(Graph *graphPtr);
@@ -620,7 +620,7 @@ extern int Blt_ElementOp(Graph *graphPtr, Tcl_Interp *interp, int objc,
Tcl_Obj *const *objv, ClassId classId);
extern int Blt_CrosshairsOp(Graph *graphPtr, Tcl_Interp *interp, int objc,
- Tcl_Obj *const *objv);
+ Tcl_Obj *const *objv);
extern int Blt_MarkerOp(Graph *graphPtr, Tcl_Interp *interp, int objc,
Tcl_Obj *const *objv);