def __init__(self, parent, value="", output=False, *args, **kwargs): self._preferences = medipy.gui.base.Preferences( wx.GetApp().GetAppName(), wx.GetApp().GetVendorName()) ############## # Properties # ############## self._value = None self._default_value = None self._output = False ################## # Initialization # ################## kwargs["style"] = kwargs.get("style", 0) | wx.TAB_TRAVERSAL wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._text = wx.TextCtrl(self) self._button = wx.Button(self, label="...", size=(30, -1)) # Layout sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(sizer) sizer.Add(self._text, 1) sizer.Add(self._button) # Events self._text.Bind(wx.EVT_TEXT, self.OnText) self._button.Bind(wx.EVT_BUTTON, self.OnButton) self._set_value(value) self._set_default_value(value) self._set_output(output)
def __init__(self, parent, value=False, *args, **kwargs): ############## # Properties # ############## self._value = None self._default_value = None ################## # Initialization # ################## wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._checkbox = wx.CheckBox(self) # Layout sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(sizer) sizer.Add(self._checkbox, 0) # Events self._checkbox.Bind(wx.EVT_CHECKBOX, self.OnCheckBox) self._set_value(value) self._set_default_value(value)
def __init__(self, parent, choices=None, value=None, *args, **kwargs): choices = choices or [] ############## # Properties # ############## self._value = None self._default_value = None self._choices = None ############## # Initialize # ############## if value is None and choices: value = choices[0] wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._choices_widget = wx.Choice(self) # Layout sizer = wx.BoxSizer() sizer.Add(self._choices_widget) self.SetSizer(sizer) self.Layout() # Events : self._choices_widget.Bind(wx.EVT_CHOICE, self.OnChoiceChanged) self._set_choices(choices) self._set_default_value(value) self._set_value(value)
def __init__(self, parent, value=0, range=None, *args, **kwargs): ############## # Properties # ############## self._value = None self._default_value = None self._range = None ################## # Initialization # ################## kwargs["style"] = kwargs.get("style", 0) | wx.TAB_TRAVERSAL wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._text = wx.TextCtrl(self) self._slider = wx.Slider(self) # Layout sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(sizer) sizer.Add(self._text, 1, wx.ALIGN_CENTER) sizer.Add(self._slider, 2, wx.ALIGN_CENTER) # Events self._text.Bind(wx.EVT_TEXT, self.OnText) self._slider.Bind(wx.EVT_SLIDER, self.OnSlider) self._set_value(value) self._set_default_value(value) self._set_range(range)
def __init__(self, parent, value="", may_be_empty=True, *args, **kwargs): #################### # Public interface # #################### self.may_be_empty = may_be_empty ############## # Properties # ############## self._value = None self._default_value = None ################## # Initialization # ################## kwargs["style"] = kwargs.get("style", 0) | wx.TAB_TRAVERSAL wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._text = wx.TextCtrl(self) # Layout sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(sizer) sizer.Add(self._text, 1) # Events self._text.Bind(wx.EVT_TEXT, self.OnText) self._set_value(value) self._set_default_value(value)
def __init__(self, parent, choices, value=None, output_checked=False, *args, **kwargs): """ Control to select a 3D scene to which the Object3D will be appended """ ############## # Properties # ############## self._value = None self._default_value = None self._choices = choices self._default_output_checked = None ############## # Initialize # ############## if value is None and len(choices) > 0: value = choices[0] wx.Panel.__init__(self, parent, *args, **kwargs) Observable.__init__(self, ["value"]) # Widgets self._checkbox = wx.CheckBox(self, label="(new)") # Layout sizer = wx.BoxSizer(wx.VERTICAL) self._radiobuttons_sizer = wx.GridSizer() sizer.Add(self._radiobuttons_sizer) sizer.Add(self._checkbox) self.SetSizer(sizer) # Events self._checkbox.Bind(wx.EVT_CHECKBOX, self.OnCheckBox) self._set_default_value(value) self._set_output_checked(output_checked) self._set_default_output_checked(output_checked) self._set_choices(choices) self._set_value(value) self._choices.add_observer("any", self._on_choices_modified)
def __init__(self, parent, function, images, viewer_3ds, config_path=None): # The observers of these events are notified when the FunctionGUIBuilder # has to modify its images/viewer_3ds as a result of the user choices # in the GUI. Observable.__init__(self, [ "new_image", "replace_image", "new_viewer_3d", "set_image_to_object_3d" ]) self.panel = wx.Panel(parent) self._controls = {} self._function = function self._images = images self._viewer_3ds = viewer_3ds self.config_path = config_path self._parameters = parse_docstring(self._function.__doc__) # Run & reset buttons self._run_button = wx.Button(self.panel, label="Run") reset_button = wx.Button(self.panel, label="Reset") buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) buttons_sizer.AddStretchSpacer(1) buttons_sizer.Add(self._run_button) buttons_sizer.Add(reset_button) # Controls controls_sizer = wx.BoxSizer(wx.VERTICAL) self._create_gui(controls_sizer) # self._load_parameters() # Main layout panel_sizer = wx.BoxSizer(wx.VERTICAL) panel_sizer.Add(controls_sizer, flag=wx.EXPAND) panel_sizer.Add(buttons_sizer, flag=wx.EXPAND) self.panel.SetSizer(panel_sizer) # Events self._run_button.Bind(wx.EVT_BUTTON, self.OnRunClicked) reset_button.Bind(wx.EVT_BUTTON, self.OnResetClicked) self._images.add_observer("any", self._on_images_modified) self._viewer_3ds.add_observer("any", self._on_viewer_3ds_modified)
def __init__(self, parent, id=wx.ID_ANY, min_max=(0, 100), value=(20,80), orientation = wx.VERTICAL, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.TAB_TRAVERSAL|wx.NO_BORDER, name=wx.PanelNameStr) : self._range = min_max self._value = None self._orientation = None self._triangle_size = None self._line = None self._min_triangle = None self._max_triangle = None # Name of the cursor that will be moved by the mouse, or None self._moving_cursor = None wx.PyPanel.__init__(self, parent, id, pos, size, style, name) Observable.__init__(self, ["value"]) point_size = self.GetFont().GetPointSize() self._panel = wx.Panel(self) self._min_text = wx.TextCtrl(self, size=(point_size*10, -1)) self._max_text = wx.TextCtrl(self, size=(point_size*10, -1)) self._triangle_size = point_size*1.2 self._set_orientation(orientation) self._panel.Bind(wx.EVT_LEFT_DOWN, self.OnLeftClick) self._panel.Bind(wx.EVT_LEFT_UP, self.OnLeftRelease) self._panel.Bind(wx.EVT_SIZE, self.OnSize) self._panel.Bind(wx.EVT_MOTION, self.OnMouseMove) self._panel.Bind(wx.EVT_PAINT, self.OnPaint) self._panel.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) self._min_text.Bind(wx.EVT_TEXT, self.OnText) self._max_text.Bind(wx.EVT_TEXT, self.OnText) self._set_value(value)
def __init__(self, *args, **kwargs): wx.Panel.__init__(self, *args, **kwargs) Observable.__init__(self, ["active_object"]) self._objects_3d = ObservableList() self._active_object = None # Currently pressed button, None if no button is pressed self._button = None # Bindings from mouse button to tool self.tools = { "LeftButton": viewer_3d_tools.Rotate(self), "MiddleButton": viewer_3d_tools.Pan(self), "RightButton": viewer_3d_tools.Dolly(self), "MouseWheelForward": viewer_3d_tools.WheelDolly(self, "forward"), "MouseWheelBackward": viewer_3d_tools.WheelDolly(self, "backward") } # Bindings from key to tool self.key_bindings = { # Nothing by default } # VTK objects for rendering self._renderer = vtkRenderer() self._renderer.SetBackground(82. / 255., 87. / 255., 110. / 255.) self._renderer.GetActiveCamera().ParallelProjectionOff() self._rwi = wxVTKRenderWindowInteractor(self, wx.ID_ANY) self._rwi.GetRenderWindow().AddRenderer(self._renderer) self._sizer = wx.BoxSizer() self._sizer.Add(self._rwi, 1, wx.EXPAND) self.SetSizer(self._sizer) # Interaction styles : customize events self._rwi.SetInteractorStyle(None) self._rwi.AddObserver("LeftButtonPressEvent", self._start_interaction) self._rwi.AddObserver("MiddleButtonPressEvent", self._start_interaction) self._rwi.AddObserver("RightButtonPressEvent", self._start_interaction) self._rwi.AddObserver("LeftButtonReleaseEvent", self._stop_interaction) self._rwi.AddObserver("MiddleButtonReleaseEvent", self._stop_interaction) self._rwi.AddObserver("RightButtonReleaseEvent", self._stop_interaction) self._rwi.AddObserver("MouseWheelForwardEvent", self._start_interaction) self._rwi.AddObserver("MouseWheelBackwardEvent", self._start_interaction) self._rwi.AddObserver("MouseMoveEvent", self._dispatch_interaction) self._rwi.AddObserver("KeyPressEvent", self._keypress) self._rwi.AddObserver("KeyReleaseEvent", self._keyrelease) # Clean up when the window is closed self.Bind(wx.EVT_CLOSE, self.OnClose) self.objects_3d.add_observer("any", self._on_objects_3d_modified)