AILayerSuite
每个图层都包含一组对象,可以包含子图层。所有文档都至少以一个图层开头,用户或插件可以向其添加任意数量的新图层。图层是图稿树的容器; 用于AIArtSuite::GetFirstArtOfLayer()获取属于图层的Art对象组。
除了包含图稿之外,图层还有一个名称,一种颜色(用于表示选定的art),以及指示其是可见,可编辑还是已锁定,可打印以及是否将放置的Art显示为灰色的状态标志。图层引用是不透明的; 使用此套件中的函数来获取和设置图层属性。
多个图层属性会影响图层上的图稿是否可编辑。通常,不能选择不可编辑图层上的对象,因此无需检查对当前选择进行操作的插件。但是,在迭代图层或图稿时,请GetLayerEditable()在尝试对图稿进行任何更改之前调用每个图层。
可以将图层指定为模板图层,其中包含用于指导文档图稿构造的模板图稿。例如,模板可能包含正在跟踪的图像。永远不会打印模板图层或将其导出为最终格式的文件格式。
有四个与图层关联的通知程序:
kAICurrentLayerNotifier
kAILayerDeletionNotifier
kAILayerSetNotifier
kAILayerOptionsNotifier
使用SPBasicSuite::AcquireSuite()常量kAILayerSuite和使用获取此套件kAILayerVersion。
注册声明
//xxxSuites.h
#include <AILayer.h>
extern "C" AILayerSuite\* sAILayer;
//xxxSuites.cpp
extern "C"{
AILayerSuite\* sAILayer = NULL;
}
ImportSuite gImportSuites[] = {
IMPORT_TEXT_SUITES
kAILayerSuite, kAILayerSuiteVersion, &sAILayer,
nil, 0, nil
};
方法
- AIAPI AIErr(* CountLayers)(ai :: int32 * count)
获取当前文档图层列表中的顶级图层数。 - AIAPI AIErr(* GetNthLayer)(ai :: int32 n,AILayerHandle *layer)
从当前文档中按索引获得顶级图层。 - AIAPI AIErr(* GetCurrentLayer)(AILayerHandle *layer)
获得当前文档中当前图层的引用。 - AIAPI AIErr(* SetCurrentLayer)(AILayerHandle layer)
使图层最新。 - AIAPI AIErr(* GetFirstLayer)(AILayerHandle * first)
获得当前文档图层列表的最顶层。