Skip to main content

A WYSIWYG-texteditor based on pygame.

Project description

A WYSIWYG-texteditor based on pygame for pygame

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.

Customization

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygame-texteditor-0.6.tar.gz (49.1 kB view details)

Uploaded Source

Built Distribution

pygame_texteditor-0.6-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

Details for the file pygame-texteditor-0.6.tar.gz.

File metadata

  • Download URL: pygame-texteditor-0.6.tar.gz
  • Upload date:
  • Size: 49.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.8

File hashes

Hashes for pygame-texteditor-0.6.tar.gz
Algorithm Hash digest
SHA256 753bf4f836acfc1fd64b17268d167f89969dd960cef3848d2a6f339c7e356a12
MD5 abf074f155f9bf1fc1f9a19c07a1b138
BLAKE2b-256 da29b0e0b6eeabd71ffcf391f8c535d1b54467f9797c80135f0e634eebbcf6be

See more details on using hashes here.

File details

Details for the file pygame_texteditor-0.6-py3-none-any.whl.

File metadata

  • Download URL: pygame_texteditor-0.6-py3-none-any.whl
  • Upload date:
  • Size: 53.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.8

File hashes

Hashes for pygame_texteditor-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fcc6fd62addf25884bf903fbdf9d009675efdce7bf4d8d4e1281932cb6f9553e
MD5 473f69bc18c3e278378c003100283451
BLAKE2b-256 b53e568efaf251eff377e52074ff3a7a98269abf4765031ae7293fd030ed9534

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page