# encoding: utf-8
# module vtkmodules.vtkInteractionWidgets
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkInteractionWidgets.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel
import vtkmodules.vtkFiltersSources as __vtkmodules_vtkFiltersSources
import vtkmodules.vtkRenderingContext2D as __vtkmodules_vtkRenderingContext2D
import vtkmodules.vtkRenderingCore as __vtkmodules_vtkRenderingCore


class vtkWidgetSet(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkWidgetSet - Synchronize a collection on vtkWidgets drawn on
    different renderwindows using the
    
    Superclass: vtkObject
    
    Callback - Dispatch Action mechanism.
    
    The class synchronizes a set of vtkAbstractWidget(s). Widgets
    typically invoke "Actions" that drive the geometry/behaviour of their
    representations in response to interactor events. Interactor
    interactions on a render window are mapped into "Callbacks" by the
    widget, from which "Actions" are dispatched to the entire set. This
    architecture allows us to tie widgets existing in different render
    windows together. For instance a HandleWidget might exist on the
    sagittal view. Moving it around should update the representations of
    the corresponding handle widget that lies on the axial and coronal
    and volume views as well.
    
    @par User API: A user would use this class as follows.vtkWidgetSet
    *set = vtkWidgetSet::New();
    vtkParallelopipedWidget *w1 = vtkParallelopipedWidget::New();
    set->AddWidget(w1);
    w1->SetInteractor(axialRenderWindow->GetInteractor());
    vtkParallelopipedWidget *w2 = vtkParallelopipedWidget::New();
    set->AddWidget(w2);
    w2->SetInteractor(coronalRenderWindow->GetInteractor());
    vtkParallelopipedWidget *w3 = vtkParallelopipedWidget::New();
    set->AddWidget(w3);
    w3->SetInteractor(sagittalRenderWindow->GetInteractor());
    set->SetEnabled(1);
    
    @par Motivation: The motivation for this class is really to provide a
    usable API to tie together multiple widgets of the same kind. To
    enable this, subclasses of vtkAbstractWidget, must be written as
    follows:
      They will generally have callback methods mapped to some user
    interaction such
    as:this->CallbackMapper->SetCallbackMethod(vtkCommand::LeftButtonPress
    Event,
                            vtkEvent::NoModifier, 0, 0, nullptr,
                            vtkPaintbrushWidget::BeginDrawStrokeEvent,
                            this,
    vtkPaintbrushWidget::BeginDrawCallback);
    
      The callback invoked when the left button is pressed looks
    like:void vtkPaintbrushWidget::BeginDrawCallback(vtkAbstractWidget
    *w)
    {
      vtkPaintbrushWidget *self = vtkPaintbrushWidget::SafeDownCast(w);
      self->WidgetSet->DispatchAction(self,
    &vtkPaintbrushWidget::BeginDrawAction);
    }
    
      The actual code for handling the drawing is written in the
    BeginDrawAction method.void vtkPaintbrushWidget::BeginDrawAction(
    vtkPaintbrushWidget *dispatcher)
    {
    // Do stuff to draw...
    // Here dispatcher is the widget that was interacted with, the one
    that
    // dispatched an action to all the other widgets in its group. You
    may, if
    // necessary find it helpful to get parameters from it.
    //   For instance for a ResizeAction:
    //     if (this != dispatcher)
    //       {
    //       double *newsize =
    dispatcher->GetRepresentation()->GetSize();
    //       this->WidgetRep->SetSize(newsize);
    //       }
    //     else
    //       {
    //       this->WidgetRep->IncrementSizeByDelta();
    //       }
    }
    
    @warning
    Actions are always dispatched first to the activeWidget, the one
    calling the set, and then to the other widgets in the set.
    """
    def AddWidget(self, __a): # real signature unknown; restored from __doc__
        """
        AddWidget(self, __a:vtkAbstractWidget) -> None
        C++: void AddWidget(vtkAbstractWidget *)
        
        Add a widget to the set.
        """
        pass

    def EnabledOff(self): # real signature unknown; restored from __doc__
        """
        EnabledOff(self) -> None
        C++: virtual void EnabledOff()
        """
        pass

    def EnabledOn(self): # real signature unknown; restored from __doc__
        """
        EnabledOn(self) -> None
        C++: virtual void EnabledOn()
        """
        pass

    def GetNthWidget(self, __a): # real signature unknown; restored from __doc__
        """
        GetNthWidget(self, __a:int) -> vtkAbstractWidget
        C++: vtkAbstractWidget *GetNthWidget(unsigned int)
        
        Get the Nth widget in the set.
        """
        return vtkAbstractWidget

    def GetNumberOfGenerationsFromBase(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBase(self, type:str) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def GetNumberOfGenerationsFromBaseType(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBaseType(type:str) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def GetNumberOfWidgets(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfWidgets(self) -> int
        C++: unsigned int GetNumberOfWidgets()
        
        Get number of widgets in the set.
        """
        return 0

    def IsA(self, type): # real signature unknown; restored from __doc__
        """
        IsA(self, type:str) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def IsTypeOf(self, type): # real signature unknown; restored from __doc__
        """
        IsTypeOf(type:str) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def NewInstance(self): # real signature unknown; restored from __doc__
        """
        NewInstance(self) -> vtkWidgetSet
        C++: vtkWidgetSet *NewInstance()
        """
        return vtkWidgetSet

    def RemoveWidget(self, __a): # real signature unknown; restored from __doc__
        """
        RemoveWidget(self, __a:vtkAbstractWidget) -> None
        C++: void RemoveWidget(vtkAbstractWidget *)
        
        Remove a widget from the set
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkWidgetSet
        C++: static vtkWidgetSet *SafeDownCast(vtkObjectBase *o)
        """
        return vtkWidgetSet

    def SetEnabled(self, __a): # real signature unknown; restored from __doc__
        """
        SetEnabled(self, __a:int) -> None
        C++: virtual void SetEnabled(vtkTypeBool)
        
        Method for activating and deactivating all widgets in the group.
        """
        pass

    def __delattr__(self, *args, **kwargs): # real signature unknown
        """ Implement delattr(self, name). """
        pass

    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __setattr__(self, *args, **kwargs): # real signature unknown
        """ Implement setattr(self, name, value). """
        pass

    def __str__(self, *args, **kwargs): # real signature unknown
        """ Return str(self). """
        pass

    __this__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """Pointer to the C++ object."""


    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkWidgetSet\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'SetEnabled\': <method \'SetEnabled\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'EnabledOn\': <method \'EnabledOn\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'EnabledOff\': <method \'EnabledOff\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'AddWidget\': <method \'AddWidget\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'RemoveWidget\': <method \'RemoveWidget\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'GetNumberOfWidgets\': <method \'GetNumberOfWidgets\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'GetNthWidget\': <method \'GetNthWidget\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D66A280>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkInteractionWidgets.vtkWidgetSet\' objects>, \'__doc__\': \'vtkWidgetSet - Synchronize a collection on vtkWidgets drawn on\\ndifferent renderwindows using the\\n\\nSuperclass: vtkObject\\n\\nCallback - Dispatch Action mechanism.\\n\\nThe class synchronizes a set of vtkAbstractWidget(s). Widgets\\ntypically invoke "Actions" that drive the geometry/behaviour of their\\nrepresentations in response to interactor events. Interactor\\ninteractions on a render window are mapped into "Callbacks" by the\\nwidget, from which "Actions" are dispatched to the entire set. This\\narchitecture allows us to tie widgets existing in different render\\nwindows together. For instance a HandleWidget might exist on the\\nsagittal view. Moving it around should update the representations of\\nthe corresponding handle widget that lies on the axial and coronal\\nand volume views as well.\\n\\n@par User API: A user would use this class as follows.vtkWidgetSet\\n*set = vtkWidgetSet::New();\\nvtkParallelopipedWidget *w1 = vtkParallelopipedWidget::New();\\nset->AddWidget(w1);\\nw1->SetInteractor(axialRenderWindow->GetInteractor());\\nvtkParallelopipedWidget *w2 = vtkParallelopipedWidget::New();\\nset->AddWidget(w2);\\nw2->SetInteractor(coronalRenderWindow->GetInteractor());\\nvtkParallelopipedWidget *w3 = vtkParallelopipedWidget::New();\\nset->AddWidget(w3);\\nw3->SetInteractor(sagittalRenderWindow->GetInteractor());\\nset->SetEnabled(1);\\n\\n@par Motivation: The motivation for this class is really to provide a\\nusable API to tie together multiple widgets of the same kind. To\\nenable this, subclasses of vtkAbstractWidget, must be written as\\nfollows:\\n  They will generally have callback methods mapped to some user\\ninteraction such\\nas:this->CallbackMapper->SetCallbackMethod(vtkCommand::LeftButtonPress\\nEvent,\\n                        vtkEvent::NoModifier, 0, 0, nullptr,\\n                        vtkPaintbrushWidget::BeginDrawStrokeEvent,\\n                        this,\\nvtkPaintbrushWidget::BeginDrawCallback);\\n\\n  The callback invoked when the left button is pressed looks\\nlike:void vtkPaintbrushWidget::BeginDrawCallback(vtkAbstractWidget\\n*w)\\n{\\n  vtkPaintbrushWidget *self = vtkPaintbrushWidget::SafeDownCast(w);\\n  self->WidgetSet->DispatchAction(self,\\n&vtkPaintbrushWidget::BeginDrawAction);\\n}\\n\\n  The actual code for handling the drawing is written in the\\nBeginDrawAction method.void vtkPaintbrushWidget::BeginDrawAction(\\nvtkPaintbrushWidget *dispatcher)\\n{\\n// Do stuff to draw...\\n// Here dispatcher is the widget that was interacted with, the one\\nthat\\n// dispatched an action to all the other widgets in its group. You\\nmay, if\\n// necessary find it helpful to get parameters from it.\\n//   For instance for a ResizeAction:\\n//     if (this != dispatcher)\\n//       {\\n//       double *newsize =\\ndispatcher->GetRepresentation()->GetSize();\\n//       this->WidgetRep->SetSize(newsize);\\n//       }\\n//     else\\n//       {\\n//       this->WidgetRep->IncrementSizeByDelta();\\n//       }\\n}\\n\\n@warning\\nActions are always dispatched first to the activeWidget, the one\\ncalling the set, and then to the other widgets in the set.\\n\\n\'})'
    __vtkname__ = 'vtkWidgetSet'


