Metadata-Version: 2.1
Name: pygame-texteditor
Version: 0.6.4
Summary: A WYSIWYG-texteditor based on pygame.
Home-page: UNKNOWN
Author: CribberSix
Author-email: cribbersix@gmail.com
License: MIT
Description: # A WYSIWYG-texteditor based on pygame for pygame
        
        ![PyPI](https://img.shields.io/pypi/v/pygame-texteditor?color=%233775A9&label=pypi%20package&style=plastic)
        ![GitHub](https://img.shields.io/github/license/CribberSix/pygame-texteditor?style=plastic)
        
        ## Usage
        
        The text editor can be inserted into any existing pygame window. 
        A minimal example of it being activated within an existing pygame window can be found below.
        
        The texteditor takes 5 obligatory parameters and 3 optional parameters.
        
        ##### Obligatory parameters
        - ```offset_X``` : integer - the offset from the left border of the pygame screen
        - ```offset_y``` : integer - the offset from the top border of the pygame screen
        - ```textAreaWidth``` : integer - the width of texteditor
        - ```textAreaHeight``` : integer - the height of texteditor
        - ```screen``` : pygame display surface - on which the texteditor is to be displayed
        
        ##### Optional Parameters with default values
        
        - ```line_numbers_flag``` - a boolean enabling showing line numbers 
            > Default: ```False```
        - ```style``` - a String setting the color scheme of editor and syntax highlighting 
            > Default: ```'dark'```
        - ```syntax_highlighting_flag``` - a boolean enabling syntax highlighting for Python code 
            > Default: ```False```
        
        ## Setup
        
        ##### Minimal pygame setup
        
        ```
        import pygame
        from pygame_texteditor import TextEditor
        
        pygame.init()
        screenHeight = 600
        screenWidth = 900
        screen = pygame.display.set_mode((screenWidth, screenHeight))
        pygame.display.set_caption("Pygame")
        pygame.display.get_surface().fill((200, 200, 200))  # background coloring
        
        ```
        ##### Minimal texteditor setup
        ```
        # parameters
        screen = pygame.display.get_surface()  # get existing pygame window/screen
        offset_X = 50  # offset from the left border of the pygame window
        offset_Y = 50  # offset from the top border of the pygame window
        textAreaHeight = 500
        textAreaWidth = 800
        
        
        # Instantiation
        TX = TextEditor(offset_X, offset_Y, textAreaWidth, textAreaHeight, screen)
        TX.set_line_numbers(True)  # optional 
        TX.set_syntax_highlighting(True)  # optional
        
        while True:  # pygame-loop
            # capture input
            pygame_events = pygame.event.get()
            pressed_keys = pygame.key.get_pressed()
            mouse_x, mouse_y = pygame.mouse.get_pos()
            mouse_pressed = pygame.mouse.get_pressed()
        
            # display editor functionality once per loop
            TX.display_editor(pygame_events, pressed_keys, mouse_x, mouse_y, mouse_pressed)
        
            # update pygame window
            pygame.display.flip()  
        
        
        ```
        
        ##### Retrieving text from the editor
        
        The editor offers the function `get_text_as_string()` to retrieve the entire text 
        as a String from the editor. Lines are separated by the new line character ```\n```.
        
        The editor offers the function `get_text_as_list()` to retrieve the entire text as a list from the editor. 
        Each String-item in the list represents one line from the editor.
        
        ##### Removing text from the editor
        
        The editor offers the function `clear_text()` to clear the editor of any text.
        
        
        ##### Inserting text into the editor
        
        Inserting text can be done by using one of the two available functions: 
        1. With a list of strings in which each string represents one line, or
        2. With a string which includes linebreak characters which get parsed. 
        
        ```
        set_text_from_list(["First line", "Second Line.", "Third Line."]
        set_text_from_string("First line.\nSecond line.\nThird Line")
        ```
        
        ## Customization
        
        #### Font size
        
        Font size can be customized with the command `set_font_size(size)` - the parameter is an integer 
        with the default value `12` to be able to reset it. 
        
        #### Line Numbers 
        Line numbers can be shown on the left side of the editor. Line numbers begin with 0 as is the Pythonian way. 
        
        Line numbers can be enabled and disabled with ```set_line_numbers(Boolean)```.
        
        
        #### Syntax Highlighting
        
        The editor comes with syntax highlighting for Python code. Tokenization is based on the ```pygment``` package. 
        
        Syntax highlighting can be enabled/disabled with ```set_syntax_coloring(boolean_value)```.
        
        The syntax colors being used are also specified in the yml style file.
        
        
        #### Color-scheme customization
        
        The editor uses a yml file to set the color-scheme for the editor itself and for the syntax coloring. 
        
        Two styles are delivered with the editor, they can be activated respectively by:
        - `set_colorscheme("dark")`
        - `set_colorscheme("bright")`
        
        A custom style can be loaded with the following method from a created yml file: 
        - `set_colorscheme_from_yaml("X:\path\to\custom\filename.yml")`
        
        All keys must be present with values. Acceptable values are 
        RGB colors in the following format: ```(255, 255, 255)``` or ```255, 255, 255```.
        
        The following keys are required in the ```stylename.yml``` file, syntax colors are only used if syntax
        highlighting is enabled, but are still required to be included.
        
        *Editor colors*
        - `codingBackgroundColor`
        - `codingScrollBarBackgroundColor`
        - `lineNumberColor`
        - `lineNumberBackgroundColor`
        - `textColor`
        
        *Syntax colors*
        - `textColor_normal`
        - `textColor_comments`
        - `textColor_quotes`
        - `textColor_operators`
        - `textColor_keywords`
        - `textColor_function`
        - `textColor_builtin`
        
        
Keywords: pygame,texteditor,text,editor
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Topic :: Software Development
Requires-Python: >=3.6
Description-Content-Type: text/markdown
