summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjoye <joye>2014-03-14 21:31:46 (GMT)
committerjoye <joye>2014-03-14 21:31:46 (GMT)
commite938f14059684e1da334dde87aec8d12b2889c03 (patch)
treec9cf1cddd9d31e3e4e3b3489bae278f0f619d9cf /src
parentfe7d0a1f8328a90564cab45cd7df2c8fa8a7445b (diff)
downloadblt-e938f14059684e1da334dde87aec8d12b2889c03.zip
blt-e938f14059684e1da334dde87aec8d12b2889c03.tar.gz
blt-e938f14059684e1da334dde87aec8d12b2889c03.tar.bz2
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/bltGrLegd.C8
-rw-r--r--src/bltGrMisc.C11
-rw-r--r--src/bltGrPenOp.C72
-rw-r--r--src/bltGraph.C82
4 files changed, 81 insertions, 92 deletions
diff --git a/src/bltGrLegd.C b/src/bltGrLegd.C
index 9e45a19..6584076 100644
--- a/src/bltGrLegd.C
+++ b/src/bltGrLegd.C
@@ -185,6 +185,10 @@ struct _Legend {
// Defs
+extern "C" {
+ Tcl_ObjCmdProc Blt_GraphInstCmdProc;
+};
+
static int SelectionOp(Graph* graphPtr, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[]);
static int LegendObjConfigure(Tcl_Interp* interp, Graph* graphPtr,
@@ -208,10 +212,6 @@ static Tcl_TimerProc BlinkCursorProc;
static Tk_LostSelProc LostSelectionProc;
static Tk_SelectionProc SelectionProc;
-extern "C" {
-extern Tcl_ObjCmdProc Blt_GraphInstCmdProc;
-};
-
typedef int (GraphLegendProc)(Graph* graphPtr, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[]);
diff --git a/src/bltGrMisc.C b/src/bltGrMisc.C
index 1e6bebd..11002de 100644
--- a/src/bltGrMisc.C
+++ b/src/bltGrMisc.C
@@ -33,8 +33,10 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+extern "C" {
#include "bltInt.h"
#include "bltGraph.h"
+};
#define BOUND(x, lo, hi) (((x) > (hi)) ? (hi) : ((x) < (lo)) ? (lo) : (x))
@@ -524,14 +526,13 @@ void Blt_SetDashes(Display *display, GC gc, Blt_Dashes *dashesPtr)
void Blt_Draw2DSegments(Display *display, Drawable drawable, GC gc,
Segment2d *segments, int nSegments)
{
- XSegment *dp, *xsegments;
Segment2d *sp, *send;
- xsegments = malloc(nSegments * sizeof(XSegment));
- if (xsegments == NULL) {
+ XSegment* xsegments = (XSegment*)malloc(nSegments * sizeof(XSegment));
+ if (xsegments == NULL)
return;
- }
- dp = xsegments;
+
+ XSegment* dp = xsegments;
for (sp = segments, send = sp + nSegments; sp < send; sp++) {
dp->x1 = (short int)sp->p.x;
dp->y1 = (short int)sp->p.y;
diff --git a/src/bltGrPenOp.C b/src/bltGrPenOp.C
index 1725847..f8c8ae0 100644
--- a/src/bltGrPenOp.C
+++ b/src/bltGrPenOp.C
@@ -30,10 +30,12 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+extern "C" {
#include "bltInt.h"
#include "bltGraph.h"
#include "bltGrElem.h"
#include "bltOp.h"
+};
// Defs
@@ -71,7 +73,7 @@ static int PenSetProc(ClientData clientData, Tcl_Interp* interp,
else {
Pen* penPtr;
Graph* graphPtr = Blt_GetGraphFromWindowData(tkwin);
- ClassId classId = (ClassId)clientData; /* Element type. */
+ ClassId classId = (ClassId)(long(clientData));
if (classId == CID_NONE)
classId = graphPtr->classId;
@@ -282,39 +284,26 @@ static int DeleteOp(Tcl_Interp* interp, Graph* graphPtr,
static int NamesOp(Tcl_Interp* interp, Graph* graphPtr,
int objc, Tcl_Obj* const objv[])
{
- Tcl_Obj *listObjPtr;
-
- listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
+ Tcl_Obj *listObjPtr = Tcl_NewListObj(0, (Tcl_Obj **)NULL);
if (objc == 3) {
- Tcl_HashEntry *hPtr;
Tcl_HashSearch iter;
-
- for (hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
+ for (Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) {
- Pen* penPtr;
-
- penPtr = Tcl_GetHashValue(hPtr);
+ Pen* penPtr = (Pen*)Tcl_GetHashValue(hPtr);
if ((penPtr->flags & DELETE_PENDING) == 0) {
Tcl_ListObjAppendElement(interp, listObjPtr,
Tcl_NewStringObj(penPtr->name, -1));
}
}
- } else {
- Tcl_HashEntry *hPtr;
+ }
+ else {
Tcl_HashSearch iter;
-
- for (hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
+ for (Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) {
- Pen* penPtr;
-
- penPtr = Tcl_GetHashValue(hPtr);
+ Pen* penPtr = (Pen*)Tcl_GetHashValue(hPtr);
if ((penPtr->flags & DELETE_PENDING) == 0) {
- int i;
-
- for (i = 3; i < objc; i++) {
- char *pattern;
-
- pattern = Tcl_GetString(objv[i]);
+ for (int i = 3; i < objc; i++) {
+ char *pattern = Tcl_GetString(objv[i]);
if (Tcl_StringMatch(penPtr->name, pattern)) {
Tcl_ListObjAppendElement(interp, listObjPtr,
Tcl_NewStringObj(penPtr->name, -1));
@@ -341,21 +330,20 @@ static int TypeOp(Tcl_Interp* interp, Graph* graphPtr,
static Blt_OpSpec penOps[] =
{
- {"cget", 2, CgetOp, 5, 5, "penName option",},
- {"configure", 2, ConfigureOp, 4, 0,
+ {"cget", 2, (void*)CgetOp, 5, 5, "penName option",},
+ {"configure", 2, (void*)ConfigureOp, 4, 0,
"penName ?penName?... ?option value?...",},
- {"create", 2, CreateOp, 4, 0, "penName ?option value?...",},
- {"delete", 2, DeleteOp, 3, 0, "?penName?...",},
- {"names", 1, NamesOp, 3, 0, "?pattern?...",},
- {"type", 1, TypeOp, 4, 4, "penName",},
+ {"create", 2, (void*)CreateOp, 4, 0, "penName ?option value?...",},
+ {"delete", 2, (void*)DeleteOp, 3, 0, "?penName?...",},
+ {"names", 1, (void*)NamesOp, 3, 0, "?pattern?...",},
+ {"type", 1, (void*)TypeOp, 4, 4, "penName",},
};
static int nPenOps = sizeof(penOps) / sizeof(Blt_OpSpec);
int Blt_PenOp(Graph* graphPtr, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
- GraphPenProc *proc = Blt_GetOpFromObj(interp, nPenOps, penOps, BLT_OP_ARG2,
- objc, objv, 0);
+ GraphPenProc *proc = (GraphPenProc*)Blt_GetOpFromObj(interp, nPenOps, penOps, BLT_OP_ARG2, objc, objv, 0);
if (proc == NULL)
return TCL_ERROR;
@@ -366,14 +354,10 @@ int Blt_PenOp(Graph* graphPtr, Tcl_Interp* interp,
void Blt_DestroyPens(Graph* graphPtr)
{
- Tcl_HashEntry *hPtr;
Tcl_HashSearch iter;
-
- for (hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
+ for (Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(&graphPtr->penTable, &iter);
hPtr != NULL; hPtr = Tcl_NextHashEntry(&iter)) {
- Pen* penPtr;
-
- penPtr = Tcl_GetHashValue(hPtr);
+ Pen* penPtr = (Pen*)Tcl_GetHashValue(hPtr);
penPtr->hashPtr = NULL;
DestroyPen(penPtr);
}
@@ -397,7 +381,7 @@ int Blt_GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr,
const char *name = Tcl_GetString(objPtr);
Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&graphPtr->penTable, name);
if (hPtr != NULL) {
- penPtr = Tcl_GetHashValue(hPtr);
+ penPtr = (Pen*)Tcl_GetHashValue(hPtr);
if (penPtr->flags & DELETE_PENDING)
penPtr = NULL;
}
@@ -426,15 +410,11 @@ int Blt_GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr,
static int GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr,
Pen **penPtrPtr)
{
- Tcl_HashEntry *hPtr;
- Pen* penPtr;
- const char *name;
-
- penPtr = NULL;
- name = Tcl_GetString(objPtr);
- hPtr = Tcl_FindHashEntry(&graphPtr->penTable, name);
+ Pen* penPtr = NULL;
+ const char *name = Tcl_GetString(objPtr);
+ Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&graphPtr->penTable, name);
if (hPtr != NULL) {
- penPtr = Tcl_GetHashValue(hPtr);
+ penPtr = (Pen*)Tcl_GetHashValue(hPtr);
if (penPtr->flags & DELETE_PENDING) {
penPtr = NULL;
}
diff --git a/src/bltGraph.C b/src/bltGraph.C
index 24a8dad..80d221e 100644
--- a/src/bltGraph.C
+++ b/src/bltGraph.C
@@ -30,11 +30,14 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
+extern "C" {
#include "bltInt.h"
+#include "bltList.h"
#include "bltMath.h"
#include "bltGraph.h"
#include "bltOp.h"
#include "bltGrElem.h"
+}
#define MARKER_UNDER 1 /* Draw markers designated to lie underneath
* elements, grids, legend, etc. */
@@ -58,10 +61,14 @@ static const char* objectClassNames[] = {
// Defs
+extern "C" {
+ int Blt_GraphCmdInitProc(Tcl_Interp* interp);
+ Tcl_ObjCmdProc Blt_GraphInstCmdProc;
+};
+
static Tcl_IdleProc DisplayGraph;
static Tcl_FreeProc DestroyGraph;
static Tk_EventProc GraphEventProc;
-Tcl_ObjCmdProc Blt_GraphInstCmdProc;
static Tcl_ObjCmdProc BarchartObjCmd;
static Tcl_ObjCmdProc GraphObjCmd;
@@ -83,10 +90,10 @@ typedef int (GraphCmdProc)(Graph* graphPtr, Tcl_Interp* interp, int objc,
// OptionSpecs
-static char* barmodeObjOption[] =
+static const char* barmodeObjOption[] =
{"normal", "stacked", "aligned", "overlap", NULL};
-char* searchModeObjOption[] = {"points", "traces", "auto", NULL};
-char* searchAlongObjOption[] = {"x", "y", "both", NULL};
+const char* searchModeObjOption[] = {"points", "traces", "auto", NULL};
+const char* searchAlongObjOption[] = {"x", "y", "both", NULL};
static Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_DOUBLE, "-aspect", "aspect", "Aspect",
@@ -253,7 +260,7 @@ static int NewGraph(ClientData clientData, Tcl_Interp*interp,
break;
}
- Graph* graphPtr = calloc(1, sizeof(Graph));
+ Graph* graphPtr = (Graph*)calloc(1, sizeof(Graph));
((TkWindow*)tkwin)->instanceData = graphPtr;
graphPtr->tkwin = tkwin;
@@ -336,7 +343,7 @@ static int NewGraph(ClientData clientData, Tcl_Interp*interp,
// called by Tcl_DeleteCommand
static void GraphInstCmdDeleteProc(ClientData clientData)
{
- Graph* graphPtr = clientData;
+ Graph* graphPtr = (Graph*)clientData;
if (!(graphPtr->flags & GRAPH_DELETED))
Tk_DestroyWindow(graphPtr->tkwin);
}
@@ -373,7 +380,7 @@ static void DestroyGraph(char* dataPtr)
static void GraphEventProc(ClientData clientData, XEvent* eventPtr)
{
- Graph* graphPtr = clientData;
+ Graph* graphPtr = (Graph*)clientData;
if (eventPtr->type == Expose) {
if (eventPtr->xexpose.count == 0) {
@@ -534,7 +541,7 @@ static void ConfigureGraph(Graph* graphPtr)
static void DisplayGraph(ClientData clientData)
{
- Graph* graphPtr = clientData;
+ Graph* graphPtr = (Graph*)clientData;
Tk_Window tkwin = graphPtr->tkwin;
graphPtr->flags &= ~REDRAW_PENDING;
@@ -856,35 +863,34 @@ static int TransformOp(Graph* graphPtr, Tcl_Interp* interp, int objc,
static Blt_OpSpec graphOps[] =
{
- {"axis", 1, Blt_AxisOp, 2, 0, "oper ?args?",},
- {"bar", 2, BarOp, 2, 0, "oper ?args?",},
- {"cget", 2, CgetOp, 3, 3, "option",},
- {"configure", 2, ConfigureOp, 2, 0, "?option value?...",},
- {"crosshairs", 2, Blt_CrosshairsOp, 2, 0, "oper ?args?",},
- {"element", 2, ElementOp, 2, 0, "oper ?args?",},
- {"extents", 2, ExtentsOp, 3, 3, "item",},
- {"inside", 3, InsideOp, 4, 4, "winX winY",},
- {"invtransform", 3, InvtransformOp, 4, 4, "winX winY",},
- {"legend", 2, Blt_LegendOp, 2, 0, "oper ?args?",},
- {"line", 2, LineOp, 2, 0, "oper ?args?",},
- {"marker", 2, Blt_MarkerOp, 2, 0, "oper ?args?",},
- {"pen", 2, Blt_PenOp, 2, 0, "oper ?args?",},
- {"postscript", 2, Blt_PostScriptOp, 2, 0, "oper ?args?",},
- {"transform", 1, TransformOp, 4, 4, "x y",},
- {"x2axis", 2, X2AxisOp, 2, 0, "oper ?args?",},
- {"xaxis", 2, XAxisOp, 2, 0, "oper ?args?",},
- {"y2axis", 2, Y2AxisOp, 2, 0, "oper ?args?",},
- {"yaxis", 2, YAxisOp, 2, 0, "oper ?args?",},
+ {"axis", 1, (void*)Blt_AxisOp, 2, 0, "oper ?args?",},
+ {"bar", 2, (void*)BarOp, 2, 0, "oper ?args?",},
+ {"cget", 2, (void*)CgetOp, 3, 3, "option",},
+ {"configure", 2, (void*)ConfigureOp, 2, 0, "?option value?...",},
+ {"crosshairs", 2, (void*)Blt_CrosshairsOp, 2, 0, "oper ?args?",},
+ {"element", 2, (void*)ElementOp, 2, 0, "oper ?args?",},
+ {"extents", 2, (void*)ExtentsOp, 3, 3, "item",},
+ {"inside", 3, (void*)InsideOp, 4, 4, "winX winY",},
+ {"invtransform", 3, (void*)InvtransformOp, 4, 4, "winX winY",},
+ {"legend", 2, (void*)Blt_LegendOp, 2, 0, "oper ?args?",},
+ {"line", 2, (void*)LineOp, 2, 0, "oper ?args?",},
+ {"marker", 2, (void*)Blt_MarkerOp, 2, 0, "oper ?args?",},
+ {"pen", 2, (void*)Blt_PenOp, 2, 0, "oper ?args?",},
+ {"postscript", 2, (void*)Blt_PostScriptOp, 2, 0, "oper ?args?",},
+ {"transform", 1, (void*)TransformOp, 4, 4, "x y",},
+ {"x2axis", 2, (void*)X2AxisOp, 2, 0, "oper ?args?",},
+ {"xaxis", 2, (void*)XAxisOp, 2, 0, "oper ?args?",},
+ {"y2axis", 2, (void*)Y2AxisOp, 2, 0, "oper ?args?",},
+ {"yaxis", 2, (void*)YAxisOp, 2, 0, "oper ?args?",},
};
static int nGraphOps = sizeof(graphOps) / sizeof(Blt_OpSpec);
int Blt_GraphInstCmdProc(ClientData clientData, Tcl_Interp* interp,
int objc, Tcl_Obj* const objv[])
{
- Graph* graphPtr = clientData;
- GraphCmdProc* proc = Blt_GetOpFromObj(interp, nGraphOps, graphOps,
- BLT_OP_ARG1, objc, objv, 0);
- if (proc == NULL)
+ Graph* graphPtr = (Graph*)clientData;
+ GraphCmdProc* proc = (GraphCmdProc*)Blt_GetOpFromObj(interp, nGraphOps, graphOps, BLT_OP_ARG1, objc, objv, 0);
+ if (!proc)
return TCL_ERROR;
Tcl_Preserve(graphPtr);
@@ -999,11 +1005,13 @@ void Blt_GraphTags(Blt_BindTable table, ClientData object, ClientData context,
}
/* Always add the name of the object to the tag array. */
- Blt_List_Append(list, (*tagProc)(graphPtr, graphObjPtr->name), 0);
- Blt_List_Append(list, (*tagProc)(graphPtr, graphObjPtr->className), 0);
+ Blt_List_Append(list,
+ (const char*)(*tagProc)(graphPtr, graphObjPtr->name), 0);
+ Blt_List_Append(list,
+ (const char*)(*tagProc)(graphPtr, graphObjPtr->className), 0);
if (graphObjPtr->tags)
for (const char** p = graphObjPtr->tags; *p != NULL; p++)
- Blt_List_Append(list, (*tagProc) (graphPtr, *p), 0);
+ Blt_List_Append(list, (const char*)(*tagProc)(graphPtr, *p), 0);
}
/*
@@ -1016,7 +1024,7 @@ void Blt_GraphTags(Blt_BindTable table, ClientData object, ClientData context,
static ClientData PickEntry(ClientData clientData, int x, int y,
ClientData* contextPtr)
{
- Graph* graphPtr = clientData;
+ Graph* graphPtr = (Graph*)clientData;
if (graphPtr->flags & MAP_ALL) {
return NULL; /* Don't pick anything until the next
@@ -1054,7 +1062,7 @@ static ClientData PickEntry(ClientData clientData, int x, int y,
Element* elemPtr;
for (link = Blt_Chain_LastLink(graphPtr->elements.displayList);
link != NULL; link = Blt_Chain_PrevLink(link)) {
- elemPtr = Blt_Chain_GetValue(link);
+ elemPtr = (Element*)Blt_Chain_GetValue(link);
if (elemPtr->flags & (HIDE|MAP_ITEM))
continue;
@@ -1280,7 +1288,7 @@ Graph* Blt_GetGraphFromWindowData(Tk_Window tkwin)
while (tkwin) {
TkWindow* winPtr = (TkWindow*)tkwin;
if (winPtr->instanceData != NULL) {
- Graph* graphPtr = (ClientData)winPtr->instanceData;
+ Graph* graphPtr = (Graph*)winPtr->instanceData;
if (graphPtr)
return graphPtr;
}