///////////////////////////////////////////////////////////// // CINEMA 4D SDK // ///////////////////////////////////////////////////////////// // (c) MAXON Computer GmbH, all rights reserved // ///////////////////////////////////////////////////////////// #ifndef _CUSTOMGUI_IN_EXCLUDE_H_ #define _CUSTOMGUI_IN_EXCLUDE_H_ #include "customgui_base.h" #include "c4d_basecontainer.h" #include "c4d_gui.h" #include "c4d_customdatatype.h" class BaseDocument; #define CUSTOMGUI_INEXCLUDE_LIST 1009290 #define CUSTOMDATATYPE_INEXCLUDE_LIST 1009290 #define IN_EXCLUDE_DATA_SELECTION 10 // Bool - true, if IN_EXCLUDE_FLAG_SEND_SELCHANGE_MSG is set // and the object is selected in the list #define IN_EXCLUDE_FLAG_NUM_FLAGS 2000 // Int32 - the number of different flags #define IN_EXCLUDE_FLAG_INIT_STATE 2065 // Int32 - the initial state of a new inserted element #define IN_EXCLUDE_FLAG_SEND_SELCHANGE_MSG 2066 // Bool - true, if the selection state should be stored // in the object's data container #define IN_EXCLUDE_FLAG_IMAGE_01_ON 2001 // String - image of "On" state for the column #define IN_EXCLUDE_FLAG_IMAGE_01_OFF 2002 // String - image of "Off" state for the column #define IN_EXCLUDE_FLAG_IMAGE_02_ON 2003 #define IN_EXCLUDE_FLAG_IMAGE_02_OFF 2004 #define IN_EXCLUDE_FLAG_IMAGE_03_ON 2005 #define IN_EXCLUDE_FLAG_IMAGE_03_OFF 2006 #define IN_EXCLUDE_FLAG_IMAGE_04_ON 2007 #define IN_EXCLUDE_FLAG_IMAGE_04_OFF 2008 #define IN_EXCLUDE_FLAG_IMAGE_05_ON 2009 #define IN_EXCLUDE_FLAG_IMAGE_05_OFF 2010 #define IN_EXCLUDE_FLAG_IMAGE_06_ON 2011 #define IN_EXCLUDE_FLAG_IMAGE_06_OFF 2012 #define IN_EXCLUDE_FLAG_IMAGE_07_ON 2013 #define IN_EXCLUDE_FLAG_IMAGE_07_OFF 2014 #define IN_EXCLUDE_FLAG_IMAGE_08_ON 2015 #define IN_EXCLUDE_FLAG_IMAGE_08_OFF 2016 #define IN_EXCLUDE_FLAG_IMAGE_09_ON 2017 #define IN_EXCLUDE_FLAG_IMAGE_09_OFF 2018 #define IN_EXCLUDE_FLAG_IMAGE_10_ON 2019 #define IN_EXCLUDE_FLAG_IMAGE_10_OFF 2020 #define IN_EXCLUDE_FLAG_IMAGE_11_ON 2021 #define IN_EXCLUDE_FLAG_IMAGE_11_OFF 2022 #define IN_EXCLUDE_FLAG_IMAGE_12_ON 2023 #define IN_EXCLUDE_FLAG_IMAGE_12_OFF 2024 #define IN_EXCLUDE_FLAG_IMAGE_13_ON 2025 #define IN_EXCLUDE_FLAG_IMAGE_13_OFF 2026 #define IN_EXCLUDE_FLAG_IMAGE_14_ON 2027 #define IN_EXCLUDE_FLAG_IMAGE_14_OFF 2028 #define IN_EXCLUDE_FLAG_IMAGE_15_ON 2029 #define IN_EXCLUDE_FLAG_IMAGE_15_OFF 2030 #define IN_EXCLUDE_FLAG_IMAGE_16_ON 2031 #define IN_EXCLUDE_FLAG_IMAGE_16_OFF 2032 #define IN_EXCLUDE_FLAG_IMAGE_17_ON 2033 #define IN_EXCLUDE_FLAG_IMAGE_17_OFF 2034 #define IN_EXCLUDE_FLAG_IMAGE_18_ON 2035 #define IN_EXCLUDE_FLAG_IMAGE_18_OFF 2036 #define IN_EXCLUDE_FLAG_IMAGE_19_ON 2037 #define IN_EXCLUDE_FLAG_IMAGE_19_OFF 2038 #define IN_EXCLUDE_FLAG_IMAGE_20_ON 2039 #define IN_EXCLUDE_FLAG_IMAGE_20_OFF 2040 #define IN_EXCLUDE_FLAG_IMAGE_21_ON 2041 #define IN_EXCLUDE_FLAG_IMAGE_21_OFF 2042 #define IN_EXCLUDE_FLAG_IMAGE_22_ON 2043 #define IN_EXCLUDE_FLAG_IMAGE_22_OFF 2044 #define IN_EXCLUDE_FLAG_IMAGE_23_ON 2045 #define IN_EXCLUDE_FLAG_IMAGE_23_OFF 2046 #define IN_EXCLUDE_FLAG_IMAGE_24_ON 2047 #define IN_EXCLUDE_FLAG_IMAGE_24_OFF 2048 #define IN_EXCLUDE_FLAG_IMAGE_25_ON 2049 #define IN_EXCLUDE_FLAG_IMAGE_25_OFF 2050 #define IN_EXCLUDE_FLAG_IMAGE_26_ON 2051 #define IN_EXCLUDE_FLAG_IMAGE_26_OFF 2052 #define IN_EXCLUDE_FLAG_IMAGE_27_ON 2053 #define IN_EXCLUDE_FLAG_IMAGE_27_OFF 2054 #define IN_EXCLUDE_FLAG_IMAGE_28_ON 2055 #define IN_EXCLUDE_FLAG_IMAGE_28_OFF 2056 #define IN_EXCLUDE_FLAG_IMAGE_29_ON 2057 #define IN_EXCLUDE_FLAG_IMAGE_29_OFF 2058 #define IN_EXCLUDE_FLAG_IMAGE_30_ON 2059 #define IN_EXCLUDE_FLAG_IMAGE_30_OFF 2060 #define IN_EXCLUDE_FLAG_IMAGE_31_ON 2061 #define IN_EXCLUDE_FLAG_IMAGE_31_OFF 2062 #define IN_EXCLUDE_FLAG_IMAGE_32_ON 2063 #define IN_EXCLUDE_FLAG_IMAGE_32_OFF 2064 class InclusionTable; class InExcludeData : public CustomDataType { private: InExcludeData(); ~InExcludeData(); public: Bool InsertObject(BaseList2D* pObject, Int32 lFlags); Int32 GetObjectIndex(BaseDocument *doc, BaseList2D* pObject) const; Bool DeleteObject(BaseDocument *doc, BaseList2D* pObject) { return DeleteObject(GetObjectIndex(doc,pObject)); } Int32 GetFlags(Int32 lIndex) const; void SetFlags(Int32 lIndex, Int32 lFlags); Int32 GetFlags(BaseDocument *doc, BaseList2D* pObject) const { return GetFlags(GetObjectIndex(doc,pObject)); } BaseContainer* GetData(Int32 lIndex) const; BaseContainer* GetData(BaseDocument *doc, BaseList2D* pObject) const { return GetData(GetObjectIndex(doc, pObject)); } BaseList2D* ObjectFromIndex(BaseDocument *doc, Int32 lIndex) const; // returns a table that contains all included objects. Delete the list by calling FreeInclusionTable(table) // hierarchy_bit starts at 0 InclusionTable *BuildInclusionTable(BaseDocument *doc, Int32 hierarchy_bit = NOTOK); Bool DeleteObject(Int32 lIndex); Int32 GetObjectCount() const; }; class InclusionTable { private: InclusionTable(); ~InclusionTable(); public: Bool Check(BaseList2D *op); Bool Check(BaseList2D *op, Int32 &flags); Int32 GetObjectCount(); BaseList2D* GetObject(Int32 lIndex); }; void FreeInclusionTable(InclusionTable*& pTable); class InExcludeCustomGui : public BaseCustomGui { private: InExcludeCustomGui(); ~InExcludeCustomGui(); public: }; // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF #ifndef _INTERNAL_DEF_ class iInExcludeCustomGui : public iBaseCustomGui { iInExcludeCustomGui(const BaseContainer &settings,CUSTOMGUIPLUGIN *plugin) : iBaseCustomGui(settings,plugin) { } }; class iIncludeExcludeData {}; class iInclusionTable {}; #else class iInExcludeCustomGui; class iIncludeExcludeData; class iInclusionTable; #endif struct CustomGuiInExcludeLib : public BaseCustomGuiLib { Bool (iIncludeExcludeData::*InsertObject)(BaseList2D* pObject, Int32 lFlags); Int32 (iIncludeExcludeData::*GetObjectIndex)(BaseDocument *doc, BaseList2D* pObject); Bool (iIncludeExcludeData::*DeleteObject)(Int32 lIndex); Int32 (iIncludeExcludeData::*GetObjectCount)(); Int32 (iIncludeExcludeData::*GetFlags)(Int32 lIndex); BaseList2D* (iIncludeExcludeData::*ObjectFromIndex)(BaseDocument *doc, Int32 lIndex); InclusionTable* (iIncludeExcludeData::*BuildInclusionTable)(BaseDocument *doc, Int32 hierarchy_bit); Bool (iInclusionTable::*Check)(BaseList2D *op); Int32 (iInclusionTable::*GetObjectCountT)(); BaseList2D* (iInclusionTable::*GetObject)(Int32 lIndex); void (*LIB_FreeInclusionTable)(iInclusionTable *pTable); BaseContainer* (iIncludeExcludeData::*GetData)(Int32 lIndex); Bool (iInclusionTable::*CheckFlags)(BaseList2D *op, Int32 &f); void (iIncludeExcludeData::*SetFlags)(Int32 lIndex, Int32 lFlags); }; // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF // INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF -- INTERNAL STUFF #endif // _CUSTOMGUI_IN_EXCLUDE_H_