summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bltGrAxisOp.C71
-rw-r--r--src/bltGrAxisOp.h8
-rw-r--r--src/bltGrElem.C1
-rw-r--r--src/bltGrElemBar.C1
-rw-r--r--src/bltGrElemLine.C1
-rw-r--r--src/bltGrElemOp.C78
-rw-r--r--src/bltGrElemOp.h8
-rw-r--r--src/bltGrHairsOp.C18
-rw-r--r--src/bltGrHairsOp.h3
-rw-r--r--src/bltGrLegd.C2
-rw-r--r--src/bltGrLegdOp.C65
-rw-r--r--src/bltGrLegdOp.h4
-rw-r--r--src/bltGrXAxisOp.h3
-rw-r--r--src/bltGraph.C3
-rw-r--r--src/bltGraphBar.C5
-rw-r--r--src/bltGraphLine.C5
-rw-r--r--src/bltGraphOp.C71
17 files changed, 230 insertions, 117 deletions
diff --git a/src/bltGrAxisOp.C b/src/bltGrAxisOp.C
index 73ca461..22cd533 100644
--- a/src/bltGrAxisOp.C
+++ b/src/bltGrAxisOp.C
@@ -334,9 +334,10 @@ int AxisViewOp(Tcl_Interp* interp, Axis* axisPtr,
// Axis
-static int CgetOp(Tcl_Interp* interp, Graph* graphPtr,
+static int CgetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -344,9 +345,10 @@ static int CgetOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisCgetOp(interp, axisPtr, objc-1, objv+1);
}
-static int ConfigureOp(Tcl_Interp* interp, Graph* graphPtr, int objc,
- Tcl_Obj* const objv[])
+static int ConfigureOp(ClientData clientData, Tcl_Interp* interp,
+ int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -354,9 +356,10 @@ static int ConfigureOp(Tcl_Interp* interp, Graph* graphPtr, int objc,
return AxisConfigureOp(interp, axisPtr, objc-1, objv+1);
}
-static int ActivateOp(Tcl_Interp* interp, Graph* graphPtr,
+static int ActivateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -364,9 +367,10 @@ static int ActivateOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisActivateOp(interp, axisPtr, objc, objv);
}
-static int BindOp(Tcl_Interp* interp, Graph* graphPtr, int objc,
- Tcl_Obj* const objv[])
+static int BindOp(ClientData clientData, Tcl_Interp* interp,
+ int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (objc == 3) {
Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
Tcl_HashSearch cursor;
@@ -383,9 +387,10 @@ static int BindOp(Tcl_Interp* interp, Graph* graphPtr, int objc,
return Blt_ConfigureBindingsFromObj(interp, graphPtr->bindTable_, graphPtr->axisTag(Tcl_GetString(objv[3])), objc-4, objv+4);
}
-static int CreateOp(Tcl_Interp* interp, Graph* graphPtr,
+static int CreateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (graphPtr->createAxis(objc, objv) != TCL_OK)
return TCL_ERROR;
Tcl_SetObjResult(interp, objv[3]);
@@ -393,9 +398,10 @@ static int CreateOp(Tcl_Interp* interp, Graph* graphPtr,
return TCL_OK;
}
-static int DeleteOp(Tcl_Interp* interp, Graph* graphPtr,
+static int DeleteOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (objc<4)
return TCL_ERROR;
@@ -411,9 +417,10 @@ static int DeleteOp(Tcl_Interp* interp, Graph* graphPtr,
return TCL_OK;
}
-static int FocusOp(Tcl_Interp* interp, Graph* graphPtr,
+static int FocusOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
graphPtr->focusPtr_ = NULL;
if (objc == 4) {
Axis* axisPtr;
@@ -433,9 +440,10 @@ static int FocusOp(Tcl_Interp* interp, Graph* graphPtr,
return TCL_OK;
}
-static int GetOp(Tcl_Interp* interp, Graph* graphPtr,
+static int GetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr = (Axis*)Blt_GetCurrentItem(graphPtr->bindTable_);
// Report only on axes
@@ -454,9 +462,10 @@ static int GetOp(Tcl_Interp* interp, Graph* graphPtr,
return TCL_OK;
}
-static int InvTransformOp(Tcl_Interp* interp, Graph* graphPtr,
+static int InvTransformOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -464,9 +473,10 @@ static int InvTransformOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisInvTransformOp(interp, axisPtr, objc-1, objv+1);
}
-static int LimitsOp(Tcl_Interp* interp, Graph* graphPtr,
+static int LimitsOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -474,9 +484,10 @@ static int LimitsOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisLimitsOp(interp, axisPtr, objc-1, objv+1);
}
-static int MarginOp(Tcl_Interp* interp, Graph* graphPtr,
+static int MarginOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -484,9 +495,10 @@ static int MarginOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisMarginOp(interp, axisPtr, objc-1, objv+1);
}
-static int NamesOp(Tcl_Interp* interp, Graph* graphPtr,
+static int NamesOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
if (objc == 3) {
Tcl_HashSearch cursor;
@@ -514,9 +526,10 @@ static int NamesOp(Tcl_Interp* interp, Graph* graphPtr,
return TCL_OK;
}
-static int TransformOp(Tcl_Interp* interp, Graph* graphPtr,
+static int TransformOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -524,9 +537,10 @@ static int TransformOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisTransformOp(interp, axisPtr, objc-1, objv+1);
}
-static int TypeOp(Tcl_Interp* interp, Graph* graphPtr,
+static int TypeOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -534,9 +548,10 @@ static int TypeOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisTypeOp(interp, axisPtr, objc-1, objv+1);
}
-static int ViewOp(Tcl_Interp* interp, Graph* graphPtr,
+static int ViewOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Axis* axisPtr;
if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK)
return TCL_ERROR;
@@ -544,6 +559,27 @@ static int ViewOp(Tcl_Interp* interp, Graph* graphPtr,
return AxisViewOp(interp, axisPtr, objc-1, objv+1);
}
+const BltEnsemble axisEnsemble[] = {
+ {"activate", ActivateOp, 0},
+ {"bind", BindOp, 0},
+ {"cget", CgetOp,0 },
+ {"configure", ConfigureOp,0 },
+ {"create", CreateOp, 0},
+ {"deactivate", ActivateOp, 0},
+ {"delete", DeleteOp, 0},
+ {"focus", FocusOp, 0},
+ {"get", GetOp, 0},
+ {"invtransform", InvTransformOp, 0},
+ {"limits", LimitsOp, 0},
+ {"margin", MarginOp, 0},
+ {"names", NamesOp, 0},
+ {"transform", TransformOp, 0},
+ {"type", TypeOp, 0},
+ {"view", ViewOp, 0},
+ { 0,0,0 }
+};
+
+/*
static Blt_OpSpec axisOps[] = {
{"activate", 1, (void*)ActivateOp, 4, 4, "axisName"},
{"bind", 1, (void*)BindOp, 3, 6, "axisName sequence command"},
@@ -578,6 +614,7 @@ int Blt_AxisOp(Graph* graphPtr, Tcl_Interp* interp,
return (*proc)(interp, graphPtr, objc, objv);
}
+*/
// Support
diff --git a/src/bltGrAxisOp.h b/src/bltGrAxisOp.h
index 8eb7ec5..2b433c1 100644
--- a/src/bltGrAxisOp.h
+++ b/src/bltGrAxisOp.h
@@ -30,10 +30,14 @@
#ifndef __BltGrAxisOp_h__
#define __BltGrAxisOp_h__
+extern "C" {
+#include "bltOp.h"
+}
+
+extern const BltEnsemble axisEnsemble[];
+
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[]);
extern Axis *Blt_GetFirstAxis(Blt_Chain chain);
diff --git a/src/bltGrElem.C b/src/bltGrElem.C
index 1ee74bd..1477d4d 100644
--- a/src/bltGrElem.C
+++ b/src/bltGrElem.C
@@ -31,7 +31,6 @@
#include "bltGraph.h"
#include "bltGrElem.h"
-#include "bltGrElemOp.h"
#include "bltGrPen.h"
#include "bltGrPenOp.h"
diff --git a/src/bltGrElemBar.C b/src/bltGrElemBar.C
index a394e70..7734ccc 100644
--- a/src/bltGrElemBar.C
+++ b/src/bltGrElemBar.C
@@ -36,7 +36,6 @@ extern "C" {
#include "bltGrElemOption.h"
#include "bltGrPenOp.h"
#include "bltGrAxis.h"
-#include "bltGrAxisOp.h"
#include "bltGrMisc.h"
#include "bltGrDef.h"
#include "bltConfig.h"
diff --git a/src/bltGrElemLine.C b/src/bltGrElemLine.C
index e1c3faa..213250b 100644
--- a/src/bltGrElemLine.C
+++ b/src/bltGrElemLine.C
@@ -33,7 +33,6 @@
#include "bltGrElemOption.h"
#include "bltGrPenOp.h"
#include "bltGrAxis.h"
-#include "bltGrAxisOp.h"
#include "bltGrMisc.h"
#include "bltGrDef.h"
#include "bltConfig.h"
diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C
index 224ab41..7b5d29f 100644
--- a/src/bltGrElemOp.C
+++ b/src/bltGrElemOp.C
@@ -35,11 +35,10 @@ extern "C" {
#include "bltGraph.h"
#include "bltGrAxis.h"
-#include "bltGrAxisOp.h"
#include "bltGrElem.h"
+#include "bltGrElemOp.h"
#include "bltGrElemBar.h"
#include "bltGrElemLine.h"
-#include "bltGrElemOp.h"
#include "bltGrLegd.h"
using namespace Blt;
@@ -91,11 +90,10 @@ int ElementObjConfigure(Tcl_Interp* interp, Element* elemPtr,
}
}
-// Configure
-
-static int CgetOp(Graph* graphPtr, Tcl_Interp* interp,
+static int CgetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (objc != 5) {
Tcl_WrongNumArgs(interp, 3, objv, "cget option");
return TCL_ERROR;
@@ -116,9 +114,10 @@ static int CgetOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int ConfigureOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ConfigureOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Element* elemPtr;
if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK)
return TCL_ERROR;
@@ -138,11 +137,10 @@ static int ConfigureOp(Graph* graphPtr, Tcl_Interp* interp,
return ElementObjConfigure(interp, elemPtr, objc-4, objv+4);
}
-// Ops
-
-static int ActivateOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ActivateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
// List all the currently active elements
if (objc == 3) {
Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
@@ -188,9 +186,10 @@ static int ActivateOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int BindOp(Graph* graphPtr, Tcl_Interp* interp,
+static int BindOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (objc == 3) {
Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
@@ -207,9 +206,10 @@ static int BindOp(Graph* graphPtr, Tcl_Interp* interp,
return Blt_ConfigureBindingsFromObj(interp, graphPtr->bindTable_, graphPtr->elementTag(Tcl_GetString(objv[3])), objc - 4, objv + 4);
}
-static int ClosestOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ClosestOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* gops = (GraphOptions*)graphPtr->ops_;
ClosestSearch* searchPtr = &gops->search;
@@ -274,9 +274,10 @@ static int ClosestOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int CreateOp(Graph* graphPtr, Tcl_Interp* interp,
+static int CreateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
if (graphPtr->createElement(objc, objv) != TCL_OK)
return TCL_ERROR;
Tcl_SetObjResult(interp, objv[3]);
@@ -284,9 +285,10 @@ static int CreateOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int DeactivateOp(Graph* graphPtr, Tcl_Interp* interp,
+static int DeactivateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
for (int ii=3; ii<objc; ii++) {
Element* elemPtr;
if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK)
@@ -304,9 +306,10 @@ static int DeactivateOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int DeleteOp(Graph* graphPtr, Tcl_Interp* interp,
+static int DeleteOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
for (int ii=3; ii<objc; ii++) {
Element* elemPtr;
if (graphPtr->getElement(objv[ii], &elemPtr) != TCL_OK)
@@ -320,18 +323,20 @@ static int DeleteOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int ExistsOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ExistsOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Tcl_HashEntry *hPtr =
Tcl_FindHashEntry(&graphPtr->elements_.table, Tcl_GetString(objv[3]));
Tcl_SetBooleanObj(Tcl_GetObjResult(interp), (hPtr != NULL));
return TCL_OK;
}
-static int GetOp(Graph* graphPtr, Tcl_Interp* interp,
+static int GetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
char *string = Tcl_GetString(objv[3]);
if ((string[0] == 'c') && (strcmp(string, "current") == 0)) {
Element* elemPtr = (Element*)Blt_GetCurrentItem(graphPtr->bindTable_);
@@ -341,9 +346,11 @@ static int GetOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int LowerOp(Graph* graphPtr, Tcl_Interp* interp,
+static int LowerOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
+
// Move the links of lowered elements out of the display list into
// a temporary list
Blt_Chain chain = Blt_Chain_Create();
@@ -373,11 +380,12 @@ static int LowerOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int NamesOp(Graph* graphPtr, Tcl_Interp* interp,
+static int NamesOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
- Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
+ Graph* graphPtr = (Graph*)clientData;
+ Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
if (objc == 3) {
Tcl_HashSearch iter;
for (Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(&graphPtr->elements_.table, &iter); hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) {
@@ -405,9 +413,11 @@ static int NamesOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int RaiseOp(Graph* graphPtr, Tcl_Interp* interp,
+static int RaiseOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
+
Blt_Chain chain = Blt_Chain_Create();
for (int ii=3; ii<objc; ii++) {
@@ -435,9 +445,11 @@ static int RaiseOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int ShowOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ShowOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
+
int elemObjc;
Tcl_Obj** elemObjv;
if (Tcl_ListObjGetElements(interp, objv[3], &elemObjc, &elemObjv) != TCL_OK)
@@ -478,9 +490,10 @@ static int ShowOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int TypeOp(Graph* graphPtr, Tcl_Interp* interp,
+static int TypeOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Element* elemPtr;
if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK)
return TCL_ERROR;
@@ -489,6 +502,26 @@ static int TypeOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
+const BltEnsemble elementEnsemble[] = {
+ {"activate", ActivateOp, 0},
+ {"bind", BindOp, 0},
+ {"cget", CgetOp, 0},
+ {"closest", ClosestOp, 0},
+ {"configure", ConfigureOp, 0},
+ {"create", CreateOp, 0},
+ {"deactivate", DeactivateOp, 0},
+ {"delete", DeleteOp, 0},
+ {"exists", ExistsOp, 0},
+ {"get", GetOp, 0},
+ {"lower", LowerOp, 0},
+ {"names", NamesOp, 0},
+ {"raise", RaiseOp, 0},
+ {"show", ShowOp, 0},
+ {"type", TypeOp, 0},
+ { 0,0,0 }
+};
+
+/*
static Blt_OpSpec elemOps[] = {
{"activate", 1, (void*)ActivateOp, 3, 0, "?elemName? ?index...?",},
{"bind", 1, (void*)BindOp, 3, 6, "elemName sequence command",},
@@ -526,6 +559,7 @@ int Blt_ElementOp(Graph* graphPtr, Tcl_Interp* interp,
return (*proc)(graphPtr, interp, objc, objv);
}
}
+*/
// Support
diff --git a/src/bltGrElemOp.h b/src/bltGrElemOp.h
index 1602cdb..9c457ad 100644
--- a/src/bltGrElemOp.h
+++ b/src/bltGrElemOp.h
@@ -30,8 +30,12 @@
#ifndef __BltGrElemOp_h__
#define __BltGrElemOp_h__
+extern "C" {
+#include "bltOp.h"
+}
+
+extern const BltEnsemble elementEnsemble[];
+
extern int ElementObjConfigure(Tcl_Interp* interp, Element* elemPtr,
int objc, Tcl_Obj* const objv[]);
-extern int Blt_ElementOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
- Tcl_Obj* const objv[]);
#endif
diff --git a/src/bltGrHairsOp.C b/src/bltGrHairsOp.C
index 53a8d13..93038dc 100644
--- a/src/bltGrHairsOp.C
+++ b/src/bltGrHairsOp.C
@@ -120,9 +120,10 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp,
return CrosshairsObjConfigure(interp, graphPtr, objc-3, objv+3);
}
-static int OnOp(Graph* graphPtr, Tcl_Interp* interp,
+static int OnOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Crosshairs *chPtr = graphPtr->crosshairs_;
CrosshairsOptions* ops = (CrosshairsOptions*)chPtr->ops();
@@ -133,9 +134,10 @@ static int OnOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int OffOp(Graph* graphPtr, Tcl_Interp* interp,
+static int OffOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Crosshairs *chPtr = graphPtr->crosshairs_;
CrosshairsOptions* ops = (CrosshairsOptions*)chPtr->ops();
@@ -146,9 +148,10 @@ static int OffOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int ToggleOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ToggleOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Crosshairs *chPtr = graphPtr->crosshairs_;
CrosshairsOptions* ops = (CrosshairsOptions*)chPtr->ops();
@@ -162,9 +165,12 @@ static int ToggleOp(Graph* graphPtr, Tcl_Interp* interp,
}
const BltEnsemble crosshairsEnsemble[] = {
- { "cget", CgetOp,0 },
- { "configure", ConfigureOp,0 },
- { 0,0,0 }
+ {"cget", CgetOp, 0},
+ {"configure", ConfigureOp, 0},
+ {"off", OffOp, 0},
+ {"on", OnOp, 0},
+ {"toggle", ToggleOp, 0},
+ { 0,0,0 }
};
/*
diff --git a/src/bltGrHairsOp.h b/src/bltGrHairsOp.h
index 9588ffb..fb69b03 100644
--- a/src/bltGrHairsOp.h
+++ b/src/bltGrHairsOp.h
@@ -39,7 +39,4 @@ extern "C" {
extern const BltEnsemble crosshairsEnsemble[];
-extern int Blt_CrosshairsOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
- Tcl_Obj* const objv[]);
-
#endif
diff --git a/src/bltGrLegd.C b/src/bltGrLegd.C
index c9eb3d9..8e6c282 100644
--- a/src/bltGrLegd.C
+++ b/src/bltGrLegd.C
@@ -39,8 +39,6 @@ extern "C" {
#include "bltGraph.h"
#include "bltGrLegd.h"
#include "bltGrElem.h"
-#include "bltGrElemOp.h"
-#include "bltGrHairsOp.h"
#include "bltGrPageSetup.h"
#include "bltGrPageSetupOp.h"
#include "bltGrMisc.h"
diff --git a/src/bltGrLegdOp.C b/src/bltGrLegdOp.C
index ffce2df..b75b4bc 100644
--- a/src/bltGrLegdOp.C
+++ b/src/bltGrLegdOp.C
@@ -45,8 +45,6 @@ extern "C" {
using namespace Blt;
static Tk_LostSelProc LostSelectionProc;
-static int SelectionOp(Graph* graphPtr, Tcl_Interp* interp,
- int objc, Tcl_Obj* const objv[]);
static int LegendObjConfigure(Tcl_Interp* interp, Graph* graphPtr,
int objc, Tcl_Obj* const objv[])
@@ -131,11 +129,10 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp,
return LegendObjConfigure(interp, graphPtr, objc-3, objv+3);
}
-// Ops
-
-static int ActivateOp(Graph* graphPtr, Tcl_Interp* interp,
+static int ActivateOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
LegendOptions* ops = (LegendOptions*)legendPtr->ops();
@@ -208,9 +205,11 @@ static int ActivateOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int BindOp(Graph* graphPtr, Tcl_Interp* interp,
+static int BindOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
+
if (objc == 3) {
Tcl_HashEntry *hPtr;
Tcl_HashSearch iter;
@@ -231,9 +230,10 @@ static int BindOp(Graph* graphPtr, Tcl_Interp* interp,
return Blt_ConfigureBindingsFromObj(interp, graphPtr->legend_->bindTable_, graphPtr->elementTag(Tcl_GetString(objv[3])), objc - 4, objv + 4);
}
-static int CurselectionOp(Graph* graphPtr, Tcl_Interp* interp,
+static int CurselectionOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
if (legendPtr->flags & SELECT_SORTED) {
@@ -261,9 +261,10 @@ static int CurselectionOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int FocusOp(Graph* graphPtr, Tcl_Interp* interp,
+static int FocusOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
legendPtr->focusPtr_ = NULL;
@@ -285,9 +286,10 @@ static int FocusOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int GetOp(Graph* graphPtr, Tcl_Interp* interp,
+static int GetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
LegendOptions* ops = (LegendOptions*)legendPtr->ops();
@@ -304,9 +306,16 @@ static int GetOp(Graph* graphPtr, Tcl_Interp* interp,
}
const BltEnsemble legendEnsemble[] = {
- { "cget", CgetOp,0 },
- { "configure", ConfigureOp,0 },
- { 0,0,0 }
+ {"activate", ActivateOp, 0},
+ {"bind", BindOp, 0},
+ {"cget", CgetOp, 0},
+ {"configure", ConfigureOp, 0},
+ {"curselection", CurselectionOp, 0},
+ {"deactivate", ActivateOp, 0},
+ {"focus", FocusOp, 0},
+ {"get", GetOp, 0},
+ {"selection", 0, selectionEnsemble},
+ { 0,0,0 }
};
/*
@@ -338,11 +347,12 @@ int Blt_LegendOp(Graph* graphPtr, Tcl_Interp* interp,
}
*/
-// Selection Widget Ops
+// Selection Ops
-static int SelectionAnchorOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionAnchorOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
Element* elemPtr;
@@ -361,9 +371,10 @@ static int SelectionAnchorOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int SelectionClearallOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionClearallOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
legendPtr->clearSelection();
legendPtr->eventuallyRedraw();
@@ -371,9 +382,10 @@ static int SelectionClearallOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int SelectionIncludesOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionIncludesOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
Element* elemPtr;
if (legendPtr->getElementFromObj(objv[4], &elemPtr) != TCL_OK)
@@ -384,9 +396,10 @@ static int SelectionIncludesOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int SelectionMarkOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionMarkOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
LegendOptions* ops = (LegendOptions*)legendPtr->ops();
Element* elemPtr;
@@ -426,18 +439,20 @@ static int SelectionMarkOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
-static int SelectionPresentOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionPresentOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
int boo = (Blt_Chain_GetLength(legendPtr->selected_) > 0);
Tcl_SetBooleanObj(Tcl_GetObjResult(interp), boo);
return TCL_OK;
}
-static int SelectionSetOp(Graph* graphPtr, Tcl_Interp* interp,
+static int SelectionSetOp(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
Legend* legendPtr = graphPtr->legend_;
LegendOptions* ops = (LegendOptions*)legendPtr->ops();
@@ -498,6 +513,18 @@ static int SelectionSetOp(Graph* graphPtr, Tcl_Interp* interp,
return TCL_OK;
}
+const BltEnsemble selectionEnsemble[] = {
+ {"anchor", SelectionAnchorOp, 0},
+ {"clear", SelectionSetOp, 0},
+ {"clearall", SelectionClearallOp, 0},
+ {"includes", SelectionIncludesOp, 0},
+ {"mark", SelectionMarkOp, 0},
+ {"present", SelectionPresentOp, 0},
+ {"set", SelectionSetOp, 0},
+ {"toggle", SelectionSetOp, 0},
+ { 0,0,0 }
+};
+
/*
static Blt_OpSpec selectionOps[] =
{
diff --git a/src/bltGrLegdOp.h b/src/bltGrLegdOp.h
index 4237e6c..046b2dc 100644
--- a/src/bltGrLegdOp.h
+++ b/src/bltGrLegdOp.h
@@ -35,8 +35,6 @@ extern "C" {
}
extern const BltEnsemble legendEnsemble[];
-
-extern int Blt_LegendOp(Graph *graphPtr, Tcl_Interp* interp, int objc,
- Tcl_Obj* const objv[]);
+extern const BltEnsemble selectionEnsemble[];
#endif
diff --git a/src/bltGrXAxisOp.h b/src/bltGrXAxisOp.h
index f8fb90b..01579bf 100644
--- a/src/bltGrXAxisOp.h
+++ b/src/bltGrXAxisOp.h
@@ -36,7 +36,4 @@ extern "C" {
extern const BltEnsemble xaxisEnsemble[];
-extern int Blt_XAxisOp(Tcl_Interp* interp, Graph* graphPtr, int margin,
- int objc, Tcl_Obj* const objv[]);
-
#endif
diff --git a/src/bltGraph.C b/src/bltGraph.C
index 7df611c..65eab0d 100644
--- a/src/bltGraph.C
+++ b/src/bltGraph.C
@@ -46,13 +46,10 @@ extern "C" {
#include "bltGrElem.h"
#include "bltGrElemBar.h"
#include "bltGrElemLine.h"
-#include "bltGrElemOp.h"
#include "bltGrMarker.h"
#include "bltGrMarkerOp.h"
#include "bltGrLegd.h"
-#include "bltGrLegdOp.h"
#include "bltGrHairs.h"
-#include "bltGrHairsOp.h"
#include "bltGrDef.h"
#include "bltGrPageSetup.h"
#include "bltPs.h"
diff --git a/src/bltGraphBar.C b/src/bltGraphBar.C
index 7d65248..0535916 100644
--- a/src/bltGraphBar.C
+++ b/src/bltGraphBar.C
@@ -31,22 +31,19 @@
#include "bltGraphOp.h"
#include "bltGrAxis.h"
-#include "bltGrAxisOp.h"
#include "bltGrXAxisOp.h"
#include "bltGrPen.h"
#include "bltGrPenBar.h"
#include "bltGrPenLine.h"
#include "bltGrPenOp.h"
#include "bltGrElem.h"
+#include "bltGrElemOp.h"
#include "bltGrElemBar.h"
#include "bltGrElemLine.h"
-#include "bltGrElemOp.h"
#include "bltGrMarker.h"
#include "bltGrMarkerOp.h"
#include "bltGrLegd.h"
-#include "bltGrLegdOp.h"
#include "bltGrHairs.h"
-#include "bltGrHairsOp.h"
#include "bltGrDef.h"
using namespace Blt;
diff --git a/src/bltGraphLine.C b/src/bltGraphLine.C
index 744186d..3da4b52 100644
--- a/src/bltGraphLine.C
+++ b/src/bltGraphLine.C
@@ -31,22 +31,19 @@
#include "bltGraphOp.h"
#include "bltGrAxis.h"
-#include "bltGrAxisOp.h"
#include "bltGrXAxisOp.h"
#include "bltGrPen.h"
#include "bltGrPenBar.h"
#include "bltGrPenLine.h"
#include "bltGrPenOp.h"
#include "bltGrElem.h"
+#include "bltGrElemOp.h"
#include "bltGrElemBar.h"
#include "bltGrElemLine.h"
-#include "bltGrElemOp.h"
#include "bltGrMarker.h"
#include "bltGrMarkerOp.h"
#include "bltGrLegd.h"
-#include "bltGrLegdOp.h"
#include "bltGrHairs.h"
-#include "bltGrHairsOp.h"
#include "bltGrDef.h"
using namespace Blt;
diff --git a/src/bltGraphOp.C b/src/bltGraphOp.C
index 015094f..a1f3582 100644
--- a/src/bltGraphOp.C
+++ b/src/bltGraphOp.C
@@ -39,19 +39,19 @@ extern "C" {
#include "bltGrAxis.h"
#include "bltGrAxisOp.h"
-#include "bltGrXAxisOp.h"
-#include "bltGrPen.h"
-#include "bltGrPenOp.h"
#include "bltGrElem.h"
#include "bltGrElemOp.h"
-#include "bltGrMarker.h"
-#include "bltGrMarkerOp.h"
-#include "bltGrLegd.h"
-#include "bltGrLegdOp.h"
#include "bltGrHairs.h"
#include "bltGrHairsOp.h"
+#include "bltGrLegd.h"
+#include "bltGrLegdOp.h"
+#include "bltGrMarker.h"
+#include "bltGrMarkerOp.h"
#include "bltGrPageSetup.h"
#include "bltGrPageSetupOp.h"
+#include "bltGrPen.h"
+#include "bltGrPenOp.h"
+#include "bltGrXAxisOp.h"
using namespace Blt;
@@ -176,43 +176,50 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp,
return GraphObjConfigure(interp, graphPtr, objc-2, objv+2);
}
-static int XAxisOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+/*
+static int XAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* ops = (GraphOptions*)graphPtr->ops_;
int margin = (ops->inverted) ? MARGIN_LEFT : MARGIN_BOTTOM;
return Blt_XAxisOp(interp, graphPtr, margin, objc, objv);
}
-static int X2AxisOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int X2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* ops = (GraphOptions*)graphPtr->ops_;
int margin = (ops->inverted) ? MARGIN_RIGHT : MARGIN_TOP;
return Blt_XAxisOp(interp, graphPtr, margin, objc, objv);
}
-static int YAxisOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int YAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* ops = (GraphOptions*)graphPtr->ops_;
int margin = (ops->inverted) ? MARGIN_BOTTOM : MARGIN_LEFT;
return Blt_XAxisOp(interp, graphPtr, margin, objc, objv);
}
-static int Y2AxisOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int Y2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* ops = (GraphOptions*)graphPtr->ops_;
int margin = (ops->inverted) ? MARGIN_TOP : MARGIN_RIGHT;
return Blt_XAxisOp(interp, graphPtr, margin, objc, objv);
}
-static int ElementOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int ElementOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
return Blt_ElementOp(graphPtr, interp, objc, objv);
}
+*/
/*
*---------------------------------------------------------------------------
@@ -237,9 +244,10 @@ static int ElementOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
*---------------------------------------------------------------------------
*/
-static int ExtentsOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int ExtentsOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
GraphOptions* ops = (GraphOptions*)graphPtr->ops_;
int length;
const char* string = Tcl_GetStringFromObj(objv[2], &length);
@@ -307,9 +315,10 @@ topmargin, bottommargin, plotarea, or legend", (char*)NULL);
(((x) <= (e)->right) && ((x) >= (e)->left) && \
((y) <= (e)->bottom) && ((y) >= (e)->top))
-static int InsideOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int InsideOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
int x;
if (Tcl_GetIntFromObj(interp, objv[2], &x) != TCL_OK)
return TCL_ERROR;
@@ -327,9 +336,10 @@ static int InsideOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
return TCL_OK;
}
-static int InvtransformOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int InvtransformOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
double x, y;
if ((Blt_ExprDoubleFromObj(interp, objv[2], &x) != TCL_OK) ||
(Blt_ExprDoubleFromObj(interp, objv[3], &y) != TCL_OK))
@@ -355,9 +365,10 @@ static int InvtransformOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
return TCL_OK;
}
-static int TransformOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
+static int TransformOp(ClientData* clientData, Tcl_Interp* interp, int objc,
Tcl_Obj* const objv[])
{
+ Graph* graphPtr = (Graph*)clientData;
double x, y;
if ((Blt_ExprDoubleFromObj(interp, objv[2], &x) != TCL_OK) ||
(Blt_ExprDoubleFromObj(interp, objv[3], &y) != TCL_OK))
@@ -384,15 +395,27 @@ static int TransformOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
return TCL_OK;
}
-#include "bltGrLegdOp.h"
-
static const BltEnsemble graphEnsemble[] = {
- { "cget", CgetOp,0 },
- { "configure", ConfigureOp,0 },
- { "crosshairs", 0, crosshairsEnsemble },
- { "legend", 0, legendEnsemble },
- { "xaxis", 0, xaxisEnsemble },
- { 0,0,0 }
+ {"axis", 0, axisEnsemble},
+ {"bar", 0, elementEnsemble},
+ {"cget", CgetOp, 0},
+ {"configure", ConfigureOp, 0},
+ {"crosshairs", 0, crosshairsEnsemble},
+ {"element", 0, elementEnsemble},
+ {"extents", ExtentsOp, 0},
+ {"inside", InsideOp, 0},
+ {"invtransform",InvtransformOp, 0},
+ {"legend", 0, legendEnsemble},
+ {"line", 0, elementEnsemble},
+ {"marker", 0, markerEnsemble},
+ {"pen", 0, penEnsemble},
+ {"postscript", 0, pageSetupEnsemble},
+ {"transform", TransformOp, 0},
+ {"xaxis", 0, xaxisEnsemble},
+ {"yaxis", 0, xaxisEnsemble},
+ {"x2axis", 0, xaxisEnsemble},
+ {"y2axis", 0, xaxisEnsemble},
+ { 0,0,0 }
};
int GraphInstCmdProc(ClientData clientData, Tcl_Interp* interp,