summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjoye <joye>2014-04-18 16:15:38 (GMT)
committerjoye <joye>2014-04-18 16:15:38 (GMT)
commit36f2a7ad4067ad756b7400973e7a07c476bb9f06 (patch)
tree2b31c76b545269443f437a5b035d67bee56cb4fc /src
parent877fe7c26ffc2ccfb58492bbbf4f769a41580e77 (diff)
downloadblt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.zip
blt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.tar.gz
blt-36f2a7ad4067ad756b7400973e7a07c476bb9f06.tar.bz2
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/bltGrElemOp.C47
-rw-r--r--src/bltGrElemOp.h2
-rw-r--r--src/bltGrLegd.C2
-rw-r--r--src/bltGrXAxisOp.C37
-rw-r--r--src/bltGrXAxisOp.h1
-rw-r--r--src/bltGraph.C66
-rw-r--r--src/bltGraph.h3
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;