00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HxImgFunctor_h
00012 #define HxImgFunctor_h
00013
00014 #include "HxStd.h"
00015 #include "HxIoFwd.h"
00016 #include "HxSizes.h"
00017 #include "HxTagList.h"
00018 #include "HxImgFtorKey.h"
00019
00020 class HxImgFtorDescription;
00021
00022
00025 class L_HXIMAGEREP HxImgFunctor
00026 {
00027
00028 public:
00029
00030 HxImgFunctor(const HxImgFtorKey&);
00031 virtual ~HxImgFunctor();
00032
00033 virtual STD_OSTREAM& put(STD_OSTREAM&) const;
00034
00045 virtual HxSizes minimumBorderSize(HxTagList& tags) const;
00046
00047
00051 virtual bool probeOp(HxTagList&) const;
00052
00053
00054
00055 protected:
00056
00057 HxImgFtorDescription* getDescription() const;
00058
00063 HxSizes getBorderSize(
00064 HxTagList& tags,
00065 HxSizes defSize = HxSizes(0, 0, 0)) const;
00066
00067 private:
00068
00069 HxImgFunctor();
00070 HxImgFtorKey _key;
00071 };
00072
00073 inline STD_OSTREAM&
00074 operator<<(STD_OSTREAM& os, const HxImgFunctor& imgFtor)
00075 {
00076 return imgFtor.put(os);
00077 }
00078
00079 #endif