diff options
author | joye <joye> | 2014-04-18 16:15:38 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-18 16:15:38 (GMT) |
commit | 36f2a7ad4067ad756b7400973e7a07c476bb9f06 (patch) | |
tree | 2b31c76b545269443f437a5b035d67bee56cb4fc /src | |
parent | 877fe7c26ffc2ccfb58492bbbf4f769a41580e77 (diff) | |
download | blt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.zip blt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.tar.gz blt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrElemOp.C | 47 | ||||
-rw-r--r-- | src/bltGrElemOp.h | 2 | ||||
-rw-r--r-- | src/bltGrLegd.C | 2 | ||||
-rw-r--r-- | src/bltGrXAxisOp.C | 37 | ||||
-rw-r--r-- | src/bltGrXAxisOp.h | 1 | ||||
-rw-r--r-- | src/bltGraph.C | 66 | ||||
-rw-r--r-- | src/bltGraph.h | 3 |
7 files changed, 79 insertions, 79 deletions
diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C index 22be905..6904378 100644 --- a/src/bltGrElemOp.C +++ b/src/bltGrElemOp.C @@ -166,7 +166,7 @@ static int CgetOp(Graph* graphPtr, Tcl_Interp* interp, } Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[3], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; Tcl_Obj* objPtr = Tk_GetOptionValue(interp, @@ -184,7 +184,7 @@ static int ConfigureOp(Graph* graphPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[3], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; if (objc <= 5) { @@ -224,7 +224,7 @@ static int ActivateOp(Graph* graphPtr, Tcl_Interp* interp, } Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[3], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; int* indices = NULL; @@ -299,7 +299,7 @@ static int ClosestOp(Graph* graphPtr, Tcl_Interp* interp, if (objc>5) { for (int ii=5; ii<objc; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[ii], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) return TCL_ERROR; if (elemPtr && !elemPtr->hide() && @@ -355,7 +355,7 @@ static int DeactivateOp(Graph* graphPtr, Tcl_Interp* interp, { for (int ii=3; ii<objc; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[ii], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) return TCL_ERROR; if (elemPtr->activeIndices_) { @@ -375,12 +375,9 @@ static int DeleteOp(Graph* graphPtr, Tcl_Interp* interp, { for (int ii=3; ii<objc; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[ii], &elemPtr) != TCL_OK) { - Tcl_AppendResult(interp, "can't find element \"", - Tcl_GetString(objv[ii]), "\" in \"", - Tk_PathName(graphPtr->tkwin_), "\"", NULL); + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) return TCL_ERROR; - } + elemPtr->flags |= DELETE_PENDING; Tcl_EventuallyFree(elemPtr, FreeElement); } @@ -421,8 +418,9 @@ static int LowerOp(Graph* graphPtr, Tcl_Interp* interp, for (int ii=3; ii<objc; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[ii], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) return TCL_ERROR; + Blt_Chain_UnlinkLink(graphPtr->elements_.displayList, elemPtr->link); Blt_Chain_LinkAfter(chain, elemPtr->link, NULL); } @@ -482,7 +480,7 @@ static int RaiseOp(Graph* graphPtr, Tcl_Interp* interp, for (int ii=3; ii<objc; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[ii], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) return TCL_ERROR; Blt_Chain_UnlinkLink(graphPtr->elements_.displayList, elemPtr->link); @@ -517,10 +515,11 @@ static int ShowOp(Graph* graphPtr, Tcl_Interp* interp, Blt_Chain chain = Blt_Chain_Create(); for (int ii=0; ii<n; ii++) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, elem[ii], &elemPtr) != TCL_OK) { + if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK) { Blt_Chain_Destroy(chain); return TCL_ERROR; } + Blt_Chain_Append(chain, elemPtr); } @@ -550,7 +549,7 @@ static int TypeOp(Graph* graphPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Element* elemPtr; - if (Blt_GetElement(interp, graphPtr, objv[3], &elemPtr) != TCL_OK) + if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; Tcl_SetStringObj(Tcl_GetObjResult(interp), elemPtr->typeName(), -1); @@ -630,24 +629,4 @@ static int GetIndex(Tcl_Interp* interp, Element* elemPtr, return TCL_OK; } -int Blt_GetElement(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr, - Element **elemPtrPtr) -{ - Tcl_HashEntry *hPtr; - char *name; - - name = Tcl_GetString(objPtr); - if (!name || !name[0]) - return TCL_ERROR; - hPtr = Tcl_FindHashEntry(&graphPtr->elements_.table, name); - if (!hPtr) { - if (interp) - Tcl_AppendResult(interp, "can't find element \"", name, - "\" in \"", Tk_PathName(graphPtr->tkwin_), "\"", - NULL); - return TCL_ERROR; - } - *elemPtrPtr = (Element*)Tcl_GetHashValue(hPtr); - return TCL_OK; -} diff --git a/src/bltGrElemOp.h b/src/bltGrElemOp.h index 221bdd9..63178d4 100644 --- a/src/bltGrElemOp.h +++ b/src/bltGrElemOp.h @@ -32,7 +32,5 @@ extern int Blt_ElementOp(Graph* graphPtr, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[], ClassId classId); -extern int Blt_GetElement(Tcl_Interp* interp, Graph *graphPtr, - Tcl_Obj *objPtr, Element **elemPtrPtr); extern void Blt_DestroyElement(Element* elemPtr); #endif diff --git a/src/bltGrLegd.C b/src/bltGrLegd.C index c575635..ef04361 100644 --- a/src/bltGrLegd.C +++ b/src/bltGrLegd.C @@ -872,7 +872,7 @@ int Legend::getElementFromObj(Tcl_Obj* objPtr, Element** elemPtrPtr) elemPtr = (Element*)PickEntryProc(graphPtr_, x, y, NULL); } else { - if (Blt_GetElement(graphPtr_->interp_, graphPtr_, objPtr, &elemPtr) !=TCL_OK) + if (graphPtr_->getElement(objPtr, &elemPtr) != TCL_OK) return TCL_ERROR; if (!elemPtr->link) { diff --git a/src/bltGrXAxisOp.C b/src/bltGrXAxisOp.C index b022bd3..53e1418 100644 --- a/src/bltGrXAxisOp.C +++ b/src/bltGrXAxisOp.C @@ -57,43 +57,6 @@ extern int AxisViewOp(Tcl_Interp* interp, Axis* axisPtr, static int lastMargin; -int Blt_CreateAxes(Graph* graphPtr) -{ - for (int ii=0; ii<4; ii++) { - int isNew; - Tcl_HashEntry* hPtr = - Tcl_CreateHashEntry(&graphPtr->axes_.table, axisNames[ii].name, &isNew); - Blt_Chain chain = Blt_Chain_Create(); - - Axis* axisPtr = new Axis(graphPtr, axisNames[ii].name, ii, hPtr); - if (!axisPtr) - return TCL_ERROR; - AxisOptions* ops = (AxisOptions*)axisPtr->ops(); - - Tcl_SetHashValue(hPtr, axisPtr); - - axisPtr->refCount_ = 1; - axisPtr->use_ =1; - - axisPtr->setClass(!(ii&1) ? CID_AXIS_X : CID_AXIS_Y); - - if (Tk_InitOptions(graphPtr->interp_, (char*)axisPtr->ops(), - axisPtr->optionTable(), graphPtr->tkwin_) != TCL_OK) - return TCL_ERROR; - - if (axisPtr->configure() != TCL_OK) - return TCL_ERROR; - - if ((axisPtr->margin_ == MARGIN_RIGHT) || (axisPtr->margin_ == MARGIN_TOP)) - ops->hide = 1; - - graphPtr->axisChain_[ii] = chain; - axisPtr->link = Blt_Chain_Append(chain, axisPtr); - axisPtr->chain = chain; - } - return TCL_OK; -} - // Ops static int BindOp(Tcl_Interp* interp, Axis* axisPtr, diff --git a/src/bltGrXAxisOp.h b/src/bltGrXAxisOp.h index 6018e48..10a2ad5 100644 --- a/src/bltGrXAxisOp.h +++ b/src/bltGrXAxisOp.h @@ -30,7 +30,6 @@ #ifndef __BltGrXAxisOp_h__ #define __BltGrXAxisOp_h__ -extern int Blt_CreateAxes(Graph* graphPtr); extern int Blt_XAxisOp(Tcl_Interp* interp, Graph* graphPtr, int margin, int objc, Tcl_Obj* const objv[]); diff --git a/src/bltGraph.C b/src/bltGraph.C index eb956c5..8eefb03 100644 --- a/src/bltGraph.C +++ b/src/bltGraph.C @@ -284,20 +284,22 @@ Graph::Graph(ClientData clientData, Tcl_Interp* interp, bindTable_ = Blt_CreateBindingTable(interp_, tkwin_, this, PickEntry, Blt_GraphTags); - if (Blt_CreatePen(this, interp_, "activeLine", CID_ELEM_LINE, 0, NULL) != - TCL_OK) { + if (createAxes() != TCL_OK) { valid_ =0; return; } - if (Blt_CreatePen(this, interp_, "activeBar", CID_ELEM_BAR, 0, NULL) != + + if (Blt_CreatePen(this, interp_, "activeLine", CID_ELEM_LINE, 0, NULL) != TCL_OK) { valid_ =0; return; } - if (Blt_CreateAxes(this) != TCL_OK) { + if (Blt_CreatePen(this, interp_, "activeBar", CID_ELEM_BAR, 0, NULL) != + TCL_OK) { valid_ =0; return; } + if (Blt_CreatePageSetup(this) != TCL_OK) { valid_ =0; return; @@ -918,6 +920,25 @@ void Graph::printActiveElements(Blt_Ps ps) } } +int Graph::getElement(Tcl_Obj *objPtr, Element **elemPtrPtr) +{ + Tcl_HashEntry *hPtr; + char *name; + + name = Tcl_GetString(objPtr); + if (!name || !name[0]) + return TCL_ERROR; + hPtr = Tcl_FindHashEntry(&elements_.table, name); + if (!hPtr) { + Tcl_AppendResult(interp_, "can't find element \"", name, + "\" in \"", Tk_PathName(tkwin_), "\"", NULL); + return TCL_ERROR; + } + + *elemPtrPtr = (Element*)Tcl_GetHashValue(hPtr); + return TCL_OK; +} + ClientData Graph::elementTag(const char *tagName) { int isNew; @@ -1056,6 +1077,43 @@ int Graph::isElementHidden(Marker* markerPtr) // Axis +int Graph::createAxes() +{ + for (int ii=0; ii<4; ii++) { + int isNew; + Tcl_HashEntry* hPtr = + Tcl_CreateHashEntry(&axes_.table, axisNames[ii].name, &isNew); + Blt_Chain chain = Blt_Chain_Create(); + + Axis* axisPtr = new Axis(this, axisNames[ii].name, ii, hPtr); + if (!axisPtr) + return TCL_ERROR; + AxisOptions* ops = (AxisOptions*)axisPtr->ops(); + + Tcl_SetHashValue(hPtr, axisPtr); + + axisPtr->refCount_ = 1; + axisPtr->use_ =1; + + axisPtr->setClass(!(ii&1) ? CID_AXIS_X : CID_AXIS_Y); + + if (Tk_InitOptions(interp_, (char*)axisPtr->ops(), + axisPtr->optionTable(), tkwin_) != TCL_OK) + return TCL_ERROR; + + if (axisPtr->configure() != TCL_OK) + return TCL_ERROR; + + if ((axisPtr->margin_ == MARGIN_RIGHT) || (axisPtr->margin_ == MARGIN_TOP)) + ops->hide = 1; + + axisChain_[ii] = chain; + axisPtr->link = Blt_Chain_Append(chain, axisPtr); + axisPtr->chain = chain; + } + return TCL_OK; +} + void Graph::destroyAxes() { Tcl_HashSearch cursor; diff --git a/src/bltGraph.h b/src/bltGraph.h index 3544308..7ea3872 100644 --- a/src/bltGraph.h +++ b/src/bltGraph.h @@ -220,6 +220,7 @@ class Graph { void drawMarkers(Drawable, int); void printMarkers(Blt_Ps, int); + int createAxes(); void destroyAxes(); void configureAxes(); void mapAxes(); @@ -256,6 +257,8 @@ class Graph { int isElementHidden(Blt::Marker*); ClientData elementTag(const char*); + + int getElement(Tcl_Obj *objPtr, Element **elemPtrPtr); }; extern Blt_BindTagProc Blt_GraphTags; |