-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathTODO
137 lines (125 loc) · 7.64 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
Introduction:
Among various followings ideas, if you want to have one available in your favorite Gnoga:
- open a discussion: https://sourceforge.net/p/gnoga/mailman/
- open a ticket: https://sourceforge.net/p/gnoga/tickets/
Proposals for 2.x:
Let's now think of version Gnoga version 2.0.
What would you like for next gen Gnoga?
Gnoga is presently oriented to web applications but APIs are not so oriented to web applications.
A set of APIs could be used to native GUI applications or even textual applications for console oriented or embedded applications.
For instance:
Gnoga.User_Interface.Web_Server.Multi_Connect, Views... (the Gnoga we presently know)
Gnoga.User_Interface.Native_GUI.Windows, Views... (for native GUI applications)
Gnoga.User_Interface.Embedded.Display, Views... (for console oriented or embedded applications)
Gnoga.Data_Base.SQL... (as it is presently with mySQL and SQLite)
Gnoga.Data_Base.XML... (XML parser)
Gnoga.Data_Base.JSON... (JSON parser)
To do 1.x:
1. Complete SVG DOM bindings
2. Direct connection to webkit via API instead of sockets for Gtk and Mac
3. Windows native
4. Database linked controls
5. IDE and GUI Builder
(see RAPID http://www.nongnu.org/rapid/)
6. Expanded support for Gtk and Gnome
7. Provide more enumerations for various properties in Gnoga.Gui.Element
8. Lots and lots more Gnoga specific elements as modules and JS bindigns as plugins to be placed in Marketplace
PARTIAL 9. Complete Ace Editor plugin
10. Complete MacGap support for menus
11. Add coding style rules documentation
PARTIAL 12. Add Pixi Sprite new features (bounce on walls, event on position, event on collision, turtle à la Logo)
13. Add a Propagate_Events property in Gnoga.Gui.Base
Some other ideas:
1. Install maker GUI installs using Gnoga
2. Gnoga_Doc - Documentation generator from Ada specs resulting in a Gnoga reference app
3. Add comments with gnatdoc tags
(see http://www.adacore.com/developers/documentation/gnatdoc-users-guide/)
4. Add Ada 2012 contracts
5. Use OAuth and/or OpenID, Stephane Carrez wrote the Ada-Security framework that do just that.
(see https://code.google.com/p/ada-security/)
1. Username/Password and would be nice OAuth with google and Facebook
2. Permission levels
3. Permissions by assignment of permission groups at Level
4. Tree structure of resources to ease assignment to groups
6. How GUI designers would want to do the design for Gnoga applications:
1 - The tools they use for web design cannot be changed at the request of Ada programmers.
2 - It might be necessary to alter the design without recompiling the program.
3 - a web page may need to present more content than the Gnoga application proper.
4 - Interoperation with CMSs and web site building setups may be required.
5 - placement of parts of the views might need to adapt to devices.
A minimum requirement would be that Gnoga be capable of creating static HTML 5 pages that would act as drawing
boards or mockup for designers. They shan't use Gnoga's GUI builder. Instead, what they produce
needs to be mapped to or merged with what the Create (I guess) family of functions of Gnoga needs to do.
7. How about a identity / login package which can validate via google or facebook to establish the identity?
8. How would you go about generating/sending mail from a gnoga app?
(There is mail support in AWS, pretty comprehesive.
Basil was made for MIME, http://hafdconsulting.com/projects/basil/)
9. How to get the content of the clipboard and how to modify it ?
(see https://w3c.github.io/clipboard-apis/)
http://sourceforge.net/p/gnoga/tickets/17/
DONE 10. Add tips or compile faq in a wiki
DONE 11. Add menu bar widget
(see https://github.com/manusa/mnmenu)
http://sourceforge.net/p/gnoga/tickets/18/
12. Equivalent of List_View_Control_Type (GWindows.Common_Controls) ?
The matching functionalities are roughly:
- headers
- possibility of fixing column widths
- possibly, multiple selection
Nice to have, features of Ex_List_View_Control_Type in
GWindows.Common_Controls.Ex_List_View :
- row colors
- alternate colors
- payload
- sorting on various columns
DONE 13. Add example with a JavaFX webview browser object (HTML5 rendering, minimal user interaction)
14. Add more support for HTML5 (header, hgroup, h, footer, section, aside, article, nav, time,
details, address, figure, role...)
15. ConnectFour : Some instruction on the nature of the game and how to play might be in order.
A way to start a new game other than reloading the page might be good.
A way to quit without closing the browser window/tab would help, too.
16. An installer using GNOGA would be a nice way to demonstrate package management.
You may get some inspiration from the GWindows installer, made completely in Ada and using GWindows for the UI:
http://sf.net/p/gnavi/code/HEAD/tree/gwindows/installer/
DONE 17. Provide components not just of Gnoga GUI elements but to also package up for use things like
Jeff's PargmArc (http://pragmada.x10hosting.com/pragmarc.htm) etc.
Added Jeff's PargmArc library.
18. Install also tutorials and demos
DONE 19. Internationalisation with language translation of displayed text.
(see http://zanyblue.sourceforge.net/)
20. How I can let a user choose a file for loading (and later saving).
21. Conventional dialogs like file selection, printer selection, color selection etc.
http://sourceforge.net/p/gnoga/tickets/4/
22. Create a CMS / web site system using Gnoga.
23. Screen update triggered by data change.
24. Add a way to disconnect if there is no activity on connection for a period of time.
Adding something to add for framework since will be easier to track if there has been connection traffic.
If not you will need to manually tell your watchdog to reset its disconnect timer.
25. Improve Gnoga.Gui.Plugin.jQueryUI.Widget with Make_Select_Menu, Refresh_Select_Menu, Clear_Select_Menu.
26. 3D graphics in GNOGA: possible/how?
(see http://www.puffgames.com/3d_rubiks_kube_puzzle/)
27. Chart functions inside gnoga for things like line or bar charts.
(see PLplot is a fully-featured plotting package with two thick Ada bindings. http://plplot.org/)
28. Support database compatible with OpenOffice Base (HSQLDB)
29. Getting good scientific 2D plots is a hard requirement, getting some nice 3D stuff would be a nice addition.
Added Jeff's plotting library.
DONE 30. Use Wide_Strings type for Gnoga APIs strings and keep UTF-8 support
DONE 31. Add AdaOthello port to Gnoga.
32. Support games with http://phaser.io/.
DONE 33. Instrument Gnoga tasks with a Ada.Task_Termination handler.
DONE 34. Simplified Gnoga built with plugins copied files and GPR project files with GPS
35. Make a Scrabble with Gnoga
36. Add a higher level "animated canvas" as a component that provided the double buffering
37. Add mouse scrolling wheel support
38. Explore ways to allow more controlled re-raising of exceptions in to the user code when it makes sense.
39. Add RTCDataChannel in Gnoga to support the creation of highly reactive HTML5 online games.
1. TCP can severely degrades online game experience when there is packet loss.
2. SCTP, the protocol backing RTCDataChannels, can be configured to act like UDP.
For highly reactive games this is wanted/needed because present time information
(e.g: position) is more important than reliability.
note: read http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/ for a
more in depth explanation.
40. Adapt to Gnoga Chess game: http://adachess.com
DONE 41. Add an exception handler for singleton apps (main procedure would have an
exception handler and call End_Application if it handles an exception.)
42. Enhancement for logging API à la Python