From FreeSpace Wiki
First off, thanks for stopping by!
If you've found this page, it probably means that you or someone you know is interested in the development of the upcoming wxFRED2, a port of the Freespace 2 Editor to use the wxWidgets GUI library. Here we'll post some useful links as well as a guideline or two.
If you have not done so already, please skim over this forum topic: The "Read Me First" Posts
Getting the source code
We'll be starting off by using the GitHub repository for the wxFRED2, so as to achieve familiarity with the GitHub workflow.
- Download and install the latest version of git
- Sign Up on or Log Into GitHub
- Fork the wxFRED2 branch from the GitHub repository
- Make changes to the wxfred2 branch
- Verify the changes are compilable and buildable
- Commit your changes to your local repo, then push your local repo onto your forked repo on GitHub
- Issue a Pull Request, and a badged SCP member (probably z64555) will review & commit your changes
Mission statement of the wxFRED2 project
Trash the MFC UI elements, Use wxWidgets UI elements, use as much of the existing code as possible (while not screwing over future development)
"The Golden Rule"
- No business logic be located in the UI elements
- UI stuff is strictly UI
- Any operations in the UI that do actual work must go through an API provided by wxfred2.h and wxfred2.cpp
- Any coding style is permitted, just be sure to follow the existing style if you are editing a file
- "Allman" is the most prevalent brace and spacing style
- wxWidgets class names are camel case, and have a lowercase prefix of 2 to 4 letters. ex: "frmFRED" for frame, "glcVieport" for a glCanvas, etc.
- All other class names are camel case and have no prefix, and first letter is capitalized. ex: ViewSettings
- wxWidgets Handler methods/functions are camel case, and have the first letter capitalized ex: OnPaint()
- All other methods/functions may have their own style, but please be sure to follow existing style if present
Features and Bugs
Maintainers: Please be sure to mark the date this was last edited by using --~~~~----
Updated by: --Z64555 11:13, 23 October 2013 (UTC)----
|Component or Feature||Active Developer(s)||Completed|
|create all windows||z64555||yes|
Some Pastebins for reference/discussion
- http://pastebin.com/qBSATeP2 Early API for UI/backend
- http://pastebin.com/BWXamnrf viewport header
- http://pastebin.com/uu87vurg viewport source
- http://pastebin.com/v9Sh58v9 mission frame (context) header
- http://pastebin.com/z8nADzxt mission frame (context) source
Please use Mantis for bug tracking.