bug-ncurses
[Top][All Lists]
Advanced

[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
      Interfaces.

   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
      characters;

   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
     (windows);

   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]