From 9fce8d2eeea6879644acec98e1244516eb053b78 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 31 Jan 2002 21:58:34 +0000 Subject: [PATCH] Applied wxPoem, wxSystemSettings, sizing, install doc patches git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- BuildCVS.txt | 11 +++++ demos/poem/wxpoem.cpp | 4 ++ docs/msw/install.txt | 99 ++++++++----------------------------------- include/wx/settings.h | 14 ++++++ src/msw/settings.cpp | 35 +++++++++++++++ src/msw/utils.cpp | 4 +- src/msw/window.cpp | 3 +- 7 files changed, 86 insertions(+), 84 deletions(-) diff --git a/BuildCVS.txt b/BuildCVS.txt index 521678ee62..7c14fd12ce 100644 --- a/BuildCVS.txt +++ b/BuildCVS.txt @@ -72,6 +72,17 @@ c) Build instructions -> type: make -f makefile.g95 (if using GNU tools) or type: nmake -f makefile.vc (if using MS VC++) +d) Borland (including free command line tools) + Download tools from http://www.borland.com/downloads/ + + See docs/msw/install.txt for details; in brief + +-> type set WXWIN=c:\wxwindows +-> type set BCCDIR=c:\progra~1\borland\cb4 +-> type cd %WXWIN%\include\wx +-> type copy msw\setup0.h setup.h +-> type cd %WXWIN%\src\msw +-> type make -f makefile.b32 II) Unix ports -------------- diff --git a/demos/poem/wxpoem.cpp b/demos/poem/wxpoem.cpp index 23bc9b7eb5..3866bdef48 100644 --- a/demos/poem/wxpoem.cpp +++ b/demos/poem/wxpoem.cpp @@ -680,9 +680,13 @@ int MyApp::OnExit() delete Corner3; delete Corner4; + // Causes crash since they're deleted by the global font list +#if 0 delete NormalFont; delete BoldFont; delete ItalicFont; +#endif + delete[] poem_buffer; if (search_string) delete[] search_string; diff --git a/docs/msw/install.txt b/docs/msw/install.txt index 151ccac7de..cf8371adb7 100644 --- a/docs/msw/install.txt +++ b/docs/msw/install.txt @@ -205,15 +205,23 @@ versions of the library and samples. Use the 'clean' target to clean all objects, libraries and executables. -Borland C++ 4.5/5.0 compilation +Borland C++ 4.5/5.0/5.5 compilation ------------------------------- Compiling using the makefiles: 0. If downloading from CVS, copy include\wx\msw\setup0.h to include\wx\setup.h. -1. Make sure your WXWIN variable is set, and uses the FAT (short - name) form if doing a 16-bit compile. +1. Make sure your WXWIN variable is set [e.g add + set WXWIN=c:\wxwindows + to your autoexec.bat file], and that it uses the FAT (short + name) form with no spaces. + Make sure your BCCDIR variable is set [e.g add + set BCCDIR=c:\progra~1\borland\bcc + to your autoexec.bat file], and that it points to the root directory of + your Borland C++ installation, and it uses the FAT (short + name) form with no spaces. + Reboot if needed for the changes to autoexec.bat to take effect. 2. Change directory to wx\src\msw. Type 'make -f makefile.b32' to make the wxWindows core library. Ignore the warnings about 'XXX' not found in library. @@ -255,16 +263,13 @@ you will therefore need to set wxUSE_LIBJPEG to 0 in setup.h and remove the jpeg target from src\msw\makefile.b32, and remove jpeg from src\makeprog.b32. -Note (6): If using C++Builder 4 and above (BC++ 5.4 and above), change LINK=tlink32 to -LINK=ilink32 in src\makeb32.env. You may also need to disable -wxUSE_LIBJPEG because there is a conflict in the BC++ headers -(actually this problem seems to have gone away with 5.5 and SP1). +Note (6): [obsolete] Note (7): If you wish debug messages to be sent to the console in debug mode, edit src\makeb32.env and change /aa to /Tpe in LINK_FLAGS. -Compiling using the IDE files: +Compiling using the IDE files: [Borland C++ 5.0, not Cbuilder] 1. Load src\bc32.ide (Release settings) 2. Go to Options|Project... and specify the correct BC++ include and lib path for @@ -293,78 +298,6 @@ release version is around 5 MB. See also the file docs/tech/tn0007.txt for further instructions and details of how to create your own project files. -Borland C++ 5.5 compilation ---------------------------- - -Before compiling wxWindows with Borland C++ 5.5, there are a few -issues concerning the compiler installation: - -1. The compiler must be installed to a path that does not contain - spaces, such as c:\Borland\Bcc55 (in particular, do not install - it below "C:\Program Files"). - -2. Make sure that you downloaded and installed the service pack 1 - for Borland C++ 5.5. This SP1 can be downloaded from: - http://www.borland.com/devsupport/bcppbuilder/patches/#freecompiler55 - - IMPORTANT: - When installing SP1, make sure that you extract (UnZip) the files - to the directory where you installed Borland C++ 5.5 (e.g., - c:\Borland\Bcc55) with the option "use folder names" selected. - This is necessary, to ensure that the files (mostly include files) - are extracted to the right directory. - -3. Create the following two files in the same directory where you - installed Borland C++ 5.5 (e.g., c:\Borland\Bcc55): - - a. bcc32.cfg - text file containing the following two lines: - -I"c:\Borland\Bcc55\include" - -L"c:\Borland\Bcc55\lib" - - b. ilink32.cfg - text file containing the following line: - -L"c:\Borland\Bcc55\lib" - - (replace c:\Borland\Bcc55 with the actual path where you installed - Borland C++ 5.5) - -4. Add the borland BIN directory to your path (e.g., c:\Borland\Bcc55\bin), - and define the environment variable BCCDIR= - (e.g., set BCCDIR=c:\Borland\Bcc55) - -Compiling wxWindows: - -Once the compiler and its service pack are properly installed, you build -wxWindows using the provided makefile.b32 in the src/msw directory: - -a. To build wxWindows in DEBUG mode: - - cd c:\wx2\src\msw - make -f makefile.b32 - - (replace c:\wx2 with the actual path where you installed wxWindows) - -b. To build wxWindows in RELEASE mode: - - cd c:\wx2\src\msw - make -f makefile.b32 FINAL=1 - - (if you had previously built wxWindows, you need to clean all of - the object and intermediate files. Before the above make command, - run: 'make -f makefile.b32 CLEANALL') - -IMPORTANT: -The Service Pack 1 for Borland C++ 5.5 must be installed before wxWindows -is compiled. If you compiled wxWindows before, it is advised that you -re-compile it following the next steps: - - cd c:\wx2\src\msw - make -f makefile.b32 CLEANALL - make -f makefile.b32 (or make -f makefile.b32 FINAL=1) - - (replace c:\wx2 with the actual path where you installed wxWindows) - ** REMEMBER ** In all of your wxWindows applications, your source code should include @@ -377,7 +310,7 @@ the following preprocessor directive: (check the samples -- e.g., \wx2\samples\minimal\minimal.cpp -- for more details) -Borland C++Builder compilation +Borland C++Builder IDE compilation ------------------------------ 1. Build the wxWindows libraries using the Borland make utility as @@ -388,6 +321,10 @@ Borland C++Builder compilation 2. You can build samples using the makefiles as per the instructions for BC++ above, or you can follow the instructions in docs/tech/tn0004.htm or http://biolpc22.york.ac.uk/wx/bc/ide.html. + You can use the process_sample_bcb.bat command which is in + wxwindows\distrib\msw to generate a .mak or .bpr file for most of the + samples [mak for Cbuilder 1-3; bpr for v4]. Execute this in the sample + directory, passing the name of the cpp files on the command line. Watcom C++ 10.6/11 compilation --------------------------- diff --git a/include/wx/settings.h b/include/wx/settings.h index 1d3248d2c8..cd3246ef3f 100644 --- a/include/wx/settings.h +++ b/include/wx/settings.h @@ -130,6 +130,14 @@ enum wxSystemFeature wxSYS_CAN_ICONIZE_FRAME }; +// values for wxSystemSettings::GetString +enum wxSystemString +{ + wxSYS_DECIMAL_SEPARATOR = 1, + wxSYS_LIST_SEPARATOR, + wxSYS_LEADING_ZERO +}; + // ---------------------------------------------------------------------------- // wxSystemSettingsNative: defines the API for wxSystemSettings class // ---------------------------------------------------------------------------- @@ -155,6 +163,12 @@ public: // return true if the port has certain feature static bool HasFeature(wxSystemFeature index); + + // Windows-only for now +#ifdef __WXMSW__ + // Get a system string, e. g. decimal separator + static wxString GetString(int index); +#endif }; // ---------------------------------------------------------------------------- diff --git a/src/msw/settings.cpp b/src/msw/settings.cpp index b2788d0aae..d17cc51c90 100644 --- a/src/msw/settings.cpp +++ b/src/msw/settings.cpp @@ -353,6 +353,41 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index) #endif // __WXMICROWIN__/!__WXMICROWIN__ } +wxString wxSystemSettingsNative::GetString(int index) +{ + wxString str; + wxChar buffer[256]; + size_t count; + buffer[0] = wxT('\0'); + switch (index) + { + case wxSYS_DECIMAL_SEPARATOR: + count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, buffer, 256); + if (!count) + str << "."; + else + str << buffer; + break; + case wxSYS_LIST_SEPARATOR: + count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, buffer, 256); + if (!count) + str << ","; + else + str << buffer; + break; + case wxSYS_LEADING_ZERO: // 0 means no leading zero, 1 means leading zero + count = ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_ILZERO, buffer, 256); + if (!count) + str << "0"; + else + str << buffer; + break; + default: + wxFAIL_MSG("Unknown System String !"); + } + return str; +} + bool wxSystemSettingsNative::HasFeature(wxSystemFeature index) { switch ( index ) diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp index 00ea5c39eb..34b1ee859a 100644 --- a/src/msw/utils.cpp +++ b/src/msw/utils.cpp @@ -500,12 +500,12 @@ bool wxGetDiskSpace(const wxString& path, wxLongLong *pTotal, wxLongLong *pFree) if ( pTotal ) { - *pTotal = wxLongLong(bytesTotal.u.HighPart, bytesTotal.u.LowPart); + *pTotal = wxLongLong(bytesTotal.HighPart, bytesTotal.LowPart); } if ( pFree ) { - *pFree = wxLongLong(bytesFree.u.HighPart, bytesFree.u.LowPart); + *pFree = wxLongLong(bytesFree.HighPart, bytesFree.LowPart); } } else diff --git a/src/msw/window.cpp b/src/msw/window.cpp index ccd1fa6a25..1f7b937009 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1543,7 +1543,8 @@ void wxWindowMSW::DoSetClientSize(int width, int height) ::GetClientRect(GetHwnd(), &rectClient); // if the size is already ok, stop here (rectClient.left = top = 0) - if ( rectClient.right == width && rectClient.bottom == height ) + if ( (rectClient.right == width || width == -1) && + (rectClient.bottom == height || height == -1) ) { break; } -- 2.45.2