diff options
author | joye <joye> | 2014-02-07 20:56:55 (GMT) |
---|---|---|
committer | joye <joye> | 2014-02-07 20:56:55 (GMT) |
commit | ead63ce425e8cf04cd117062b2c77be479fae801 (patch) | |
tree | 28a7041c71b3db333bbcc5891dfab15da262f699 /src | |
parent | 34336cdf94180cdd203a1efceef60222bbdbcfee (diff) | |
download | blt-ead63ce425e8cf04cd117062b2c77be479fae801.zip blt-ead63ce425e8cf04cd117062b2c77be479fae801.tar.gz blt-ead63ce425e8cf04cd117062b2c77be479fae801.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltConfig.C | 38 | ||||
-rw-r--r-- | src/bltConfig.h | 1 | ||||
-rw-r--r-- | src/bltGraph.C | 14 | ||||
-rw-r--r-- | src/bltGraph.h | 4 |
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); |