From 6f92b0bb0ce471eceb1be71070bb442a0e35b8c0 Mon Sep 17 00:00:00 2001
From: Julian Smart
+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
+
+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!
+
@@ -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.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.
+
+
diff --git a/docs/html/faqmsw.htm b/docs/html/faqmsw.htm index aa0dcbe3cb..070637bc53 100644 --- a/docs/html/faqmsw.htm +++ b/docs/html/faqmsw.htm @@ -1,4 +1,3 @@ -
@@ -45,7 +44,8 @@ See also top-level FAQ page.
-
+
+
@@ -76,7 +76,7 @@ without ever needing a copy of Microsoft Windows. See the Technical Note on the
-This port is largely complete. For further information, see the wxEmbedded page.
+This port is largely complete. For further information, see the wxEmbedded page.
@@ -244,7 +244,7 @@ lib/mswd
or if building the static Release library, lib/msw.
-See also the wxWiki Contents +See also the wxWiki Contents for more information.
@@ -335,7 +335,7 @@ example) and regenerate the makefile using tmake.
tmake can be found at www.troll.no/freebies/tmake.html. -It's a Perl5 program and so it needs Perl (doh). There is a binary for +It's a Perl5 program and so it needs Perl (doh). There is a binary for Windows (available from the same page), but I haven't used it, so I don't know if it works as flawlessly as "perl tmake" does (note for people knowing Perl: don't try to run tmake with -w, it won't @@ -344,7 +344,7 @@ just go to distrib/msw/tmake and type
tmake -t b32 wxwin.pro -o ../../src/msw/makefile.b32
-The makefiles are untested - I don't have any of Borland, Watcom or +The makefiles are untested - I don't have any of Borland, Watcom or Symantec and I don't have enough diskspace to recompile even with VC6 using makefiles. The new makefiles are as close as possible to the old ones, but not closer: in fact, there has been many strange things @@ -451,7 +451,7 @@ First, you can use wxRegKey directly, for example: regKey.SetName(idName); { - wxLogNull dummy; + wxLogNull dummy; if (!regKey.Create()) { idName = wxT("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Product\\Stuff\\"); @@ -491,13 +491,13 @@ bool myGlobalConfig::Write (const wxString& key, const wxString& value)
-This is being worked on. Please see this page +This is being worked on. Please see this page for the current status.
-
+
If you have downloaded the wxWidgets sources from the cvs using a Unix cvs client or downloaded a daily snapshot in .tar.gz format, it is likely @@ -510,6 +510,32 @@ Of course, another possibility is to always use only the Windows cvs client and to avoid this problem completely.
+
+ +If you get errors like this + +
+MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _xxxxxx already defined in LIBCD.lib(yyyyy.obj) +
+ +when linking your project, this means that you used different versions of CRT +(C Run-Time) library for wxWindows (or possibly another library) and the main +project. Visual C++ provides static or dynamic and multithread safe or not +versions of CRT for each of debug and release builds, for a total of 8 +libraries. You can choose among them by going to the "Code generation" +page/subitem of the "C++" tab/item in the project proprieties dialog in VC6/7. +
+To avoid problems, you must use the same one for all +components of your project. wxWindows uses multithread safe DLL version of the +CRT which is a good choice but may be problematic when distributing your +applications if you don't include the CRT DLL in your installation -- in this +case you may decide to switch to using a static CRT version. If you build with +wxUSE_THREADS == 0 you may also use the non MT-safe version as it is +slightly smaller and faster. +
+But the most important thing is to use the same CRT setting for +all components of your project. + diff --git a/docs/html/i18n.htm b/docs/html/i18n.htm index 21531213cb..ac3a177ccc 100644 --- a/docs/html/i18n.htm +++ b/docs/html/i18n.htm @@ -276,7 +276,7 @@ translations. Here are the the steps you should follow: or the daily snapshots, you should already have it. Otherwise you can always retrieve it directly from the cvs repository via the Web interface - here. + here.
In addition, please consider subscribing to the very low volume - + wxWidgets translators mailing list on which the news especially important for the translators are announced. diff --git a/docs/html/platform.htm b/docs/html/platform.htm index b439615723..8e6f89a7dc 100644 --- a/docs/html/platform.htm +++ b/docs/html/platform.htm @@ -81,7 +81,10 @@ often don't work.