summaryrefslogtreecommitdiffstats
path: root/tkblt/generic/tkbltGrAxisOption.C
diff options
context:
space:
mode:
Diffstat (limited to 'tkblt/generic/tkbltGrAxisOption.C')
-rw-r--r--tkblt/generic/tkbltGrAxisOption.C264
1 files changed, 0 insertions, 264 deletions
diff --git a/tkblt/generic/tkbltGrAxisOption.C b/tkblt/generic/tkbltGrAxisOption.C
deleted file mode 100644
index 6f91d99..0000000
--- a/tkblt/generic/tkbltGrAxisOption.C
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- * This code has been modified under the terms listed below and is made
- * available under the same terms.
- */
-
-/*
- * Copyright 1993-2004 George A Howlett.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <stdlib.h>
-
-#include <cmath>
-
-#include "tkbltGraph.h"
-#include "tkbltGrAxis.h"
-#include "tkbltGrAxisOption.h"
-#include "tkbltConfig.h"
-#include "tkbltInt.h"
-
-using namespace Blt;
-
-static Tk_CustomOptionSetProc AxisSetProc;
-static Tk_CustomOptionGetProc AxisGetProc;
-static Tk_CustomOptionFreeProc AxisFreeProc;
-Tk_ObjCustomOption xAxisObjOption =
- {
- "xaxis", AxisSetProc, AxisGetProc, RestoreProc, AxisFreeProc,
- (ClientData)CID_AXIS_X
- };
-Tk_ObjCustomOption yAxisObjOption =
- {
- "yaxis", AxisSetProc, AxisGetProc, RestoreProc, AxisFreeProc,
- (ClientData)CID_AXIS_Y
- };
-
-static int AxisSetProc(ClientData clientData, Tcl_Interp* interp,
- Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec,
- int offset, char* savePtr, int flags)
-{
- Axis** axisPtrPtr = (Axis**)(widgRec + offset);
- *(double*)savePtr = *(double*)axisPtrPtr;
-
- if (!axisPtrPtr)
- return TCL_OK;
-
- Graph* graphPtr = getGraphFromWindowData(tkwin);
-#ifdef _WIN64
- ClassId classId = (ClassId)((long long)clientData);
-#else
- ClassId classId = (ClassId)((long)clientData);
-#endif
-
- Axis *axisPtr;
- if (graphPtr->getAxis(*objPtr, &axisPtr) != TCL_OK)
- return TCL_ERROR;
-
- if (classId != CID_NONE) {
- // Set the axis type on the first use of it.
- if ((axisPtr->refCount_ == 0) || (axisPtr->classId_ == CID_NONE))
- axisPtr->setClass(classId);
-
- else if (axisPtr->classId_ != classId) {
- Tcl_AppendResult(interp, "axis \"", Tcl_GetString(*objPtr),
- "\" is already in use on an opposite ",
- axisPtr->className_, "-axis",
- NULL);
- return TCL_ERROR;
- }
- axisPtr->refCount_++;
- }
-
- *axisPtrPtr = axisPtr;
- return TCL_OK;
-};
-
-static Tcl_Obj* AxisGetProc(ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset)
-{
- Axis* axisPtr = *(Axis**)(widgRec + offset);
- if (!axisPtr)
- return Tcl_NewStringObj("", -1);
-
- return Tcl_NewStringObj(axisPtr->name_, -1);
-};
-
-static void AxisFreeProc(ClientData clientData, Tk_Window tkwin, char *ptr)
-{
- Axis* axisPtr = *(Axis**)ptr;
- if (axisPtr) {
- axisPtr->refCount_--;
- if (axisPtr->refCount_ == 0)
- delete axisPtr;
- }
-}
-
-static Tk_CustomOptionSetProc LimitSetProc;
-static Tk_CustomOptionGetProc LimitGetProc;
-Tk_ObjCustomOption limitObjOption =
- {
- "limit", LimitSetProc, LimitGetProc, NULL, NULL, NULL
- };
-
-static int LimitSetProc(ClientData clientData, Tcl_Interp* interp,
- Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec,
- int offset, char* save, int flags)
-{
- double* limitPtr = (double*)(widgRec + offset);
- const char* string = Tcl_GetString(*objPtr);
- if (!string || !string[0]) {
- *limitPtr = NAN;
- return TCL_OK;
- }
-
- if (Tcl_GetDoubleFromObj(interp, *objPtr, limitPtr) != TCL_OK)
- return TCL_ERROR;
-
- return TCL_OK;
-}
-
-static Tcl_Obj* LimitGetProc(ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset)
-{
- double limit = *(double*)(widgRec + offset);
- Tcl_Obj* objPtr;
-
- if (!isnan(limit))
- objPtr = Tcl_NewDoubleObj(limit);
- else
- objPtr = Tcl_NewStringObj("", -1);
-
- return objPtr;
-}
-
-static Tk_CustomOptionSetProc TicksSetProc;
-static Tk_CustomOptionGetProc TicksGetProc;
-static Tk_CustomOptionFreeProc TicksFreeProc;
-Tk_ObjCustomOption ticksObjOption =
- {
- "ticks", TicksSetProc, TicksGetProc, RestoreProc, TicksFreeProc, NULL
- };
-
-static int TicksSetProc(ClientData clientData, Tcl_Interp* interp,
- Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec,
- int offset, char* savePtr, int flags)
-{
- Ticks** ticksPtrPtr = (Ticks**)(widgRec + offset);
- *(double*)savePtr = *(double*)ticksPtrPtr;
-
- if (!ticksPtrPtr)
- return TCL_OK;
-
- int objc;
- Tcl_Obj** objv;
- if (Tcl_ListObjGetElements(interp, *objPtr, &objc, &objv) != TCL_OK)
- return TCL_ERROR;
-
- Ticks* ticksPtr = NULL;
- if (objc > 0) {
- ticksPtr = new Ticks(objc);
- for (int ii=0; ii<objc; ii++) {
- double value;
- if (Tcl_GetDoubleFromObj(interp, objv[ii], &value) != TCL_OK) {
- delete ticksPtr;
- return TCL_ERROR;
- }
- ticksPtr->values[ii] = value;
- }
- ticksPtr->nTicks = objc;
- }
-
- *ticksPtrPtr = ticksPtr;
-
- return TCL_OK;
-}
-
-static Tcl_Obj* TicksGetProc(ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset)
-{
- Ticks* ticksPtr = *(Ticks**)(widgRec + offset);
-
- if (!ticksPtr)
- return Tcl_NewListObj(0, NULL);
-
- int cnt = ticksPtr->nTicks;
- Tcl_Obj** ll = new Tcl_Obj*[cnt];
- for (int ii = 0; ii<cnt; ii++)
- ll[ii] = Tcl_NewDoubleObj(ticksPtr->values[ii]);
-
- Tcl_Obj* listObjPtr = Tcl_NewListObj(cnt, ll);
- delete [] ll;
-
- return listObjPtr;
-}
-
-static void TicksFreeProc(ClientData clientData, Tk_Window tkwin,
- char *ptr)
-{
- Ticks* ticksPtr = *(Ticks**)ptr;
- delete ticksPtr;
-}
-
-static Tk_CustomOptionSetProc ObjectSetProc;
-static Tk_CustomOptionGetProc ObjectGetProc;
-static Tk_CustomOptionFreeProc ObjectFreeProc;
-Tk_ObjCustomOption objectObjOption =
- {
- "object", ObjectSetProc, ObjectGetProc, RestoreProc, ObjectFreeProc, NULL,
- };
-
-static int ObjectSetProc(ClientData clientData, Tcl_Interp* interp,
- Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec,
- int offset, char* savePtr, int flags)
-{
- Tcl_Obj** objectPtrPtr = (Tcl_Obj**)(widgRec + offset);
- *(double*)savePtr = *(double*)objectPtrPtr;
-
- if (!objectPtrPtr)
- return TCL_OK;
-
- Tcl_IncrRefCount(*objPtr);
- *objectPtrPtr = *objPtr;
-
- return TCL_OK;
-}
-
-static Tcl_Obj* ObjectGetProc(ClientData clientData, Tk_Window tkwin,
- char *widgRec, int offset)
-{
- Tcl_Obj** objectPtrPtr = (Tcl_Obj**)(widgRec + offset);
-
- if (!objectPtrPtr)
- return Tcl_NewObj();
-
- return *objectPtrPtr;
-}
-
-static void ObjectFreeProc(ClientData clientData, Tk_Window tkwin,
- char *ptr)
-{
- Tcl_Obj* objectPtr = *(Tcl_Obj**)ptr;
- if (objectPtr)
- Tcl_DecrRefCount(objectPtr);
-}
-