IPFActionListSet.h

Go to the documentation of this file.
00001 
00007 /**********************************************************************
00008  *<
00009     CREATED BY: Oleg Bayborodin
00010 
00011     HISTORY: created 11-09-01
00012 
00013  *> Copyright (c) 2001, All Rights Reserved.
00014  **********************************************************************/
00015 
00016 #pragma once
00017 
00018 #include "PFExport.h"
00019 #include "..\ifnpub.h"
00020 #include "..\object.h"
00021 
00022 PFExport Object* GetPFObject(Object* obj);
00023 // interface ID
00024 #define PFACTIONLISTSET_INTERFACE Interface_ID(0x7216b6f, 0x634253c5) 
00025 #define GetPFActionListSetInterface(obj) ((IPFActionListSet*)((GetPFObject(obj))->GetInterface(PFACTIONLISTSET_INTERFACE))) 
00026 
00027 class IPFActionListSet : public FPMixinInterface
00028 {
00029 public:
00030     // function IDs
00031     enum {  kGetNumActionLists, kGetActionList,     kAppendActionList,
00032             kInsertActionList,  kRemoveActionList,  kHasActionList,
00033             kIsActionList
00034     }; 
00035 
00036     // Function Map for Function Publish System 
00037     //***********************************
00038     BEGIN_FUNCTION_MAP
00039 
00040     FN_0(   kGetNumActionLists, TYPE_INT,   NumActionLists  );
00041     FN_1(   kGetActionList,     TYPE_INODE, GetActionList,      TYPE_INDEX);
00042     FN_1(   kAppendActionList,  TYPE_bool,  AppendActionList,   TYPE_INODE);
00043     FN_2(   kInsertActionList,  TYPE_bool,  InsertActionList,   TYPE_INODE, TYPE_INDEX);
00044     FN_1(   kRemoveActionList,  TYPE_bool,  RemoveActionList,   TYPE_INDEX);
00045     FN_2(   kHasActionList,     TYPE_bool,  HasActionList,      TYPE_INODE, TYPE_INDEX_BR);
00046     FN_1(   kIsActionList,      TYPE_bool,  IsActionList,       TYPE_INODE);
00047 
00048     END_FUNCTION_MAP
00049 
00050     // must implement GetDescByID method !
00051     FPInterfaceDesc* GetDesc() { return GetDescByID(PFACTIONLISTSET_INTERFACE); }
00052     //End of Function Publishing system code 
00053     //***********************************
00054 
00062     virtual int     NumActionLists() const = 0;
00063 
00067     virtual INode*  GetActionList(int index) const = 0;
00068 
00072     virtual bool    AppendActionList(INode* alist) = 0;
00073 
00077     virtual bool    InsertActionList(INode* alist, int indexAt) = 0;
00078 
00082     virtual bool    RemoveActionList(int index) = 0;
00083 
00087     virtual bool    HasActionList(INode* alist, int& index) const = 0;
00088 
00092     PFExport static bool IsActionList(INode* alist);
00093 };
00094 
00095 inline IPFActionListSet* PFActionListSetInterface(Object* obj) {
00096     return ((obj == NULL) ? NULL : GetPFActionListSetInterface(obj));
00097 };
00098 
00099 inline IPFActionListSet* PFActionListSetInterface(INode* node) {
00100     return ((node == NULL) ? NULL : PFActionListSetInterface(node->GetObjectRef()));
00101 };
00102 
00103