1 |
To be done |
Release Notes -- FreeRide 0.0.4 |
2 |
|
|
3 |
|
This is the first internal developer release of FreeRIDE. While it is not yet |
4 |
|
usable, it does demonstrate a working editing pane and provides the general |
5 |
|
architecture of FreeRIDE's GUI framework. |
6 |
|
|
7 |
|
This release was developed and tested under Windows using Ruby 1.7.2 (mswin |
8 |
|
build)and FXRuby 1.0.10. |
9 |
|
|
10 |
|
== Components == |
11 |
|
|
12 |
|
This release includes basic implementations of the following components: |
13 |
|
|
14 |
|
* Commands -- objects that can be executed to perform actions. |
15 |
|
* MenuPanes -- displays a list of commands from which on can be chosen |
16 |
|
for execution. |
17 |
|
* MenuBars -- displays titles that "drop down" a MenuPane when clicked. |
18 |
|
* EditPanes -- a basic code editing windows (uses FXScintilla). |
19 |
|
* AppFrames -- the main FreeRUDE window. |
20 |
|
|
21 |
|
== Subsystems == |
22 |
|
|
23 |
|
This release contains three new FreeRIDE subsystems (a subsystem is a set |
24 |
|
of related plugins that reside in a common directory tree): |
25 |
|
|
26 |
|
* System_Commands -- currently, this contains the implementation of |
27 |
|
all commands. |
28 |
|
* System_GuiCore -- implements the core GUI components. |
29 |
|
* System_GuiRenderFox -- renders GUI components using FXRuby. |
30 |
|
|
31 |
|
== HACKS == |
32 |
|
|
33 |
|
There are a few temporary hacks in the code that will, eventually, be removed |
34 |
|
and are clearly marked in the code. For example, the code that instantiates and |
35 |
|
renders and EditPane is one such hack -- only one EditPane may be currently be |
36 |
|
created. |
37 |
|
|
38 |
|
== Services == |
39 |
|
|
40 |
|
The GUI Framework expects to find a number of common services to be available |
41 |
|
through the databus. For example the MessageBox service is used to display |
42 |
|
a dialog box with the specified message-text and a single OK button. |
43 |
|
|
44 |
|
FreeRIDE currently uses services published at the following databus locations: |
45 |
|
|
46 |
|
* /system/ui/services/FileOpenDialog |
47 |
|
* /system/ui/services/MessageBox |
48 |
|
* /system/ui/services/Shutdown |
49 |
|
|
50 |
|
The Fox rendering subsystem contains a file, FoxServices.rb, that implements |
51 |
|
these services using Fox. |
52 |
|
|
53 |
|
== Where to Start == |
54 |
|
|
55 |
|
The file /freeride/plugins/System_GuiCore/GuiSetup.rb contains the startup |
56 |
|
code for the FreeRIDE GUI. |
57 |
|
|
58 |
|
GuiSetup.rb also defines the class that manages component pools. FreeRIDE |
59 |
|
currently creates and uses the following component pools: |
60 |
|
|
61 |
|
* /system/ui/components/AppFrame |
62 |
|
* /system/ui/components/EditPane |
63 |
|
* /system/ui/components/MenuPane |
64 |
|
|
65 |
|
Each component pool has the following path structure: |
66 |
|
|
67 |
|
/system/ui/components/<pool-name>/pool |
68 |
|
|
69 |
|
each child of the above path represents a single component, and the path: |
70 |
|
|
71 |
|
/system/ui/components/<pool-name>/renderer |
72 |
|
|
73 |
|
contais a single instance of a class that will be used to render that component. |
74 |
|
|
75 |
|
* /system/ui/commands/AppCommands |
76 |
|
* /system/ui/commands/EditCommands |
77 |
|
|
78 |
|
[TODO: write more -- curt] |