ILayerProperties.h

Go to the documentation of this file.
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