00001
00021 #ifndef INC_GRE_LEGENDIMAGESAMPLE_H
00022 #define INC_GRE_LEGENDIMAGESAMPLE_H
00023
00024 #ifndef INC_GRE_LEGEND_H
00025 #include <gre/legend.h>
00026 #endif
00027
00028 #ifndef GENERATING_DOXYGEN_OUTPUT
00029 namespace SPATMOD {
00030 namespace IMAGE {
00031 class STAGE;
00032 }
00033 }
00034 namespace MGD {
00035 class DEVICE;
00036 }
00037 #endif
00038
00039 namespace GRE {
00040
00041 class LAYER_IMAGE;
00042
00043
00044
00046 class LEGEND_IMAGESAMPLE : public GRE::LEGEND {
00047 public:
00048
00049 enum LOCATION {
00050 LOCATION_TopLeft = 0,
00051 LOCATION_TopCenter = 1,
00052 LOCATION_TopRight = 2,
00053 LOCATION_CenterLeft = 3,
00054 LOCATION_Center = 4,
00055 LOCATION_CenterRight = 5,
00056 LOCATION_BottomLeft = 6,
00057 LOCATION_BottomCenter = 7,
00058 LOCATION_BottomRight = 8,
00059 };
00060
00062 class ITEM : public GRE::LEGEND::ITEMBASE {
00063 public:
00065 ITEM (
00066 LEGEND_IMAGESAMPLE& legend,
00067 MGD::DEVICE *& SampleMem,
00068 const MISTRING& label
00069 );
00070
00072 virtual ~ITEM (
00073 );
00074
00075 private:
00076 #ifndef GENERATING_DOXYGEN_OUTPUT
00077 MGD::DEVICE *m_pSampleMem;
00078
00079
00080 virtual void v_Draw (const DRAWCONTEXT& dc, const LRECT2D& samplerect) const;
00081 #ifdef USE_MGUI
00082 virtual void v_TreeViewCustomDraw (GRE::CTRL_TREEVIEW& TreeView, MGUI::CUSTOMDRAW_TREE& CustomDraw);
00083 #endif
00084
00085 ITEM (const ITEM&);
00086 ITEM& operator= (const ITEM&);
00087 #endif // GENERATING_DOXYGEN_OUTPUT
00088 };
00089
00091 explicit LEGEND_IMAGESAMPLE (
00092 LAYER_IMAGE *layer
00093 );
00094
00097 int AddItem (
00098 SPATMOD::IMAGE::STAGE *pStageInput,
00099 const LPOINT2D& center,
00100 const MISTRING& label
00101 );
00102
00105 int AddThumbnail (
00106 SPATMOD::IMAGE::STAGE *pStageInput,
00107 const MISTRING& label
00108 );
00109
00111 void SetItemSize (
00112 INT32 xsize,
00113 INT32 ysize
00114 ) {
00115 if (m_ItemSize.x != xsize || m_ItemSize.y != ysize) {
00116 DeleteAllItems();
00117 m_ItemSize.x = xsize;
00118 m_ItemSize.y = ysize;
00119 }
00120 return;
00121 }
00122
00123 private:
00124 #ifndef GENERATING_DOXYGEN_OUTPUT
00125 LPOINT2D m_ItemSize;
00126
00127 ERRVALUE AddImage (SPATMOD::IMAGE::STAGE *pStageInput, const MISTRING& label);
00128
00129
00130 virtual void v_GetItemSizePixels (LPOINT2D& size) const;
00131
00132 LEGEND_IMAGESAMPLE (const LEGEND_IMAGESAMPLE&);
00133 LEGEND_IMAGESAMPLE& operator= (const LEGEND_IMAGESAMPLE&);
00134 #endif // GENERATING_DOXYGEN_OUTPUT
00135 };
00136
00137
00138 }
00139
00140 #endif // INC_GRE_LEGENDIMAGESAMPLE_H