These changelogs reflect the history of all files in the Subversion repository. The changelog has been generated at 2014-04-19 19:30:02

Select Changelog:

FileZilla 3, FileZilla,
FileZilla Server, wxWidgets

Changes per page:

25 50 100 250 500 1000 2000

Changelog for wxWidgets (68405 changes):

2010-11-23 23:14 RD, revision 66249

Use an enum for the colour/string conversion flags

2010-11-23 23:14 RD, revision 66248

Fixed parameter names. They can't be named "short"

2010-11-23 14:12 VZ, revision 66246

VC6 compilation fix: don't return void values. Fix VC6 compilation broken by r66237: don't return the result from a void function, this compiler doesn't support this C++ feature.

2010-11-23 14:11 VZ, revision 66245

Simplify timezone-related code and fix some minor bugs in it. Try to make the chain of preprocessor checks for different ways of getting time zone from the CRT more clear. Also call _tzset() for all MSVC versions, not just MSVC8+ (closes #12700). We should probably call tzset() for the other compilers too, in fact. And multiply the timezone returned from ftime() by 60 as it's supposed to be in minutes and not seconds as needed.

2010-11-23 14:11 VZ, revision 66244

Center task dialog-based wxProgressDialog on the parent window. wxProgressDialog was created without the parent when using task dialogs so it was centred on screen and not on its parent as usual. Fix this by explicitly positioning it so that it's centered over the parent. Closes #12699.

2010-11-23 14:10 VZ, revision 66243

Deselect all items in wxMSW wxListBox when selection is set to -1. Even though this behaviour is somewhat counterintuitive, the documentation mentions that this is what should happen and wxGTK and wxOSX already behave like this so bring wxMSW in line. wxListBox::DeselectAll() should probably just call SetSelection(wxNOT_FOUND) when the item to leave selected is not specified too now. Closes #12705.

2010-11-22 17:38 SC, revision 66242

fixing 64 bit ranger error

2010-11-22 17:18 VZ, revision 66241

Initialize time zone information before using it in wxGetTimeZone(). We must call _tzset() before calling _get_timezone() as while this is normally done implicitly by the other time functions, it might not have been done yet if create a wxDateTime::TimeZone before calling any of them. Closes #12700.

2010-11-22 15:28 JMS, revision 66240

Have wxPropertyGridEditorEventForwarder::ProcessEvent() return true more often - that is when the event was recognized as being 'handled', and specifically for the case of property editor's button being pressed (fixes #12487).

2010-11-22 13:51 VZ, revision 66239

Fix wxUniv build after deriving wxStatusBar from wxControl. wxUniv build was broken since the base class of wxStatusBar was changed from wxWindow to wxControl in r66226 because it derived twice from wxInputConsumer now. Fix this by simply not inheriting wxStatusBarUniv from wxInputConsumer any more, it already derives from it via wxControl now.

2010-11-22 13:49 VZ, revision 66238

Revert "Always define WXUSINGDLL when compiling Scintilla in shared wx build." Finally it's unnecessary to define WXUSINGDLL when building wxScintilla library as it doesn't use the main DLL, it is simply used as part of it. This reverts r66222 and finally closes #12626.

2010-11-22 13:49 VZ, revision 66237

Don't try to center task dialogs under Windows. This is either unnecessary or doesn't work anyhow (they are always centered on the parent window) and just results in debug error messages. Simply don't do anything in wxMessageDialog::Centre() when using task dialog implementation under MSW. Closes #12699.

2010-11-22 13:48 VZ, revision 66236

Set the width of the last status bar pane correctly in wxMSW. The total width of status bar panes must add up to the size of the status bar as otherwise an extra unwanted border is drawn after the last pane and we did have this border for status bar with a size grip. So while we still use the width without the size grip for calculating the fields widths, pass the width with the size grip to Windows to prevent this from happening. Also, don't pretend that the last field stretches up to the status bar edge when it should end before the size grip and Windows even already helpfully does it for us. Closes #12655.

2010-11-22 13:48 VZ, revision 66235

Add status bar styles mapping to MSW styles broken by recent changes. SBARS_SIZEGRIP and CCS_TOP should be added to the normal style, not the extended one. This restores the behaviour broken by r66227.

2010-11-22 13:48 VZ, revision 66234

Put WINDRES_CPU_DEFINE in RESFLAGS and not RESCOMP in configure. WINDRES_CPU_DEFINE is just another resource compiler flag which should be part of RESFLAGS instead of being added to RESCOMP definition itself. This is not only more logical but also fixes the problem with matching RESCOMP against "windres" or "wrc" in wx-config. See #12356.

2010-11-22 02:23 VZ, revision 66233

Make wxChoicebook background transparent. This fixes the appearance of an empty wxChoicebook used as a child of a wxNotebook under MSW. Closes #12503.

2010-11-22 02:23 VZ, revision 66232

Deprecate not working wxSplitterWindow::SetSashSize(). Setting sash size to non default value didn't work correctly and didn't make much sense anyhow as the sash appearance is platform-dependent and current code for drawing it doesn't work for arbitrary sizes. Simply remove the possibility to set the sash size. Closes #12412.

2010-11-22 02:23 VZ, revision 66231

Don't set explicit background colour for wxStatusBar in wxMSW. Setting the background colour for the status bar explicitly is unnecessary and probably prevents it from rendering correctly with some themes. Simply remove the call to SetBackgroundColour() from wxStatusBar::Create(). We should also define Get[Class]DefaultAttributes() in wxStatusBar in the future.

2010-11-22 02:23 VZ, revision 66230

Don't forbid creating wxSplitterWindow with border style. Any border specified for wxSplitterWindow was explicitly discarded when creating it but there doesn't seem to be any reason to forbid it, the original code probably predated the addition of wxWindow::GetDefaultBorder() which allowed to have different borders by default for different classes. In any case, simply remove this code now to allow creating splitters with borders if so desired. Closes #12413.

2010-11-22 02:22 VZ, revision 66229

Delete pending objects in wxApp::ProcessPendingEvents() and not ProcessIdle(). Move DeletePendingObjects() call from ProcessPendingEvents() to ProcessIdle() to ensure that we delete the objects marked for destruction even if the application is sitting in a tight OnIdle() loop, i.e. if the idle event handler keeps requesting more events. Also make sure that the event loop terminates if its OnExit() was called even if the idle event handler continues to request more events. Closes #12424.

2010-11-22 02:22 VZ, revision 66228

Silently ignore timer events from timers which were just stopped. An assert in wxTimerWndProc() could be provoked by valid user code which simply started and stopped the timers quickly enough because a WM_TIMER could have been already generated just before we stopped the timer. Simply ignore events from unknown timer under assumption that they must come from the recently stopped ones instead of asserting. Ideally we'd somehow distinguish between the situation described above and the really bogus events which could indicate bugs in wx code or a change in behaviour in a future version of Windows but there is no easy way to do it so for now just settle for not asserting in normal case. Closes #10052.

2010-11-22 02:22 VZ, revision 66227

Refactor wxStatusBar creation in wxMSW to do it in standard way. Use wxControl-provided CreateControl() and MSWCreateControl() methods to create the status bar instead of duplicating their code in its Create(). Also translate wx styles to MSW ones in overridden MSWGetStyle() now. In addition to making the code smaller and more clear, this fixes the non-respect of the styles specified at status bar creation (e.g. border), see #12655.

2010-11-22 02:22 VZ, revision 66226

Derive wxStatusBar from wxControl and not wxWindow. wxStatusBar is no less a control than wxToolBar and deriving it from wxControl gives access to convenient native control creation functions under MSW (which will be used by the next commit).

2010-11-22 02:22 VZ, revision 66225

Use status full, not client, size to determine frame client size in wxMSW. We need to account for the full size of status bar, including potential borders, when calculating the client size of the frame containing it. Closes #12697.

2010-11-22 02:22 VZ, revision 66224

Send page changed event after changing the page in wxMSW wxNotebook. Update the currently selected page before generating wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED event in wxMSW wxNotebook. This is more consistent with other ports and more logical as "-ED" events are supposed to be sent after the action they notify about is completed. And it also allows to set the focus in this event handler whereas any attempts to do it would have been disregarded before as changing the active page resets focus. Notice that this does introduce an incompatibility: calling wxNotebook::GetSelection() from PAGE_CHANGED event handler now returns the new page and not the old one as before. Again, this is more logical and more consistent. Closes #12688.

2010-11-22 02:22 VZ, revision 66223

Use correct wxDEBUG_LEVEL value when building wxscintilla library. wxScintilla code uses wxVector<> which brings in wxDEBUG_LEVEL-dependent code so we must use the wxDEBUG_LEVEL value consistent with the rest of the library when building it. Simply pass wxDEBUG_LEVEL definition on the compiler command line if it's different from the default. Closes #12626.

2010-11-22 02:22 VZ, revision 66222

Always define WXUSINGDLL when compiling Scintilla in shared wx build. We need WXUSINGDLL even in monolithic build because Scintilla references wx debugging functions (wxOnAssert(), wxTheAssertHandler &c) which still must be seen as being exported from the (monolithic) DLL in this case. See #12626.

2010-11-21 14:00 VZ, revision 66221

Correct wxFont::GetFamily() unit test to test for wxFONTFAMILY_DEFAULT. GetFamily() returns wxFONTFAMILY_DEFAULT and not wxFONTFAMILY_UNKNOWN since r65670. Correct the test to handle wxFONTFAMILY_DEFAULT as allowed value.

2010-11-21 14:00 VZ, revision 66220

Revert r66070: "Unload bogus XRC resources in "garbage" unit test." This change is not needed any longer after r66219 which fixed the real underlying problem, i.e. that attempting to load an invalid XRC file resulted in failures when loading all subsequent XRC files.

2010-11-21 00:53 VZ, revision 66219

Don't keep entries for XRC resources that failed to load in wxXmlResource. Attempting to load a resource that couldn't be loaded resulted in wxXmlResource::Load() returning false for this and _all_the_subsequent_ calls to it because each call to Load() reattempted to reload all resources, including the one(s) that failed to load initially. Instead, try to load just the resource(s) that we should load right now and ignore all the other ones. Also, don't add entries for the one(s) that we fail to load. This fixes the unit test failures in the XRC test case which was affected by the test checking that XRC couldn't be loaded from garbage that ran before it. It also makes the code simpler by ensuring that wxXmlResourceDataRecords elements always have a valid wxXmlDocument associated with them. Also clean up the code: use wxScopedPtr instead of manually deleting pointers and reorganize #if checks to be easier to follow.

2010-11-21 00:53 VZ, revision 66218

Don't consider extra ".." an error in wxFileName::Normalize(). The path being normalized could have come from user and there doesn't seem to be any point in complaining about too many ".."s in it when we can handle them correctly instead. So simply ignore the extra ".."s for the absolute paths and keep them unchanged for the relative ones instead of returning an error. See #10960.

2010-11-20 12:58 JMS, revision 66217

Reworked wxSystemColourProperty::StringToValue() to use wxColour::Set() instead of doing string-to-colour conversion by itself. This adds support for HTML-colours, among other things (closes #12696).

2010-11-19 08:57 RD, revision 66210

Fix some bad parameter names, add missing methods, add missing classes, etc.

2010-11-19 08:51 RD, revision 66209

Add a SetSize to wxSizeEvent

2010-11-18 15:10 VZ, revision 66205

Improve documentation about handling C++ exceptions in wx programs. Try to explain the different exception handling strategies more clearly in the overview and also update OnUnhandledException() documentation.

2010-11-18 13:41 VZ, revision 66203

Check wxDateTime components validity more rigorously. Check that the provided day is strictly positive and also that the month is in valid range: while it should always be, considering that it's an enum element, in practice people often cast ints to wxDateTime::Month with potentially fatal results. Catch this with an assert in wxDateTime::Tm::IsValid().

2010-11-18 13:41 VZ, revision 66202

Explicitly include "wx/dynlib.h" from src/msw/combobox.cpp. This header was only included implicitly via wx/msw/uxtheme.h and thus the code failed to compile with wxUSE_UXTHEME==0 but wxUSE_DYNLIB_CLASS==1. See #12664.

2010-11-17 06:57 PC, revision 66180

remove const from by-value return type, it's useless

2010-11-17 02:22 VZ, revision 66179

Remove obsolete warning from wxMenuBar::GetTitle() documentation. This method can be used for menu bar entries also since the previous commit. Do mention that SetTitle() can't be used to change a menu bar menu title however.

2010-11-17 02:20 VZ, revision 66178

Simplify wxMSW wxMenuBar title management. Store the titles of the menu bar menus in the menu objects themselves. This makes wxMenu::GetTitle() return the expected result for them (which also fixes the current unit test failures for wxMSW) and makes wxMenuBar code simpler. This removes the wxMenuInfo class which existed for XTI purposes only but as it was apparently unfinished and MSW-specific it shouldn't be a big loss.

2010-11-17 02:20 VZ, revision 66177

No real changes, just minor cleanup of wxImage code. Make more local variables const. Use consistent spacing. Don't use needless comparison with NULL. Don't avoid not using double negation. See #12682.

2010-11-17 02:20 VZ, revision 66176

Don't pass a bool to wxImage::MakeEmptyClone() which takes an enum. Correct the changes of r66167 which accidentally left a call to MakeEmptyClone() using its previous signature. See #12682.

2010-11-16 23:38 VZ, revision 66175

Correct form of mnemonics returned by wxGTK wxMenu::GetTitle(). wxMenu::GetTitle() returned a string in GTK+ format (i.e. using underscores instead of ampersands) instead of the expected wx one. This is, of course, the right thing to do and it also fixes wxMenuBar::FindMenuItem() as a side effect. Closes #12672.

2010-11-16 23:38 VZ, revision 66174

Emphasize that wxUSE_DYNLIB_CLASS shouldn't be disabled in wxMSW. Mention in the setup.h comment that wxDynamicLibrary is used in a lot of places internally and disabling it can result in a loss of a lot of important functionality. See #12664.

2010-11-16 23:38 VZ, revision 66173

Add more checks for wxUSE_DYNLIB_CLASS to wxMSW. Compilation fixes for wxApp and wxComboBox for wxUSE_DYNLIB_CLASS==0. See #12664.

2010-11-16 23:38 VZ, revision 66172

Correct checks for wxUSE_PRINTING_ARCHITECTURE and wxUSE_ENH_METAFILE. Compilation fixes for building without one or both of these symbols. See #12664.

2010-11-16 23:38 VZ, revision 66171

Avoid asserts due to not overriding OnGetItemText() in VirtListCtrlTestCase. A virtual list control must override wxListCtrl::OnGetItemText() method and wxMSW native implementation asserts if this is not the case (the generic one should arguably do it as well). Avoid the asserts by providing a dummy implementation of OnGetItemText() in the unit test.

2010-11-16 23:38 VZ, revision 66170

Add an explicit SetFocus() call to fix wxTreeCtrl unit test. Fixing the implicit focus grabbing by wxTreeCtrl::SelectItem() in r65905 broke its unit test case as the simulated key event was not delivered to wxTreeCtrl itself any more. Fix this by simply setting the focus to the tree explicitly before sending it any key strokes.

2010-11-16 23:38 VZ, revision 66169

Correct wxMSW wxToolTip behaviour for wxRadioBox items tooltips. The assert added in r66053 checking that we couldn't have tooltips for child windows if we didn't have the tooltip for the main one turned out to be wrong, at least in wxRadioBox case it's perfectly possible to have the tooltips for the individual radio buttons without having one for the box itself. Replace the assert with a simple if check. This fixes a unit test failure in RadioBoxTestCase.

2010-11-16 23:38 VZ, revision 66168

Don't use some "recent" C++98 features not supported by VC6. Don't return void values nor redeclare the same variable in for loops to fix VC6 compilation.

2010-11-16 23:37 VZ, revision 66167

No changes, just refactor common code in wxImage cloning functions. Extract code common to several wxImage methods creating new images based on an existing one in a new MakeEmptyClone() method. Closes #12682.

2010-11-16 23:37 VZ, revision 66166

Fix crashes in wxDateTime::ParseDate() for some invalid dates. Parsing an incomplete date with nothing but whitespace and/or date delimiter characters at the end crashed as we happily went beyond the end of string. Fix this by not using a loop which didn't check for the iterator validity. Closes #12685.

2010-11-15 09:52 JJ, revision 66161

Update OpenVMS makefile

2010-11-15 01:22 VZ, revision 66157

VC6 compilation fix in wxDIB::Create(). Deal with the lack of scope around variables declared inside the for loop in this compiler, previously it gave "error C2360: initialization of 'x' is skipped by 'case' label" message and also complained about redefinition of 'x'.

2010-11-15 01:11 VZ, revision 66156

Fix incorrect use of word "alternative" in the documentation. There can't be only one alternative. Closes #12681.

2010-11-14 15:04 VZ, revision 66153

Restore code for closing inherited file descriptors in the child. The code closing all file descriptors inherited from the parent in the child process created by wxExecute() was removed in r57324 by mistake (probably due the fact that its meaning was poorly explained) but we still do need to do this, of course, to avoid descriptor "leaks" (e.g. the parent couldn't really close any of them). Restore the code for closing all unneeded file descriptors in the child in slightly modified form and add a comment pointing to an URL explaining how to do it better in the future. Closes #12636.

2010-11-14 15:04 VZ, revision 66152

Fix spurious errors when writing to the child process stdin under Unix. Since the child pipe was made non-blocking in r65993, it became possible to write to child process without deadlocking when the pipe became full. However this still resulted in an error from wxFileOutputStream as it didn't handle EAGAIN returned from write() any differently than any other error, even though it is an expected situation in this particular case. Change Unix wxExecute() to use wxPipeOutputStream which ignores EAGAIN unlike wxFileOutputStream to fix this. See #12636.

2010-11-14 15:04 VZ, revision 66151

No real changes, just reamed HAS_PIPE_INPUT_STREAM. Renamed the symbol indicating whether pipe-based streams are available from HAS_PIPE_INPUT_STREAM to HAS_PIPE_STREAMS as it's not really input-specific. See #12636.

2010-11-14 13:09 VZ, revision 66150

Add wxFile::{Get,Clear}LastError() functions. Remember the errno of the last file operation instead of just remembering whether there was an error or not. See #12636.

2010-11-14 13:09 VZ, revision 66149

Handle image hot spot in wxImage::Rotate180(). Set the hot spot coordinates correctly for the image returned from Rotate180(), just as it's already done by Rotate90(). Closes #12680.

2010-11-14 02:02 VZ, revision 66146

Add wxImage::Rotate180() function. Closes #12679.

2010-11-14 02:02 VZ, revision 66145

Handle hot spots in wxImage::Rotate90(). Set hot spot coordinates for the rotated image if the original one had them. Also handle the case when the source image has both alpha and mask correctly. Closes #3680.

2010-11-13 18:13 VZ, revision 66144

Don't use standard menu ids in the unit test to avoid Mac problems. wxOSX rearranges the standard menu items such as wxID_EXIT and wxID_ABOUT and, for the former, changes its text to "Quit", so don't use them in the menu unit test which expects to find the items in the menus to which they were added and exactly with the labels used when adding them.

2010-11-13 16:03 VZ, revision 66143

Don't put cursor at the end of wxGridCellEnumEditor control. Putting the cursor to the end of the control when the editing starts doesn't make much sense as this should be the default behaviour anyhow and, worse, this results in an assert under wxMSW where a read-only wxComboBox doesn't have any cursor to move. Closes #12446.

2010-11-13 16:03 VZ, revision 66142

Initialize scrollbar positions in wxGTK correctly. The scrollbar positions stored in wxWindow::m_scrollPos were not initially correct in wxGTK because wxScrollHelper::SetScrollbars() didn't update them and only set the values of the underlying GtkAdjustments themselves. This resulted in filtering out of the first scroll event as the code (wrongly) believed that the scrollbar position hadn't changed. Fix this by setting m_scrollPos to the real scrollbar positions. Closes #12468.

2010-11-13 16:03 VZ, revision 66141

Add a unit test checking selection updating in virtual wxListCtrl. Verify that the selection is updated correctly after the number of items in the control is decreased. See #12378.

2010-11-13 16:03 VZ, revision 66140

Don't assert if config file contains an invalid boolean value. Asserts should be only triggered by programming errors, not by user actions, and the assert checking that the value is either 0 or 1 in wxConfigBase::DoReadBool() could happen if the user edited the file and put a wrong value into it. Replace the assert with a warning message. See #11437.

2010-11-13 16:03 VZ, revision 66139

Add a beginning of wxMenu unit test. Test wxMenu and wxMenuBar item search and counting functions. See #12672.

2010-11-13 16:02 VZ, revision 66138

Make menu operations always work with "Test" menu in the sample. Some tests in the "Menu" menu of the menu sample worked with the "Test" menu while others used the last one ("Help" initially but possibly something else if the test commands from "Menubar" menu were used). Harmonize all menu commands to use the "Test" menu now. See #12668.

2010-11-13 16:02 VZ, revision 66137

Fix resizing of wxGrid columns when they were reordered. The column resizing code in wxGrid didn't take account of the fact that the column positions and indices could be different. Correct it by inserting calls to wxGrid::GetColAt() and GetColPos() in a new wxGridOperations::GetLineBefore() method. Closes #11984.

2010-11-12 08:15 JJ, revision 66124

Update SETUP for OpenVMS

2010-11-11 16:51 MW, revision 66121

Use wxFS_SEEKABLE flag loading images.

2010-11-11 13:09 VZ, revision 66120

Improve check for ASCII locale in wxGTK initialization code. Use wxFontMapper::GetEncodingFromName() to check if the current locale encoding is ASCII instead of just comparing the name with "US-ASCII" which is not the name used by most platforms (e.g. current Linux systems call this encoding "ANSI_X3.4-1968"). This avoid creating a wxCSConv object for ASCII encoding unnecessarily on startup.

2010-11-11 13:09 VZ, revision 66119

Initialize wxCSConv immediately instead of deferring it. Deferred initialization code was not MT-safe and just wasn't that useful anyhow because it is rare to create a wxCSConv object and not use it afterwards. Remove the deferred initialization logic and create the real conversion used by wxCSConv immediately in its ctor. Also improve the comments by clearly explaining the possible values of wxCSConv::m_name and m_encoding. Closes #12630.

2010-11-11 13:09 VZ, revision 66118

Fix typo in error message given if wxUSE_CAIRO is undefined. Replaced the wrongly copy-and-pasted wxUSE_BUTTON with wxUSE_CAIRO.

2010-11-11 05:09 RD, revision 66117

No docs yet, just the bare interace so we can get XML for Phoenix.

2010-11-11 02:29 RD, revision 66116

Fix a parameter type and add some missing const keywords

2010-11-10 14:53 VZ, revision 66103

Disable unit tests which can't work in ANSI build. Disable unit tests involving operations (such as conversions between UTF and anything but plain ASCII) not available in ANSI build. This fixes the test suite for non-Unicode build under Unix.

2010-11-10 14:53 VZ, revision 66102

Use wxString::To8BitData() instead of mb_str() to handle NULs correctly. In ANSI build wxString::mb_str() returns a pointer to the internal wxString data directly instead of a buffer with a proper length, so it provides access to the part of the string before the first embedded NUL only. Use To8BitData() which always returns the buffer of the correct size in all builds. The open question remains whether mb_str() should be changed to return a (non owned) buffer and not just a pointer in ANSI build. This would make manipulating strings with embedded NULs safer but mb_str() would be less efficient and less compatible.

2010-11-10 14:53 VZ, revision 66101

Fix wxString::{Before,After}{First,Last} unit test for ANSI build. The test used a wide character constant and so didn't work in ANSI build. Use an ASCII string there now while still keeping the original version in Unicode build.

2010-11-10 14:53 VZ, revision 66100

Don't check for wxDF_UNICODETEXT support in ANSI builds. wxDF_UNICODETEXT clipboard format can't be even constructed without provoking an assert in ANSI build of wxGTK, so avoid using it, we don't support it anyhow.

2010-11-10 14:53 VZ, revision 66099

Initialize paragraph descent in wxRichTextParagraph::Layout(). This variable was used as the initial value for the descent but was never initialized, so the descent computation could be completely wrong.

2010-11-10 14:53 VZ, revision 66098

Don't crash in wxGUIEventLoop::Exit() if not running in wxX11. The implementation of wxEventLoop::IsRunning() has changed since this code was written and it doesn't check for m_impl != NULL any more. Because of this, calling Exit() for an active but not running event loop resulted in a crash in wxX11. Fix this by doing nothing in this case. This seems better than asserting as the event handling code exits the loop if an event handler throws an exception and the loop might not be running in this case yet (events could be processed because of a wxYield() call).

2010-11-10 14:53 VZ, revision 66097

Implement bitmap mask copying in wxX11. Copy the mask pixmap properly in wxX11, otherwise copying masks resulted in freeing the same pixmap twice and an X error. This fixes the bitmap unit test for wxX11.

2010-11-10 14:52 VZ, revision 66096

Don't test for DC validity in wxX11 wxDC text extent functions. The code in GetTextExtent() and GetChar{Width,Height}() works fine even for non-initialized wxMemoryDC and the ellipsization unit test relies on this working so simply remove the asserts which resulted in the test failures.

2010-11-10 14:52 VZ, revision 66095

Disable measuring context unit test for wxX11. wxCairoRenderer::CreateMeasuringContext() is only implemented for wxGTK so the test fails under other ports when using Cairo. Disable it for wxX11 for now.

2010-11-10 14:52 VZ, revision 66094

Use Cairo for wxGraphicsContext in wxX11. Check for Cairo in configure for wxX11 too. Fix compilation of wxCairoContext for non-{GTK,MSW} platforms. Also make wxUSE_CAIRO a "normal" option, i.e. add it to all wx/setup.h files instead of defining it as 1 unconditionally for wxGTK and 0 for everything else.

2010-11-10 14:52 VZ, revision 66093

Disable unit test for wxColour alpha under wxX11. wxX11 doesn't support alpha component of wxColour currently.

2010-11-10 14:52 VZ, revision 66092

Fix signed/unsigned comparison warnings in wxUniv wxNotebook. Recent replacement of size_t wxNotebook::m_selection with int wxBookCtrlBase::m_selection resulted in appearance of many warnings in wxUniv wxNotebook. Fix them by removing some now unnecessary casts between int and size_t and adjusting the remaining ones.

2010-11-10 14:52 VZ, revision 66091

Add #if checks fixing minimal wxGTK build. Check for functions availability before using them. This fixes compilation of wxGTK with all features disabled.

2010-11-10 14:52 VZ, revision 66090

Fix harmless unused parameter warnings in minimal build. No real changes, just add some wxUnusedVar() to avoid warnings about parameters unused in some non-default build configurations.

2010-11-10 14:52 VZ, revision 66089

Don't exclude a bunch of wxDir methods when wxUSE_LONGLONG==0. The #endif part of a #if wxUSE_LONGLONG check was incorrectly positioned and excluded the definition of several wxDir methods not related to wxLongLong when wxUSE_LONGLONG was 0.

2010-11-10 14:52 VZ, revision 66088

Fix wxGLCanvas compilation with wxUSE_PALETTE==0. This fixes compilation problems with the minimal build of wxGTK and will make removing palette support in the future simpler.

2010-11-10 14:51 VZ, revision 66087

Fix wxStandardDialogLayoutAdapter compilation with wxUSE_BUTTON==0. This class probably should not be compiled in at all in the minimal build but in the meanwhile just add #if checks around its button-related parts.

2010-11-10 14:51 VZ, revision 66086

Make wxBitmap::ConvertToDisabled() available in all ports. This method was defined in wxBitmapBase which is not used by wxMSW (and wxOS2) so it wasn't available there. Move the definition of the method inline and reuse it for all ports, making it part of either wxBitmapBase or wxBitmap as appropriate. This is clearly ugly but we still have no good solution for deriving wxBitmap from wxBitmapBase in wxMSW as it already inherits from MSW-specific wxGDIImage there. Also document that ConvertToDisabled() is only available when wxUSE_IMAGE==1.

2010-11-10 01:36 VZ, revision 66082

Disconnect "hide" menu signal to fix menu destruction in wxGTK. The "hide" signal handler was triggered when destroying a sub-menu (even if it was not shown at this time). Disconnect it to avoid asserts due to attempts to generate an event for an already detached menu and to avoid the (bogus) wxEVT_MENU_CLOSE event as well. Closes #12668.

2010-11-10 01:36 VZ, revision 66081

Add a test for deleting a sub-menu to the menu sample. Also fix some typos in the help message. See #12668.

2010-11-10 01:36 VZ, revision 66080

Fix wxUSE_DC_CACHEING spelling in the documentation. It was consistently misspelt as wxUSE_DC_CACHE. Closes #12377.

2010-11-10 01:36 VZ, revision 66079

No changes, just simplify docview sample a bit. Remove some unnecessary function arguments and m_frame member variable. Closes #12374.

2010-11-10 01:36 VZ, revision 66078

Correct wxID_SEPARATOR description in menu documentation. Also correct a typo in Delete() function links. Closes #12666.

2010-11-10 00:53 VZ, revision 66077

Fix preprocessor definitions for wxBase build under OS X. Define __WXOSX__ for non-GUI build under Darwin. Ensure that the rest of the code compiles correctly when just __WXOSX__ is defined but neither of __WXOSX_{CARBON,COCOA,IPHONE}__ is. This ensures that wxBase can actually be built under Mac. Move OS X symbols definitions in wx/platform.h after wx/setup.h inclusion as they rely on __DARWIN__ and wxUSE_GUI values which are both define in that file now. Still keep them before wx/chkconf.h inclusion which relies on __WXOSX_XXX__ being defined. Yes, it's a mess and should be cleaned up more permanently some day. Also remove some redundancy from wx/osx/{carbon,cocoa}/private.h by factoring out common parts into wx/osx/core/private.h. Also include this header itself from wx/osx/private.h directly instead of including it thrice from different sub-ports headers. Closes #12660.

2010-11-10 00:53 VZ, revision 66076

Fix timeval struct initialization in wxSelectDispatcher. The tv_usec field could overflow its maximal value while tv_sec was always left 0. It would be even better to reuse SetTimeValFromMS() from socket.cpp here in the future. See #11542.

2010-11-10 00:53 VZ, revision 66075

Fix crash in wxCFEventLoop::AddSourceForFD(). Don't reset CFFileDescriptorRef before passing it to CFFileDescriptorCreateRunLoopSource(), this resulted in a crash inside this function. Closes #11542.

2010-11-10 00:53 VZ, revision 66074

Remove non-existent functions declarations from wxOSX/Carbon. wxMacSetupConverters() and wxMacCleanupConverters() don't seem to exist any more so don't declare them.

2010-11-08 17:28 VZ, revision 66071

Document wxRenameFile() behaviour when destination is a directory. Document that the source file is moved to the destination if it's a directory, apparently this is not obvious.

2010-11-08 17:28 VZ, revision 66070

Unload bogus XRC resources in "garbage" unit test. Leaving invalid XRC entries in wxXmlResource internal list of loaded resources resulted in failures in the XRC unit test which executed after this one. It seems that loading an invalid resource shouldn't prevent the other ones from loading correctly later and this probably should be corrected at wxXmlResource level but for now work around this problem in the test itself.

2010-11-08 14:50 VZ, revision 66069

Fix crash in XRC ID range support code. Really fix removing the record from the linked list. This code was modified by r66064 but was still wrong because the wrong pointer was updated.

2010-11-07 23:13 VZ, revision 66066

Compilation fix for STL build after ID range changes in XRC. Fix compilation of the new code which relied on implicit conversion of wxString to "const char *" which is unavailable when wxUSE_STL==1.

2010-11-07 20:34 VZ, revision 66065

Factor our hash function used for XRC ids hash map. Define the hash function in a separate function instead of duplicating it in XRCID_Lookup() and RemoveXRCIDEntry(). The hash function is extremely simplistic and inefficient right now, it should be replaced with wxStringHash::stringHash().

2010-11-07 20:33 VZ, revision 66064

Fix memory leak of XRC ids introduced by the ID range support patch. Fix bug in linked list processing in RemoveXRCIDEntry() added in r66059: it incorrectly overwrote the XRC id table entry with the next element in the list instead of just updating the pointer used during iteration.

2010-11-07 20:33 VZ, revision 66063

Reformat long lines in the new part of the xrc sample. No changes, just break the too long lines.

2010-11-07 20:33 VZ, revision 66062

Use Connect() of Bind() in the new part of xrc sample. Use Connect() for compatibility (notably with VC6 which doesn't support Bind()). Also connect the event handlers on loading the dialog instead of waiting until the relevant page is selected, this makes the code slightly simpler as we don't need to remember whether we connected them or not any longer.

2010-11-07 20:33 VZ, revision 66061

Test both ChangeSelection() and SetSelection() in notebook sample. Test wxBookCtrl::SetSelection() too to be able to check that it does generate events as expected.

2010-11-07 20:33 VZ, revision 66060

Don't require skipping "page changed" event in wxMSW wxNotebook. wxMSW wxNotebook implementation used to handle EVT_NOTEBOOK_PAGE_CHANGED event to update the currently shown page which meant that page changing was broken if the user code handled and didn't skip this event. As the other ports don't require the user code to skip this event, don't do this in wxMSW neither and always update the selected page unconditionally.

2010-11-07 15:00 VZ, revision 66059

Add support for id ranges to XRC. Allow to declare ranges of consecutive IDs in XRC by using the "id[n]" syntax. Show this functionality in the xrc sample and test it in the new unit test. Also show and test the "object reference" XRC functionality. Closes #11431.

2010-11-07 15:00 VZ, revision 66058

Make wxXmlResource::ReportError() wxXmlNode parameter const. This function (and the related DoReportError()) doesn't need to modify its "context" argument so take a const-pointer in it. See #11431.

2010-11-07 15:00 VZ, revision 66057

Mention the GUI test in the unit test tech note. Update the tech note to mention the (relatively) new GUI test program too. See #11431.

2010-11-07 15:00 VZ, revision 66056

Update and reorganize XRC overview to make it more useful. Emphasize the parts most useful for the new users instead of more advanced concepts and generally make the text more readable. Closes #12661.

2010-11-07 14:44 PJC, revision 66055

Add support for toggle buttons to wxRibbonButtonBar.

2010-11-07 14:16 VZ, revision 66054

Fix build with Borland C++ compiler. Disable some parts of the code that this compiler had problems with. Add parentheses to work around its bugs elsewhere. Closes #12558.

2010-11-07 14:12 VZ, revision 66053

Update all windows associated with the tooltip when it changes in wxMSW. Although the tooltip was initially correctly set for all windows associated with it, it was only updated for the main one if its text changed later. This resulted in leaving the old tooltip for the composite controls such as wxComboBox or controls with sub-windows such as wxRadioBox. Fix this by storing all windows associated with the tooltip (for space efficiency, only allocate the array if necessary however as it will be empty in the majority of cases) and apply SetTip() to all of them, not just the main one. Closes #12659.

2010-11-07 12:54 SC, revision 66052

disable code because of OS bug, fixes #12478, fixes #12554

2010-11-07 00:46 PJC, revision 66051

Improve behaviour of scrolling through a ribbon gallery.

2010-11-06 16:48 SC, revision 66048

routing the tab, return events for single line fields back to standard wx handler (doesn't work for secure fields unfortunately), fixes #12386 and partly #12392

2010-11-06 16:37 SC, revision 66047

implementing turning off of default button as well

2010-11-05 22:43 VZ, revision 66043

Minor cosmetic fix to generic check tools appearance in wxOSX. Use rounded rectangle to indicate the selected tool instead of a plain one. Closes #12409.

2010-11-05 22:43 VZ, revision 66042

Fix check toolbar items behaviour in non-native toolbars in wxOSX. Update the button state when the tool is toggled. Also use NSToggleButton for this tool and not NSOnOffButton as the latter doesn't use the alternative (toggled) image. Closes #12408.

2010-11-05 22:43 VZ, revision 66041

Avoid using wx GDI classes from non-main thread in wxOSX/Cocoa. OS X uses a background thread for pulsing the default button and we intercept the draw requests from it. As our drawing code is not MT-safe, executing it from the non-main thread can result in crashes. Avoid this by simply not doing anything fancy when called from a background thread and simply deferring to the superclass instead. Closes #12407.

2010-11-05 22:43 VZ, revision 66040

Really update tooltip when wxToolBar::SetShortHelp() is called. Changing a toolbar tool tooltip didn't work in wxOSX/Cocoa because the new value was never propagated to the native control. See #12362.

2010-11-05 22:43 VZ, revision 66039

Remove trailing comma from an enum. Comma after last enum element is not allowed in C++98 and some compilers will warn about it. Closes #12591.

2010-11-05 22:42 VZ, revision 66038

Show the first, not the last, inserted item in wxListBox in wxOSX. The listbox showed its last, not first, item after creation in wxOSX which was inconsistent with the other ports and generally inconvenient. Fix this by ensuring that the first item being inserted is shown, and not the last one as was (implicitly) the case before. A better fix would be to avoid scrolling entirely but I don't know how to do this with NSClipView. Closes #12365.

2010-11-05 22:42 VZ, revision 66037

Use CGFloat instead of float for mouse wheel event parameters. This fixes mouse wheel handling in 64 bits where CGFloat has size different from float. Closes #12168.

2010-11-05 22:41 VZ, revision 66036

Fix showing the frames full screen under OS X. Don't leave space for the title bar when showing the frame full screen. Closes #11701.

2010-11-05 22:40 VZ, revision 66034

Improve default position for new TLWs in wxOSX. Put the new windows in the upper left corner of the screen but not at (0, 0) as before, this was rather inconvenient and too different from the normal application behaviour under OS X. Closes #11926.

2010-11-05 22:40 VZ, revision 66033

Ensure that strings returned by wxMBConv_cf are in NFC form. Normalize all Unicode strings used internally even though the Darwin kernel gives them to us in decomposed (NFD) form. Closes #11730.

2010-11-05 22:39 VZ, revision 66032

Remove duplicate wxEVT_COMMAND_TEXT_ENTER generation from wxOSX/Cocoa. The code in -[wxNSTextField control:textView:doCommandBySelector:] generated a second copy of this event as it was also generated from wxNSTextFieldControl::controlAction() for single line text controls. Closes #11691.

2010-11-05 22:39 VZ, revision 66031

Don't update scrollbars when the window is being destroyed in wxOSX. Updating scrollbars for a window that is being destroyed anyhow is useless and resulted in crashes in the htlbox sample because it used client-to-screen coordinates conversion which asserted because the TLW was invalid any more and this unexpected assert during window destruction led to a crash. Simply don't do it at all to avoid the problem. Closes #11776.

2010-11-05 22:39 VZ, revision 66030

Fix crash in wxColour ctor from NSColor in wxOSX/Cocoa. wxColour ctor from NSColor added by Kevin Ollivier in r62525 never worked as it passed NULL pointer to NSColor:getComponents and so always crashed. This resulted in a crash in the rich text editor of the text sample, for example. Fix this by passing a valid array containing colour components instead.

2010-11-05 22:38 VZ, revision 66029

Remove unnecessary wxOSX_USE_COCOA guards in Cocoa-only file. The #if wxOSX_USE_COCOA seems unnecessary in a file that is used in wxOSX/Cocoa only so simply remove it.

2010-11-05 22:38 VZ, revision 66028

Assume sizeof(wchar_t) is always 4 under OS X. wchar_t used to be 2 bytes in Mach-O builds but they're not supported any longer so remove the code checking for sizeof(wchar_t) and just assume it's always 4. Closes #10442.

2010-11-05 22:37 VZ, revision 66027

Add another test for the insertion point position after SetValue(). Verify that setting the value of a previously not empty control resets the insertion point to its beginning. See #10051.

2010-11-05 22:37 VZ, revision 66026

Disable keyboard unit test with wxUIActionSimulator under OS X. The test doesn't work because the test window never get any events. This might be a bug in the test or in wxUIActionSimulator itself but for now I just have no idea about how to fix it, so disable the test to let the rest of the test suite run.

2010-11-05 17:05 CE, revision 66022

add execmon to CE exclude (no console)

2010-11-05 16:45 CE, revision 66021

missing namespace

2010-11-05 16:24 CE, revision 66019

missing namespace

2010-11-05 13:53 VZ, revision 66018

Remove test code accidentally committed as part of r66015. Don't call wxMenuItem::Set{Background,Text}Colour() in the menu sample, this was for testing only.

2010-11-05 07:55 JJ, revision 66017

Update OpenVMS makefiles

2010-11-04 17:13 VZ, revision 66016

Correct a trivial typo in wxLog documentation. Just remove an extra word.

2010-11-04 11:57 VZ, revision 66015

Use explicit menu item background if it's given under MSW. An explicit item background colour specified in user code should override the default theme background. Closes #12652.

2010-11-04 11:57 VZ, revision 66014

No changes, just use RAII-based classes in MSW owner drawn menu code. Add helper HDC{TextCol,BgCol,BgMode}Changer classes which ensure that the corresponding HDC attribute is reset on scope exit instead of manually calling the corresponding MSW functions to set and reset it.

2010-11-04 11:49 VZ, revision 66013

Pas long to _get_timezone() even for VC8. Apparently the MSDN documentation for VC8 is wrong and _get_timezone() function expects a long and not int when using it (as is already the case with VC9 and VC10). Closes #12653.

2010-11-04 08:38 JJ, revision 66012

Updating makefiles for OpenVMS

2010-11-04 00:48 VZ, revision 66009

Remove unused mouse event handler from dataview sample. The mouse event handler for the frame was never executed because the frame is entirely covered by other windows in this sample. Not sure what was meant here but this handler is useless so just remove it.

2010-11-04 00:48 VZ, revision 66008

Remove unnecessary tests for m_log from dataview sample. The sample contained a lot of unnecessary checks for m_log, remove them to make the code shorter and simpler to understand.

2010-11-03 17:36 VZ, revision 66007

Add wxAuiPaneInfo::IsDockable(). This function checks if the pane can be docked at any side. It is useful in its own right but most importantly is needed to fix compilation broken in r66005 which used it before it was added. See #12648.

2010-11-03 17:29 VZ, revision 66006

Set column field of wxDVC ITEM_{ACTIVATED,CONTEXT_MENU} events. Add missing calls to wxDataViewEvent::SetColumn() and SetDataViewColumn(). In the future it would be nice to refactor the code to have a common event object initialization function that would make it impossible to forget to do this. Closes #12649.

2010-11-03 17:29 VZ, revision 66005

Don't dock undockable panes in wxAuiManager::LoadPerspective(). All panes were docked when loading a perspective, including those that were created to be non-dockable. Don't dock the latter ones now. Closes #12648.

2010-11-03 17:29 VZ, revision 66004

Optimize wxDataViewMainWindow::FindNode() in generic wxDataViewCtrl. Avoid unnecessary heap allocations and extra indirections and just use the items pointers directly. Also avoid copying the (potentially huge) nodes arrays. Closes #12647.

2010-11-03 17:29 VZ, revision 66003

Don't copy potentially big arrays in generic wxDataViewCtrl. Use reference to hold the array of nodes instead of copying it. (Really) closes #12587.

2010-11-03 17:29 VZ, revision 66002

Handle wxLOCALE_DECIMAL_POINT in wxLOCALE_CAT_MONEY correctly in wxMSW. Use LOCALE_SMONDECIMALSEP and not LOCALE_SDECIMAL when querying for the decimal separator in money category, it can be different from the usual numeric one.

2010-11-03 17:29 VZ, revision 66001

Support wxLOCALE_THOUSANDS_SEP in wxMSW wxLocale::GetInfo(). Simply use ::GetLocaleInfo(LOCALE_STHOUSAND) for it. Closes #12643.

2010-11-03 15:44 JJ, revision 66000

replace m_nSelection by m_selection

2010-11-03 09:54 JJ, revision 65999

Update OpenVMS compile support

2010-11-02 23:55 VS, revision 65997

Fix compilation error in wxImplicitConversionType<> in gcc strict mode.

2010-11-02 12:57 VZ, revision 65994

Use _get_timezone() function instead of _timezone with MSVC8+. While some (but not all) versions of VC8 CRT still define _timezone variable, it is deprecated and shouldn't be used and referencing it can result in linking problems if it pulls in static CRT. Just use _get_timezone() function instead for the VC versions that support it (as was already done in r54417 for VC8 in 2.8 branch). Closes #4691.

2010-11-02 12:57 VZ, revision 65993

Make write end of the child process pipe non-blocking under Unix. We need to make at least one end of the pipe used to communicate with wxExecute() child process non-blocking to avoid deadlocks, so unblock the write end of the pipe. It seems to be unnecessary to unblock the reading ends of std{out,err} pipes as we can already check for the presence of input there. This is also consistent with wxMSW behaviour. Closes #12636.

2010-11-02 12:57 VZ, revision 65992

Refactor: extract code to make an fd non-clocking into a function. Simply extract part of the code from evtloopunix.cpp into a reusable wxPipe::MakeNonBlocking() function to be able to reuse it elsewhere. See #12636.

2010-11-02 12:57 VZ, revision 65991

Don't scroll the grid too much to bring selection in view. wxGrid scrolled completely to the right in row selection mode as it was always trying to make the bottom right selection corner visible. This was due to adjusting the selection block corner to cover the entire row in this mode (of course, the same was true for the column selection mode too). Don't do this any more as it's unnecessary, making the real selection block corner visible is enough for the block selection mode and nothing else is needed in row/column modes. See #12638.

2010-11-02 12:57 VZ, revision 65990

Changed wxImage::ConvertAlphaToMask() return type to bool. Make this function more useful by returning true from it if alpha channel was really converted to the mask by it. Closes #12637.

2010-11-02 12:57 VZ, revision 65989

Avoid crash when releasing the mouse in wxRibbonToolBar. The active tool pointer can be changed/set to NULL by the event handler in wxRibbonToolBar::OnMouseUp() so test for it before using it after processing the event. Closes #12640.

2010-11-02 04:09 RD, revision 65987

Add some asserts to ensure cols and rows are >= 0 to avoid crashes

2010-11-02 04:07 RD, revision 65986

Fix return types on wxRect::Inflate and Deflate

2010-11-01 18:01 PMO, revision 65974

More wxRadioBox implementation

2010-11-01 18:00 PMO, revision 65973

Improved naming for internal functions

2010-11-01 13:30 PMO, revision 65971

Update to trunk r65969

2010-11-01 12:58 JJ, revision 65970

Create work-around for wxGetEnvMap on OpenVMS (correction)

2010-11-01 10:48 JJ, revision 65969

Create work-around for wxGetEnvMap on OpenVMS

2010-10-31 14:41 VZ, revision 65968

Make wxMBConv_iconv MT-safe by not using wxString in it. Use just "char *" for wxMBConv_iconv::m_name to avoid MT-safety problems related to using a wxString (which is not always MT-safe) from multiple threads. See #12630.

2010-10-31 14:33 VZ, revision 65967

Avoid events when implicitly selecting first wxBookCtrl page. The first page added to a wxBookCtrlBase-derived control is always selected, even if "bSelect" argument of AddPage() was false. This is necessary because a non-empty book control must always have a selection but the "selection changed" event generated when doing it is unexpected. Fix this by not generating any events when the first page is implicitly selected. Closes #12075.

2010-10-31 12:37 VZ, revision 65966

Reposition wxSpinCtrl correctly after reparenting it in wxMSW. The position of wxSpinCtrl after reparenting was wrong because we didn't remember the old position early enough. There also was a more minor bug which resulted in the position not being set correctly if (any of its components) was -1 before reparenting. Closes #12633.

2010-10-31 12:37 VZ, revision 65965

Destroy correct HWND in wxMSW wxSpinCtrl::Reparent(). NULL HWND was passed to ::DestroyWindow() as wxWindow::UnsubclassWin() NULLed it after unsubclassing. See #12633.

2010-10-31 01:51 VZ, revision 65964

Document wxMessageQueueError. Document the enum defining the error codes of wxMessageQueue<> class. Closes #12634.

2010-10-31 01:51 VZ, revision 65963

wxUniv/MSW compilation fix in wxWindowBase::GetDlgUnitBase(). This wxWindowBase method can't access protected m_font member of another wxWindow object -- but can access it in wxWindowBase object. Closes #12358.

2010-10-31 01:51 VZ, revision 65962

No changes, just use AutoHBITMAP instead of manual DeleteObject() in wxMSW. Use RAII AutoHBITMAP class instead of manually calling DeleteObject() on temporary bitmaps in wxMSW wxImageList and wxBitmap code.

2010-10-31 01:51 VZ, revision 65961

Fix conversion of bitmaps with alpha to icons/cursors in wxMSW. CreateIconIndirect() applies pre-multiplication to the bitmap itself (as can be seen by experimenting with this or reading WINE sources for it) and so we must pass it a bitmap with data in non-pre-multiplied format to avoid doing it twice. This is similar to the change to wxImageList in the previous commit, see #9050.

2010-10-31 01:50 VZ, revision 65960

Add bitmaps in non-premultiplied format to wxImageList in wxMSW. ImageList_Draw() applies pre-multiplication to the bitmap itself (as can be seen by experimenting with this or reading WINE sources for it) and so the image list must store bitmaps with data in non-pre-multiplied format to avoid doing it twice. Do it by converting wxBitmaps passed to wxImageList::Add() and Replace() to wxImage and then to non-pre-multiplied DIBs. This is obviously very inefficient but at least results in correct appearance of images drawn by wxImageList so it's a step forward. Closes #9050.

2010-10-31 01:50 VZ, revision 65959

Allow creating DIBs storing pixels in non-premultiplied format in wxMSW. wxDIB assumed that MSW always uses bitmaps in pre-multiplied pixel format but this turns out to be wrong: some Windows functions such as ImageList_Draw() or CreateIconIndirect() apply pre-multiplication internally and so must be given data in non-pre-multiplied format on input. This commit adds a possibility to create wxDIB in such format but doesn't use it anywhere yet, this will be done in subsequent commits. See #9050.

2010-10-31 01:50 VZ, revision 65958

Make it impossible to initialize AutoHBITMAP after construction. Add default ctor and Init() method to wxMSW private AutoHBITMAP class. This doesn't change anything for now but will be used by an upcoming commit.

2010-10-31 01:50 VZ, revision 65957

Fix fatal bug in wxGetWindowFromHWND() for radio buttons. wxGetWindowFromHWND() could crash if it was called for a HWND of a radio button which was not created by wxWidgets because it blindly dereferenced the user data associated with the button expecting it to be a pointer to wxRadioBox and crashed if it was something different. And this actually happened when using the standard Windows printing dialog which can contain radio buttons which obviously used their user data field for their own purposes. Fix this by maintaining a global hash map with radio buttons HWNDs as keys and radio boxes as values. This ensures that we can always safely check whether the given HWND is a radio button in one of our radio boxes or not. Also change wxSpinCtrl which already did something similar in a different way (using an array instead or a more efficient hash map) for consistency. Closes #12083.

2010-10-31 01:50 VZ, revision 65956

Restore the old logger in wxLogChain dtor instead of deleting it. wxLogChain was leaving the global log target pointing to a deleted object, resulting in crashes when using wxLogWindow without any explicit SetActiveTarget() calls. Restore the original logger as the active target in wxLogChain dtor to ensure that the active log target remains valid.

2010-10-31 01:50 VZ, revision 65955

Fix confusion with LOGFONT{A,W} parameters to MSW GetTheme[Sys]Font(). Change the signature of GetThemeFont() and GetThemeSysFont() methods of wxUxThemeEngine to take an artificial wxUxThemeFont::Ptr type instead of LOGFONT which allows the broken code to compile correctly and even work in Unicode builds but crashed in ANSI ones under Windows Vista/7 as these functions expect a LOGFONTW and not LOGFONTA even in non-Unicode build under these systems. This generalizes the previous fix/workaround for the same problem in wxStaticBox so remove it now and use wxUxThemeFont both there and in wxMenuItem to avoid crashes when using owner-drawn menus in ANSI build. Closes #12364.

2010-10-31 01:50 VZ, revision 65954

No real changes, just cleanup of wxMSW MenuDrawData. Derive MenuDrawData::Margins from Windows MARGINS struct to avoid ugly (and potentially dangerous) reinterpret_cast<>s when using it. Also add some helper functions to Margins to make using it less painful.

2010-10-30 21:01 VZ, revision 65953

Use TAbs in debian/rules, not spaces, as it's a makefile. Fix make syntax error in debian/rules. Closes #12631.

2010-10-30 21:01 VZ, revision 65952

Fix order of arguments in wxOSX/Carbon wxListCtrl::ScrollList(). wxMacDataBrowserTableViewControl::SetScrollPosition() takes "top" and "left" arguments so swap "dx" and "dy" parameters being passed to it. It might be better to fix SetScrollPosition() to follow the more natural (at least from wx point of view) convention and as it's used in only a few places this wouldn't be difficult to do. But let's keep the changes to this code to the minimum for now. Closes #12339.

2010-10-30 17:57 VS, revision 65951

For large dataview controls, don't use all items to calculate best column width. Instead, use just top and bottom N/2 items for some large enough value of N. N is determined dynamically so that column best width calculation doesn't take more than 50ms.

2010-10-30 17:57 VS, revision 65950

Add wxDataViewRendererBase::PrepareForItem() helper. For calling SetValue() and SetAttr() consistently, instead of having the same code duplicated all over the place.

2010-10-30 17:57 VS, revision 65949

Account for text attrs in generic wxDataViewCtrl's renderers. When determining cell content's size, GetSize() measured the text using wxDataViewCtrl's font, even though it could be renderer in bold or italics. Corrected by setting the attributes - and not only the value - prior to GetSize() calls, and by using the right font in GetTextExtent() calls.

2010-10-30 17:57 VS, revision 65948

Add optional columns autosizing to wxDataViewCtrl. Only implemented in the generic and GTK+ versions at the moment, OS X support will be added later.

2010-10-30 17:57 VS, revision 65947

Add wxRenderer::GetHeaderButtonMargin(). Used for best size calculations of column width.

2010-10-28 18:41 PC, revision 65945

fix iconize event detection, logical operators don't work for testing bits

2010-10-28 16:23 VZ, revision 65944

Use floating point arithmetic in wxDC::GradientFillConcentric(). Use doubles to avoid accumulated rounding errors from using integers in the generic implementation of wxDC::GradientFillConcentric(). This results in smoother gradient. Also avoid using the expensive pow() function inside the inner loop when we just need to calculate a square. Closes #12337.

2010-10-28 16:23 VZ, revision 65943

Fix generic implementation of wxDC::GradientFillConcentric(). The selected colour was not used as the code simply changed the value of m_pen but didn't call SetPen() to actually use it. This resulted in always using the default (black) colour when drawing concentric gradients. Fix this by calling SetPen(). See #12337.

2010-10-28 16:23 VZ, revision 65942

Relax validation of wxCheckBox flags. Changes of r65824 resulted in asserts when creating wxCheckBox with just wxBORDER_NONE style. This is useless but used to be harmless so continue to allow this. Closes #12628.

2010-10-28 15:52 VZ, revision 65941

Improve positioning of wxSlider min/max labels in wxMSW. Put the min/max labels on the sides or a horizontal slider or above/below a vertical one to make them visually more distinct from the current value label. See #11427.

2010-10-28 12:27 VZ, revision 65940

wxOSX/Carbon compilation fix after wxListBoxBase changes. Making wxListBoxBase::CalcAndSendEvent() broke wxOSX/Carbon build, fix it by making the class which needs to call it friend of wxListBox in this port.

2010-10-28 12:27 VZ, revision 65939

Don't crash when waiting for thread termination in wxMSW. The changes of r65882 adding wxThread::On{Delete,Kill}() introduced a bug which made normal wxThread::Wait() crash. Fix it by calling OnDelete() only if we're really deleting a thread. Closed #12627, see #9046.

2010-10-28 01:22 VZ, revision 65938

Fix list box unit test under wxGTK. Select an item initially to prevent GTK from doing it automatically as soon as the listbox is clicked anywhere (even outside of the items area). This makes all GUI tests finally pass under wxGTK.

2010-10-28 01:22 VZ, revision 65937

No changes, just use wxGtkObject<> instead of g_object_unref(). Use smart pointer class instead of manually writing g_object_unref(). This makes code shorter and less error-prone.

2010-10-28 01:22 VZ, revision 65936

Don't duplicate event sending code in wxGTK wxListBox. Reuse wxListBoxBase::SetEvent() instead of duplicating its code in wxGTK. Also get rid of the code checking for selection of the item with index -1: this can't happen any more since r65865 which changed GTK_SELECTION_SINGLE to GTK_SELECTION_BROWSE.

2010-10-28 01:21 VZ, revision 65935

Don't send SELECTED events for an already selected item in wxGTK wxListBox. Bring wxGTK in line with wxMSW behaviour and avoid sending the wxEVT_COMMAND_LISTBOX_SELECTED events when the user clicks on an already selected item. Refactor wxMSW code to extract the logic to avoid such events into a reusable in other ports wxListBoxBase::DoChangeSingleSelection() function. Also add wxListBox::GTKOnSelectionChanged() to wxGTK to avoid having to make the new function public just so that it could be called by GTK callback and make the previously existing CalcAndSendEvent() protected as well. This fixes a unit test failure in ListBoxTestCase::ClickEvents() under wxGTK.

2010-10-27 23:41 VZ, revision 65934

wxOSX compilation fix: remove just added extra semicolon. r65931 forgot to remove a now extra semicolon from wx/osx/notebook.h, fix it.

2010-10-27 22:23 VZ, revision 65933

Fix warnings about signed/unsigned comparisons inside wxMax() and friends. wxMax, wxMin and wxClip work correctly when called with a mix of signed and unsigned arguments but give warnings about comparing them when compiled with g++. Cast both arguments to the result type, which is defined consistently with standard C rules for implicit promotion, before comparing them to avoid this. Also add more tests to check that using these functions in this case doesn't provoke warnings.

2010-10-27 21:42 RR, revision 65932

Use window-state-event to send ICONIZE events under GTK+, probably fixes #10973: Iconize event triggered when switching workspaces with Ctrl+Alt+[Arrow Key]

2010-10-27 18:54 VZ, revision 65931

Refactor: use wxBookCtrlBase::m_selection in all derived classes. All book control classes with the exception of wxGTK wxNotebook stored the currently selected page in m_selection or m_nSelection (or, in wxUniv wxNotebook case, m_sel) variable. Remove all of them and add m_selection directly to the base class itself so that it can be reused everywhere. Closes #12622.

2010-10-27 18:54 VZ, revision 65930

No real changes, just replace -1 with wxNOT_FOUND in wxBookCtrl code. Make the code consistently use wxNOT_FOUND instead of -1 everywhere. See #12622.

2010-10-26 17:11 VZ, revision 65929

Don't dispatch messages while waiting in worker thread in wxMSW. We only want to continue dispatching messages while waiting for another thread to terminate if we are waiting in the main thread. Closes #12618.

2010-10-26 17:11 VZ, revision 65928

Compilation fix for wxUSE_UNICODE_WCHAR && !wxUSE_STL_BASED_WXSTRING. Construct wxScopedWCharBuffer using CreateNonOwned() in wxString::ToStdWstring() in this case, creating it directly from wc_str() doesn't work (intentionally, as this doesn't tell if the buffer owns the string or not).

2010-10-26 17:10 VZ, revision 65927

Better document wxAutomationObject::GetDispatchPtr() return value. This function returns IDispatch pointer as a void one, mention that the user code needs to upcast it itself. Closes #12617.

2010-10-26 17:10 VZ, revision 65926

Rebake to add wx/meta/implicitconversion.h to the makefiles. Rebake after the addition of a new public header in r65920. Closes #12616.

2010-10-25 23:52 VZ, revision 65924

Mention that resource forks are deprecated under Mac in wxCursor docs. See #12614.

2010-10-25 22:46 VZ, revision 65923

Use the correct accelerator for the "Preferences" Apple menu item. Use the standard Command-, accelerator for the standard "Preferences" item in the Apple menu. Closes #12121.

2010-10-25 22:46 VZ, revision 65922

Use the application name in the "About" item of the Apple menu. To conform to Apple UI guidelines the application name should be included in the "About" menu item label in the Apple menu. See #12121.

2010-10-25 11:43 VS, revision 65921

Add wxImplicitConversionType tests.

2010-10-25 11:43 VS, revision 65920

Make wxMin, wxMax and wxClip template functions. Previously used macro's arguments were evaluated twice, but there were many occurences of their use in our code that didn't account for this and used expensive-to-evaluate arguments as if they were functions.

2010-10-25 11:24 JS, revision 65919

Style page no longer grows to fit very long style names; freeze/thaw used for speed

2010-10-25 11:22 VZ, revision 65918

Compilation fix: don't use "environ" under OS X. The global environ variable is not directly accessible under OS X, use _NSGetEnviron() instead.

2010-10-25 01:06 VZ, revision 65917

Make wxUString compilable with VC6. Provide replacements for std::basic_string functionality missing from this compiler standard library. Closes #12357.

2010-10-25 01:03 VZ, revision 65916

Fix typo in wxFILTER_NUMERIC documentation. Replace wxFILTER_SIMPLE_NUMBER with wxFILTER_DIGITS. Closes #12341.

2010-10-25 01:03 VZ, revision 65915

Add wxDocManager::FindTemplate() method. This allows to find the template corresponding to the document of the given class. Closes #12170.

2010-10-25 01:03 VZ, revision 65914

Don't handle RPC_E_CHANGED_MODE return of OleInitialize() as an error. This error means that OLE had already been initialized so from our point of view it counts as a success. Closes #12516.

2010-10-25 00:41 VZ, revision 65913

Do nothing in wxMemoryDC::SelectObject() if the bitmap is already selected. It doesn't make sense to make a copy of the bitmap in order to select it into wxMemoryDC if it's already selected into it. See #11640.

2010-10-25 00:41 VZ, revision 65912

Always create new OLE objects with reference count of 1, not 0. There are no real changes but ensure that the new objects of classes using DECLARE_OLE_UNKNOWN() macro are created with valid reference count of 1 instead of being created in phantom state with reference count of 0. Remove the now unnecessary AddRef() and add the now required DecRef() calls. See #11566.

2010-10-25 00:41 VZ, revision 65911

Fix problems with reference counting in wxActiveXContainer. Ensure that the IFrameSite object is created with valid (i.e. non-zero) reference count by calling AddRef() on it immediately after creation and remove the weird QueryInterface() call which was used to work around this bug. Closes #11566.

2010-10-25 00:41 VZ, revision 65910

Don't consider lack of connection points an error in wxActiveXContainer. Handle CONNECT_E_NOCONNECTION return value from IConnectionPointContainer:: FindConnectionPoint() as an expected error and don't complain about it. See #11566.

2010-10-25 00:41 VZ, revision 65909

Don't activate the window when updating its styles in wxMSW. Add SWP_NOACTIVATE to the flags used by wxWindow::MSWUpdateStyle(). This allows to change the style of a window without necessarily activating it. Closes #11560.

2010-10-25 00:41 VZ, revision 65908

Fix wrong wxLogDebug() call in fswatcher sample. Replace wxLogDebug() with wxLogTrace() as was probably intended. This fixes the assert which happened when running the sample because of the wrong number of parameters passed to wxLogDebug().

2010-10-25 00:41 VZ, revision 65907

Allow specifying the directory to watch on command line of fswatcher sample. This makes it more convenient to run the sample repeatedly as the directory to watch can be specified only once instead of having to choose it interactively after the sample startup every time.

2010-10-25 00:41 VZ, revision 65906

Avoid duplicate wxEVT_COMMAND_TREE_SEL_CHANG{ING,ED} events in wxMSW. When changing the selected item programmatically 2 CHANGING and CHANGED events were sent because the assumption that comctl32.dll didn't send these events itself was not correct any more, it does send them at least since XP. However to avoid the tests for its exact version it's simpler to just ignore the events it generates and continue sending our own ones. Closes #11274.

2010-10-25 00:41 VZ, revision 65905

Don't grab focus when calling wxTreeCtrl::SelectItem(). The workaround for the unexpected events order introduced in r49588 should only apply to the situation when the user selects an item in the tree, not when it's done programmatically as this results in unexpected focus changes (see #11274).

2010-10-25 00:40 VZ, revision 65904

Allow to use space to toggle spinning of the cube in OpenGL sample. Small enhancement to the cube OpenGL sample. Closes #11545.

2010-10-25 00:40 VZ, revision 65903

Don't send wxEVT_COMMAND_TREE_ITEM_MENU event without valid item in wxMSW. The generic wxTreeCtrl version only sends this event when the mouse is right clicked on a valid item so do the same in wxMSW version too for consistency. This is also consistent with wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK event and avoids strange problems with unexpected wxEVT_COMMAND_TREE_ITEM_MENU events generated on right double click. Finally, replace the checks for item validity in the event handler in the sample with asserts which should loudly complain if it happens to be invalid. Closes #11226.

2010-10-25 00:40 VZ, revision 65902

No real changes, just cleanup week days handling in wxGenericCalendarCtrl. Use helper GetWeek{Start,End}() functions instead of repeating tests for wxCAL_MONDAY_FIRST over and over again. Also replace some occurrences of GetWindowStyle() with shorter and more clear HasFlag().

2010-10-25 00:40 VZ, revision 65901

Keep displayed month and year in sync in wxGenericCalendarCtrl. When the date was constrained to a range in wxGenericCalendarCtrl, the display of the month in the month combobox could get out of sync with its real value. Ensure that the correct month is always displayed and also simplify the code by removing the apparently unnecessarily complex logic in ChangeYear() and ChangeMonth() functions. Closes #11060.

2010-10-25 00:40 VZ, revision 65900

No real changes, just inline wxDIB::Create(). After removing wxDIB::m_hasAlpha in the previous commit, this method became completely trivial so put it inline in the header.

2010-10-25 00:40 VZ, revision 65899

Remove wxDIB::m_hasAlpha from wxMSW. This field can't be set reliably as we don't know if LoadImage() Windows function loaded an 0RGB or an RGB bitmap so remove it completely to avoid the risk of using it wrongly.

2010-10-25 00:40 VZ, revision 65898

Fix conversion of 32 bit ARGB bitmaps to wxImage in wxMSW. wxDIB::m_hasAlpha can't be trusted when the DIB was loaded from a file so don't rely on it in wxDIB::ConvertToImage(). Instead, suppose that 32 bpp bitmaps do have alpha channel and only get rid of it at the end of conversion if it turns out that all alpha values were 0. Closes #10133.

2010-10-25 00:40 VZ, revision 65897

Don't hard code "open" verb in wxMSW wxLaunchDefaultApplication(). Don't choose the verb explicitly and let ShellExecuteEx() choose the default one. In the vast majority of cases this will do the same thing but if some file type doesn't have an "open" verb the new version will still open it correctly using its default verb while the old version failed. See #10707.

2010-10-25 00:40 VZ, revision 65896

Add support for specifying child process cwd and env to wxExecute(). Add an optional wxExecuteEnv parameter to wxExecute() which allows to specify the initial working directory and custom environment for the child process. Closes #12163.

2010-10-25 00:40 VZ, revision 65895

Treat wxToolbook symmetrically with others in the notebook sample. Use wxToolbook as the default notebook type if the other ones are not available. Closes #12610.

2010-10-25 00:39 VZ, revision 65894

Don't reserve space for hidden controller in wxBookCtrl. Even when the controller was hidden, space was still allocated for it by wxBookCtrl. Fix this by only reserving extra space when the controller is shown. Closes #12609.