Source code for traitsui.editors.text_editor

# (C) Copyright 2004-2023 Enthought, Inc., Austin, TX
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in LICENSE.txt and may be redistributed only under
# the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!

""" Defines the text editor factory for all traits toolkit backends.
"""

from traits.api import Dict, Str, Any, Bool

from traitsui.editor_factory import EditorFactory
from traitsui.group import Group
from traitsui.ui_traits import AView
from traitsui.view import View

# -------------------------------------------------------------------------
#  Define a simple identity mapping:
# -------------------------------------------------------------------------


class _Identity(object):
    """A simple identity mapping."""

    def __call__(self, value):
        return value


# -------------------------------------------------------------------------
#  Trait definitions:
# -------------------------------------------------------------------------

#: Mapping from user input text to other value
mapping_trait = Dict(Str, Any)

#: Function used to evaluate textual user input
evaluate_trait = Any(_Identity())


[docs]class TextEditor(EditorFactory): """Editor factory for text editors.""" # ------------------------------------------------------------------------- # Trait definitions: # ------------------------------------------------------------------------- #: Dictionary that maps user input to other values mapping = mapping_trait #: Is user input set on every keystroke? auto_set = Bool(True) #: Is user input set when the Enter key is pressed? enter_set = Bool(False) #: Is multi-line text allowed? multi_line = Bool(True) #: Is editor readonly (will use custom / default editor appearance with #: readonly flag set to true) in contrast with readonly style for item #: when completely another editor is used read_only = Bool(False) #: Is user input unreadable? (e.g., for a password) password = Bool(False) #: Function to evaluate textual user input evaluate = evaluate_trait #: The object trait containing the function used to evaluate user input evaluate_name = Str() #: The optional view to display when a read-only text editor is clicked: view = AView #: In a read-only text editor, allow selection and copying of the text. readonly_allow_selection = Bool(True) #: Grayed-out placeholder text to be displayed when the editor is empty. placeholder = Str() #: Whether or not to display a clear button for the text. This only works #: in the qt>=5.2 backend for simple/text styles of the editor. Note this #: trait is currently provisional and may be replaced in the future by a #: more general feature. cancel_button = Bool(False) # ------------------------------------------------------------------------- # Traits view definition: # ------------------------------------------------------------------------- traits_view = View( [ "auto_set{Set value when text is typed}", "enter_set{Set value when enter is pressed}", "multi_line{Allow multiple lines of text}", "<extras>", "|options:[Options]>", ] ) extras = Group("password{Is this a password field?}")
# This alias is deprecated and will be removed in TraitsUI 8. ToolkitEditorFactory = TextEditor