[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Feasability of an nCurses-based, Python emulation of wxWidgets/wxPython

From: Richard S . Gordon
Subject: Feasability of an nCurses-based, Python emulation of wxWidgets/wxPython
Date: Tue, 9 Jul 2013 07:57:48 -0400

This is not a bug report. I'm not sure how to propose this.

Would your organization be interested in an nCurses-based, Python emulation of wxWidgets/ WxPython. 

While it is still under development, it demonstrates the feasibility of building a high level,
graphical-style user interface upon the low level, nCurses API.

Attached is a sample screen shot on a virtual machine running OpenSolaris.

Summary of Capabilities and limitations

  • Supports typical nCurses platforms with xterm_color, vt100 and vt220. 
  • Untested support for xterm_256color.
  • Maps 88-color, wxPython palette into the available nCurses palette.
  • Maps pixel dimensions into nCurses character cell units.
  • Event handling is rudimentary suitable for button use.
  • Queued event processing is not yet designed.
  • Panel layer processing is under development.
  • User input processing is under development.
Below, is a more detailed summary of my accomplishments.

Dick Gordon

These are details of my accomplishments.

1. Developed, enhanced and maintained a library of general-purpose,
   re-usable building block modules for embedded systems. The
   building blocks:

   a) Provides both Command Line and Graphical-style User Interfaces
      that enable application developers to focus on the application 
      specific functionality and not waste effort re-inventing the
      functionality typical of Command Line and Graphical User

   b) Can operate in an isolated system (Stand-Alone mode) or in a
      networked system (Stand-Among mode).

   c) Are implemented in Python 2.x.

   d) Are ported to Python 3.x using a Python program (2to3) which
      reads Python 2.x source code and apply a series of fixers to
      transform it into valid Python 3.x code.

2. Cross-platform designs run, without change, on Linux, Mac 
   OS X and Microsoft Windows (the latter requires Cygwin, a
   Linux-like environment add-on from Red Hat).

3. Command Line Interface includes building blocks that create a
   sophisticated POSIX-/ Unix-like terminal interface. It features:

   a) Command line keyword option and positional argument parsing;

   b) Error/exception handling;

   c) Event logging to application designated terminals, files or 
      devices (stderr, stdout, syslog, stdscr);

   d) Launching, event dispatching and terminating of the 
      Graphical-style User Interface;

   e) Wrapper used to ensure that each application terminates with
      the exit code and message appropriate for co-ordination of a
      sequence of multiple applications.

   f) Tool to scan an operator designated directory tree and strip
      lines of source code of any superfluous trailing blank

   g) Tool to scan an operator designated directory tree and report
      on the total number of files, total number of lines of code,
      total number of blank/comment lines and their distribution
      among the file name extensions associated with various
      programming language such as Ada, Assembler, C/C++, Fortran,
      Pascal, Python and shell script.

4. Graphical-style User Interface includes building blocks that
   create a sophisticated Desktop, Laptop and Workstation Computer-
   like terminal interface. Using the "nCurses" character-mode and
   xterm libraries of the host platform, it emulates a subset of
   the "wxPython" pixel-mode Graphical User Interface. This enables
   "wxPython" applications to run with little, if any, change if
   they neither use icons nor other bit-mapped images, nor use 
   proportional sized fonts or associated special features. The
   emulation features the following widgets:

   a) Tiled (side-by-side) and overlapped (partially hidden) windows;

   b) Frames / Dialogs (top-level windows) containing other widgets;

   c) Menu bars (placeholder windows) containing drop down menus

   d) Tool bars (windows) containing a collection of windows for 
      on-screen buttons, menus, or other input or output widgets;

   e) Status bars (windows) containing an information window, at
      the bottom of a top-level window, sometimes divided into
      sections, each of which shows different information);

   f) Task bar (a top-level window) containing windows for buttons
      used to control which top-level window has focus and is not
      partially hidden;

   g) Sizers (non-windows) containing sizers or windows for tables
      of data or buttons; 

   h) Panels (windows) containing sizers or windows;

   i) Buttons (windows) for operator control action triggers,

   j) Check boxes (windows) containing buttons for enabling/
      disabling any one or combination of several operator mode
      and option control action triggers; 

   k) Radio boxes (windows) containing Radio buttons for choice of one
      of several operator mode and option control action triggers; 

   l) Gauges (windows) for horizontal and vertical bar graph widgets; 

   m) Scrolled windows (windows) containing a scrollable text window
      and horizontal and/or vertical scroll bars (each with
      associated scroll position gauge and scroll control buttons
      (up, down, left, right) for action triggers;

   n) Redirected output (a top-level window or log file) containing 
      system and application messages annotated with date, time and
      event severity levels that are printed or sent to syslog,
      stderr, stdout or scrolled windows;

   o) Splash screen (pre-recorded image) that notifies the operator that the 
      program is in the lengthy process of loading

reply via email to

[Prev in Thread] Current Thread [Next in Thread]