wxWidgets.git
13 years agoRemove unused mouse event handler from dataview sample.
Vadim Zeitlin [Wed, 3 Nov 2010 23:48:30 +0000 (23:48 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRemove unnecessary tests for m_log from dataview sample.
Vadim Zeitlin [Wed, 3 Nov 2010 23:48:23 +0000 (23:48 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd wxAuiPaneInfo::IsDockable().
Vadim Zeitlin [Wed, 3 Nov 2010 16:36:34 +0000 (16:36 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoSet column field of wxDVC ITEM_{ACTIVATED,CONTEXT_MENU} events.
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:36 +0000 (16:29 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't dock undockable panes in wxAuiManager::LoadPerspective().
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:30 +0000 (16:29 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoOptimize wxDataViewMainWindow::FindNode() in generic wxDataViewCtrl.
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:23 +0000 (16:29 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't copy potentially big arrays in generic wxDataViewCtrl.
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:18 +0000 (16:29 +0000)] 
Don't copy potentially big arrays in generic wxDataViewCtrl.

Use reference to hold the array of nodes instead of copying it.

(Really) closes #12587.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoHandle wxLOCALE_DECIMAL_POINT in wxLOCALE_CAT_MONEY correctly in wxMSW.
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:13 +0000 (16:29 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoSupport wxLOCALE_THOUSANDS_SEP in wxMSW wxLocale::GetInfo().
Vadim Zeitlin [Wed, 3 Nov 2010 16:29:06 +0000 (16:29 +0000)] 
Support wxLOCALE_THOUSANDS_SEP in wxMSW wxLocale::GetInfo().

Simply use ::GetLocaleInfo(LOCALE_STHOUSAND) for it.

Closes #12643.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoreplace m_nSelection by m_selection
Jouk Jansen [Wed, 3 Nov 2010 14:44:57 +0000 (14:44 +0000)] 
replace m_nSelection by m_selection

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUpdate OpenVMS compile support
Jouk Jansen [Wed, 3 Nov 2010 08:54:52 +0000 (08:54 +0000)] 
Update OpenVMS compile support

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix compilation error in wxImplicitConversionType<> in gcc strict mode.
Václav Slavík [Tue, 2 Nov 2010 22:55:56 +0000 (22:55 +0000)] 
Fix compilation error in wxImplicitConversionType<> in gcc strict mode.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse _get_timezone() function instead of _timezone with MSVC8+.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:30 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake write end of the child process pipe non-blocking under Unix.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:24 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRefactor: extract code to make an fd non-clocking into a function.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:19 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't scroll the grid too much to bring selection in view.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:14 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoChanged wxImage::ConvertAlphaToMask() return type to bool.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:09 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAvoid crash when releasing the mouse in wxRibbonToolBar.
Vadim Zeitlin [Tue, 2 Nov 2010 11:57:03 +0000 (11:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd some asserts to ensure cols and rows are >= 0 to avoid crashes
Robin Dunn [Tue, 2 Nov 2010 03:09:27 +0000 (03:09 +0000)] 
Add some asserts to ensure cols and rows are >= 0 to avoid crashes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix return types on wxRect::Inflate and Deflate
Robin Dunn [Tue, 2 Nov 2010 03:07:35 +0000 (03:07 +0000)] 
Fix return types on wxRect::Inflate and Deflate

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoCreate work-around for wxGetEnvMap on OpenVMS (correction)
Jouk Jansen [Mon, 1 Nov 2010 11:58:31 +0000 (11:58 +0000)] 
Create work-around for wxGetEnvMap on OpenVMS (correction)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65970 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoCreate work-around for wxGetEnvMap on OpenVMS
Jouk Jansen [Mon, 1 Nov 2010 09:48:56 +0000 (09:48 +0000)] 
Create work-around for wxGetEnvMap on OpenVMS

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake wxMBConv_iconv MT-safe by not using wxString in it.
Vadim Zeitlin [Sun, 31 Oct 2010 13:41:03 +0000 (13:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAvoid events when implicitly selecting first wxBookCtrl page.
Vadim Zeitlin [Sun, 31 Oct 2010 13:33:34 +0000 (13:33 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoReposition wxSpinCtrl correctly after reparenting it in wxMSW.
Vadim Zeitlin [Sun, 31 Oct 2010 11:37:31 +0000 (11:37 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDestroy correct HWND in wxMSW wxSpinCtrl::Reparent().
Vadim Zeitlin [Sun, 31 Oct 2010 11:37:26 +0000 (11:37 +0000)] 
Destroy correct HWND in wxMSW wxSpinCtrl::Reparent().

NULL HWND was passed to ::DestroyWindow() as wxWindow::UnsubclassWin() NULLed
it after unsubclassing.

See #12633.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65965 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDocument wxMessageQueueError.
Vadim Zeitlin [Sat, 30 Oct 2010 23:51:18 +0000 (23:51 +0000)] 
Document wxMessageQueueError.

Document the enum defining the error codes of wxMessageQueue<> class.

Closes #12634.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agowxUniv/MSW compilation fix in wxWindowBase::GetDlgUnitBase().
Vadim Zeitlin [Sat, 30 Oct 2010 23:51:14 +0000 (23:51 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo changes, just use AutoHBITMAP instead of manual DeleteObject() in wxMSW.
Vadim Zeitlin [Sat, 30 Oct 2010 23:51:09 +0000 (23:51 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix conversion of bitmaps with alpha to icons/cursors in wxMSW.
Vadim Zeitlin [Sat, 30 Oct 2010 23:51:04 +0000 (23:51 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd bitmaps in non-premultiplied format to wxImageList in wxMSW.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:55 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAllow creating DIBs storing pixels in non-premultiplied format in wxMSW.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:50 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake it impossible to initialize AutoHBITMAP after construction.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:45 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix fatal bug in wxGetWindowFromHWND() for radio buttons.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:39 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRestore the old logger in wxLogChain dtor instead of deleting it.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:28 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix confusion with LOGFONT{A,W} parameters to MSW GetTheme[Sys]Font().
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:22 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo real changes, just cleanup of wxMSW MenuDrawData.
Vadim Zeitlin [Sat, 30 Oct 2010 23:50:08 +0000 (23:50 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse TAbs in debian/rules, not spaces, as it's a makefile.
Vadim Zeitlin [Sat, 30 Oct 2010 19:01:15 +0000 (19:01 +0000)] 
Use TAbs in debian/rules, not spaces, as it's a makefile.

Fix make syntax error in debian/rules.

Closes #12631.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix order of arguments in wxOSX/Carbon wxListCtrl::ScrollList().
Vadim Zeitlin [Sat, 30 Oct 2010 19:01:10 +0000 (19:01 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFor large dataview controls, don't use all items to calculate best column width.
Václav Slavík [Sat, 30 Oct 2010 15:57:59 +0000 (15:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd wxDataViewRendererBase::PrepareForItem() helper.
Václav Slavík [Sat, 30 Oct 2010 15:57:55 +0000 (15:57 +0000)] 
Add wxDataViewRendererBase::PrepareForItem() helper.

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

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAccount for text attrs in generic wxDataViewCtrl's renderers.
Václav Slavík [Sat, 30 Oct 2010 15:57:49 +0000 (15:57 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd optional columns autosizing to wxDataViewCtrl.
Václav Slavík [Sat, 30 Oct 2010 15:57:41 +0000 (15:57 +0000)] 
Add optional columns autosizing to wxDataViewCtrl.

Only implemented in the generic and GTK+ versions at the moment, OS X
support will be added later.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65948 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd wxRenderer::GetHeaderButtonMargin().
Václav Slavík [Sat, 30 Oct 2010 15:57:32 +0000 (15:57 +0000)] 
Add wxRenderer::GetHeaderButtonMargin().

Used for best size calculations of column width.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agofix iconize event detection, logical operators don't work for testing bits
Paul Cornett [Thu, 28 Oct 2010 16:41:29 +0000 (16:41 +0000)] 
fix iconize event detection, logical operators don't work for testing bits

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse floating point arithmetic in wxDC::GradientFillConcentric().
Vadim Zeitlin [Thu, 28 Oct 2010 14:23:18 +0000 (14:23 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65944 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix generic implementation of wxDC::GradientFillConcentric().
Vadim Zeitlin [Thu, 28 Oct 2010 14:23:14 +0000 (14:23 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRelax validation of wxCheckBox flags.
Vadim Zeitlin [Thu, 28 Oct 2010 14:23:09 +0000 (14:23 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoImprove positioning of wxSlider min/max labels in wxMSW.
Vadim Zeitlin [Thu, 28 Oct 2010 13:52:50 +0000 (13:52 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agowxOSX/Carbon compilation fix after wxListBoxBase changes.
Vadim Zeitlin [Thu, 28 Oct 2010 10:27:32 +0000 (10:27 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't crash when waiting for thread termination in wxMSW.
Vadim Zeitlin [Thu, 28 Oct 2010 10:27:26 +0000 (10:27 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65939 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix list box unit test under wxGTK.
Vadim Zeitlin [Wed, 27 Oct 2010 23:22:11 +0000 (23:22 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo changes, just use wxGtkObject<> instead of g_object_unref().
Vadim Zeitlin [Wed, 27 Oct 2010 23:22:05 +0000 (23:22 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't duplicate event sending code in wxGTK wxListBox.
Vadim Zeitlin [Wed, 27 Oct 2010 23:22:00 +0000 (23:22 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't send SELECTED events for an already selected item in wxGTK wxListBox.
Vadim Zeitlin [Wed, 27 Oct 2010 23:21:55 +0000 (23:21 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agowxOSX compilation fix: remove just added extra semicolon.
Vadim Zeitlin [Wed, 27 Oct 2010 21:41:55 +0000 (21:41 +0000)] 
wxOSX compilation fix: remove just added extra semicolon.

r65931 forgot to remove a now extra semicolon from wx/osx/notebook.h, fix it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix warnings about signed/unsigned comparisons inside wxMax() and friends.
Vadim Zeitlin [Wed, 27 Oct 2010 20:23:55 +0000 (20:23 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65933 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse window-state-event to send ICONIZE events under GTK+, probably fixes #10973:...
Robert Roebling [Wed, 27 Oct 2010 19:42:38 +0000 (19:42 +0000)] 
Use window-state-event to send ICONIZE events under GTK+, probably fixes #10973: Iconize event triggered when switching workspaces with Ctrl+Alt+[Arrow Key]

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65932 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRefactor: use wxBookCtrlBase::m_selection in all derived classes.
Vadim Zeitlin [Wed, 27 Oct 2010 16:54:36 +0000 (16:54 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo real changes, just replace -1 with wxNOT_FOUND in wxBookCtrl code.
Vadim Zeitlin [Wed, 27 Oct 2010 16:54:24 +0000 (16:54 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't dispatch messages while waiting in worker thread in wxMSW.
Vadim Zeitlin [Tue, 26 Oct 2010 15:11:06 +0000 (15:11 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoCompilation fix for wxUSE_UNICODE_WCHAR && !wxUSE_STL_BASED_WXSTRING.
Vadim Zeitlin [Tue, 26 Oct 2010 15:11:00 +0000 (15:11 +0000)] 
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).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoBetter document wxAutomationObject::GetDispatchPtr() return value.
Vadim Zeitlin [Tue, 26 Oct 2010 15:10:54 +0000 (15:10 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRebake to add wx/meta/implicitconversion.h to the makefiles.
Vadim Zeitlin [Tue, 26 Oct 2010 15:10:48 +0000 (15:10 +0000)] 
Rebake to add wx/meta/implicitconversion.h to the makefiles.

Rebake after the addition of a new public header in r65920.

Closes #12616.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMention that resource forks are deprecated under Mac in wxCursor docs.
Vadim Zeitlin [Mon, 25 Oct 2010 21:52:19 +0000 (21:52 +0000)] 
Mention that resource forks are deprecated under Mac in wxCursor docs.

See #12614.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse the correct accelerator for the "Preferences" Apple menu item.
Vadim Zeitlin [Mon, 25 Oct 2010 20:46:18 +0000 (20:46 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse the application name in the "About" item of the Apple menu.
Vadim Zeitlin [Mon, 25 Oct 2010 20:46:11 +0000 (20:46 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd wxImplicitConversionType tests.
Václav Slavík [Mon, 25 Oct 2010 09:43:04 +0000 (09:43 +0000)] 
Add wxImplicitConversionType tests.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65921 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake wxMin, wxMax and wxClip template functions.
Václav Slavík [Mon, 25 Oct 2010 09:43:00 +0000 (09:43 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoCompilation fix: don't use "environ" under OS X.
Vadim Zeitlin [Mon, 25 Oct 2010 09:22:19 +0000 (09:22 +0000)] 
Compilation fix: don't use "environ" under OS X.

The global environ variable is not directly accessible under OS X, use
_NSGetEnviron() instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake wxUString compilable with VC6.
Vadim Zeitlin [Sun, 24 Oct 2010 23:06:11 +0000 (23:06 +0000)] 
Make wxUString compilable with VC6.

Provide replacements for std::basic_string functionality missing from this
compiler standard library.

Closes #12357.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65917 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix typo in wxFILTER_NUMERIC documentation.
Vadim Zeitlin [Sun, 24 Oct 2010 23:03:43 +0000 (23:03 +0000)] 
Fix typo in wxFILTER_NUMERIC documentation.

Replace wxFILTER_SIMPLE_NUMBER with wxFILTER_DIGITS.

Closes #12341.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65916 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd wxDocManager::FindTemplate() method.
Vadim Zeitlin [Sun, 24 Oct 2010 23:03:38 +0000 (23:03 +0000)] 
Add wxDocManager::FindTemplate() method.

This allows to find the template corresponding to the document of the given
class.

Closes #12170.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't handle RPC_E_CHANGED_MODE return of OleInitialize() as an error.
Vadim Zeitlin [Sun, 24 Oct 2010 23:03:31 +0000 (23:03 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65914 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDo nothing in wxMemoryDC::SelectObject() if the bitmap is already selected.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:46 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAlways create new OLE objects with reference count of 1, not 0.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:41 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix problems with reference counting in wxActiveXContainer.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:36 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't consider lack of connection points an error in wxActiveXContainer.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:29 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65910 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't activate the window when updating its styles in wxMSW.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:24 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix wrong wxLogDebug() call in fswatcher sample.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:18 +0000 (22:41 +0000)] 
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().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAllow specifying the directory to watch on command line of fswatcher sample.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:13 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAvoid duplicate wxEVT_COMMAND_TREE_SEL_CHANG{ING,ED} events in wxMSW.
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:08 +0000 (22:41 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65906 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't grab focus when calling wxTreeCtrl::SelectItem().
Vadim Zeitlin [Sun, 24 Oct 2010 22:41:03 +0000 (22:41 +0000)] 
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).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65905 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAllow to use space to toggle spinning of the cube in OpenGL sample.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:58 +0000 (22:40 +0000)] 
Allow to use space to toggle spinning of the cube in OpenGL sample.

Small enhancement to the cube OpenGL sample.

Closes #11545.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65904 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't send wxEVT_COMMAND_TREE_ITEM_MENU event without valid item in wxMSW.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:52 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo real changes, just cleanup week days handling in wxGenericCalendarCtrl.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:47 +0000 (22:40 +0000)] 
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().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65902 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoKeep displayed month and year in sync in wxGenericCalendarCtrl.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:41 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65901 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoNo real changes, just inline wxDIB::Create().
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:34 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRemove wxDIB::m_hasAlpha from wxMSW.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:27 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65899 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoFix conversion of 32 bit ARGB bitmaps to wxImage in wxMSW.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:22 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't hard code "open" verb in wxMSW wxLaunchDefaultApplication().
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:17 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65897 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoAdd support for specifying child process cwd and env to wxExecute().
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:11 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoTreat wxToolbook symmetrically with others in the notebook sample.
Vadim Zeitlin [Sun, 24 Oct 2010 22:40:01 +0000 (22:40 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoDon't reserve space for hidden controller in wxBookCtrl.
Vadim Zeitlin [Sun, 24 Oct 2010 22:39:55 +0000 (22:39 +0000)] 
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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoSet wxKeyEvent::m_rawFlags to hardware key code in wxGTK.
Vadim Zeitlin [Sun, 24 Oct 2010 14:34:45 +0000 (14:34 +0000)] 
Set wxKeyEvent::m_rawFlags to hardware key code in wxGTK.

The raw flags were previously unused in wxGTK but hardware key code is an
important information which may be useful to the application, so pass it in
the flags (this is rather symmetric with passing lParam in it under MSW as
lParam contains the scan code, among other things).

Also document the meaning of raw key code and flags in all the major ports.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoOutput header to the same directory as the .cpp file in wxrc.
Vadim Zeitlin [Sun, 24 Oct 2010 14:34:22 +0000 (14:34 +0000)] 
Output header to the same directory as the .cpp file in wxrc.

If "-o" option is given, generate the output header file in the same directory
as the .cpp file and not in the current directory.

Closes #4054.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoUse wxChoicebook instead of wxNotebook in the xrc sample.
Vadim Zeitlin [Sun, 24 Oct 2010 14:34:12 +0000 (14:34 +0000)] 
Use wxChoicebook instead of wxNotebook in the xrc sample.

wxNotebook was unusable with so many pages under all platforms and completely
unusable under Mac. Replace it with wxChoicebook which allows to select any
page quickly instead of having to do it sequentially (or not being able to do
it at all under Mac).

Another possibility could be to use wxTreebook and organize the pages in
categories, similarly to how it is done in the widgets sample.

Closes #3699.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoRearrange xrc sample controls in alphabetical order.
Vadim Zeitlin [Sun, 24 Oct 2010 14:34:05 +0000 (14:34 +0000)] 
Rearrange xrc sample controls in alphabetical order.

Several new pages were added in random positions, rearrange them to be in
alphabetical order.

Also remove wxToolBar from "The Rest" page as it is shown in one of the other
pages now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake it easier to define custom wxSizerXmlHandler subclasses.
Vadim Zeitlin [Sun, 24 Oct 2010 14:33:58 +0000 (14:33 +0000)] 
Make it easier to define custom wxSizerXmlHandler subclasses.

No real changes but refactor wxSizerXmlHandler to make it easier to derive
from it by adding virtual IsSizerNode() and DoCreateSizer() methods. To add
support for a custom sizer class you only need to override them in
wxSizerXmlHandler subclass now.

Also document wxSizerXmlHandler which was not documented at all previously.

Closes #11845.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

13 years agoMake wxXmlResourceHandler::IsOfClass() static.
Vadim Zeitlin [Sun, 24 Oct 2010 14:23:56 +0000 (14:23 +0000)] 
Make wxXmlResourceHandler::IsOfClass() static.

This simple helper function doesn't use any wxXmlResourceHandler data as it's
just a trivial wrapper for wxXmlNode::GetAttribute().

Making it static allows, in particular, to call it from const member functions
of wxXmlResourceHandler-derived classes (making it "const" itself would
achieve this too, of course, but it just doesn't need to be non-static).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775