00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __IFD_RenderDefinition__
00030 #define __IFD_RenderDefinition__
00031
00032 #include "IFD_API.h"
00033 #include <UT/UT_SymbolTable.h>
00034
00035 class IFD_Output;
00036
00037 extern "C" {
00038 DLLEXPORT extern void IFDnewRenderDefinition(void *);
00039 };
00040
00041 class IFD_API IFD_RenderDefinition {
00042 public:
00043 IFD_RenderDefinition(const char *token,
00044 const char *label);
00045 virtual ~IFD_RenderDefinition();
00046
00047 virtual IFD_Output *createOutput() = 0;
00048 bool hasCapability(const char *token);
00049
00050 const char *getToken() { return myToken; }
00051 const char *getLabel() { return myLabel; }
00052
00053 protected:
00054 void addCapability(const char *token);
00055 void removeCapability(const char *token);
00056
00057 private:
00058 UT_SymbolTable myCapabilities;
00059 char *myToken, *myLabel;
00060 };
00061
00062 #endif