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 #ifndef _SO_WIN_MATERIAL_LIST_H_
00027 #define _SO_WIN_MATERIAL_LIST_H_
00028
00029 #ifdef _WIN32
00030
00031 #else
00032
00033 #include <Inventor/SbBasic.h>
00034 #include <Inventor/misc/SoCallbackList.h>
00035 #include <Inventor/Win/SoWinComponent.h>
00036 #include <Inventor/nodes/SoMaterial.h>
00037
00038
00039 typedef void SoWinMaterialListCB(void *userData, const SoMaterial *mtl);
00040
00042
00043
00044
00045
00047
00048 {
00049 public:
00050
00051 SoWinMaterialList(
00052 SoWidget parent = NULL,
00053 const char *name = NULL,
00054 SbBool buildInsideParent = TRUE,
00055 const char *dir = NULL);
00056 ~SoWinMaterialList();
00057
00058
00059
00060
00061 void addCallback(
00062 SoWinMaterialListCB *f,
00063 void *userData = NULL)
00064 { callbackList->addCallback((SoCallbackListCB *) f, userData);}
00065
00066 void removeCallback(
00067 SoWinMaterialListCB *f,
00068 void *userData = NULL)
00069 { callbackList->removeCallback((SoCallbackListCB *) f, userData); }
00070
00071 private:
00072
00073
00074
00075
00076 SoEXTENDER
00077 SoWinMaterialList(
00078 SoWidget parent,
00079 const char *name,
00080 SbBool buildInsideParent,
00081 const char *dir,
00082 SbBool buildNow);
00083
00084
00085 virtual SbString getDefaultWidgetName() const;
00086 virtual SbString getDefaultTitle() const;
00087 virtual SbString getDefaultIconTitle() const;
00088
00089
00090 SoWidget buildWidget(SoWidget parent);
00091 SoWidget buildPulldownMenu(SoWidget parent);
00092
00093 private:
00094 char *materialDir;
00095 SoCallbackList *callbackList;
00096 SbPList menuItems;
00097 SbPList mtlPalettes;
00098 SbPList palette;
00099 int curPalette;
00100 SoWidget mtlList;
00101
00102
00103 void fillInMaterialList();
00104 SbBool setupPalettes();
00105
00106
00107 static void menuPick(SoWidget, int, XtPointer);
00108 static void listPick(SoWidget, SoWinMaterialList *, XtPointer);
00109
00110
00111 void constructorCommon(const char *dir, SbBool buildNow);
00112 };
00113
00114 #endif //_WIN32
00115
00116 #endif // _SO_WIN_MATERIAL_LIST_H_
00117
00118
00119