Commit Graph

28130 Commits

Author SHA1 Message Date
Paul Cornett
8362e67ca7 for file load/save, always try wxImage first, fallback to pixbuf
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-08 18:19:23 +00:00
Kevin Ollivier
5a900d5050 Support mouse click through as otherwise clicking inside an inactive window causes us to lose the first mouse down, unlike with MSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63096 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-08 01:29:51 +00:00
Paul Cornett
31f4ed4aa3 remove unused function GetGdkVisual()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-07 18:30:18 +00:00
Paul Cornett
06497cba66 defer creating bitmap representation until it is needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-07 18:16:45 +00:00
Vadim Zeitlin
3c8cbc12ca Improve hit detection in wxMSW wxTreeCtrl with wxTR_FULL_ROW_HIGHLIGHT style.
When wxTR_FULL_ROW_HIGHLIGHT is used, the item visually takes up the entire
breadth of the window so clicking both to the left or to the right of the item
should have the same effect as clicking on it.

So add a MSWIsOnItem() helper which tests for whether a point is above the
item correctly and use it in order to:

1. In multi selection mode, allow clicking anywhere to select the item(s)
   when Ctrl or Shift is pressed (Closes #11598).
2. Generate activation event when clicking to the right of the item too
   (Closes #11602).
3. Detect item bounds correctly in WM_LBUTTONUP handler (although it's
   not really clear what does this code do and hence what problem does this
   fix...).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-07 13:16:01 +00:00
Vadim Zeitlin
f124a4c537 Fix typos in IMediaPlayer2 and INSPlay interfaces declarations.
Fix missing/extraneous parentheses.

Closes #11600.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63087 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-07 13:15:43 +00:00
Kevin Ollivier
125e7c11c1 Fix another line somehow missing from the wxGraphicsBitmap forward port.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-06 02:22:38 +00:00
Paul Cornett
b2bf3ac658 remove never-implemented palette support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-05 17:53:37 +00:00
Jaakko Salli
22909aef2d Call virtual ctrl->GetDefaultAttributes() instead of static GetClassDefaultAttributes()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63077 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-05 16:42:35 +00:00
Jaakko Salli
7f344b3b80 Allow wxPropertyGridInterface::EnableProperty() to work even if property->GetGrid() returns NULL.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 16:07:47 +00:00
Vadim Zeitlin
4b621e4ce4 Add assert checking that window has no event handlers when destroyed.
Forgetting to pop custom event handlers pushed onto the window before it is
destroyed will result in a crash later on, so try to detect this immediately
with an assert.

We might want to forcefully pop them off too, this could result in memory
leaks but would be still better than crashing.

Closes #11533.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 12:51:48 +00:00
Vadim Zeitlin
4cb0e8d05c Fix wxConvAuto behaviour when it is used by wxTextInputStream.
wxConvAuto implicitly supposed that the chunk of data passed to it for
translation was big enough to allow it to at least detect the BOM from it.
However this isn't necessarily the case and never is with wxTextInputStream
which reads the bytes one by one.

Fix this by waiting until we have enough data to be able to detect the BOM.
This still doesn't fix the problem with streams without BOM and the
corresponding unit test still fails -- it will need to be fixed at the level
of wxTextInputStream itself later but handling correctly the cases when a BOM
is present is already better than before.

See #11570.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 12:22:49 +00:00
Vadim Zeitlin
55e5154d2c Make calling wxLog::IsAllowedTraceMask() safe during static init time.
Although using wxLog during statics initialization is not recommended, it may
still happen, possibly indirectly so make it work correctly by using an
accessor function for the array of trace masks which ensures that this array
is always correctly initialized before being used.

Closes #11592.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 12:22:42 +00:00
Vadim Zeitlin
8b7d411f14 Correctly parse times without seconds in wxDateTime::ParseTime().
This was always supposed to work but never did because of a typo in the "24
hour format without seconds" format specification. Fix this by removing the
extra "%S" from it and add a test for this case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63061 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 11:05:47 +00:00
Vadim Zeitlin
462f4f19b5 Don't dereference invalid iterator in wxDateTime::ParseDate().
If the string passed to this method contained only spaces (possibly 0 of them,
i.e. was empty) we would dereference the end string iterator. Fix this by
adding an explicit test for "p != pEnd".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 10:59:40 +00:00
Kevin Ollivier
f941a30bef Get the OS X Cocoa native combobox building by having the native code compile if wxOSX_USE_NATIVE_COMBOBOX is defined. It must be explicitly enabled by adding that define to the build flags as the native implementation is mostly just stubs right now.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-04 01:57:42 +00:00
Kevin Ollivier
e2758e2175 Don't use a destroy event handler to disconnect the native control's delegate as the destroy event propagates and can cause the TLW to remove its delegate at unexpected times, such as when a child control is destroyed but the TLW remains active. Instead, do it in response to the Destroy() call.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63051 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 23:59:32 +00:00
Kevin Ollivier
d9edff064d Create a text measuring context until a real context is assigned, this allows things like text measurement code using wxMemoryDC to work on Mac.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63050 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 22:52:04 +00:00
Václav Slavík
7f362a98cc Removed some outdated compiler checks in OLE code.
We don't support VC++ 4 for ages and any recent version of GCC has
cVal, too.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 18:29:09 +00:00
Václav Slavík
1fbfbfb0bf Removed wxClearVariant() and wxReleaseVariant().
Replaced them with standard VariantInit() and VariantClear() functions
respectively. They appear to be just reimplementations of these.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 18:29:02 +00:00
Václav Slavík
a2fd865b0d Moved wxConvertVariantToOle and wxConvertOleToVariant to oleutils.cpp.
These are declared in oleutils.h, so that's where they should be. More
importantly, they are used by wxActiveXContainer and so are required
even if wxUSE_OLE_AUTOMATION is off.

Also added "wx" prefix to (Clear|Release)Variant, because they cannot be
static any longer.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 18:28:56 +00:00
Jaakko Salli
d5df4df90a Added missing ResetEditorAppearance() call
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 10:24:12 +00:00
Jaakko Salli
cb0f3ec171 In wxPGEditor::SetControlAppearance() use GetClassDefaultAttributes() instead of GetDefaultAttributes()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-03 10:23:40 +00:00
Václav Slavík
c986b01f89 Added wxAutoOleInterface<T> template.
This replaces WX_DECLARE_AUTOOLE with easier-to-debug version. The
macro is still preserved for backward compatibility.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-02 13:07:17 +00:00
Vadim Zeitlin
b326934c03 Change the year in copyright messages to 2010.
Happy new year to all wx-ers!

Closes #11584.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-31 13:36:23 +00:00
Stefan Csomor
4ddfa282fa adding placeholders and work in progress files
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63028 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-31 08:39:13 +00:00
Kevin Ollivier
598ad2b94d Fix issue that was causing ShowWithoutActivating to indirectly call wxNonOwnedWindow::Show.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-30 23:40:01 +00:00
Kevin Ollivier
509da835c5 To support playing async sounds on the stack on Mac, do not delete the wxSoundData when its wxSound object is destroyed if it's in the queue of sounds to be played. Instead, mark it to be deleted and delete it after it has played.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-30 17:41:29 +00:00
Vadim Zeitlin
4e2c2c7062 Don't create an invalid iterator in wxDateTime::ParseTime().
Creating an iterator pointing beyond the string end resulted in an assert from
MSVC 9 CRT. Fix this by using wxString ctor taking length (which may be
greater than the length of the string) instead of the one taking two iterators
(which must both be valid).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-30 13:46:27 +00:00
Stefan Csomor
b7a015cbb4 fixing SetSubMenu for OSX_Cocoa, fixes #11581
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63015 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-30 08:35:01 +00:00
Jaakko Salli
e16bff8e62 Changed wxPropertyCategory to use same cell rendering code as regular properties. This allows labels for category columns other than the first. Rendering code was heavily modified to allow 'merging' of cells when needed.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-29 16:04:40 +00:00
Vadim Zeitlin
62f6be4448 Ensure that frame is re-laid out when its toolbar is deleted.
The code in wxFrameBase::SetToolBar() didn't work correctly when toolbar was
unset using SetToolBar(NULL) because the frame toolbar pointer was reset
before layout was done resulting in the frame not recognizing its (still
existing) toolbar child as one of its bars and so nothing was done at all when
the frame had a single child, as in the toolbar sample.

Correct this by carefully ensuring that the toolbar pointer is still set at
the moment of the layout but hide the toolbar to ensure that no place is
allocated for it.

Also mention that it is not necessary to call SetToolBar(NULL) at all if the
toolbar is being deleted anyhow in the sample as toolbar does this itself in
its destructor.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63007 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-28 16:18:37 +00:00
Vadim Zeitlin
774f6b312a Account for cells spanning multiple grid cells better when autosizing.
The total size of a multi-span cell was accounted for each row/column it
covered, resulting in too much space being allocated to them.

Only take into account the average size of each row/column computed by
dividing the total cell size by number of rows/columns it occupies to fix
this.

Closes #11498.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-27 19:40:46 +00:00
Vadim Zeitlin
ea99e8e31e Return the kind of cells span from wxGrid::GetCellSize().
Behaviour of GetCellSize() may be very surprising for the unwary as it can
return negative or null "size" of the cell.

Add CellSpan return value to allow the caller to check what kind of cell are
we dealing with easier.

Also document the new return value as well as the function (and matching
SetCellSize()) itself carefully as its behaviour is far from obvious.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-27 19:40:41 +00:00
Vadim Zeitlin
653351d1cc Don't call SetMinSize() when creating the window if no initial size was given.
Calling SetMinSize() is unnecessary in this case. It also results in GTK+
errors when creating wxFileDialog as it is not created yet when this is called
(but it does take care to pass wxDefaultSize to this function as its size
can't be set yet).

See r62814 and r62817.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-27 19:40:28 +00:00
Vadim Zeitlin
9067c6c537 Take into account the initial buttons state when creating wxGTK toolbar.
With wxMSW it is possible to call e.g. wxToolBarTool::Enable(false) on a tool
before calling wxToolBar::Realize() to create the tool in an initially
disabled state but this wasn't done in wxGTK version.

Override Realize() now under wxGTK to bring the native toolbar buttons state
in sync with the internal state of the corresponding wxToolBarTools.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-26 16:36:39 +00:00
Vadim Zeitlin
88046bdac5 No changes, just fix a typo in and rephrase a comment.
Comment in wxToolBarBase::Realize() was probably copied from some
port-specific file but didn't make sense any more in common code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-26 16:36:26 +00:00
Jaakko Salli
534090e354 Replaced 'InlineHelp' property attribute with 'Hint'; Use SetHint() wxTextCtrl and wxComboCtrl member function to set it; Added a small section about help string and hint text in propgrid overview
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-26 10:45:04 +00:00
Jaakko Salli
107defe36a Added wxComboCtrl::SetHint(), GetHint()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62989 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-26 10:33:35 +00:00
Kevin Ollivier
1665389a9a Remove the native toolbar from the frame in Destroy() rather than the destructor, as removing it in the destructor causes resize / repaint events to fire on the native control, which then goes to wx controls being deleted.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62988 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 20:43:43 +00:00
Kevin Ollivier
849754a451 Use NSTrackingArea when available (building for 10.5+) so that we can get mouse moved events for inactive / non-focused windows too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 20:40:05 +00:00
Vadim Zeitlin
7591b0bb53 Always show hint in text entries, even when they have focus.
It was impossible to show the hint for the initially focused child of a dialog
before, as the hint was hidden from the very beginning. By showing it always
we avoid this problem.

We may want to add an option/flag for SetHint() to make this configurable
later if somebody really needs to show hints only for as long as the control
doesn't have focus.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 11:36:54 +00:00
Stefan Csomor
0aaa6ace7e removing event handlers on non-owned windows when the destroy event is sent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 09:47:30 +00:00
Jaakko Salli
22a2e3fa6b Refactored a very confusing condition in wxPGComboBox item paint code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 09:18:04 +00:00
Jaakko Salli
5f54075053 Added wxComboCtrlBase::SetFore/BackgroundColour()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-25 09:04:53 +00:00
Vadim Zeitlin
f3d0bc4364 Erase toolbar background even if it doesn't contain any controls/spaces.
Minor correction to changes in r62971: we still need to hook WM_ERASEBKGND in
toolbar parent when painting the toolbar itself even when there are no dummy
separators in it (and so we don't need to paint them over). Without this, the
background of simple toolbars without controls was not erased correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-23 21:42:06 +00:00
Vadim Zeitlin
fe0c328904 Don't pass 0 timer ids to ::SetTimer().
Creating timers with 0 id failed because Windows SetTimer() function requires
a non-zero id. Fix this by using a (impossible at wx API level) -1 id value in
this case instead.

Closes #11392.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-23 13:56:55 +00:00
Michael Wetherell
224d978ffb Add support for large stdio files for VC 8+. What versions of the other Windows
compilers?


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-22 21:22:59 +00:00
Jaakko Salli
3e6d8c3118 Added wxPropertyGrid::SetUnspecifiedValueAppearance(); Added wxPGEditor::SetControlAppearance() for applying wxPGCell attributes on a property editor.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-22 16:12:02 +00:00
Vadim Zeitlin
bec9bf3e20 Finally really correct background erasing for wxMSW wxToolBar.
Do use TBSTYLE_FLAT and TBSTYLE_TRANSPARENT (the former actually implies the
latter) for MSW toolbar as it is the only way to avoid the flicker of toolbar
buttons. These styles were disabled before because of lack of understanding
about how they worked: with them, the toolbar supposes that its parent takes
care of erasing its background but wx didn't do this (in fact wxFrame did
accidentally erase toolbar background because of the use of Win32 client
rectangle, including tool/status bars, instead of wx client rectangle,
excluding them, in wxWindowMSW::DoEraseBackground(), but it didn't do it
correctly).

Now we allow hooking WM_ERASEBKGND events processing in a parent window by a
child one and use this to handle toolbar background erasing in toolbar itself.
We still prevent the native toolbar from drawing dummy separators and always
erase the area occupied by them ourselves and thus avoid the flicker entirely.

The only remaining flicker in the toolbar sample is that of embedded
wxStaticText control. It does appear with correctly transparent background and
bitmaps with alpha channel also (still) are drawn correctly in wxStaticBitmaps
embedded in the toolbar.

Finally, we still use solid background brush for toolbar but we can easily use
a themed background if really desired, there is just a single function to
change to do it (MSWGetToolbarBgBrush()).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-22 15:37:43 +00:00