本篇介绍属性服务第一部分。
四、属性服务
该服务主要提供处理过滤器中被使用的参数的功能。结构体定义如下:
typedef struct _TriglavPlugInPropertyService {
TriglavPlugInPropertyCreateProc createProc;
TriglavPlugInPropertyRetainProc retainProc;
TriglavPlugInPropertyReleaseProc releaseProc;
TriglavPlugInPropertyAddItemProc addItemProc;
TriglavPlugInPropertySetBooleanValueProc setBooleanValueProc;
TriglavPlugInPropertyGetBooleanValueProc getBooleanValueProc;
TriglavPlugInPropertySetBooleanDefaultValueProc setBooleanDefaultValueProc;
TriglavPlugInPropertyGetBooleanDefaultValueProc getBooleanDefaultValueProc;
TriglavPlugInPropertySetIntegerValueProc setIntegerValueProc;
TriglavPlugInPropertyGetIntegerValueProc getIntegerValueProc;
TriglavPlugInPropertySetIntegerDefaultValueProc setIntegerDefaultValueProc;
TriglavPlugInPropertyGetIntegerDefaultValueProc getIntegerDefaultValueProc;
TriglavPlugInPropertySetIntegerMinValueProc setIntegerMinValueProc;
TriglavPlugInPropertyGetIntegerMinValueProc getIntegerMinValueProc;
TriglavPlugInPropertySetIntegerMaxValueProc setIntegerMaxValueProc;
TriglavPlugInPropertyGetIntegerMaxValueProc getIntegerMaxValueProc;
TriglavPlugInPropertySetDecimalValueProc setDecimalValueProc;
TriglavPlugInPropertyGetDecimalValueProc getDecimalValueProc;
TriglavPlugInPropertySetDecimalDefaultValueProc setDecimalDefaultValueProc;
TriglavPlugInPropertyGetDecimalDefaultValueProc getDecimalDefaultValueProc;
TriglavPlugInPropertySetDecimalMinValueProc setDecimalMinValueProc;
TriglavPlugInPropertyGetDecimalMinValueProc getDecimalMinValueProc;
TriglavPlugInPropertySetDecimalMaxValueProc setDecimalMaxValueProc;
TriglavPlugInPropertyGetDecimalMaxValueProc getDecimalMaxValueProc;
} TriglavPlugInPropertyService;
1. 创建一个属性对象,不需要时需手动调用函数 releaceProc() 销毁。
/**
* propertyObject: 属性对象
**/
TRIGLAV_PLUGIN_API *createProc(
TriglavPlugInPropertyObject* propertyObject);
2. 销毁属性对象
/**
* propertyObject: 属性对象
**/
TRIGLAV_PLUGIN_API *releaceProc(
TriglavPlugInPropertyObject* propertyObject);
3. 将项目添加导致到指定的属性对象
/**
* propertyObject: 属性对象
* itemKey: 项目键
* valueType: 值类型
* valueKind: 值种类
* inputKind: 输入种类
* caption: 标题
* accessKey: 访问密钥
**/
TRIGLAV_PLUGIN_API *addItemProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt valueType,
const TriglavPlugInInt valueKind,
const TriglavPlugInInt inputKind,
const TriglavPlugInStringObject caption,
const TriglavPlugInChar accessKey);
其中 valueType、valueKind 和 inputKind 分别从以下常量中获取:
// value type
#define kTriglavPlugInPropertyValueTypeVoid (0x00)
#define kTriglavPlugInPropertyValueTypeBoolean (0x01)
#define kTriglavPlugInPropertyValueTypeEnumeration (0x02)
#define kTriglavPlugInPropertyValueTypeInteger (0x11)
#define kTriglavPlugInPropertyValueTypeDecimal (0x12)
#define kTriglavPlugInPropertyValueTypePoint (0x21)
#define kTriglavPlugInPropertyValueTypeString (0x31)
// value kind
#define kTriglavPlugInPropertyValueKindDefault (0x11)
#define kTriglavPlugInPropertyValueKindPixel (0x21)
// input kind
#define kTriglavPlugInPropertyInputKindHide (0x10)
#define kTriglavPlugInPropertyInputKindDefault (0x11)
#define kTriglavPlugInPropertyInputKindPushButton (0x21)
#define kTriglavPlugInPropertyInputKindCanvas (0x31)
4. 对指定属性对象的指定 itemKey 设定真值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 真值
**/
TRIGLAV_PLUGIN_API *setBooleanValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInBool value);
5. 获取指定属性对象的指定 itemKey 的真值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 真值
**/
TRIGLAV_PLUGIN_API *getBooleanValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInBool* value);
6. 对指定属性对象的指定 itemKey 设定默认真值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认真值
**/
TRIGLAV_PLUGIN_API *setBooleanDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInBool defaultValue);
7. 获取指定属性对象的指定 itemKey 的默认真值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认真值
**/
TRIGLAV_PLUGIN_API *getBooleanDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInBool* defaultValue);
8. 对指定属性对象的指定 itemKey 设置整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 整数值
**/
TRIGLAV_PLUGIN_API *setIntegerValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt value);
9. 获取指定属性对象的指定 itemKey 的整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 整数值
**/
TRIGLAV_PLUGIN_API *getIntegerValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* value);
10. 对指定属性对象的指定 itemKey 设置默认整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认整数值
**/
TRIGLAV_PLUGIN_API *setIntegerDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt defaultValue);
11. 获取指定属性对象的指定 itemKey 的默认整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认整数值
**/
TRIGLAV_PLUGIN_API *getIntegerDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* defaultValue);
12. 对指定属性对象的指定 itemKey 设置最小整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小整数值
**/
TRIGLAV_PLUGIN_API *setIntegerMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt minValue);
13. 获取指定属性对象的指定 itemKey 的最小整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小整数值
**/
TRIGLAV_PLUGIN_API *getIntegerMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* minValue);
14. 对指定属性对象的指定 itemKey 设置最大整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大整数值
**/
TRIGLAV_PLUGIN_API *setIntegerMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInInt maxValue);
15. 获取指定属性对象的指定 itemKey 的最大整数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大整数值
**/
TRIGLAV_PLUGIN_API *getIntegerMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInInt* maxValue);
16. 对指定属性对象的指定 itemKey 设置小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 小数值
**/
TRIGLAV_PLUGIN_API *setDecimalValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInDouble value);
17. 获取指定属性对象的指定 itemKey 的小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* value: 小数值
**/
TRIGLAV_PLUGIN_API *getDecimalValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInDouble* value);
18. 对指定属性对象的指定 itemKey 设置默认小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认小数值
**/
TRIGLAV_PLUGIN_API *setDecimalDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInDouble defaultValue);
19. 获取指定属性对象的指定 itemKey 的默认小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* defaultValue: 默认小数值
**/
TRIGLAV_PLUGIN_API *getDecimalDefaultValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInDouble* defaultValue);
20. 对指定属性对象的指定 itemKey 设置最小小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小小数值
**/
TRIGLAV_PLUGIN_API *setDecimalMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInDouble minValue);
21. 获取指定属性对象的指定 itemKey 的最小小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* minValue: 最小小数值
**/
TRIGLAV_PLUGIN_API *getDecimalMinValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInDouble* minValue);
20. 对指定属性对象的指定 itemKey 设置最大小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大小数值
**/
TRIGLAV_PLUGIN_API *setDecimalMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
const TriglavPlugInDouble maxValue);
21. 获取指定属性对象的指定 itemKey 的最大小数值
/**
* propertyObject: 属性对象
* itemKey: 项目键
* maxValue: 最大小数值
**/
TRIGLAV_PLUGIN_API *getDecimalMaxValueProc(
TriglavPlugInPropertyObject* propertyObject,
const TriglavPlugInInt itemKey,
TriglavPlugInDouble* maxValue);
以上就是过滤器中使用参数的部分 api,下一篇将介绍剩余部分。