00001 /********************************************************************** 00002 *< 00003 FILE: ILayerProperties.h 00004 00005 DESCRIPTION: Declare the function published interface to layers 00006 note: This interface is a facade over disparate property sets on layers: 00007 00008 1) Node-based properties: 00009 it currently spans the traditional INode properties and the GI properties. 00010 This is a convenience interface and provides only control of "coarse" properties: 00011 those access iconically in the layer UI. 00012 00013 2) Additional properties unique to layers: Current. 00014 00015 3) membership 00016 00017 CREATED BY: John Hutchinson 00018 00019 HISTORY: created Aug 6, 2001 00020 add Aug 9, 2001 add interface for layermanager 00021 add Sept 3, 2001 adding properties for color and GIExclusion 00022 00023 *> Copyright (c) 2001, All Rights Reserved. 00024 **********************************************************************/ 00025 #pragma once 00026 00027 #include "ifnpub.h" 00028 00029 // The interface ID for class ILayerProperties 00030 #define LAYERPROPERTIES_INTERFACE Interface_ID(0x202e0798, 0x3589129b) 00031 00032 // Provides access to a layer's properties 00033 class ILayerProperties : public FPMixinInterface 00034 { 00035 public: 00036 //membership 00037 virtual void addNode (INode *) = 0; 00038 virtual void select (BOOL) = 0; 00039 00040 //properties 00041 virtual BOOL getCurrent (void) = 0; 00042 //The semantics of setCurrent are special, 00043 //You can set it to be current, but can't set it _not_ current 00044 virtual void setCurrent (BOOL) = 0; 00045 00046 virtual BOOL getOn (void) = 0; 00047 virtual void setOn (BOOL) = 0; 00048 virtual BOOL getLock (void) = 0; 00049 virtual void setLock (BOOL) = 0; 00050 00051 //JH 9.03.01 00052 virtual Color getWireColor(void) = 0; 00053 virtual void setWireColor(Color) = 0; 00054 virtual BOOL getGIIsExcluded() const = 0; 00055 virtual void setGIIsExcluded(BOOL) = 0; 00056 00057 //JH 09.28.01 00058 virtual MCHAR* getName (void) = 0; 00059 // not a property, per se, since it can fail due to uniqueness of layer names 00060 virtual BOOL setName (MCHAR *) = 0; 00061 00064 virtual BOOL Nodes(Tab<INode*>& layerNodes) = 0; 00065 }; 00066 00067 00068 #define LAYERMANAGER_INTERFACE Interface_ID(0x77ff1709, 0x19186e96) 00069 // Provides access to the layer manager 00070 class IFPLayerManager : public FPStaticInterface 00071 { 00072 public: 00073 //access to the layers 00074 virtual ILayerProperties* getLayer (int which) = 0; 00075 virtual ILayerProperties* newLayer (void) = 0; 00076 virtual BOOL deleteLayer (MCHAR*) = 0; 00077 00078 //JH 09.28.01 00079 //overloads for access by name 00080 virtual ILayerProperties* getLayer (MCHAR *) = 0; 00081 virtual ILayerProperties* newLayer (MCHAR *) = 0; 00082 00083 // 00084 //read only properties 00085 virtual int getCount (void) = 0; 00086 virtual ILayerProperties* getCurrent (void) = 0; 00087 //TODO allow purging empty layers 00088 }; 00089 00090 00091 // The interface ID for class ILayerProperties 00092 #define LAYERDISPLAYPROPERTIES_INTERFACE Interface_ID(0x202e0f11, 0x35892211) 00093 00094 // Provides access to a layer's Max 10 display properties 00095 class ILayerDisplayProperties : public FPMixinInterface 00096 { 00097 public: 00098 //membership 00100 virtual BOOL getNeverDegrade (void) = 0; 00103 virtual void setNeverDegrade (BOOL) = 0; 00104 }; 00105 00106