GME  13
MakeSimpleClosure.h
Go to the documentation of this file.
00001 #ifndef SIMPLE_CLOSURE_H
00002 #define SIMPLE_CLOSURE_H
00003 
00004 #include "MakeClosure.h"
00005 
00006 class CSimpleSelectClosure : public CMakeClosure
00007 {
00008  public:
00009         CSimpleSelectClosure
00010                         ( IMgaFCOs *fcos 
00011                         , IMgaFolders *fols
00012                         , int containment
00013                         , int folder_containment
00014                         , bool excl_atom
00015                         , bool excl_conn
00016                         , bool excl_ref
00017                         , bool excl_set
00018                         )
00019                 : CMakeClosure
00020                         ( fcos
00021                         , fols
00022                         , 0 //ref
00023                         , 0 //refd 
00024                         , 0 //conn
00025                         , 0 //refportconn
00026                         , 0 //set_mem
00027                         , 0 //mem_of_set
00028                         , containment //cont
00029                         , 0 //part_of_mod
00030                         , folder_containment //fold_cont
00031                         , 0 //part_of_fold
00032                         , 0 //base_type
00033                         , 0 //derived_type
00034                         , LIB_CONT //into_libr
00035                         , 3 //container_opt( 3)
00036                         , 1 //direction_opt
00037                         , -1 //all kinds
00038                         , -1 //don't mark
00039                         )
00040                 , m_bExclAtom( excl_atom)
00041                 , m_bExclConn( excl_conn)
00042                 , m_bExclRef( excl_ref)
00043                 , m_bExclSet( excl_set)
00044         { }
00045 
00046         ~CSimpleSelectClosure()
00047         {
00048         }
00049 
00050         /*virtual*/ bool isValidSelection();
00051         /*virtual*/ void procObj( IMgaObject* obj);
00052         /*virtual*/ void preProcess();
00053         /*virtual*/ void postProcess();
00054         bool removeExcludedKinds();
00055         void manageGuid( CComObjPtr<IMgaObject> obj);
00056 
00057  protected:
00058         bool m_bExclAtom;
00059         bool m_bExclConn;
00060         bool m_bExclRef;
00061         bool m_bExclSet;
00062 
00063 };
00064 
00065 struct ConnsAndDerivsLast
00066 {
00067         bool operator()( const CComObjPtr<IMgaFCO>& p1, const CComObjPtr<IMgaFCO>& p2) const;
00068 };
00069 
00070 #endif // SIMPLE_CLOSURE_H