diff options
author | joye <joye> | 2014-04-16 19:33:46 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-16 19:33:46 (GMT) |
commit | 67f584c7ce5046ef221344903ce32bca5dec2bf4 (patch) | |
tree | 61dac6d9e0e823200271e8af60163fea1ca420d1 /src | |
parent | 8de9835650ca47d192f7976c4d02105fe15aeff7 (diff) | |
download | blt-67f584c7ce5046ef221344903ce32bca5dec2bf4.zip blt-67f584c7ce5046ef221344903ce32bca5dec2bf4.tar.gz blt-67f584c7ce5046ef221344903ce32bca5dec2bf4.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrElemOp.C | 149 | ||||
-rw-r--r-- | src/bltGrElemOp.h | 3 | ||||
-rw-r--r-- | src/bltGraph.C | 43 | ||||
-rw-r--r-- | src/bltGraph.h | 7 |
4 files changed, 101 insertions, 101 deletions
diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C index bf58437..865b8af 100644 --- a/src/bltGrElemOp.C +++ b/src/bltGrElemOp.C @@ -596,113 +596,56 @@ int Blt_ElementOp(Graph* graphPtr, Tcl_Interp* interp, } } -// Support - -static Tcl_Obj *DisplayListObj(Graph* graphPtr) -{ - Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL); - - for (Blt_ChainLink link = Blt_Chain_FirstLink(graphPtr->elements_.displayList); link != NULL; link = Blt_Chain_NextLink(link)) { - Element* elemPtr = (Element*)Blt_Chain_GetValue(link); - Tcl_Obj *objPtr = Tcl_NewStringObj(elemPtr->name(), -1); - Tcl_ListObjAppendElement(graphPtr->interp_, listObjPtr, objPtr); - } - - return listObjPtr; -} - -static void FreeElement(char* data) -{ - Element* elemPtr = (Element *)data; - DestroyElement(elemPtr); -} - -static int GetIndex(Tcl_Interp* interp, Element* elemPtr, - Tcl_Obj *objPtr, int *indexPtr) -{ - ElementOptions* ops = (ElementOptions*)elemPtr->ops(); - - char *string = Tcl_GetString(objPtr); - if ((*string == 'e') && (strcmp("end", string) == 0)) - *indexPtr = NUMBEROFPOINTS(ops); - else if (Blt_ExprIntFromObj(interp, objPtr, indexPtr) != TCL_OK) - return TCL_ERROR; - - 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; -} +// Graph -void Blt_DestroyElements(Graph* graphPtr) +void Graph::destroyElements() { Tcl_HashEntry *hPtr; Tcl_HashSearch iter; - - for (hPtr = Tcl_FirstHashEntry(&graphPtr->elements_.table, &iter); + for (hPtr = Tcl_FirstHashEntry(&elements_.table, &iter); hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) { Element* elemPtr = (Element*)Tcl_GetHashValue(hPtr); if (elemPtr) DestroyElement(elemPtr); } - Tcl_DeleteHashTable(&graphPtr->elements_.table); - Tcl_DeleteHashTable(&graphPtr->elements_.tagTable); - Blt_Chain_Destroy(graphPtr->elements_.displayList); + Tcl_DeleteHashTable(&elements_.table); + Tcl_DeleteHashTable(&elements_.tagTable); + Blt_Chain_Destroy(elements_.displayList); } -void Blt_ConfigureElements(Graph* graphPtr) +void Graph::configureElements() { - for (Blt_ChainLink link =Blt_Chain_FirstLink(graphPtr->elements_.displayList); - link != NULL; link = Blt_Chain_NextLink(link)) { + for (Blt_ChainLink link=Blt_Chain_FirstLink(elements_.displayList); + link; link = Blt_Chain_NextLink(link)) { Element* elemPtr = (Element*)Blt_Chain_GetValue(link); elemPtr->configure(); } } -void Blt_MapElements(Graph* graphPtr) +void Graph::mapElements() { - GraphOptions* gops = (GraphOptions*)graphPtr->ops_; + GraphOptions* gops = (GraphOptions*)ops_; if (gops->barMode != BARS_INFRONT) - Blt_ResetBarGroups(graphPtr); + Blt_ResetBarGroups(this); - for (Blt_ChainLink link =Blt_Chain_FirstLink(graphPtr->elements_.displayList); + for (Blt_ChainLink link =Blt_Chain_FirstLink(elements_.displayList); link != NULL; link = Blt_Chain_NextLink(link)) { Element* elemPtr = (Element*)Blt_Chain_GetValue(link); if (!elemPtr->link || (elemPtr->flags & DELETE_PENDING)) continue; - if ((graphPtr->flags & MAP_ALL) || (elemPtr->flags & MAP_ITEM)) { + if ((flags & MAP_ALL) || (elemPtr->flags & MAP_ITEM)) { elemPtr->map(); elemPtr->flags &= ~MAP_ITEM; } } } -void Blt_DrawElements(Graph* graphPtr, Drawable drawable) +void Graph::drawElements(Drawable drawable) { - Blt_ChainLink link; - - /* Draw with respect to the stacking order. */ - for (link = Blt_Chain_LastLink(graphPtr->elements_.displayList); - link != NULL; link = Blt_Chain_PrevLink(link)) { + // Draw with respect to the stacking order + for (Blt_ChainLink link=Blt_Chain_LastLink(elements_.displayList); + link; link = Blt_Chain_PrevLink(link)) { Element* elemPtr = (Element*)Blt_Chain_GetValue(link); if (!(elemPtr->flags & DELETE_PENDING) && !elemPtr->hide()) elemPtr->drawNormal(drawable); @@ -754,6 +697,62 @@ void Blt_ActiveElementsToPostScript(Graph* graphPtr, Blt_Ps ps) } } +// Support + +static Tcl_Obj *DisplayListObj(Graph* graphPtr) +{ + Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL); + + for (Blt_ChainLink link = Blt_Chain_FirstLink(graphPtr->elements_.displayList); link != NULL; link = Blt_Chain_NextLink(link)) { + Element* elemPtr = (Element*)Blt_Chain_GetValue(link); + Tcl_Obj *objPtr = Tcl_NewStringObj(elemPtr->name(), -1); + Tcl_ListObjAppendElement(graphPtr->interp_, listObjPtr, objPtr); + } + + return listObjPtr; +} + +static void FreeElement(char* data) +{ + Element* elemPtr = (Element *)data; + DestroyElement(elemPtr); +} + +static int GetIndex(Tcl_Interp* interp, Element* elemPtr, + Tcl_Obj *objPtr, int *indexPtr) +{ + ElementOptions* ops = (ElementOptions*)elemPtr->ops(); + + char *string = Tcl_GetString(objPtr); + if ((*string == 'e') && (strcmp("end", string) == 0)) + *indexPtr = NUMBEROFPOINTS(ops); + else if (Blt_ExprIntFromObj(interp, objPtr, indexPtr) != TCL_OK) + return TCL_ERROR; + + 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; +} + ClientData Blt_MakeElementTag(Graph* graphPtr, const char *tagName) { Tcl_HashEntry *hPtr; diff --git a/src/bltGrElemOp.h b/src/bltGrElemOp.h index f83e61c..1e9f54c 100644 --- a/src/bltGrElemOp.h +++ b/src/bltGrElemOp.h @@ -34,10 +34,7 @@ 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_DestroyElements(Graph* graphPtr); -extern void Blt_DrawElements(Graph* graphPtr, Drawable drawable); extern void Blt_DrawActiveElements(Graph* graphPtr, Drawable drawable); -extern void Blt_MapElements(Graph* graphPtr); extern void Blt_ElementsToPostScript(Graph* graphPtr, Blt_Ps ps); extern void Blt_ActiveElementsToPostScript(Graph* graphPtr, Blt_Ps ps); diff --git a/src/bltGraph.C b/src/bltGraph.C index db16f6b..67ebac6 100644 --- a/src/bltGraph.C +++ b/src/bltGraph.C @@ -61,7 +61,6 @@ extern void Blt_LayoutGraph(Graph* graphPtr); static Blt_BindPickProc PickEntry; static void AdjustAxisPointers(Graph* graphPtr); -static void UpdateMarginTraces(Graph* graphPtr); // OptionSpecs @@ -328,7 +327,7 @@ Graph::~Graph() GraphOptions* ops = (GraphOptions*)ops_; Blt::DestroyMarkers(this); - Blt_DestroyElements(this); // must come before legend and others + destroyElements(); // must come before legend and others if (crosshairs_) delete crosshairs_; @@ -507,7 +506,7 @@ void Graph::display() flags &= ~MAP_WORLD; flags &= ~REDRAW_WORLD; - UpdateMarginTraces(this); + updateMarginTraces(); } void Graph::map() @@ -524,7 +523,7 @@ void Graph::map() if (flags & MAP_WORLD) Blt_MapAxes(this); - Blt_MapElements(this); + mapElements(); Blt::MapMarkers(this); flags &= ~(MAP_ALL); } @@ -560,7 +559,7 @@ void Graph::drawPlot(Drawable drawable) } Blt_DrawAxisLimits(this, drawable); - Blt_DrawElements(this, drawable); + drawElements(drawable); } /* @@ -711,40 +710,38 @@ void Graph::extents(Region2d* regionPtr) regionPtr->bottom = (double)(vOffset_ + vRange_ + ops->yPad); } -// Support - -static void UpdateMarginTraces(Graph* graphPtr) +void Graph::updateMarginTraces() { - GraphOptions* ops = (GraphOptions*)graphPtr->ops_; + GraphOptions* ops = (GraphOptions*)ops_; + Margin* marginPtr; Margin* endPtr; - for (marginPtr = ops->margins, endPtr = marginPtr + 4; marginPtr < endPtr; marginPtr++) { - if (marginPtr->varName != NULL) { /* Trigger variable traces */ + if (marginPtr->varName) { int size; - - if ((marginPtr->site == MARGIN_LEFT) || - (marginPtr->site == MARGIN_RIGHT)) { + if ((marginPtr->site == MARGIN_LEFT) || (marginPtr->site == MARGIN_RIGHT)) size = marginPtr->width; - } else { + else size = marginPtr->height; - } - Tcl_SetVar(graphPtr->interp_, marginPtr->varName, Blt_Itoa(size), + + Tcl_SetVar(interp_, marginPtr->varName, Blt_Itoa(size), TCL_GLOBAL_ONLY); } } } -void Blt_ReconfigureGraph(Graph* graphPtr) +void Graph::reconfigure() { - graphPtr->configure(); - graphPtr->legend_->configure(); - // Blt_ConfigureElements(graphPtr); - Blt_ConfigureAxes(graphPtr); - Blt::ConfigureMarkers(graphPtr); + configure(); + legend_->configure(); + configureElements(); + Blt_ConfigureAxes(this); + Blt::ConfigureMarkers(this); } +// Support + void Blt_GraphTags(Blt_BindTable table, ClientData object, ClientData context, Blt_List list) { diff --git a/src/bltGraph.h b/src/bltGraph.h index 865032f..5533ace 100644 --- a/src/bltGraph.h +++ b/src/bltGraph.h @@ -196,6 +196,12 @@ class Graph { protected: void drawPlot(Drawable); void drawMargins(Drawable); + void updateMarginTraces(); + + void destroyElements(); + void drawElements(Drawable); + void mapElements(); + void configureElements(); public: Graph(ClientData clientData, Tcl_Interp*interp, @@ -207,6 +213,7 @@ class Graph { void map(); void eventuallyRedraw(); void extents(Region2d*); + void reconfigure(); }; extern void Blt_ReconfigureGraph(Graph* graphPtr); |