fsleyes_widgets.autotextctrl

This module provides the AutoTextCtrl class, an alternative to the wx.TextCtrl, which has auto-completion capability.

I wrote this class because wx.TextCtrl auto-completion does not work under OSX, and the wx.ComboBox does not give me enough fine-grained control with respect to managing focus.

class fsleyes_widgets.autotextctrl.AutoTextCtrl(parent, style=0, modal=True)[source]

Bases: Panel

The AutoTextCtrl class is essentially a wx.TextCtrl which is able to dynamically show a list of options to the user, with a AutoCompletePopup.

Create an AutoTextCtrl. Supported style flags are:

Parameters:
  • parent – The wx parent object.

  • style – Style flags.

  • modal – If True (the default), the AutoCompletePopup is shoown modally. This option is primarily for testing purposes.

property textCtrl

Returns a reference to the internal wx.TextCtrl.

property popup

Returns a reference to the AutoCompletePopup or None if it is not currently shown.

AutoComplete(options)[source]

Set the list of options to be shown to the user.

GetValue()[source]

Returns the current value shown on this AutoTextCtrl.

SetValue(value)[source]

Sets the current value shown on this AutoTextCtrl.

Note

Calling this method will result in an wx.EVT_TEXT event being generated - use ChangeValue() if you do not want this to occur.

ChangeValue(value)[source]

Sets the current value shown on this AutoTextCtrl.

GetInsertionPoint()[source]

Returns the cursor location in this AutoTextCtrl.

SetInsertionPoint(idx)[source]

Sets the cursor location in this AutoTextCtrl.

GenEnterEvent()[source]

Programmatically generates an EVT_ATC_TEXT_ENTER event.

SetTakeFocus(takeFocus)[source]

If takeFocus is True, this AutoTextCtrl will give itself focus when its AutoCompletePopup is closed.

fsleyes_widgets.autotextctrl.ATC_CASE_SENSITIVE = 1

Syle flag for use with the AutoTextCtrl class. If set, the auto-completion pattern matching will be case sensitive.

fsleyes_widgets.autotextctrl.ATC_NO_PROPAGATE_ENTER = 2

Syle flag for use with the AutoTextCtrl class. If set, enter events which occur on the AutoCompletePopup list will not be propagated as EVT_ATC_TEXT_ENTER events.

fsleyes_widgets.autotextctrl.EVT_ATC_TEXT_ENTER = <wx.core.PyEventBinder object>

Identifier for the AutoTextCtrlEnterEvent, which is generated when the user presses enter in an AutoTextCtrl.

fsleyes_widgets.autotextctrl.AutoTextCtrlEnterEvent

Event generated when the user presses enter in an AutoTextCtrl. Contains a single attribute, text, which contains the text in the AutoTextCtrl.

class fsleyes_widgets.autotextctrl.AutoCompletePopup(parent, atc, text, options, style=0)[source]

Bases: Dialog

The AutoCompletePopup class is used by the AutoTextCtrl to display a list of completion options to the user.

Create an AutoCompletePopup. Accepts the same style flags as the AutoTextCtrl.

Parameters:
  • parent – The wx parent object.

  • atc – The AutoTextCtrl that is using this popup.

  • text – Initial text value.

  • options – A list of all possible auto-completion options.

  • style – Style flags.

GetCount()[source]

Returns the number of auto-completion options currently available.

property textCtrl

Returns a reference to the wx.TextCtrl.

property listBox

Returns a reference to the wx.ListBox.

fsleyes_widgets.autotextctrl.EVT_ATC_POPUP_DESTROY = <wx.core.PyEventBinder object>

Identifier for the ATCPopupDestroyEvent.

fsleyes_widgets.autotextctrl.ATCPopupDestroyEvent

Event emitted when the AutoCompletePopup is destroyed. This event is emitted because the wx.EVT_WINDOW_DESTROY is too unreliable.