wiki:Submitting/wxGUI

Version 1 (modified by wenzeslaus, 10 years ago) ( diff )

slightly reformated content of source:grass/trunk/SUBMITTING_PYTHON?rev=60796 and source:grass/trunk/SUBMITTING_WXGUI?rev=60796 (no general things)

Submitting wxGUI

GUI is divided into components. One component is usually placed in one directory.

  1. Remember that functionality such as generating plots should be primarily

provided by library or modules not GUI.

  1. Try to create create also g.gui.* module for the new GUI component. It helps

advanced users to access functionality and developers to test it. Moreover, it helps to keep components separated and thus, it supports re-usability.

File structure

  1. Add a header section to each file you submit and make sure you

include the copyright. The purpose section is meant to contain a general over view of the code in the file to assist other programmers that will need to make changes to your code. For this purpose use Python docstring.

The copyright protects your rights according to GNU General Public License (www.gnu.org).

Please use the following docstring template:

    """!
    @package dir.example

    @brief Short example package description

    Classes:
     - example::ExampleClass

    (C) 2012 by the GRASS Development Team

    This program is free software under the GNU General Public License
    (>=v2). Read the file COPYING that comes with GRASS for details.

    @author First Author <first somewhere.com>
    @author Second Author <second somewhere.com>
    @author Some Other <third somewhere.com> (some particular change)
    """

Documentation and comments

Writing the code

Do not use print command unless you know what are you doing.

Use wx.ID_ANY instead of -1.

Use GError, GWarning and GMessage instead of wx.MessageBox()

Do not use grass.run_command() or grass.read_command(). Use functions and classes which use threads such as RunCommand.

When using AddGrowableCol/AddGrowableRow with sizers, put it after adding widgets into the sizer, not just after creating of the sizer (needed for wxPython >= 2.9).

Testing

See also

Related submitting rules ==

GRASS documentation

External documentation

Note: See TracWiki for help on using the wiki.