X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3a5bcc4db0851bf8cd3063917511b0b17c7f9679..b65ee6fd83eb16afccc00c9ba66cd0d267fe7508:/docs/html/faqgen.htm diff --git a/docs/html/faqgen.htm b/docs/html/faqgen.htm index 43d44423d5..2b6b864cf3 100644 --- a/docs/html/faqgen.htm +++ b/docs/html/faqgen.htm @@ -42,6 +42,7 @@ See also top-level FAQ page.
  • What about Java?
  • What about .NET/Mono?
  • How can I help the project?
  • +
  • How do I start a new port?

  • @@ -54,7 +55,7 @@ so your program will take on the native 'look and feel' that users are f Although GUI applications are mostly built programmatically, there are several dialog editors to help build attractive dialogs and panels. Robert Roebling's wxDesigner and Anthemion Software's DialogBlocks -are two commercial examples, but there are others: see the Useful Tools page.

    +are two commercial examples, but there are others: see the Useful Tools page.

    You don't have to use C++ to use wxWidgets: there is a Python interface for wxWidgets 2, and also a Perl interface. @@ -309,10 +310,64 @@ Update: a wx.NET project

    How can I help the project?

    -Please check out the Community pages, +Please check out the Community pages, in particular the suggested projects, and mail the developers' mailing list with your own suggestions.

    +

    How do I start a new port?

    + +Please subscribe to the wx-dev developers' mailing list and +ask if anyone else is interested in helping with the port, or +has specific suggestions. Also please read the coding standards. + +

    +Each port consists of a platform-specific part (e.g. src/msw, include/wx/msw), +a generic set of widgets and dialogs for when the port doesn't support +them natively (src/generic, include/wx/generic) and the common code +that all ports use (src/common, include/wx). By browsing the source +you should get a good idea of the general pattern.

    + +Take a port that most closely matches your port, and strip out +the implementation so you have a skeleton port that compiles. Ask on wx-dev +first for the wxStubs port - however, any such predefined skeleton +port may be out of date, so make a judgement on whether to use it. +Perhaps it will still save you time to clean up wxStubs, and +others may benefit from this too.

    + +You will need to define a symbol for the new port, e.g. __WXXBOX__. +Look at files such as wx/defs.h, wx/wxchar.h for areas where you'll +need to add to existing conditionals to set up wide character +support and other issues. If the GUI runs on a Unix variant, +define the __UNIX__ variable in your makefile.

    + +Then you can start implementing the port, starting with +wxWindow, wxTopLevelWindow, wxFrame, wxDialog so you +can get the minimal sample running as soon as possible.

    + +If GDI objects (wxPen, wxBrush, etc.) are not concepts in your +native GUI, you may wish to use very generic versions of +some of these - see the wxX11 port.

    + +Consider using the wxUniversal widget set as a quick way +to implement wxWidgets on your platform. You only need +to define some basic classes such as device contexts, +wxWindow, wxTopLevelWindow, GDI objects etc. and +the actual widgets will be drawn for you. See wxX11, +wxMGL, and wxMSW/Univ for sample wxUniversal ports.

    + +To begin with, you can use whatever makefiles or project +files work for you. Look at existing makefiles to see what +generic/common/Unix files need to be included. Later, you'll want to integrate support +for your port into configure (Unix-like systems and gcc under Windows), +and bakefile (for other makefiles on Windows).

    + +Submit your port as patches via SourceForge; you might +wish to separate it into one patch that touches common headers +and source files, and another containing the port-specific code, to make +it much easier for us to review and apply the patches.

    + +Good luck! +