InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ISelectionManager Class Referenceabstract

#include <ISelectionManager.h>

Inheritance diagram for ISelectionManager:
IPMUnknown

Public Types

enum  { kDefaultIID = IID_ISELECTIONMANAGER }
 
enum  ConcreteBossListType {
  kEnabledCSBs, kDisabledCSBs, kDefaultCSB, kSelectionCSBs,
  kAllCSBs
}
 
enum  ExistsType { kUniqueSelection, kMixedSelection, kAnySelection }
 
enum  InterfaceType { kEnabledInterface, kAnyInterface }
 
typedef K2Vector< InterfacePtr
< IPMUnknown > > 
ConcreteSelectionBossCollection
 

Public Member Functions

virtual bool16 IsInterfaceEnabled (const PMIID &interfaceID) const =0
 
virtual IPMUnknownQueryIntegratorSuite (const PMIID &interfaceID, InterfaceType) const =0
 
virtual void Startup (IDataBase *db, const UIDRef &owner)=0
 
virtual void Shutdown (void)=0
 
virtual IDataBaseGetDataBase (void) const =0
 
virtual UIDRef GetSelectionsOwner (void) const =0
 
virtual bool16 SelectionExists (ClassID, ExistsType=kAnySelection) const =0
 
virtual void BroadcastMessage (SuiteBroadcastData *) const =0
 
virtual void SelectAll (IActiveContext *iContext, K2Vector< ClassID > *csbList) const =0
 
virtual void DeselectAll (K2Vector< ClassID > *csbList) const =0
 
void DeselectAllNoBroadcast (K2Vector< ClassID > *csbList) const
 
virtual void DeselectAllExcept (K2Vector< ClassID > *csbKeepList) const =0
 
virtual bool16 BroadcastQueuedMessages (IdleTimer *)=0
 
virtual void CSBSelectionChanged (ISelectionMessage *, SuiteBroadcastData *)=0
 
virtual void CSBHasQueuedMessages (ClassID, ISelectionMessage::SelectionMessageType)=0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Friends

class PrivateSelectionAccess
 

Detailed Description

An interface on the Abstract Selection boss to manage the selection

Member Function Documentation

virtual void ISelectionManager::BroadcastMessage (SuiteBroadcastData) const
pure virtual

Broadcast a content changed message to observers. Intended for use by suites when they need to broadcast a message.

virtual bool16 ISelectionManager::BroadcastQueuedMessages (IdleTimer)
pure virtual

Broadcast any queued messages on active CSBs.

virtual void ISelectionManager::CSBHasQueuedMessages (ClassID ,
ISelectionMessage::SelectionMessageType  
)
pure virtual

Internal notification that a CSB has changed selection.

virtual void ISelectionManager::CSBSelectionChanged (ISelectionMessage,
SuiteBroadcastData 
)
pure virtual

Internal notification that a CSB has changed selection.

virtual void ISelectionManager::DeselectAll (K2Vector< ClassID > * csbList) const
pure virtual
    Send a "DeselectAll" to the active CSBs that are listed in "csbList"

NOTE: A nil "csbList" means deselect every active CSB.

virtual void ISelectionManager::DeselectAllExcept (K2Vector< ClassID > * csbKeepList) const
pure virtual

Send a "DeselectAll" to the active CSBs that are not listed in the "csbKeepList"

void ISelectionManager::DeselectAllNoBroadcast (K2Vector< ClassID > * csbList) const
inline

Deselect All without broadcasting

virtual IDataBase* ISelectionManager::GetDataBase (void ) const
pure virtual
    Return the database which is the persistent store for items in this 

            selection.

Returns
IDataBase* or nil
virtual UIDRef ISelectionManager::GetSelectionsOwner (void ) const
pure virtual
    Return the view/workspace that owns the concrete selection bosses 

            currently used by the selection manager.

Returns
UIDRef of view window/workspace or UIDRef::gNull.
virtual bool16 ISelectionManager::IsInterfaceEnabled (const PMIIDinterfaceID) const
pure virtual
Is the interface enbaled, i.e. does it exist on one of the enabled CSBs.

Returns
True / False.
virtual IPMUnknown* ISelectionManager::QueryIntegratorSuite (const PMIIDinterfaceID,
InterfaceType  
) const
pure virtual
Query an interface on the Abstract Selection boss.



NOTE:       Should only be used from within a CSB

Returns
IPMUnknown* or nil
virtual void ISelectionManager::SelectAll (IActiveContextiContext,
K2Vector< ClassID > * csbList 
) const
pure virtual
Send a "SelectAll" to the active CSBs that are listed in "csbList", the

        context indicates where to select (e.g. the current page)

NOTE: A nil "csbList" means selectall on every active CSB.

        If no CSBs are active the SelectAll call is always sent to the ASB's

    primary CSB (csbList is not used).
virtual bool16 ISelectionManager::SelectionExists (ClassID ,
ExistsType  = kAnySelection 
) const
pure virtual
    Does a selection exist in the specified concrete selection boss?

            "existsType" allows the caller to specify the type of selection that exists:

                kUniqueSelection -  The specified CSB is the only one with a selection

                kMixedSelection  -  The specified CSB and at least one other CSB have a 

                                    selection.

                kAnySelection    -  At least, the specified CSB has a selection. The 

                                other CSBs may or may not have a selection.

            If the ClassID is kInvalidClass AND ExistsType is kAnySelection, then all

            of the concrete selection bosses will be iterated looking for the requested ExistsType.

Returns
kTrue / kFalse.
virtual void ISelectionManager::Shutdown (void )
pure virtual

Shutdown

virtual void ISelectionManager::Startup (IDataBasedb,
const UIDRefowner 
)
pure virtual
    Initialize the selection manager on the abstract selection boss.

NOTE: "db" - the persistent store "owner" - the view or workspace whom owns this instantiation. "concreteSelectionBosses" - the selection manager now owns the object