diff options
author | joye <joye> | 2014-04-18 17:07:46 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-18 17:07:46 (GMT) |
commit | dd944a4a6dbca67e4a661dfe5ef243d199abd833 (patch) | |
tree | aed1e7ba92ed7d9f4bab9c33de468794753504cf /src | |
parent | 3f52c6e39673ce7866d8c4dfbc8b87ce8f6567ec (diff) | |
download | blt-dd944a4a6dbca67e4a661dfe5ef243d199abd833.zip blt-dd944a4a6dbca67e4a661dfe5ef243d199abd833.tar.gz blt-dd944a4a6dbca67e4a661dfe5ef243d199abd833.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrAxisOp.C | 40 | ||||
-rw-r--r-- | src/bltGrAxisOp.h | 2 | ||||
-rw-r--r-- | src/bltGraph.C | 32 | ||||
-rw-r--r-- | src/bltGraph.h | 8 |
4 files changed, 41 insertions, 41 deletions
diff --git a/src/bltGrAxisOp.C b/src/bltGrAxisOp.C index c3ddb8f..5d0484c 100644 --- a/src/bltGrAxisOp.C +++ b/src/bltGrAxisOp.C @@ -55,8 +55,8 @@ static double Clamp(double x) return (x < 0.0) ? 0.0 : (x > 1.0) ? 1.0 : x; } -static int AxisObjConfigure(Tcl_Interp* interp, Axis* axisPtr, - int objc, Tcl_Obj* const objv[]) +int AxisObjConfigure(Tcl_Interp* interp, Axis* axisPtr, + int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = axisPtr->graphPtr_; Tk_SavedOptions savedOptions; @@ -337,40 +337,6 @@ int AxisViewOp(Tcl_Interp* interp, Axis* axisPtr, // Axis -static int CreateAxis(Tcl_Interp* interp, Graph* graphPtr, - int objc, Tcl_Obj* const objv[]) -{ - char *string = Tcl_GetString(objv[3]); - if (string[0] == '-') { - Tcl_AppendResult(interp, "name of axis \"", string, - "\" can't start with a '-'", NULL); - return TCL_ERROR; - } - - int isNew; - Tcl_HashEntry* hPtr = - Tcl_CreateHashEntry(&graphPtr->axes_.table, string, &isNew); - if (!isNew) { - Tcl_AppendResult(interp, "axis \"", string, - "\" already exists in \"", Tcl_GetString(objv[0]), - "\"", NULL); - return TCL_ERROR; - } - - Axis* axisPtr = new Axis(graphPtr, Tcl_GetString(objv[3]), MARGIN_NONE, hPtr); - if (!axisPtr) - return TCL_ERROR; - - Tcl_SetHashValue(hPtr, axisPtr); - - if ((Tk_InitOptions(interp, (char*)axisPtr->ops(), axisPtr->optionTable(), graphPtr->tkwin_) != TCL_OK) || (AxisObjConfigure(interp, axisPtr, objc-4, objv+4) != TCL_OK)) { - delete axisPtr; - return TCL_ERROR; - } - - return TCL_OK; -} - static int CgetOp(Tcl_Interp* interp, Graph* graphPtr, int objc, Tcl_Obj* const objv[]) { @@ -423,7 +389,7 @@ static int BindOp(Tcl_Interp* interp, Graph* graphPtr, int objc, static int CreateOp(Tcl_Interp* interp, Graph* graphPtr, int objc, Tcl_Obj* const objv[]) { - if (CreateAxis(interp, graphPtr, objc, objv) != TCL_OK) + if (graphPtr->createAxis(objc, objv) != TCL_OK) return TCL_ERROR; Tcl_SetObjResult(interp, objv[3]); diff --git a/src/bltGrAxisOp.h b/src/bltGrAxisOp.h index ce84f35..dd15a17 100644 --- a/src/bltGrAxisOp.h +++ b/src/bltGrAxisOp.h @@ -30,6 +30,8 @@ #ifndef __BltGrAxisOp_h__ #define __BltGrAxisOp_h__ +extern int AxisObjConfigure(Tcl_Interp* interp, Axis* axisPtr, + int objc, Tcl_Obj* const objv[]); extern int Blt_AxisOp(Graph* graphPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]); diff --git a/src/bltGraph.C b/src/bltGraph.C index 02ac74a..4de7d4f 100644 --- a/src/bltGraph.C +++ b/src/bltGraph.C @@ -1179,6 +1179,38 @@ int Graph::createAxes() return TCL_OK; } +int Graph::createAxis(int objc, Tcl_Obj* const objv[]) +{ + char *string = Tcl_GetString(objv[3]); + if (string[0] == '-') { + Tcl_AppendResult(interp_, "name of axis \"", string, + "\" can't start with a '-'", NULL); + return TCL_ERROR; + } + + int isNew; + Tcl_HashEntry* hPtr = + Tcl_CreateHashEntry(&axes_.table, string, &isNew); + if (!isNew) { + Tcl_AppendResult(interp_, "axis \"", string, "\" already exists in \"", + Tcl_GetString(objv[0]), "\"", NULL); + return TCL_ERROR; + } + + Axis* axisPtr = new Axis(this, Tcl_GetString(objv[3]), MARGIN_NONE, hPtr); + if (!axisPtr) + return TCL_ERROR; + + Tcl_SetHashValue(hPtr, axisPtr); + + if ((Tk_InitOptions(interp_, (char*)axisPtr->ops(), axisPtr->optionTable(), tkwin_) != TCL_OK) || (AxisObjConfigure(interp_, axisPtr, objc-4, objv+4) != TCL_OK)) { + delete axisPtr; + return TCL_ERROR; + } + + return TCL_OK; +} + void Graph::destroyAxes() { Tcl_HashSearch cursor; diff --git a/src/bltGraph.h b/src/bltGraph.h index 1faa361..bbccc58 100644 --- a/src/bltGraph.h +++ b/src/bltGraph.h @@ -246,23 +246,23 @@ class Graph { void enableCrosshairs(); void disableCrosshairs(); - void resetAxes(); + int createAxis(int, Tcl_Obj* const []); void printAxes(Blt_Ps); void printAxesGrids(Blt_Ps); void printAxesLimits(Blt_Ps); + int getAxis(Tcl_Obj*, Axis**); ClientData axisTag(const char*); + void resetAxes(); Axis* nearestAxis(int, int); ClientData markerTag(const char*); Blt::Marker* nearestMarker(int, int, int); int isElementHidden(Blt::Marker*); + int getElement(Tcl_Obj*, Element**); ClientData elementTag(const char*); int createPen(const char*, int, Tcl_Obj* const []); - - int getElement(Tcl_Obj*, Element**); - int getAxis(Tcl_Obj*, Axis**); int getPen(Tcl_Obj*, Pen**); }; |