summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjoye <joye>2014-04-16 19:59:07 (GMT)
committerjoye <joye>2014-04-16 19:59:07 (GMT)
commit1b85ba58a3cd5e1ee3109b377fd96d70bb19595d (patch)
tree96a976c231f1452e8c590f55eb3e9323486ab5ed /src
parent6e9d6149cb1c3a2d52f1b6ff394d55f45956ffd4 (diff)
downloadblt-1b85ba58a3cd5e1ee3109b377fd96d70bb19595d.zip
blt-1b85ba58a3cd5e1ee3109b377fd96d70bb19595d.tar.gz
blt-1b85ba58a3cd5e1ee3109b377fd96d70bb19595d.tar.bz2
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/bltGrElemOp.C102
-rw-r--r--src/bltGrElemOp.h1
-rw-r--r--src/bltGrHairsOp.C16
-rw-r--r--src/bltGrHairsOp.h2
-rw-r--r--src/bltGrLegd.C4
-rw-r--r--src/bltGraph.C116
-rw-r--r--src/bltGraph.h3
7 files changed, 123 insertions, 121 deletions
diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C
index 624cd1e..11f2472 100644
--- a/src/bltGrElemOp.C
+++ b/src/bltGrElemOp.C
@@ -47,7 +47,6 @@ extern int Blt_GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr,
Tcl_Obj *objPtr, ClassId classId, Pen **penPtrPtr);
static Tcl_Obj *DisplayListObj(Graph* graphPtr);
-static void DestroyElement(Element* elemPtr);
static void FreeElement(char* data);
static int GetIndex(Tcl_Interp* interp, Element* elemPtr,
Tcl_Obj *objPtr, int *indexPtr);
@@ -134,7 +133,7 @@ static int CreateElement(Graph* graphPtr, Tcl_Interp* interp, int objc,
Tcl_SetHashValue(hPtr, elemPtr);
if ((Tk_InitOptions(interp, (char*)elemPtr->ops(), elemPtr->optionTable(), graphPtr->tkwin_) != TCL_OK) || (ElementObjConfigure(interp, graphPtr, elemPtr, objc-4, objv+4) != TCL_OK)) {
- DestroyElement(elemPtr);
+ Blt_DestroyElement(elemPtr);
return TCL_ERROR;
}
@@ -143,7 +142,7 @@ static int CreateElement(Graph* graphPtr, Tcl_Interp* interp, int objc,
return TCL_OK;
}
-static void DestroyElement(Element* elemPtr)
+void Blt_DestroyElement(Element* elemPtr)
{
Graph* graphPtr = elemPtr->graphPtr();
@@ -596,101 +595,6 @@ int Blt_ElementOp(Graph* graphPtr, Tcl_Interp* interp,
}
}
-// Graph
-
-void Graph::destroyElements()
-{
- Tcl_HashEntry *hPtr;
- Tcl_HashSearch 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(&elements_.table);
- Tcl_DeleteHashTable(&elements_.tagTable);
- Blt_Chain_Destroy(elements_.displayList);
-}
-
-void Graph::configureElements()
-{
- 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 Graph::mapElements()
-{
- GraphOptions* gops = (GraphOptions*)ops_;
- if (gops->barMode != BARS_INFRONT)
- Blt_ResetBarGroups(this);
-
- 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 ((flags & MAP_ALL) || (elemPtr->flags & MAP_ITEM)) {
- elemPtr->map();
- elemPtr->flags &= ~MAP_ITEM;
- }
- }
-}
-
-void Graph::drawElements(Drawable drawable)
-{
- // 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->draw(drawable);
- }
-}
-
-void Graph::drawActiveElements(Drawable drawable)
-{
- 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->flags & ACTIVE) &&
- !elemPtr->hide())
- elemPtr->drawActive(drawable);
- }
-}
-
-void Graph::printElements(Blt_Ps ps)
-{
- for (Blt_ChainLink link=Blt_Chain_LastLink(elements_.displayList);
- link != NULL; link = Blt_Chain_PrevLink(link)) {
- Element* elemPtr = (Element*)Blt_Chain_GetValue(link);
- if (!(elemPtr->flags & DELETE_PENDING) && !elemPtr->hide())
- continue;
-
- // Comment the PostScript to indicate the start of the element
- Blt_Ps_Format(ps, "\n%% Element \"%s\"\n\n", elemPtr->name());
- elemPtr->print(ps);
- }
-}
-
-void Graph::printActiveElements(Blt_Ps ps)
-{
- 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->flags & ACTIVE) &&
- !elemPtr->hide()) {
- Blt_Ps_Format(ps, "\n%% Active Element \"%s\"\n\n", elemPtr->name());
- elemPtr->printActive(ps);
- }
- }
-}
-
// Support
static Tcl_Obj *DisplayListObj(Graph* graphPtr)
@@ -709,7 +613,7 @@ static Tcl_Obj *DisplayListObj(Graph* graphPtr)
static void FreeElement(char* data)
{
Element* elemPtr = (Element *)data;
- DestroyElement(elemPtr);
+ Blt_DestroyElement(elemPtr);
}
static int GetIndex(Tcl_Interp* interp, Element* elemPtr,
diff --git a/src/bltGrElemOp.h b/src/bltGrElemOp.h
index bb363e9..221bdd9 100644
--- a/src/bltGrElemOp.h
+++ b/src/bltGrElemOp.h
@@ -34,4 +34,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/bltGrHairsOp.C b/src/bltGrHairsOp.C
index a80556e..b769213 100644
--- a/src/bltGrHairsOp.C
+++ b/src/bltGrHairsOp.C
@@ -179,20 +179,4 @@ int Blt_CrosshairsOp(Graph* graphPtr, Tcl_Interp* interp,
return (*proc)(graphPtr, interp, objc, objv);
}
-void Blt_EnableCrosshairs(Graph* graphPtr)
-{
- Crosshairs* chPtr = graphPtr->crosshairs_;
- CrosshairsOptions* ops = (CrosshairsOptions*)chPtr->ops_;
- if (!ops->hide)
- graphPtr->crosshairs_->on();
-}
-
-void Blt_DisableCrosshairs(Graph* graphPtr)
-{
- Crosshairs* chPtr = graphPtr->crosshairs_;
- CrosshairsOptions* ops = (CrosshairsOptions*)chPtr->ops_;
- if (!ops->hide)
- graphPtr->crosshairs_->off();
-}
-
diff --git a/src/bltGrHairsOp.h b/src/bltGrHairsOp.h
index 809429f..dadf2bb 100644
--- a/src/bltGrHairsOp.h
+++ b/src/bltGrHairsOp.h
@@ -35,7 +35,5 @@
extern int Blt_CrosshairsOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[]);
-extern void Blt_DisableCrosshairs(Graph* graphPtr);
-extern void Blt_EnableCrosshairs(Graph* graphPtr);
#endif
diff --git a/src/bltGrLegd.C b/src/bltGrLegd.C
index 9cdb855..c575635 100644
--- a/src/bltGrLegd.C
+++ b/src/bltGrLegd.C
@@ -511,7 +511,7 @@ void Legend::draw(Drawable drawable)
switch ((Position)ops->position) {
case PLOT:
case XY:
- Blt_DisableCrosshairs(graphPtr_);
+ graphPtr_->disableCrosshairs();
break;
default:
break;
@@ -525,7 +525,7 @@ void Legend::draw(Drawable drawable)
switch ((Position)ops->position) {
case PLOT:
case XY:
- Blt_EnableCrosshairs(graphPtr_);
+ graphPtr_->enableCrosshairs();
break;
default:
break;
diff --git a/src/bltGraph.C b/src/bltGraph.C
index 4e55c71..ef5d42a 100644
--- a/src/bltGraph.C
+++ b/src/bltGraph.C
@@ -497,10 +497,11 @@ void Graph::display()
}
// Disable crosshairs before redisplaying to the screen
- Blt_DisableCrosshairs(this);
+ disableCrosshairs();
XCopyArea(display_, drawable, Tk_WindowId(tkwin_),
drawGC_, 0, 0, width_, height_, 0, 0);
- Blt_EnableCrosshairs(this);
+
+ enableCrosshairs();
if (ops->doubleBuffer)
Tk_FreePixmap(display_, drawable);
@@ -867,3 +868,114 @@ static ClientData PickEntry(ClientData clientData, int x, int y,
return NULL;
}
+// Crosshairs
+
+void Graph::enableCrosshairs()
+{
+ CrosshairsOptions* ops = (CrosshairsOptions*)crosshairs_->ops_;
+ if (!ops->hide)
+ crosshairs_->on();
+}
+
+void Graph::disableCrosshairs()
+{
+ CrosshairsOptions* ops = (CrosshairsOptions*)crosshairs_->ops_;
+ if (!ops->hide)
+ crosshairs_->off();
+}
+
+// Elements
+
+void Graph::destroyElements()
+{
+ Tcl_HashEntry *hPtr;
+ Tcl_HashSearch iter;
+ for (hPtr = Tcl_FirstHashEntry(&elements_.table, &iter);
+ hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) {
+ Element* elemPtr = (Element*)Tcl_GetHashValue(hPtr);
+ if (elemPtr)
+ Blt_DestroyElement(elemPtr);
+ }
+ Tcl_DeleteHashTable(&elements_.table);
+ Tcl_DeleteHashTable(&elements_.tagTable);
+ Blt_Chain_Destroy(elements_.displayList);
+}
+
+void Graph::configureElements()
+{
+ 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 Graph::mapElements()
+{
+ GraphOptions* gops = (GraphOptions*)ops_;
+ if (gops->barMode != BARS_INFRONT)
+ Blt_ResetBarGroups(this);
+
+ 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 ((flags & MAP_ALL) || (elemPtr->flags & MAP_ITEM)) {
+ elemPtr->map();
+ elemPtr->flags &= ~MAP_ITEM;
+ }
+ }
+}
+
+void Graph::drawElements(Drawable drawable)
+{
+ // 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->draw(drawable);
+ }
+}
+
+void Graph::drawActiveElements(Drawable drawable)
+{
+ 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->flags & ACTIVE) &&
+ !elemPtr->hide())
+ elemPtr->drawActive(drawable);
+ }
+}
+
+void Graph::printElements(Blt_Ps ps)
+{
+ for (Blt_ChainLink link=Blt_Chain_LastLink(elements_.displayList);
+ link != NULL; link = Blt_Chain_PrevLink(link)) {
+ Element* elemPtr = (Element*)Blt_Chain_GetValue(link);
+ if (!(elemPtr->flags & DELETE_PENDING) && !elemPtr->hide())
+ continue;
+
+ // Comment the PostScript to indicate the start of the element
+ Blt_Ps_Format(ps, "\n%% Element \"%s\"\n\n", elemPtr->name());
+ elemPtr->print(ps);
+ }
+}
+
+void Graph::printActiveElements(Blt_Ps ps)
+{
+ 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->flags & ACTIVE) &&
+ !elemPtr->hide()) {
+ Blt_Ps_Format(ps, "\n%% Active Element \"%s\"\n\n", elemPtr->name());
+ elemPtr->printActive(ps);
+ }
+ }
+}
+
diff --git a/src/bltGraph.h b/src/bltGraph.h
index 50b3d0d..a7397b4 100644
--- a/src/bltGraph.h
+++ b/src/bltGraph.h
@@ -218,6 +218,9 @@ class Graph {
int print(const char *ident, Blt_Ps ps);
void extents(Region2d*);
void reconfigure();
+
+ void enableCrosshairs();
+ void disableCrosshairs();
};
extern void Blt_ReconfigureGraph(Graph* graphPtr);