123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- /**********************************************************************
- *<
- FILE: IParamM.h
- DESCRIPTION: Parameter Maps
- CREATED BY: Rolf Berteig
- HISTORY: created 10/10/95
- *> Copyright (c) 1994, All Rights Reserved.
- **********************************************************************/
- #ifndef __IPARAMM__
- #define __IPARAMM__
- class IParamMap;
- class IRendParams;
- // If custom handling of controls needs to be done, ParameterMap
- // client can't implement one of these and set is as the ParameterMap's
- // user callback.
- class ParamMapUserDlgProc {
- public:
- virtual BOOL DlgProc(TimeValue t,IParamMap *map,HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)=0;
- virtual void DeleteThis()=0;
- };
- // Return this from DlgProc to get the viewports redrawn.
- #define REDRAW_VIEWS 2
- class IParamMap {
- public:
- // Mark the UI as needing to be updated.
- virtual void Invalidate()=0;
-
- // Swaps the existing parameter block with a new one and updates UI.
- virtual void SetParamBlock(IParamArray *pb)=0;
- // The given proc will be called _after_ default processing is done.
- // The callback can then apply constraints to controls.
- // Note that if the proc is non-NULL when the ParamMap is deleted
- // its DeleteThis() method will be called.
- virtual void SetUserDlgProc(ParamMapUserDlgProc *proc=NULL)=0;
- // Changes a map entry to refer to a different item in the parameter block.
- virtual void SetPBlockIndex(int mapIndex, int blockIndex)=0;
- // Access the dialog window.
- virtual HWND GetHWnd()=0;
- // Access the parameter block
- virtual IParamArray *GetParamBlock()=0;
- };
- enum ControlType {
- TYPE_SPINNER,
- TYPE_RADIO,
- TYPE_SINGLECHEKBOX,
- TYPE_MULTICHEKBOX,
- TYPE_COLORSWATCH,
- };
- // Giving this value for scale specifies autoscale
- #define SPIN_AUTOSCALE -1.0f
- class ParamUIDesc {
- public:
- // Float or int controlled by a single spinner
- CoreExport ParamUIDesc(
- int index,EditSpinnerType spinType,int idEdit,int idSpin,
- float lowLim,float highLim,float scale,ParamDimension *dim=defaultDim);
- // int controlelled by n radio buttons
- // vals[i] represents the value if ctrlIDs[i] is checked.
- // if vals=NULL then ctrlIDs[i] represents a value of i.
- //
- // OR
- //
- // int controlled by multiple check boxes where each
- // check boxes controlls a single bit.
- // vals[i] specifies which bit ctrlIds[i] controls.
- // If vals=NULL ctrlIDs[i] controls the ith bit.
- CoreExport ParamUIDesc(
- int index,ControlType type,int *ctrlIDs,int count,int *vals=NULL);
- // int controlled by a single check box (BOOL)
- // or Point3 controlled by a color swatch.
- CoreExport ParamUIDesc(int index,ControlType type,int id);
- // Point3 controlled by 3 spinners
- CoreExport ParamUIDesc(int index,
- EditSpinnerType spinType,
- int idEdit1,int idSpin1,
- int idEdit2,int idSpin2,
- int idEdit3,int idSpin3,
- float lowLim,float highLim,float scale,
- ParamDimension *dim=defaultDim);
-
-
- int pbIndex;
- ParamType ptype;
- ControlType ctype;
- int id[6];
- int *ids;
- int *vals;
- int count;
- EditSpinnerType spinType;
- float lowLim;
- float highLim;
- float scale;
- ParamDimension *dim;
- };
- // Creates a parameter map to handle the display of parameters in the command panal.
- //
- // This will add a rollup page to the command panel.
- // DestroyCPParamMap().
- //
- CoreExport IParamMap *CreateCPParamMap(
- ParamUIDesc *desc,int count,
- IParamArray *pb,
- Interface *ip,
- HINSTANCE hInst,
- TCHAR *dlgTemplate,
- TCHAR *title,
- DWORD flags);
- CoreExport void DestroyCPParamMap(IParamMap *m);
- // Creates a parameter map that will handle a parameter block in a modeless
- // dialog where time does not change and the viewport is not redrawn.
- // Note that there is no need to destroy it. It executes the dialog and then
- // destorys itself. Returns TRUE if the user selected OK, FALSE otherwise.
- CoreExport BOOL CreateModalParamMap(
- ParamUIDesc *desc,int count,
- IParamArray *pb,
- TimeValue t,
- HINSTANCE hInst,
- TCHAR *dlgTemplate,
- HWND hParent,
- ParamMapUserDlgProc *proc=NULL);
- // Creates a parameter map to handle the display of render parameters or
- // atmospheric plug-in parameters.
- CoreExport IParamMap *CreateRParamMap(
- ParamUIDesc *desc,int count,
- IParamArray *pb,
- IRendParams *ip,
- HINSTANCE hInst,
- TCHAR *dlgTemplate,
- TCHAR *title,
- DWORD flags);
- CoreExport void DestroyRParamMap(IParamMap *m);
- #endif // __IPARAMM__
|