diff options
author | joye <joye> | 2014-04-01 18:26:38 (GMT) |
---|---|---|
committer | joye <joye> | 2014-04-01 18:26:38 (GMT) |
commit | e58952262da1371d725aaf2c2996edeec8cdb8c5 (patch) | |
tree | a5e1ceccbbf23a6496b8725de5bc93a0d6989873 /src | |
parent | 23f026d050cd74cb75e78358e9fdda76add15e0e (diff) | |
download | blt-e58952262da1371d725aaf2c2996edeec8cdb8c5.zip blt-e58952262da1371d725aaf2c2996edeec8cdb8c5.tar.gz blt-e58952262da1371d725aaf2c2996edeec8cdb8c5.tar.bz2 |
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r-- | src/bltGrElem.h | 4 | ||||
-rw-r--r-- | src/bltGrElemBar.C | 8 | ||||
-rw-r--r-- | src/bltGrElemBar.h | 9 | ||||
-rw-r--r-- | src/bltGrElemLine.C | 10 | ||||
-rw-r--r-- | src/bltGrElemLine.h | 9 | ||||
-rw-r--r-- | src/bltGrElemOp.C | 4 | ||||
-rw-r--r-- | src/bltGrPen.h | 14 | ||||
-rw-r--r-- | src/bltGrPenBar.C | 37 | ||||
-rw-r--r-- | src/bltGrPenBar.h | 24 | ||||
-rw-r--r-- | src/bltGrPenLine.C | 47 | ||||
-rw-r--r-- | src/bltGrPenLine.h | 23 | ||||
-rw-r--r-- | src/bltGrPenOp.C | 23 |
12 files changed, 143 insertions, 69 deletions
diff --git a/src/bltGrElem.h b/src/bltGrElem.h index 9f3381e..07ac242 100644 --- a/src/bltGrElem.h +++ b/src/bltGrElem.h @@ -121,9 +121,8 @@ typedef struct { } ElementProcs; typedef struct { - char** tags; - int hide; const char* label; + char** tags; Axis2d axes; ElemCoords coords; ElemValues* w; @@ -133,6 +132,7 @@ typedef struct { ElemValues* xLow; ElemValues* yHigh; ElemValues* yLow; + int hide; int legendRelief; Blt_Chain stylePalette; } ElemOptions; diff --git a/src/bltGrElemBar.C b/src/bltGrElemBar.C index 6b219ca..3b3a10a 100644 --- a/src/bltGrElemBar.C +++ b/src/bltGrElemBar.C @@ -210,9 +210,15 @@ static Tk_OptionSpec optionSpecs[] = { Element* Blt_BarElement(Graph* graphPtr) { BarElement* elemPtr = (BarElement*)calloc(1, sizeof(BarElement)); + elemPtr->ops = (BarElementOptions*)calloc(1, sizeof(BarElementOptions)); elemPtr->procsPtr = &barProcs; + elemPtr->builtinPenPtr = &elemPtr->builtinPen; - InitBarPen(graphPtr, elemPtr->builtinPenPtr); + elemPtr->builtinPen.ops = + &(((BarElementOptions*)(elemPtr->ops))->builtinPenOps); + elemPtr->builtinPen.manageOptions =0; + + InitBarPen(graphPtr, elemPtr->builtinPenPtr, "builtin"); Tk_InitOptions(graphPtr->interp, (char*)elemPtr->builtinPenPtr, elemPtr->builtinPenPtr->optionTable, graphPtr->tkwin); diff --git a/src/bltGrElemBar.h b/src/bltGrElemBar.h index 0a1485f..621ffe5 100644 --- a/src/bltGrElemBar.h +++ b/src/bltGrElemBar.h @@ -39,9 +39,8 @@ using namespace std; #include "bltGrPenBar.h" typedef struct { - char** tags; - int hide; const char *label; + char** tags; Axis2d axes; ElemCoords coords; ElemValues* w; @@ -51,16 +50,18 @@ typedef struct { ElemValues* xLow; ElemValues* yHigh; ElemValues* yLow; + int hide; int legendRelief; Blt_Chain stylePalette; - BarPen builtinPen; + // derived + BarPenOptions builtinPenOps; BarPen *activePenPtr; BarPen *normalPenPtr; double barWidth; const char *groupName; -} ElemBarOptions; +} BarElementOptions; typedef struct { GraphObj obj; diff --git a/src/bltGrElemLine.C b/src/bltGrElemLine.C index 15f3cf0..b894fd6 100644 --- a/src/bltGrElemLine.C +++ b/src/bltGrElemLine.C @@ -285,15 +285,21 @@ static Tk_OptionSpec optionSpecs[] = { Element* Blt_LineElement(Graph* graphPtr) { LineElement* elemPtr = (LineElement*)calloc(1, sizeof(LineElement)); + elemPtr->ops = (LineElementOptions*)calloc(1, sizeof(LineElementOptions)); elemPtr->procsPtr = &lineProcs; - elemPtr->flags = SCALE_SYMBOL; + elemPtr->builtinPenPtr = &elemPtr->builtinPen; - InitLinePen(graphPtr, elemPtr->builtinPenPtr); + elemPtr->builtinPen.ops = + &(((LineElementOptions*)(elemPtr->ops))->builtinPenOps); + elemPtr->builtinPen.manageOptions =0; + + InitLinePen(graphPtr, elemPtr->builtinPenPtr, "builtin"); Tk_InitOptions(graphPtr->interp, (char*)elemPtr->builtinPenPtr, elemPtr->builtinPenPtr->optionTable, graphPtr->tkwin); elemPtr->optionTable = Tk_CreateOptionTable(graphPtr->interp, optionSpecs); + elemPtr->flags = SCALE_SYMBOL; return (Element*)elemPtr; } diff --git a/src/bltGrElemLine.h b/src/bltGrElemLine.h index 60b8c6b..8d6f01c 100644 --- a/src/bltGrElemLine.h +++ b/src/bltGrElemLine.h @@ -45,9 +45,8 @@ typedef struct { } GraphPoints; typedef struct { - char** tags; - int hide; const char* label; + char** tags; Axis2d axes; ElemCoords coords; ElemValues* w; @@ -57,10 +56,12 @@ typedef struct { ElemValues* xLow; ElemValues* yHigh; ElemValues* yLow; + int hide; int legendRelief; Blt_Chain stylePalette; - LinePen builtinPen; + // derived + LinePenOptions builtinPenOps; LinePen *activePenPtr; LinePen *normalPenPtr; @@ -72,7 +73,7 @@ typedef struct { Smoothing reqSmooth; int state; int penDir; -} ElemLineOptions; +} LineElementOptions; typedef struct { GraphObj obj; diff --git a/src/bltGrElemOp.C b/src/bltGrElemOp.C index 838c811..d480542 100644 --- a/src/bltGrElemOp.C +++ b/src/bltGrElemOp.C @@ -132,6 +132,10 @@ static void DestroyElement(Element* elemPtr) Tk_FreeConfigOptions((char*)elemPtr, elemPtr->optionTable, graphPtr->tkwin); (*elemPtr->procsPtr->destroyProc) (graphPtr, elemPtr); + + if (elemPtr->ops) + free(elemPtr->ops); + free(elemPtr); } diff --git a/src/bltGrPen.h b/src/bltGrPen.h index 4e5fa47..06d6c2d 100644 --- a/src/bltGrPen.h +++ b/src/bltGrPen.h @@ -45,10 +45,20 @@ typedef Pen* (PenCreateProc)(void); typedef int (PenConfigureProc)(Graph* graphPtr, Pen* penPtr); typedef void (PenDestroyProc)(Graph* graphPtr, Pen* penPtr); +typedef struct { + int errorBarShow; + int errorBarLineWidth; + int errorBarCapWidth; + XColor* errorBarColor; + + int valueShow; + const char* valueFormat; + TextStyle valueStyle; +} PenOptions; + typedef struct _Pen { const char *name; ClassId classId; - const char *typeId; unsigned int flags; int refCount; Tcl_HashEntry *hashPtr; @@ -56,6 +66,8 @@ typedef struct _Pen { PenConfigureProc *configProc; PenDestroyProc *destroyProc; Graph* graphPtr; + void* ops; + int manageOptions; } Pen; #endif diff --git a/src/bltGrPenBar.C b/src/bltGrPenBar.C index ed5beb1..ca56d29 100644 --- a/src/bltGrPenBar.C +++ b/src/bltGrPenBar.C @@ -57,8 +57,6 @@ static Tk_OptionSpec barPenOptionSpecs[] = { "none", -1, Tk_Offset(BarPen, valueShow), 0, &fillObjOption, 0}, {TK_OPTION_BITMAP, "-stipple", "stipple", "Stipple", NULL, -1, Tk_Offset(BarPen, stipple), TK_OPTION_NULL_OK, NULL, 0}, - {TK_OPTION_STRING, "-type", "type", "Type", - "bar", -1, Tk_Offset(BarPen, typeId), TK_OPTION_NULL_OK, NULL, 0}, {TK_OPTION_ANCHOR, "-valueanchor", "valueAnchor", "ValueAnchor", "s", -1, Tk_Offset(BarPen, valueStyle.anchor), 0, NULL, 0}, {TK_OPTION_COLOR, "-valuecolor", "valueColor", "ValueColor", @@ -72,6 +70,30 @@ static Tk_OptionSpec barPenOptionSpecs[] = { {TK_OPTION_END, NULL, NULL, NULL, NULL, -1, 0, 0, NULL, 0} }; +Pen* CreateBarPen(Graph* graphPtr, const char *penName) +{ + BarPen* penPtr = (BarPen*)calloc(1, sizeof(BarPen)); + penPtr->ops = (BarPenOptions*)calloc(1, sizeof(BarPenOptions)); + penPtr->manageOptions =1; + + InitBarPen(graphPtr, penPtr, penName); + return (Pen*)penPtr; +} + +void InitBarPen(Graph* graphPtr, BarPen* penPtr, const char* penName) +{ + penPtr->configProc = ConfigureBarPenProc; + penPtr->destroyProc = DestroyBarPenProc; + + penPtr->classId = CID_ELEM_BAR; + penPtr->name = Blt_Strdup(penName); + + Blt_Ts_InitStyle(penPtr->valueStyle); + + penPtr->optionTable = + Tk_CreateOptionTable(graphPtr->interp, barPenOptionSpecs); +} + int ConfigureBarPenProc(Graph* graphPtr, Pen *basePtr) { BarPen* penPtr = (BarPen*)basePtr; @@ -128,17 +150,6 @@ int ConfigureBarPenProc(Graph* graphPtr, Pen *basePtr) return TCL_OK; } -void InitBarPen(Graph* graphPtr, BarPen* penPtr) -{ - penPtr->configProc = ConfigureBarPenProc; - penPtr->destroyProc = DestroyBarPenProc; - - Blt_Ts_InitStyle(penPtr->valueStyle); - - penPtr->optionTable = - Tk_CreateOptionTable(graphPtr->interp, barPenOptionSpecs); -} - void DestroyBarPenProc(Graph* graphPtr, Pen* basePtr) { BarPen* penPtr = (BarPen*)basePtr; diff --git a/src/bltGrPenBar.h b/src/bltGrPenBar.h index 61ac71e..41cbc84 100644 --- a/src/bltGrPenBar.h +++ b/src/bltGrPenBar.h @@ -38,9 +38,26 @@ using namespace std; #include "bltGrPen.h" typedef struct { + int errorBarShow; + int errorBarLineWidth; + int errorBarCapWidth; + XColor* errorBarColor; + + int valueShow; + const char *valueFormat; + TextStyle valueStyle; + + XColor* outlineColor; + Tk_3DBorder fill; + int borderWidth; + int relief; + Pixmap stipple; + +} BarPenOptions; + +typedef struct { const char *name; ClassId classId; - const char *typeId; unsigned int flags; int refCount; Tcl_HashEntry *hashPtr; @@ -48,6 +65,8 @@ typedef struct { PenConfigureProc *configProc; PenDestroyProc *destroyProc; Graph* graphPtr; + void* ops; + int manageOptions; // Barchart specific pen fields start here XColor* outlineColor; @@ -71,7 +90,8 @@ typedef struct { TextStyle valueStyle; } BarPen; -extern void InitBarPen(Graph* graphPtr, BarPen* penPtr); +extern Pen* CreateBarPen(Graph* graphPtr, const char *penName); +extern void InitBarPen(Graph* graphPtr, BarPen* penPtr, const char* penName); extern int ConfigureBarPenProc(Graph* graphPtr, Pen *basePtr); extern void DestroyBarPenProc(Graph* graphPtr, Pen* basePtr); diff --git a/src/bltGrPenLine.C b/src/bltGrPenLine.C index e070f5a..900cfd6 100644 --- a/src/bltGrPenLine.C +++ b/src/bltGrPenLine.C @@ -180,8 +180,6 @@ static Tk_OptionSpec linePenOptionSpecs[] = { "none", -1, Tk_Offset(LinePen, valueShow), 0, &fillObjOption, 0}, {TK_OPTION_CUSTOM, "-symbol", "symbol", "Symbol", "none", -1, Tk_Offset(LinePen, symbol), 0, &symbolObjOption, 0}, - {TK_OPTION_STRING, "-type", "type", "Type", - "line", -1, Tk_Offset(Pen, typeId), 0, NULL, 0}, {TK_OPTION_ANCHOR, "-valueanchor", "valueAnchor", "ValueAnchor", "s", -1, Tk_Offset(LinePen, valueStyle.anchor), 0, NULL, 0}, {TK_OPTION_COLOR, "-valuecolor", "valueColor", "ValueColor", @@ -195,6 +193,33 @@ static Tk_OptionSpec linePenOptionSpecs[] = { {TK_OPTION_END, NULL, NULL, NULL, NULL, -1, 0, 0, NULL, 0} }; +Pen* CreateLinePen(Graph* graphPtr, const char* penName) +{ + LinePen* penPtr = (LinePen*)calloc(1, sizeof(LinePen)); + penPtr->ops = (LinePenOptions*)calloc(1, sizeof(LinePenOptions)); + penPtr->manageOptions =1; + + InitLinePen(graphPtr, penPtr, penName); + return (Pen*)penPtr; +} + +void InitLinePen(Graph* graphPtr, LinePen* penPtr, const char* penName) +{ + penPtr->configProc = ConfigureLinePenProc; + penPtr->destroyProc = DestroyLinePenProc; + + penPtr->classId = CID_ELEM_LINE; + penPtr->name = Blt_Strdup(penName); + + Blt_Ts_InitStyle(penPtr->valueStyle); + penPtr->symbol.bitmap = None; + penPtr->symbol.mask = None; + penPtr->symbol.type = SYMBOL_NONE; + + penPtr->optionTable = + Tk_CreateOptionTable(graphPtr->interp, linePenOptionSpecs); +} + int ConfigureLinePenProc(Graph* graphPtr, Pen* basePtr) { LinePen* lpPtr = (LinePen*)basePtr; @@ -291,20 +316,6 @@ int ConfigureLinePenProc(Graph* graphPtr, Pen* basePtr) return TCL_OK; } -void InitLinePen(Graph* graphPtr, LinePen* penPtr) -{ - penPtr->configProc = ConfigureLinePenProc; - penPtr->destroyProc = DestroyLinePenProc; - - Blt_Ts_InitStyle(penPtr->valueStyle); - penPtr->symbol.bitmap = None; - penPtr->symbol.mask = None; - penPtr->symbol.type = SYMBOL_NONE; - - penPtr->optionTable = - Tk_CreateOptionTable(graphPtr->interp, linePenOptionSpecs); -} - void DestroyLinePenProc(Graph* graphPtr, Pen* basePtr) { LinePen* penPtr = (LinePen*)basePtr; @@ -332,6 +343,10 @@ void DestroyLinePenProc(Graph* graphPtr, Pen* basePtr) } Tk_FreeConfigOptions((char*)penPtr, penPtr->optionTable, graphPtr->tkwin); + + if (penPtr->manageOptions) + if (penPtr->ops) + free(penPtr->ops); } static void DestroySymbol(Display *display, Symbol *symbolPtr) diff --git a/src/bltGrPenLine.h b/src/bltGrPenLine.h index e8eb073..be5cddb 100644 --- a/src/bltGrPenLine.h +++ b/src/bltGrPenLine.h @@ -58,9 +58,25 @@ typedef struct { } Symbol; typedef struct { + int errorBarShow; + int errorBarLineWidth; + int errorBarCapWidth; + XColor* errorBarColor; + + int valueShow; + const char* valueFormat; + TextStyle valueStyle; + + Symbol symbol; + int traceWidth; + Blt_Dashes traceDashes; + XColor* traceColor; + XColor* traceOffColor; +} LinePenOptions; + +typedef struct { const char* name; ClassId classId; - const char* typeId; unsigned int flags; int refCount; Tcl_HashEntry *hashPtr; @@ -68,6 +84,8 @@ typedef struct { PenConfigureProc *configProc; PenDestroyProc *destroyProc; Graph* graphPtr; + void* ops; + int manageOptions; // Symbol attributes Symbol symbol; @@ -94,7 +112,8 @@ typedef struct { extern Tk_ObjCustomOption symbolObjOption; -extern void InitLinePen(Graph* graphPtr, LinePen* penPtr); +extern Pen* CreateLinePen(Graph* graphPtr, const char* penName); +extern void InitLinePen(Graph* graphPtr, LinePen* penPtr, const char* penName); extern int ConfigureLinePenProc(Graph* graphPtr, Pen *basePtr); extern void DestroyLinePenProc(Graph* graphPtr, Pen* basePtr); diff --git a/src/bltGrPenOp.C b/src/bltGrPenOp.C index 0527923..e52eadd 100644 --- a/src/bltGrPenOp.C +++ b/src/bltGrPenOp.C @@ -39,8 +39,6 @@ extern "C" { // Defs -static Pen* CreateBarPen(Graph* graphPtr, const char *penName); -static Pen* CreateLinePen(Graph* graphPtr, const char* penName); static void DestroyPen(Pen* penPtr); static int GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr, Pen **penPtrPtr); @@ -80,7 +78,6 @@ int Blt_CreatePen(Graph* graphPtr, Tcl_Interp* interp, return TCL_ERROR; penPtr->graphPtr = graphPtr; - penPtr->classId = classId; penPtr->hashPtr = hPtr; Tcl_SetHashValue(hPtr, penPtr); @@ -99,7 +96,7 @@ static void DestroyPen(Pen* penPtr) { Graph* graphPtr = penPtr->graphPtr; - (*penPtr->destroyProc) (graphPtr, penPtr); + (*penPtr->destroyProc)(graphPtr, penPtr); if (penPtr->name) free((void*)(penPtr->name)); @@ -380,22 +377,4 @@ static int GetPenFromObj(Tcl_Interp* interp, Graph* graphPtr, Tcl_Obj *objPtr, return TCL_OK; } -static Pen* CreateBarPen(Graph* graphPtr, const char *penName) -{ - BarPen* penPtr = (BarPen*)calloc(1, sizeof(BarPen)); - InitBarPen(graphPtr, penPtr); - penPtr->name = Blt_Strdup(penName); - - return (Pen*)penPtr; -} - -static Pen* CreateLinePen(Graph* graphPtr, const char* penName) -{ - LinePen* penPtr = (LinePen*)calloc(1, sizeof(LinePen)); - InitLinePen(graphPtr, penPtr); - penPtr->name = Blt_Strdup(penName); - penPtr->classId = CID_ELEM_LINE; - - return (Pen*)penPtr; -} |