diff options
Diffstat (limited to 'tksao/frame/composite.h')
-rw-r--r-- | tksao/frame/composite.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/tksao/frame/composite.h b/tksao/frame/composite.h new file mode 100644 index 0000000..aa4e4f8 --- /dev/null +++ b/tksao/frame/composite.h @@ -0,0 +1,67 @@ +// Copyright (C) 1999-2016 +// Smithsonian Astrophysical Observatory, Cambridge, MA, USA +// For conditions of distribution and use, see copyright notice in "copyright" + +#ifndef __composite_h__ +#define __composite_h__ + +#include "marker.h" +#include "list.h" + +class Composite : public Marker { + private: + List<Marker> members; + int global; + + void renderX(Drawable, Coord::InternalSystem, RenderMode) {} + void renderPS(int mode) {} +#ifdef MAC_OSX_TK + void renderMACOSX() {} +#endif +#ifdef __WIN32 + void renderWIN32() {} +#endif + +protected: + void updateHandles(); + +public: + Composite(const Composite&); + Composite(Base* p, const Vector& ctr, + double ang, int gl, + const char* clr, int* dsh, + int wth, const char* fnt, const char* txt, + unsigned short prop, const char* cmt, + const List<Tag>& tg, const List<CallBack>& cb); + + Marker* dup() {return new Composite(*this);} + + void x11(Drawable, Coord::InternalSystem, int, RenderMode, HandleMode); + void ps(int,int); +#ifdef MAC_OSX_TK + void macosx(int); +#endif +#ifdef __WIN32 + void win32(int); +#endif + + void updateCoords(const Matrix&); + int isIn(const Vector& v); + + void append(Marker*); + Marker* extract(); + + void setGlobal(int w) {global = w ? 1 : 0;} + int getGlobal() {return global;} + + void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int); + void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat) {} + void listCiao(ostream&, Coord::CoordSystem, int); + void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int); + void listSAOimage(ostream&, int); + void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int); + void listXY(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int); + +}; + +#endif |