summaryrefslogtreecommitdiffstats
path: root/tksao/colorbar/colorbarbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'tksao/colorbar/colorbarbase.h')
-rw-r--r--tksao/colorbar/colorbarbase.h200
1 files changed, 200 insertions, 0 deletions
diff --git a/tksao/colorbar/colorbarbase.h b/tksao/colorbar/colorbarbase.h
new file mode 100644
index 0000000..91cea8c
--- /dev/null
+++ b/tksao/colorbar/colorbarbase.h
@@ -0,0 +1,200 @@
+// Copyright (C) 1999-2016
+// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+// For conditions of distribution and use, see copyright notice in "copyright"
+
+#ifndef __colorbarbase_h__
+#define __colorbarbase_h__
+
+#include "widget.h"
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+// Widget ConfigSpecs Defines
+
+#define CONFIGORIENTATION 7
+#define CONFIGSIZE 8
+#define CONFIGFONT 9
+#define CONFIGFONTSTYLE 10
+#define CONFIGFONTSIZE 11
+#define CONFIGNUMERICS 12
+#define CONFIGSPACE 13
+#define CONFIGTICKS 14
+
+// ColorbarBase
+
+class CBGrid;
+class Filter;
+class ColorTag;
+
+struct ColorbarBaseOptions {
+ Tk_Item item; // required by tk
+ int x, y; // Coordinates of positioning point on canvas
+ int width; // widget width
+ int height; // widget height
+ Tk_Anchor anchor; // Where to anchor widget relative to x,y
+ char* cmdName; // Suggested Tcl command name
+
+ char* helvetica; // name of X11 font
+ char* courier; // name of X11 font
+ char* times; // name of X11 font
+
+ Widget* widget; // pointer to widget class
+
+ int orientation; // 0-horizontal, 1-vertical
+ int size;
+
+ char* font;
+ int fontSize;
+ char* fontWeight;
+ char* fontSlant;
+
+ int numerics;
+ int space; // 0-distance (linear), 1-value (AST)
+ int ticks;
+
+ int colors;
+ int minColors;
+ int maxColors;
+ int privateCmap;
+ int privateColors;
+};
+
+class ColorbarBase : public Widget {
+ friend class CBGrid;
+ friend class ColorTag;
+
+ protected:
+ XImage* xmap;
+ unsigned char* colorCells;
+ int colorCount;
+
+ CBGrid* grid;
+
+ int cnt;
+ double* lut;
+
+ int invert;
+
+ char** ticktxt;
+ int tickcnt;
+ int skipcnt;
+
+ private:
+ int initColormap();
+
+ Tk_Font getFont();
+ void lutToText(Tk_Font);
+
+ void renderGrid();
+ void renderGridNumerics();
+ void renderGridAST();
+
+ void ps();
+ void psHV(ostream&, Filter&, int, int);
+ void psGrid();
+ void psGridNumerics();
+ void psGridAST();
+
+#ifdef MAC_OSX_TK
+ void macosxGrid();
+ void macosxGridNumerics();
+ void macosxGridAST();
+#endif
+
+#ifdef __WIN32
+ void win32Grid();
+ void win32GridNumerics();
+ void win32GridAST();
+#endif
+
+ protected:
+ void invalidPixmap();
+
+ int postscriptProc(int); // generate postscript
+ virtual void psHorz(ostream&, Filter&, int, int) =0;
+ virtual void psVert(ostream&, Filter&, int, int) =0;
+
+ virtual void reset() =0;
+
+ void updateColors();
+ virtual void updateColorCells() =0;
+ virtual void updateColorsHorz() =0;
+ virtual void updateColorsVert() =0;
+
+ int updatePixmap(const BBox&);
+
+#ifdef MAC_OSX_TK
+ virtual void macosx(float, int, int, const Vector&, const Vector&) =0;
+#endif
+
+#ifdef __WIN32
+ virtual void win32(float, int, int, const Vector&, const Vector&) =0;
+#endif
+
+ public:
+ ColorbarBase(Tcl_Interp*, Tk_Canvas, Tk_Item*);
+ virtual ~ColorbarBase();
+
+ virtual void adjustCmd(float, float) =0;
+
+ int configure(int, const char* [], int);
+
+ virtual void getBiasCmd() =0;
+ virtual void getColorbarCmd() =0;
+ virtual void getColormapCmd() =0;
+ virtual void getColormapNameCmd(int) =0;
+ virtual void getColormapFileNameCmd(int) =0;
+ virtual void getContrastCmd() =0;
+ virtual void getCurrentFileNameCmd() =0;
+ virtual void getCurrentIDCmd() =0;
+ virtual void getCurrentNameCmd() =0;
+ void getInvertCmd();
+ void getNumericsCmd();
+ virtual void getRGBChannelCmd() =0;
+ void getValueCmd(int,int);
+
+ void invertCmd(int);
+
+ virtual void listIDCmd() {}
+ virtual void listNameCmd() {}
+ virtual void loadCmd(const char*, const char*) {}
+ virtual void loadCmd(const char*, const char*, const char*) {}
+
+ virtual void mapCmd(char*) {}
+ virtual void mapCmd(int) {}
+
+ int parse(istringstream&);
+
+ virtual void saveCmd(const char*) {}
+ virtual void saveCmd(int, const char*) {}
+ virtual void setColorbarCmd(int, float, float, int) {}
+ virtual void setColorbarCmd(float, float, float, float, float, float, int) {}
+ void setColormapLevelCmd();
+ void setColormapLevelCmd(int, double*);
+ virtual void setColormapWindowCmd(char*) {}
+ virtual void setRGBChannelCmd(const char*) {}
+
+ virtual void getTagCmd() {}
+ virtual void getTagCmd(int,int) {}
+ virtual void tagCmd(const char*) {}
+ virtual void tagCmd(int, const Vector&, const char*) {}
+ virtual void tagDeleteCmd() {}
+ virtual void tagDeleteCmd(int,int) {}
+ virtual void tagEditBeginCmd(int,int,const char*) {}
+ virtual void tagEditMotionCmd(int,int) {}
+ virtual void tagEditEndCmd(int,int) {}
+ virtual void tagLoadCmd(const char*) {}
+ virtual void tagSaveCmd(const char*) {}
+
+#ifdef MAC_OSX_TK
+ void macosxPrintCmd();
+#endif
+
+#ifdef __WIN32
+ void win32PrintCmd();
+#endif
+};
+
+#endif
+