diff options
author | joye <joye> | 2014-04-23 18:36:28 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-23 18:36:28 (GMT) |
commit | 3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa (patch) | |
tree | 9a29df91c943bf24f1ff8fddf8c785ba6183d0a9 /src | |
parent | ddc53931829bf13ace2e88a60eaace3fb7f226c5 (diff) | |
download | blt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.zip blt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.tar.gz blt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrAxisOp.C | 35 | ||||
-rw-r--r-- | src/bltGrAxisOp.h | 9 | ||||
-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 | 22 | ||||
-rw-r--r-- | src/bltGrElemOp.h | 9 | ||||
-rw-r--r-- | src/bltGrElemOption.C | 1 | ||||
-rw-r--r-- | src/bltGrHairsOp.C | 2 | ||||
-rw-r--r-- | src/bltGrHairsOp.h | 9 | ||||
-rw-r--r-- | src/bltGrLegdOp.C | 7 | ||||
-rw-r--r-- | src/bltGrLegdOp.h | 11 | ||||
-rw-r--r-- | src/bltGrMarkerOp.C | 82 | ||||
-rw-r--r-- | src/bltGrMarkerOp.h | 10 | ||||
-rw-r--r-- | src/bltGrPenOp.C | 41 | ||||
-rw-r--r-- | src/bltGrPenOp.h | 9 | ||||
-rw-r--r-- | src/bltGrPenOption.C | 1 | ||||
-rw-r--r-- | src/bltGrPostscriptOp.C | 20 | ||||
-rw-r--r-- | src/bltGrPostscriptOp.h | 13 | ||||
-rw-r--r-- | src/bltGrXAxisOp.C | 2 | ||||
-rw-r--r-- | src/bltGrXAxisOp.h | 9 | ||||
-rw-r--r-- | src/bltGraph.C | 2 | ||||
-rw-r--r-- | src/bltGraphBar.C | 3 | ||||
-rw-r--r-- | src/bltGraphLine.C | 3 | ||||
-rw-r--r-- | src/bltGraphOp.C | 22 | ||||
-rw-r--r-- | src/bltOp.C | 13 | ||||
-rw-r--r-- | src/bltOp.h | 13 |
27 files changed, 251 insertions, 100 deletions
diff --git a/src/bltGrAxisOp.C b/src/bltGrAxisOp.C index 22cd533..20c3c63 100644 --- a/src/bltGrAxisOp.C +++ b/src/bltGrAxisOp.C @@ -338,6 +338,9 @@ static int CgetOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -349,6 +352,9 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -360,6 +366,9 @@ static int ActivateOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -391,6 +400,9 @@ static int CreateOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + if (graphPtr->createAxis(objc, objv) != TCL_OK) return TCL_ERROR; Tcl_SetObjResult(interp, objv[3]); @@ -444,6 +456,9 @@ static int GetOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr = (Axis*)Blt_GetCurrentItem(graphPtr->bindTable_); // Report only on axes @@ -466,6 +481,9 @@ static int InvTransformOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -477,6 +495,9 @@ static int LimitsOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -488,6 +509,9 @@ static int MarginOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -530,6 +554,9 @@ static int TransformOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -541,6 +568,9 @@ static int TypeOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -552,6 +582,9 @@ static int ViewOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Axis* axisPtr; if (graphPtr->getAxis(objv[3], &axisPtr) != TCL_OK) return TCL_ERROR; @@ -559,7 +592,7 @@ static int ViewOp(ClientData clientData, Tcl_Interp* interp, return AxisViewOp(interp, axisPtr, objc-1, objv+1); } -const BltEnsemble axisEnsemble[] = { +const TkEnsemble axisEnsemble[] = { {"activate", ActivateOp, 0}, {"bind", BindOp, 0}, {"cget", CgetOp,0 }, diff --git a/src/bltGrAxisOp.h b/src/bltGrAxisOp.h index 2b433c1..d4a2686 100644 --- a/src/bltGrAxisOp.h +++ b/src/bltGrAxisOp.h @@ -30,11 +30,12 @@ #ifndef __BltGrAxisOp_h__ #define __BltGrAxisOp_h__ -extern "C" { -#include "bltOp.h" -} +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif -extern const BltEnsemble axisEnsemble[]; +extern const TkEnsemble axisEnsemble[]; extern int AxisObjConfigure(Tcl_Interp* interp, Axis* axisPtr, int objc, Tcl_Obj* const objv[]); diff --git a/src/bltGrElem.C b/src/bltGrElem.C index 1477d4d..42f0347 100644 --- a/src/bltGrElem.C +++ b/src/bltGrElem.C @@ -32,7 +32,6 @@ #include "bltGraph.h" #include "bltGrElem.h" #include "bltGrPen.h" -#include "bltGrPenOp.h" using namespace Blt; diff --git a/src/bltGrElemBar.C b/src/bltGrElemBar.C index 7734ccc..2ae740e 100644 --- a/src/bltGrElemBar.C +++ b/src/bltGrElemBar.C @@ -34,7 +34,6 @@ extern "C" { #include "bltGraphBar.h" #include "bltGrElemBar.h" #include "bltGrElemOption.h" -#include "bltGrPenOp.h" #include "bltGrAxis.h" #include "bltGrMisc.h" #include "bltGrDef.h" diff --git a/src/bltGrElemLine.C b/src/bltGrElemLine.C index 213250b..40f754a 100644 --- a/src/bltGrElemLine.C +++ b/src/bltGrElemLine.C @@ -31,7 +31,6 @@ #include "bltSpline.h" #include "bltGrElemLine.h" #include "bltGrElemOption.h" -#include "bltGrPenOp.h" #include "bltGrAxis.h" #include "bltGrMisc.h" #include "bltGrDef.h" diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C index 7b5d29f..f2305c6 100644 --- a/src/bltGrElemOp.C +++ b/src/bltGrElemOp.C @@ -118,6 +118,9 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Element* elemPtr; if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; @@ -210,6 +213,9 @@ static int ClosestOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<5) + return TCL_ERROR; + GraphOptions* gops = (GraphOptions*)graphPtr->ops_; ClosestSearch* searchPtr = &gops->search; @@ -278,6 +284,9 @@ static int CreateOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + if (graphPtr->createElement(objc, objv) != TCL_OK) return TCL_ERROR; Tcl_SetObjResult(interp, objv[3]); @@ -327,6 +336,9 @@ static int ExistsOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&graphPtr->elements_.table, Tcl_GetString(objv[3])); Tcl_SetBooleanObj(Tcl_GetObjResult(interp), (hPtr != NULL)); @@ -337,6 +349,9 @@ static int GetOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + char *string = Tcl_GetString(objv[3]); if ((string[0] == 'c') && (strcmp(string, "current") == 0)) { Element* elemPtr = (Element*)Blt_GetCurrentItem(graphPtr->bindTable_); @@ -449,6 +464,8 @@ static int ShowOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; int elemObjc; Tcl_Obj** elemObjv; @@ -494,6 +511,9 @@ static int TypeOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Element* elemPtr; if (graphPtr->getElement(objv[3], &elemPtr) != TCL_OK) return TCL_ERROR; @@ -502,7 +522,7 @@ static int TypeOp(ClientData clientData, Tcl_Interp* interp, return TCL_OK; } -const BltEnsemble elementEnsemble[] = { +const TkEnsemble elementEnsemble[] = { {"activate", ActivateOp, 0}, {"bind", BindOp, 0}, {"cget", CgetOp, 0}, diff --git a/src/bltGrElemOp.h b/src/bltGrElemOp.h index 9c457ad..d7b522b 100644 --- a/src/bltGrElemOp.h +++ b/src/bltGrElemOp.h @@ -30,11 +30,12 @@ #ifndef __BltGrElemOp_h__ #define __BltGrElemOp_h__ -extern "C" { -#include "bltOp.h" -} +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif -extern const BltEnsemble elementEnsemble[]; +extern const TkEnsemble elementEnsemble[]; extern int ElementObjConfigure(Tcl_Interp* interp, Element* elemPtr, int objc, Tcl_Obj* const objv[]); diff --git a/src/bltGrElemOption.C b/src/bltGrElemOption.C index f0b9ba1..5d63c06 100644 --- a/src/bltGrElemOption.C +++ b/src/bltGrElemOption.C @@ -36,7 +36,6 @@ extern "C" { #include "bltGrElem.h" #include "bltGrElemOption.h" #include "bltGrPen.h" -#include "bltGrPenOp.h" #include "bltConfig.h" using namespace Blt; diff --git a/src/bltGrHairsOp.C b/src/bltGrHairsOp.C index 93038dc..f4a975a 100644 --- a/src/bltGrHairsOp.C +++ b/src/bltGrHairsOp.C @@ -164,7 +164,7 @@ static int ToggleOp(ClientData clientData, Tcl_Interp* interp, return TCL_OK; } -const BltEnsemble crosshairsEnsemble[] = { +const TkEnsemble crosshairsEnsemble[] = { {"cget", CgetOp, 0}, {"configure", ConfigureOp, 0}, {"off", OffOp, 0}, diff --git a/src/bltGrHairsOp.h b/src/bltGrHairsOp.h index fb69b03..2c645ff 100644 --- a/src/bltGrHairsOp.h +++ b/src/bltGrHairsOp.h @@ -33,10 +33,11 @@ #ifndef __BltGrHairsOp_h__ #define __BltGrHairsOp_h__ -extern "C" { -#include "bltOp.h" -} +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif -extern const BltEnsemble crosshairsEnsemble[]; +extern const TkEnsemble crosshairsEnsemble[]; #endif diff --git a/src/bltGrLegdOp.C b/src/bltGrLegdOp.C index b75b4bc..8297577 100644 --- a/src/bltGrLegdOp.C +++ b/src/bltGrLegdOp.C @@ -290,6 +290,9 @@ static int GetOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Legend* legendPtr = graphPtr->legend_; LegendOptions* ops = (LegendOptions*)legendPtr->ops(); @@ -305,7 +308,7 @@ static int GetOp(ClientData clientData, Tcl_Interp* interp, return TCL_OK; } -const BltEnsemble legendEnsemble[] = { +const TkEnsemble legendEnsemble[] = { {"activate", ActivateOp, 0}, {"bind", BindOp, 0}, {"cget", CgetOp, 0}, @@ -513,7 +516,7 @@ static int SelectionSetOp(ClientData clientData, Tcl_Interp* interp, return TCL_OK; } -const BltEnsemble selectionEnsemble[] = { +const TkEnsemble selectionEnsemble[] = { {"anchor", SelectionAnchorOp, 0}, {"clear", SelectionSetOp, 0}, {"clearall", SelectionClearallOp, 0}, diff --git a/src/bltGrLegdOp.h b/src/bltGrLegdOp.h index 046b2dc..f705b20 100644 --- a/src/bltGrLegdOp.h +++ b/src/bltGrLegdOp.h @@ -30,11 +30,12 @@ #ifndef __BltGrLegdOp_h__ #define __BltGrLegdOp_h__ -extern "C" { -#include "bltOp.h" -} +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif -extern const BltEnsemble legendEnsemble[]; -extern const BltEnsemble selectionEnsemble[]; +extern const TkEnsemble legendEnsemble[]; +extern const TkEnsemble selectionEnsemble[]; #endif diff --git a/src/bltGrMarkerOp.C b/src/bltGrMarkerOp.C index 4079330..4840259 100644 --- a/src/bltGrMarkerOp.C +++ b/src/bltGrMarkerOp.C @@ -46,6 +46,10 @@ using namespace Blt; static int GetMarkerFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj* objPtr, Marker** markerPtrPtr); + +#define FIND_ENCLOSED (1<<0) +#define FIND_OVERLAPPING (1<<1) + static int MarkerObjConfigure( Tcl_Interp* interp, Graph* graphPtr, Marker* markerPtr, int objc, Tcl_Obj* const objv[]) @@ -149,11 +153,13 @@ static int CreateMarker(Graph* graphPtr, Tcl_Interp* interp, return TCL_OK; } -// 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<4) + return TCL_ERROR; + Marker* markerPtr; if (GetMarkerFromObj(interp, graphPtr, objv[3], &markerPtr) != TCL_OK) return TCL_ERROR; @@ -169,9 +175,13 @@ 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; + if (objc<4) + return TCL_ERROR; + Marker* markerPtr; if (GetMarkerFromObj(interp, graphPtr, objv[3], &markerPtr) != TCL_OK) return TCL_ERROR; @@ -191,11 +201,10 @@ static int ConfigureOp(Graph* graphPtr, Tcl_Interp* interp, return MarkerObjConfigure(interp, graphPtr, markerPtr, objc-4, objv+4); } -// Ops - -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); Tcl_HashSearch iter; @@ -215,9 +224,10 @@ static int BindOp(Graph* graphPtr, Tcl_Interp* interp, return Blt_ConfigureBindingsFromObj(interp, graphPtr->bindTable_, graphPtr->markerTag(Tcl_GetString(objv[3])), objc - 4, objv + 4); } -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 (CreateMarker(graphPtr, interp, objc, objv) != TCL_OK) return TCL_ERROR; // set in CreateMarker @@ -226,9 +236,10 @@ static int CreateOp(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++) { Marker* markerPtr; if (GetMarkerFromObj(NULL, graphPtr, objv[ii], &markerPtr) != TCL_OK) { @@ -244,9 +255,13 @@ 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; + if (objc<4) + return TCL_ERROR; + Tcl_HashEntry* hPtr = Tcl_FindHashEntry(&graphPtr->markers_.table, Tcl_GetString(objv[3])); Tcl_SetBooleanObj(Tcl_GetObjResult(interp), (hPtr)); @@ -254,11 +269,13 @@ static int ExistsOp(Graph* graphPtr, Tcl_Interp* interp, return TCL_OK; } -static int FindOp(Graph* graphPtr, Tcl_Interp* interp, +static int FindOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { -#define FIND_ENCLOSED (1<<0) -#define FIND_OVERLAPPING (1<<1) + Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + const char* string = Tcl_GetString(objv[3]); int mode; if (strcmp(string, "enclosed") == 0) @@ -320,9 +337,13 @@ static int FindOp(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; + if (objc<4) + return TCL_ERROR; + const char* string = Tcl_GetString(objv[3]); if (!strcmp(string, "current")) { Marker* markerPtr = (Marker*)Blt_GetCurrentItem(graphPtr->bindTable_); @@ -335,9 +356,10 @@ static int GetOp(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[]) { + Graph* graphPtr = (Graph*)clientData; Tcl_Obj* listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL); if (objc == 3) { for (Blt_ChainLink link=Blt_Chain_FirstLink(graphPtr->markers_.displayList); @@ -366,9 +388,13 @@ static int NamesOp(Graph* graphPtr, Tcl_Interp* interp, return TCL_OK; } -static int RelinkOp(Graph* graphPtr, Tcl_Interp* interp, +static int RelinkOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { + Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Marker* markerPtr; if (GetMarkerFromObj(interp, graphPtr, objv[3], &markerPtr) != TCL_OK) return TCL_ERROR; @@ -397,9 +423,13 @@ static int RelinkOp(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; + if (objc<4) + return TCL_ERROR; + Marker* markerPtr; if (GetMarkerFromObj(interp, graphPtr, objv[3], &markerPtr) != TCL_OK) return TCL_ERROR; @@ -408,6 +438,23 @@ static int TypeOp(Graph* graphPtr, Tcl_Interp* interp, return TCL_OK; } +const TkEnsemble markerEnsemble[] = { + {"bind", BindOp, 0}, + {"cget", CgetOp, 0}, + {"configure", ConfigureOp, 0}, + {"create", CreateOp, 0}, + {"delete", DeleteOp, 0}, + {"exists", ExistsOp, 0}, + {"find", FindOp, 0}, + {"get", GetOp, 0}, + {"lower", RelinkOp, 0}, + {"names", NamesOp, 0}, + {"raise", RelinkOp, 0}, + {"type", TypeOp, 0}, + { 0,0,0 } +}; + +/* static Blt_OpSpec markerOps[] = { {"bind", 1, (void*)BindOp, 3, 6, "marker sequence command",}, @@ -437,6 +484,7 @@ int Blt::MarkerOp(Graph* graphPtr, Tcl_Interp* interp, return (*proc) (graphPtr, interp, objc, objv); } +*/ // Support diff --git a/src/bltGrMarkerOp.h b/src/bltGrMarkerOp.h index 91d7b35..d6aa9dd 100644 --- a/src/bltGrMarkerOp.h +++ b/src/bltGrMarkerOp.h @@ -30,9 +30,11 @@ #ifndef __Blt_GrMarkerOp_h__ #define __Blt_GrMarkerOp_h__ -namespace Blt { - extern int MarkerOp(Graph* graphPtr, Tcl_Interp* interp, - int objc, Tcl_Obj* const objv[]); -}; +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif + +extern const TkEnsemble markerEnsemble[]; #endif diff --git a/src/bltGrPenOp.C b/src/bltGrPenOp.C index 890eed2..ad406d1 100644 --- a/src/bltGrPenOp.C +++ b/src/bltGrPenOp.C @@ -80,11 +80,10 @@ int PenObjConfigure(Tcl_Interp* interp, Graph* graphPtr, Pen* penPtr, } } -// Configure - -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; if (objc != 5) { Tcl_WrongNumArgs(interp, 3, objv, "cget option"); return TCL_ERROR; @@ -105,9 +104,13 @@ static int CgetOp(Tcl_Interp* interp, Graph* graphPtr, return TCL_OK; } -static int ConfigureOp(Tcl_Interp* interp, Graph* graphPtr, +static int ConfigureOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { + Graph* graphPtr = (Graph*)clientData; + if (objc<4) + return TCL_ERROR; + Pen* penPtr; if (graphPtr->getPen(objv[3], &penPtr) != TCL_OK) return TCL_ERROR; @@ -127,9 +130,13 @@ static int ConfigureOp(Tcl_Interp* interp, Graph* graphPtr, return PenObjConfigure(interp, graphPtr, penPtr, 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 (objc<4) + return TCL_ERROR; + if (graphPtr->createPen(Tcl_GetString(objv[3]), objc, objv) != TCL_OK) return TCL_ERROR; Tcl_SetObjResult(interp, objv[3]); @@ -137,9 +144,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; @@ -153,9 +161,10 @@ static int DeleteOp(Tcl_Interp* interp, Graph* graphPtr, return TCL_OK; } -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 iter; @@ -185,9 +194,13 @@ static int NamesOp(Tcl_Interp* interp, Graph* graphPtr, return TCL_OK; } -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; + if (objc<4) + return TCL_ERROR; + Pen* penPtr; if (graphPtr->getPen(objv[3], &penPtr) != TCL_OK) return TCL_ERROR; @@ -196,6 +209,17 @@ static int TypeOp(Tcl_Interp* interp, Graph* graphPtr, return TCL_OK; } +const TkEnsemble penEnsemble[] = { + {"cget", CgetOp, 0}, + {"configure", ConfigureOp, 0}, + {"create", CreateOp, 0}, + {"delete", DeleteOp, 0}, + {"names", NamesOp, 0}, + {"type", TypeOp, 0}, + { 0,0,0 } +}; + +/* static Blt_OpSpec penOps[] = { {"cget", 2, (void*)CgetOp, 5, 5, "penName option",}, @@ -219,3 +243,4 @@ int Blt_PenOp(Graph* graphPtr, Tcl_Interp* interp, return (*proc)(interp, graphPtr, objc, objv); } +*/ diff --git a/src/bltGrPenOp.h b/src/bltGrPenOp.h index 0c7de55..a1d7357 100644 --- a/src/bltGrPenOp.h +++ b/src/bltGrPenOp.h @@ -30,8 +30,13 @@ #ifndef __BltGrPenOp_h__ #define __BltGrPenOp_h__ +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif + +extern const TkEnsemble penEnsemble[]; + extern int PenObjConfigure(Tcl_Interp* interp, Graph* graphPtr, Pen* penPtr, int objc, Tcl_Obj* const objv[]); -extern int Blt_PenOp(Graph* graphPtr, Tcl_Interp* interp, int objc, - Tcl_Obj* const objv[]); #endif diff --git a/src/bltGrPenOption.C b/src/bltGrPenOption.C index 781a3be..d263ffc 100644 --- a/src/bltGrPenOption.C +++ b/src/bltGrPenOption.C @@ -29,7 +29,6 @@ #include "bltGraph.h" #include "bltGrPen.h" -#include "bltGrPenOp.h" #include "bltConfig.h" using namespace Blt; diff --git a/src/bltGrPostscriptOp.C b/src/bltGrPostscriptOp.C index 622a284..9b2d979 100644 --- a/src/bltGrPostscriptOp.C +++ b/src/bltGrPostscriptOp.C @@ -74,9 +74,11 @@ int PageSetupObjConfigure(Tcl_Interp* interp, Graph* graphPtr, } } -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 != 4) { Tcl_WrongNumArgs(interp, 2, objv, "cget option"); return TCL_ERROR; @@ -94,9 +96,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; PageSetup* setupPtr = graphPtr->pageSetup_; if (objc <= 4) { Tcl_Obj* objPtr = Tk_GetOptionInfo(interp, (char*)setupPtr->ops_, @@ -113,9 +116,11 @@ static int ConfigureOp(Graph* graphPtr, Tcl_Interp* interp, return PageSetupObjConfigure(interp, graphPtr, objc-3, objv+3); } -static int OutputOp(Graph* graphPtr, Tcl_Interp* interp, +static int OutputOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { + Graph* graphPtr = (Graph*)clientData; + const char *fileName = NULL; Tcl_Channel channel = NULL; if (objc > 3) { @@ -169,6 +174,14 @@ static int OutputOp(Graph* graphPtr, Tcl_Interp* interp, return TCL_OK; } +const TkEnsemble pageSetupEnsemble[] = { + {"cget", CgetOp, 0}, + {"configure", ConfigureOp, 0}, + {"output", OutputOp, 0}, + { 0,0,0 } +}; + +/* static Blt_OpSpec psOps[] = { {"cget", 2, (void*)CgetOp, 4, 4, "option",}, @@ -190,6 +203,7 @@ int Blt_PageSetupOp(Graph* graphPtr, Tcl_Interp* interp, int objc, return (*proc)(graphPtr, interp, objc, objv); } +*/ // Support diff --git a/src/bltGrPostscriptOp.h b/src/bltGrPostscriptOp.h index cb2d866..e5e0f30 100644 --- a/src/bltGrPostscriptOp.h +++ b/src/bltGrPostscriptOp.h @@ -30,13 +30,14 @@ #ifndef __BltGrPageSetupOp_h__ #define __BltGrPageSetupOp_h__ -#include <iostream> -#include <sstream> -#include <iomanip> -using namespace std; +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif + +extern const TkEnsemble pageSetupEnsemble[]; extern int PageSetupObjConfigure(Tcl_Interp* interp, Graph* graphPtr, int objc, Tcl_Obj* const objv[]); -extern int Blt_PageSetupOp(Graph* graphPtr, Tcl_Interp* interp, int objc, - Tcl_Obj* const objv[]); + #endif diff --git a/src/bltGrXAxisOp.C b/src/bltGrXAxisOp.C index cdde564..c752d2e 100644 --- a/src/bltGrXAxisOp.C +++ b/src/bltGrXAxisOp.C @@ -171,7 +171,7 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp, return AxisConfigureOp(interp, axisPtr, objc, objv); } -const BltEnsemble xaxisEnsemble[] = { +const TkEnsemble xaxisEnsemble[] = { { "cget", CgetOp,0 }, { "configure", ConfigureOp,0 }, { 0,0,0 } diff --git a/src/bltGrXAxisOp.h b/src/bltGrXAxisOp.h index 01579bf..f8a9790 100644 --- a/src/bltGrXAxisOp.h +++ b/src/bltGrXAxisOp.h @@ -30,10 +30,11 @@ #ifndef __BltGrXAxisOp_h__ #define __BltGrXAxisOp_h__ -extern "C" { -#include "bltOp.h" -} +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif -extern const BltEnsemble xaxisEnsemble[]; +extern const TkEnsemble xaxisEnsemble[]; #endif diff --git a/src/bltGraph.C b/src/bltGraph.C index 65eab0d..4b2f4bb 100644 --- a/src/bltGraph.C +++ b/src/bltGraph.C @@ -42,12 +42,10 @@ extern "C" { #include "bltGrPen.h" #include "bltGrPenBar.h" #include "bltGrPenLine.h" -#include "bltGrPenOp.h" #include "bltGrElem.h" #include "bltGrElemBar.h" #include "bltGrElemLine.h" #include "bltGrMarker.h" -#include "bltGrMarkerOp.h" #include "bltGrLegd.h" #include "bltGrHairs.h" #include "bltGrDef.h" diff --git a/src/bltGraphBar.C b/src/bltGraphBar.C index 0535916..7b27cb6 100644 --- a/src/bltGraphBar.C +++ b/src/bltGraphBar.C @@ -33,15 +33,14 @@ #include "bltGrAxis.h" #include "bltGrXAxisOp.h" #include "bltGrPen.h" +#include "bltGrPenOp.h" #include "bltGrPenBar.h" #include "bltGrPenLine.h" -#include "bltGrPenOp.h" #include "bltGrElem.h" #include "bltGrElemOp.h" #include "bltGrElemBar.h" #include "bltGrElemLine.h" #include "bltGrMarker.h" -#include "bltGrMarkerOp.h" #include "bltGrLegd.h" #include "bltGrHairs.h" #include "bltGrDef.h" diff --git a/src/bltGraphLine.C b/src/bltGraphLine.C index 3da4b52..3c2dcfa 100644 --- a/src/bltGraphLine.C +++ b/src/bltGraphLine.C @@ -33,15 +33,14 @@ #include "bltGrAxis.h" #include "bltGrXAxisOp.h" #include "bltGrPen.h" +#include "bltGrPenOp.h" #include "bltGrPenBar.h" #include "bltGrPenLine.h" -#include "bltGrPenOp.h" #include "bltGrElem.h" #include "bltGrElemOp.h" #include "bltGrElemBar.h" #include "bltGrElemLine.h" #include "bltGrMarker.h" -#include "bltGrMarkerOp.h" #include "bltGrLegd.h" #include "bltGrHairs.h" #include "bltGrDef.h" diff --git a/src/bltGraphOp.C b/src/bltGraphOp.C index a1f3582..3be9ab7 100644 --- a/src/bltGraphOp.C +++ b/src/bltGraphOp.C @@ -177,7 +177,7 @@ static int ConfigureOp(ClientData clientData, Tcl_Interp* interp, } /* -static int XAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int XAxisOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -186,7 +186,7 @@ static int XAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, return Blt_XAxisOp(interp, graphPtr, margin, objc, objv); } -static int X2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int X2AxisOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -195,7 +195,7 @@ static int X2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, return Blt_XAxisOp(interp, graphPtr, margin, objc, objv); } -static int YAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int YAxisOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -204,7 +204,7 @@ static int YAxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, return Blt_XAxisOp(interp, graphPtr, margin, objc, objv); } -static int Y2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int Y2AxisOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -213,7 +213,7 @@ static int Y2AxisOp(ClientData* clientData, Tcl_Interp* interp, int objc, return Blt_XAxisOp(interp, graphPtr, margin, objc, objv); } -static int ElementOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int ElementOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -244,8 +244,8 @@ static int ElementOp(ClientData* clientData, Tcl_Interp* interp, int objc, *--------------------------------------------------------------------------- */ -static int ExtentsOp(ClientData* clientData, Tcl_Interp* interp, int objc, - Tcl_Obj* const objv[]) +static int ExtentsOp(ClientData clientData, Tcl_Interp* interp, + int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; GraphOptions* ops = (GraphOptions*)graphPtr->ops_; @@ -315,7 +315,7 @@ topmargin, bottommargin, plotarea, or legend", (char*)NULL); (((x) <= (e)->right) && ((x) >= (e)->left) && \ ((y) <= (e)->bottom) && ((y) >= (e)->top)) -static int InsideOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int InsideOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -336,7 +336,7 @@ static int InsideOp(ClientData* clientData, Tcl_Interp* interp, int objc, return TCL_OK; } -static int InvtransformOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int InvtransformOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -365,7 +365,7 @@ static int InvtransformOp(ClientData* clientData, Tcl_Interp* interp, int objc, return TCL_OK; } -static int TransformOp(ClientData* clientData, Tcl_Interp* interp, int objc, +static int TransformOp(ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { Graph* graphPtr = (Graph*)clientData; @@ -395,7 +395,7 @@ static int TransformOp(ClientData* clientData, Tcl_Interp* interp, int objc, return TCL_OK; } -static const BltEnsemble graphEnsemble[] = { +static const TkEnsemble graphEnsemble[] = { {"axis", 0, axisEnsemble}, {"bar", 0, elementEnsemble}, {"cget", CgetOp, 0}, diff --git a/src/bltOp.C b/src/bltOp.C index 53d5e28..0f56a0e 100644 --- a/src/bltOp.C +++ b/src/bltOp.C @@ -33,7 +33,12 @@ extern "C" { #include "bltOp.h" }; -int BltInvokeEnsemble(const BltEnsemble* ensemble, int cmdIndex, +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif + +int BltInvokeEnsemble(const TkEnsemble* ensemble, int cmdIndex, void* clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]) { @@ -42,10 +47,10 @@ int BltInvokeEnsemble(const BltEnsemble* ensemble, int cmdIndex, if (Tcl_GetIndexFromObjStruct(interp, objv[cmdIndex], ensemble, sizeof(ensemble[0]), "command", 0, &index) != TCL_OK) return TCL_ERROR; - if (ensemble[index].command) - return ensemble[index].command(clientData, interp, objc, objv); + if (ensemble[index].proc) + return ensemble[index].proc(clientData, interp, objc, objv); - ensemble = (const BltEnsemble*)ensemble[index].ensemble; + ensemble = ensemble[index].subensemble; ++cmdIndex; } diff --git a/src/bltOp.h b/src/bltOp.h index 5ddc679..17169c2 100644 --- a/src/bltOp.h +++ b/src/bltOp.h @@ -35,12 +35,6 @@ #include <tk.h> -typedef struct BltEnsemble { - const char* name; /* subcommand name */ - Tcl_ObjCmdProc* command; /* subcommand implementation, OR: */ - const struct BltEnsemble* ensemble; /* subcommand ensemble */ -} BltEnsemble; - typedef struct { const char *name; /* Name of operation */ int minChars; /* Minimum # characters to disambiguate */ @@ -62,7 +56,12 @@ typedef enum { #define BLT_OP_BINARY_SEARCH 0 #define BLT_OP_LINEAR_SEARCH 1 -int BltInvokeEnsemble(const BltEnsemble* ensemble, int cmdIndex, +#include <tk.h> +#ifdef USE_TK_STUBS +#include <tkInt.h> +#endif + +int BltInvokeEnsemble(const TkEnsemble* ensemble, int cmdIndex, void* clientData, Tcl_Interp* interp, int objc, Tcl_Obj* const objv[]); |