Commit Graph

51968 Commits

Author SHA1 Message Date
Chris Elliott
b45054eaaf missing namespace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66021 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-05 15:45:51 +00:00
Chris Elliott
bbaf9672e6 missing namespace
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-05 15:24:27 +00:00
Vadim Zeitlin
4ded4e1910 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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-05 12:53:44 +00:00
Jouk Jansen
0ea0feb82f Update OpenVMS makefiles
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-05 06:55:31 +00:00
Vadim Zeitlin
85898d8b4d Correct a trivial typo in wxLog documentation.
Just remove an extra word.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 16:13:27 +00:00
Vadim Zeitlin
e801524514 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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 10:57:19 +00:00
Vadim Zeitlin
b146648622 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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66014 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 10:57:13 +00:00
Vadim Zeitlin
2a9a4f5be9 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.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 10:49:10 +00:00
Jouk Jansen
b87b399c48 Updating makefiles for OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-04 07:38:13 +00:00
Vadim Zeitlin
9939bfd98b 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
2010-11-03 23:48:30 +00:00
Vadim Zeitlin
d632aa8157 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
2010-11-03 23:48:23 +00:00
Vadim Zeitlin
ab84bafe49 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
2010-11-03 16:36:34 +00:00
Vadim Zeitlin
ca81b52e62 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
2010-11-03 16:29:36 +00:00
Vadim Zeitlin
30b0888647 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
2010-11-03 16:29:30 +00:00
Vadim Zeitlin
10875c13e9 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
2010-11-03 16:29:23 +00:00
Vadim Zeitlin
5ca9771ff3 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
2010-11-03 16:29:18 +00:00
Vadim Zeitlin
53250e3afa 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
2010-11-03 16:29:13 +00:00
Vadim Zeitlin
f4f3c8f3bb 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
2010-11-03 16:29:06 +00:00
Jouk Jansen
a987bdfa22 replace m_nSelection by m_selection
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-03 14:44:57 +00:00
Jouk Jansen
0de66257d9 Update OpenVMS compile support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-03 08:54:52 +00:00
Václav Slavík
530646ca27 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
2010-11-02 22:55:56 +00:00
Vadim Zeitlin
7e9c57542f 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
2010-11-02 11:57:30 +00:00
Vadim Zeitlin
3fee3116dd 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
2010-11-02 11:57:24 +00:00
Vadim Zeitlin
b835320170 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
2010-11-02 11:57:19 +00:00
Vadim Zeitlin
4445d0357b 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
2010-11-02 11:57:14 +00:00
Vadim Zeitlin
878f28d8c8 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
2010-11-02 11:57:09 +00:00
Vadim Zeitlin
6f26925422 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
2010-11-02 11:57:03 +00:00
Robin Dunn
d22e07bf6c 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
2010-11-02 03:09:27 +00:00
Robin Dunn
6cb2477d9f 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
2010-11-02 03:07:35 +00:00
Jouk Jansen
04b11eb3fb 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
2010-11-01 11:58:31 +00:00
Jouk Jansen
cc22153550 Create work-around for wxGetEnvMap on OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65969 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-01 09:48:56 +00:00
Vadim Zeitlin
b64f93b67f 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
2010-10-31 13:41:03 +00:00
Vadim Zeitlin
60d5c563d2 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
2010-10-31 13:33:34 +00:00
Vadim Zeitlin
03263ff73b 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
2010-10-31 11:37:31 +00:00
Vadim Zeitlin
bc73fe96a2 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
2010-10-31 11:37:26 +00:00
Vadim Zeitlin
053e42428d 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
2010-10-30 23:51:18 +00:00
Vadim Zeitlin
2d4dcfe1a5 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
2010-10-30 23:51:14 +00:00
Vadim Zeitlin
f7196178a5 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
2010-10-30 23:51:09 +00:00
Vadim Zeitlin
2e7a64e9e6 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
2010-10-30 23:51:04 +00:00
Vadim Zeitlin
5c96c8649e 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
2010-10-30 23:50:55 +00:00
Vadim Zeitlin
fd90675b89 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
2010-10-30 23:50:50 +00:00
Vadim Zeitlin
a72ebcd091 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
2010-10-30 23:50:45 +00:00
Vadim Zeitlin
7ee21e3a3d 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
2010-10-30 23:50:39 +00:00
Vadim Zeitlin
a16e51b56a 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
2010-10-30 23:50:28 +00:00
Vadim Zeitlin
3120eccfe2 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
2010-10-30 23:50:22 +00:00
Vadim Zeitlin
abaa31e7ea 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
2010-10-30 23:50:08 +00:00
Vadim Zeitlin
7eae80a04b 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
2010-10-30 19:01:15 +00:00
Vadim Zeitlin
c9c4274adc 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
2010-10-30 19:01:10 +00:00
Václav Slavík
0645bd388c 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
2010-10-30 15:57:59 +00:00
Václav Slavík
f0ccd2cbfa 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
2010-10-30 15:57:55 +00:00