summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjoye <joye>2014-04-23 18:36:28 (GMT)
committerjoye <joye>2014-04-23 18:36:28 (GMT)
commit3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa (patch)
tree9a29df91c943bf24f1ff8fddf8c785ba6183d0a9 /src
parentddc53931829bf13ace2e88a60eaace3fb7f226c5 (diff)
downloadblt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.zip
blt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.tar.gz
blt-3d6f1d5636fd4fb4acc254dd3fbcde448228e0aa.tar.bz2
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/bltGrAxisOp.C35
-rw-r--r--src/bltGrAxisOp.h9
-rw-r--r--src/bltGrElem.C1
-rw-r--r--src/bltGrElemBar.C1
-rw-r--r--src/bltGrElemLine.C1
-rw-r--r--src/bltGrElemOp.C22
-rw-r--r--src/bltGrElemOp.h9
-rw-r--r--src/bltGrElemOption.C1
-rw-r--r--src/bltGrHairsOp.C2
-rw-r--r--src/bltGrHairsOp.h9
-rw-r--r--src/bltGrLegdOp.C7
-rw-r--r--src/bltGrLegdOp.h11
-rw-r--r--src/bltGrMarkerOp.C82
-rw-r--r--src/bltGrMarkerOp.h10
-rw-r--r--src/bltGrPenOp.C41
-rw-r--r--src/bltGrPenOp.h9
-rw-r--r--src/bltGrPenOption.C1
-rw-r--r--src/bltGrPostscriptOp.C20
-rw-r--r--src/bltGrPostscriptOp.h13
-rw-r--r--src/bltGrXAxisOp.C2
-rw-r--r--src/bltGrXAxisOp.h9
-rw-r--r--src/bltGraph.C2
-rw-r--r--src/bltGraphBar.C3
-rw-r--r--src/bltGraphLine.C3
-rw-r--r--src/bltGraphOp.C22
-rw-r--r--src/bltOp.C13
-rw-r--r--src/bltOp.h13
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[]);