Panda3D
Public Member Functions | List of all members
EventGroup Class Reference
Inheritance diagram for EventGroup:
DirectObject

Public Member Functions

def __init__ (self, name, subEvents=None, doneEvent=None)
 
def __repr__ (self)
 
def addEvent (self, eventName)
 
def destroy (self)
 
def getDoneEvent (self)
 
def getName (self)
 
def isCompleted (self)
 
def newEvent (self, name)
 
- Public Member Functions inherited from DirectObject
def __init__ (self)
 
def accept (self, event, method, extraArgs=[])
 
def acceptOnce (self, event, method, extraArgs=[])
 
def addTask (self, args, kwargs)
 
def detectLeaks (self)
 
def doMethodLater (self, args, kwargs)
 
def getAllAccepting (self)
 
def ignore (self, event)
 
def ignoreAll (self)
 
def isAccepting (self, event)
 
def isIgnoring (self, event)
 
def removeAllTasks (self)
 
def removeTask (self, taskOrName)
 

Detailed Description

This class allows you to group together multiple events and treat
them as a single event. The EventGroup will not send out its event until
all of its sub-events have occured.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  name,
  subEvents = None,
  doneEvent = None 
)
Provide a meaningful name to aid debugging.

doneEvent is optional. If not provided, a unique done event will be
generated and is available as EventGroup.getDoneEvent().

Examples:

# waits for gotRed and gotBlue, then sends out 'gotColors'
EventGroup('getRedAndBlue', ('gotRed', 'gotBlue'), doneEvent='gotColors')

# waits for two interests to close, then calls self._handleBothInterestsClosed()
# uses EventGroup.getDoneEvent() and EventGroup.newEvent() to generate unique,
# disposable event names
eGroup = EventGroup('closeInterests')
self.acceptOnce(eGroup.getDoneEvent(), self._handleBothInterestsClosed)
base.cr.closeInterest(interest1, event=eGroup.newEvent('closeInterest1'))
base.cr.closeInterest(interest2, event=eGroup.newEvent('closeInterest2'))

Member Function Documentation

◆ __repr__()

def __repr__ (   self)

◆ addEvent()

def addEvent (   self,
  eventName 
)
Adds a new event to the list of sub-events that we're waiting on.
Returns the name of the event. 

◆ destroy()

def destroy (   self)

◆ getDoneEvent()

def getDoneEvent (   self)

◆ getName()

def getName (   self)

◆ isCompleted()

def isCompleted (   self)

◆ newEvent()

def newEvent (   self,
  name 
)
Pass in an event name and it will be unique-ified for you and added
to this EventGroup. TIP: there's no need to repeat information in this event
name that is already in the name of the EventGroup object.
Returns the new event name.