diff options
author | joye <joye> | 2014-03-14 21:31:46 (GMT) |
---|---|---|
committer | joye <joye> | 2014-03-14 21:31:46 (GMT) |
commit | e938f14059684e1da334dde87aec8d12b2889c03 (patch) | |
tree | c9cf1cddd9d31e3e4e3b3489bae278f0f619d9cf /src | |
parent | fe7d0a1f8328a90564cab45cd7df2c8fa8a7445b (diff) | |
download | blt-e938f14059684e1da334dde87aec8d12b2889c03.zip blt-e938f14059684e1da334dde87aec8d12b2889c03.tar.gz blt-e938f14059684e1da334dde87aec8d12b2889c03.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrLegd.C | 8 | ||||
-rw-r--r-- | src/bltGrMisc.C | 11 | ||||
-rw-r--r-- | src/bltGrPenOp.C | 72 | ||||
-rw-r--r-- | src/bltGraph.C | 82 |
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; } |