The Big PythonCard To Do List

This list is in no particular order (and not very well named or organized), I just needed a place to list things that have come up on the list, so that I don't forget them and other people can easily make comments. The convention below is to prefix your comments with your initials.

There are additional feature requests that will probably get moved to this list.

Initials indicate comments by particular individuals.

Changes

Component framework

more work on component infrastructure

Rowland is working on a more complete discussion of the PythonCardComponentFramework.

Grid

add wxGrid component or at least figure out what we can do with grids that makes sense in the context of PythonCard. is wxGrid too complex?

[AJT] The next revision of the dbBrowser sample will include a wxGrid widget. Initially it will just be raw wxPython code but will hopefully be revised into a proper component in subsequent releases.

List Report or View Control

add wxListCtrl or wxListView component

There is a very simple component wrapper of wxListCtrl called MultiColumnList (multicolumnlist.py). It isn't supported in the resourceEditor yet.

Tree control

add wxTreeCtrl component

There is a very simple component wrapper of wxTreeCtrl (tree.py). It isn't supported in the resourceEditor yet.

Other components to add

add wxCheckListBox component?

Calendar component

Calendar

resourceEditor

[Randy Lea] I would like a feature in resourceEditor to create a default directory to open/save resource files, or to remember the last directory used. We could just tack on another field in the user.config.txt file.

[PKE] Component tab ordering could be made easier to control by adding 'Up' and 'Down' buttons to the properties child window - editing resource files by hand to achieve this is quite risky.

[PKE] 2002-10-22 Update to the above - this functionality already exists! The 'Send To Back', 'Move Forward', 'Move Back' and 'Send To Front' options on the 'Components' menu do just what I was after.

Events

[KEA] 2002-07-01 release 0.6.7 has on_idle, timers (on_timer), and on_close events

add wxPostEvent and/or ProcessEvent equivelants within the PythonCard event system?

EVT_UPDATE_UI and command events

add support for EVT_UPDATE_UI

Printing

There was a recent thread on the mailing list about printing support.

Documentation

