diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrAxisOp.C | 71 | ||||
-rw-r--r-- | src/bltGrAxisOp.h | 8 | ||||
-rw-r--r-- | src/bltGrElem.C | 1 | ||||
-rw-r--r-- | src/bltGrElemBar.C | 1 | ||||
-rw-r--r-- | src/bltGrElemLine.C | 1 | ||||
-rw-r--r-- | src/bltGrElemOp.C | 78 | ||||
-rw-r--r-- | src/bltGrElemOp.h | 8 | ||||
-rw-r--r-- | src/bltGrHairsOp.C | 18 | ||||
-rw-r--r-- | src/bltGrHairsOp.h | 3 | ||||
-rw-r--r-- | src/bltGrLegd.C | 2 | ||||
-rw-r--r-- | src/bltGrLegdOp.C | 65 | ||||
-rw-r--r-- | src/bltGrLegdOp.h | 4 | ||||
-rw-r--r-- | src/bltGrXAxisOp.h | 3 | ||||
-rw-r--r-- | src/bltGraph.C | 3 | ||||
-rw-r--r-- | src/bltGraphBar.C | 5 | ||||
-rw-r--r-- | src/bltGraphLine.C | 5 | ||||
-rw-r--r-- | src/bltGraphOp.C | 71 |
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, |