| 1 | = Development = |
| 2 | |
| 3 | == modRana == |
| 4 | |
| 5 | === Structure === |
| 6 | !ModRana consists of the main modrana.py "kernel", which handles the core functionality, like loading modules, managing the persistent options dictionary, providing platform-independent paths to essential modRana files and folders. It also handles modRana startup and shutdown. |
| 7 | |
| 8 | Rest of the functionality is provided by "modules". All modules inherit the ranaModule base class. There are three types of modules: |
| 9 | * '''device modules''' - provide platform/device adaptation |
| 10 | * '''GUI modules''' - provide the GUI layer, are independent on the device modules |
| 11 | * '''normal modules''' - provide various functionality independently on the platform and device modules (or more specifically should not depend on any specific GUI or device module) |
| 12 | |
| 13 | Modules can be either file-modules (mod_foo.py) of folder-modules (mod_foo/mod_foo.py). Usually when a file-module grows to an unmaintainable size, it should be converted to a folder module and its functionality split to more files in its folder. |
| 14 | |
| 15 | ==== Modules ==== |
| 16 | |
| 17 | ===== mod_location ===== |
| 18 | Supports various location data providers and provides location data in a consistent format. |
| 19 | |
| 20 | ===== mod_online_services ===== |
| 21 | Wraps various online services for use in modRana. |
| 22 | |
| 23 | ===== mod_messages ===== |
| 24 | Handles messaging between modules. |
| 25 | |
| 26 | ===== mod_menu ===== |
| 27 | Menu structure representation and drawing. Currently mostyl used by the GTK GUI. |
| 28 | |
| 29 | ===== mod_options ===== |
| 30 | GTK GUI options menu structure. |
| 31 | |
| 32 | ===== mod_map_data ===== |
| 33 | Batch tile download handling. |
| 34 | |
| 35 | ===== mod_ ===== |
| 36 | |
| 37 | |
| 38 | == Development notes == |
| 39 | |
| 40 | [wiki:modranaIfrastructureImprovemetsEN modRana infrastructure improvements] |
| 41 | |
| 42 | [wiki:pyclutter_notes python-clutter notes] |
| 43 | |
| 44 | [wiki:pygame_touchpad running PyGame on the HP Touchpad] |
| 45 | |
| 46 | [wiki:voiceOutputLocalizationEN voice output localization] |