If you have viewpoints about documentation priorities, or if you would like to volunteer to create one of the documents on the list below (or some other document we've missed but you think is needed) send email to the mailing list.

Dot notation (__setattr__ and __getattr__)

add dot notation to Menu, Background and CustomDialog classes

Persistent storage

Window styles

scrolling windows

splitter support

Layout Managers

This is a big topic, so it has been moved to its own PythonCardLayoutManagers page.

Resource file format

resolve resource format

Terminology

resolve naming of stack/app, background/window/panel, etc.

Graphics

finish BitmapCanvas component

explore object canvas component options

change Bitmap class to be a direct subclass of wxBitmap?

Doc View framework

doc/view class (Background variant) for File->New/Open/Save with Edit and About menus (textEditor, resourceEditor).

If we don't have a doc/view set of classes, we might simply have a template directory or wizard to create say the "project files"

Fonts

add support for CSS-style lists

wxPython 2.3.3 dropped full support for the font family and will require reworking the font class in the framework and in particular how we use the fontDialog. I brought this up on wx-dev: http://lists.wxwindows.org/pipermail/wx-dev/2002-April/020150.html

Recent files

add support for recent file list

[KEA] 2002-06-12 wxFileHistory is in codeEditor

wxNotebook

add support for wxNotebook in the layout

Context help

put context help support back in framework?

comma separated values (csv)

add Cliff Wells csv import/export

Toolbar

add Andy's simple toolbar

Progress dialog

add wxProgressDialog or create our own? Need an example of how the user will interact.

Logging

We currently have a log.py module for handling logging within PythonCard. I was considering making more use of it across the framework for debugging purposes instead of plain print statements when I found out about PEP 282. PEP 282 covers a logging system that might be included with Python 2.3. Vinay Sajip has been working on a system, which you can read about and download here.

It would be great if someone interested in logging could take ownership of this topic, investigate the status of the PEP, Vinay's code, and recommend whether we adopt his module. If it, or something like it becomes part of the standard Python libraries, my inclanation would be to drop our own custom module.

[AJT] As I understand it this PEP has been approved and will be included in the standard distribution. Its just a question of when Vinay finishes the module.

[VMS] As far as I'm concerned, the module (currently v0.4.5) is ready for inclusion in 2.3a1. The current distribution contains commented working code, test scripts, and TeX documentation. As it's my first contribution to Python, I'm not exactly sure of the how the library-incorporation process works in practice (e.g. timescale to get things agreed). Indications are that incorporation will happen soon, see http://mail.python.org/pipermail/python-dev/2002-May/024395.html.

ConfigParser

We should probably switch from the custom dictionary format config files to using the standard ConfigParser module.

The pythoncard_config.py and pythoncard_user_config.py files should be switched.

The following samples use dictionaries for config info and need to be converted: findfiles, resourceEditor, textEditor, textRouter

The custdb sample already uses ConfigParser.

User Files

Formalize the location and naming conventions for files that are user-specific, including data files.

http://aspn.activestate.com/ASPN/Mail/Message/PythonCard/1321593

Scriptlets

One of the advantages of using Python as the language to build applications is that it can also be used as the built-in scripting language for an application. We have a built-in shell in PythonCard that can execute one statement at a time or an entire file at once using its runfile() method. runfile is used to execute the pycrustrc.py files when a PythonCard app starts up.

The built-in execfile() function in Python can also be used to execute a files contents with an optional global and local namespace.

If we execute a file in the shell, then there is a record of each command as it executes. The shell can also be used to minor editing, copying a group of commands and then saving those commands to a file. If a series of commands are executed in the shell then the results of those commands will impact the shell namespace. I don't think that is true for execfile.

For more info, see the post I made to the list:

Component path

Add support for a component path search list so that apps can have there own components and override the default components.

[KEA] 2002-06-29 I've added support for an application specific appcomponents directory that allows an application to override any of the default components as well as provide components that are specific to an application. This is probably an adequate solution.

Sample dependencies and exiting

Samples which require packages outside the normal distribution should fail gracefully by using a try/except block around the imports if they are at the top of the module file and setting a flag to indicate that the package or modules weren't found, then in the openBackground handler and if/then statement can be used to check the flag, alert the user and exit the app.

If the app exit process normally writes out config data or user data files then that should also check for the type of exit being performed, so that files aren't written in the case of an abnormal exit.

This should eliminate the problem of a user running samples and getting nothing except a traceback.

samples that need to be updated (assuming Python 2.2, not Python 2.1 which is missing xmlrpclib):

Samples

See the http://wiki.wxpython.org/index.cgi/PythonCardSampleApps page for more ideas and to do items related to the samples and tools.

Unicode

wxPython 2.3.3 supports Unicode. There is a separate build for using Unicode. Strings used by the controls in a Unicode build will be returned in the u'form' and it is probably necessary to use encode('ascii', 'ignore') or other conversion methods.

The question is what special Unicode checks need to be made in the framework, tools, and samples for PythonCard to work with a wxPython Unicode build? How does it impact any localization/internationalization.

David Primmer is doing a sample that supports Unicode.

Interapplication Communication

We need a cross-platform method of doing Interapplication Communication with PythonCard apps. A simple case would be PIM apps such as an email app getting information from a contacts app.

I have been thinking a bit about using Jabber, but today I downloaded Pyro and want to investigate Pyro first. The docs and examples cover various ways to use Pyro. There was also an article published about Pyro on the Intel Developer Services http://cedar.intel.com/cgi-bin/ids.dll/content/content.jsp?cntKey=Generic+Editorial%3a%3aws_pyro&cntType=IDS_EDITORIAL&catCode=BMZ.

Dynamic event handler creation and code reloading

PythonCardToDoList (last edited 2008-03-11 10:50:39 by localhost)

NOTE: To edit pages in this wiki you must be a member of the TrustedEditorsGroup.