Commit Graph

30120 Commits

Author SHA1 Message Date
Václav Slavík
a67e6b86f6 Handle inline editing in generic wxDataViewCtrl as Windows 7 does.
Mimic the behavior of Windows 7's Explorer: edit the item that has focus
if it is selected or the first selected item if focus is out of
selection.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-07 17:24:06 +00:00
Václav Slavík
1c8e71c92d Add columns focus and keyboard navigation to generic wxDataViewCtrl.
The UI tries to mimic Windows 7's Explorer's approach as much as
possible, taking inspiration in the GTK+ implementation when
appropriate. In particular, as long as the user doesn't use horizontal
navigation keys, everything looks as before and the user isn't bothered
with the existence of per-cell focus.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-07 15:03:02 +00:00
Julian Smart
f18d5c6f24 Allow selected symbol to be scrolled into view initially
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69321 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-07 03:51:23 +00:00
Steve Lamerton
8acbf08b2a Fix various GCC warnings in wxWebView.
Closes #13532

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-06 17:55:43 +00:00
Steve Lamerton
2bcada5f33 Ensure we pass the correct type of string to EscapeFileNameCharsInURL in wxWebViewArchiveHandler.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69317 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-06 10:01:17 +00:00
Steve Lamerton
f2ae0da1b5 Delete the filesystem used by wxWebViewArchiveHandler when we are done with it. Fixes a memory leak.
Closes #13500

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-05 21:21:51 +00:00
Steve Lamerton
3949871086 Store a pointer to each ClassFactory so we can correctly release it when the browser closes. This fixes a few more memory leaks.
See #13500

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69314 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-05 17:23:51 +00:00
Vadim Zeitlin
ba7df825c9 Fix wxTimePickerCtrl compilation without PCH too.
Include commctrl.h explicitly when not using PCH (this completes fixes of
r69293).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69308 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-04 17:03:28 +00:00
Vadim Zeitlin
ae97a3bdab Fix wxDateTimePickerCtrl compilation without PCH.
Include the MSW private headers usually included from the PCH file.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69293 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 17:39:21 +00:00
Steve Lamerton
ad410224a3 Add new definitions required by MinGW for webview. Re-enable custom schemes as a result.
See #13509

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 16:20:15 +00:00
Vadim Zeitlin
f58f412be8 Fix current field highlighting in generic wxTimePickerCtrl under wxGTK.
In wxGTK, calling HighlightCurrentField() from EVT_SET_FOCUS handler was not
enough as the highlighting was overwritten by the default behaviour of
selecting the entire text control contents on focus gain.

Fix this by calling SetFocus() from HighlightCurrentField() before updating
the selection. This ensures that the correct field is always highlighted.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69291 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 13:15:19 +00:00
Vadim Zeitlin
e941b45e41 Use wxSP_WRAP for generic wxTimePicker spin button.
This ensures that the spin button arrows are always enabled, as they should
be, even under wxGTK where wxSpinButton disables its arrows on its own if its
value reaches the end of its range and wxSP_WRAP is not used.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69289 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 12:58:48 +00:00
Steve Lamerton
2112ca2d61 Remove copied class definitions from missing.h. Disable custom scheme handling under MinGW as it lacks the correct definitions.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 12:21:22 +00:00
Vadim Zeitlin
2039dd917c Add wxWindowBase::CopyToolTip() method.
This method simply sets the same tooltip for the window but making copy of,
instead of taking ownership of, the wxToolTip passed in.

It's not especially useful on its own but is needed by wxCompositeWindow and
might be handy elsewhere.

See #13523.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 11:28:45 +00:00
Vadim Zeitlin
a166dbbab5 Restore correct wxSearchCtrl size in wxMSW after wxTextCtrl changes.
The code in generic wxSearchCtrl implementation was broken by the changes of
r69066 which deccreased the best height of border-less text controls.

Ideally we should probably change wxSearchCtrl::LayoutControls() to not be
sensitive at all to the exact value returned from wxTextCtrl::GetBestSize()
and just always centre everything vertically but this doesn't look simple to
do with the current code so just override wxSearchTextCtrl::DoGetBestSize() to
return the same size as wxTextCtrl used to return before to fix this for now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69284 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 11:28:40 +00:00
Vadim Zeitlin
97d5c7a3d0 Fix harmless warnings in hot key code in wxOSX.
Don't compare signed and unsigned variables if possible (insert a cast in one
place where it wasn't).

Put WXUNUSED() around the unused parameters.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 11:28:36 +00:00
Vadim Zeitlin
fb5f677b6a Fix harmless gcc initialization order warning.
Put the initializes in wxDataViewTreeNode constructor initialization list in
order of their declaration.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 11:28:32 +00:00
Steve Lamerton
873ff54b1f Derive wxAuiNotebook from wxBookCtrlBase. Document wxAuiNotebookEvent which now derives from wxBookCtrlEvent. Update the notebook sample to add wxAuiNotebook as an option.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-02 10:29:00 +00:00
Robin Dunn
75ded4d173 Use wxAlphaPixelData if the source bitmap depth is 32 or if on wxGTK and there is a mask. Add a separate pass on MSW if there is a mask to adjust the cairo surface's alpha to match the mask.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69253 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 23:40:02 +00:00
Vadim Zeitlin
54c730a94f Fix the comparison direction in wxTextAttr::BitlistsEqPartial().
The comparison was apparently reversed.

Closes #13521.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69244 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 15:26:39 +00:00
Vadim Zeitlin
39429ad146 Fix assert in initial call to wxPostScriptDC::SetPen().
Attempt to use wxPen::GetStyle() on the initially invalid pen resulted in an
assert, so don't do it and test for pen validity explicitly.

Closes #13524.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 15:26:36 +00:00
Jouk Jansen
df016fc87e updates for OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69241 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 14:00:52 +00:00
Jouk Jansen
829fa97b52 Update OpenVMS compile support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-30 06:05:00 +00:00
Vadim Zeitlin
6b9103c67b Added XRC handler for wxTimePickerCtrl.
Add a trivial handler modeled after the existing wxDateCtrlXmlHandler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 13:43:23 +00:00
Vadim Zeitlin
569c7d8ccb Add wxTimePickerCtrl class.
Implement wxTimePickerCtrl natively for MSW and add a generic implementation
(very loosely based on the original class by Paul Breen) for the other
platforms.

Also update the calendar sample to show the new control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69224 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 13:43:15 +00:00
Vadim Zeitlin
8957e55ed3 Refactor wxDatePickerCtrl to derive from wxDateTimePickerCtrl.
No real changes, just refactor wxMSW wxDatePickerCtrl to allow sharing code
with the upcoming wxTimePickerCtrl class. Even less changes for the other
platforms where wxDateTimePickerCtrl is trivial.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 13:43:02 +00:00
Vadim Zeitlin
276f3938c4 VC6 compilation fixes for wxTreeListCtrl.
For some reason comparing wxTreeListItem with its associated Type doesn't work
when using VC6 ("error C2593: 'operator ==' is ambiguous") so help the compiler
to do it.

Also remove the unnecessary (and unsupported by VC6) return from void function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 12:29:38 +00:00
Julian Smart
423b9ba554 Fixed caret sizing problem around large objects by clipping the caret to the margins
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69219 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 12:05:21 +00:00
Robin Dunn
82614b1a72 Don't always use the Cairo context for wxGCDC(wxMemoryDC). If a Cairo context is wanted then the wxGCDC(wxGraphicsContext*) ctor should be used instead. (I thought I had removed this code with my last commit of this file...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69217 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-29 07:28:04 +00:00
Steve Lamerton
e924e848f7 Fix compilation of wxWebView under mingw by adding missing definitions and dynamically loading urlmon.
Fixes #13509

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-28 14:54:56 +00:00
Jouk Jansen
5223261db4 correcting typo in previous commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69208 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-28 09:46:02 +00:00
Jouk Jansen
eec4d3f513 Include support for OpenVMS IA64
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-28 06:02:21 +00:00
Stefan Csomor
0068a2c499 giving in on native undo integration, as we don't have a NSUndoManager, fixes #13431
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-27 07:21:44 +00:00
Jouk Jansen
1f11ce5b66 Correcting typo in commit 69203
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-27 07:14:49 +00:00
Jouk Jansen
afd474aea4 Update openVMS compile support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69203 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-27 05:56:37 +00:00
Stefan Csomor
829c8572da adding missing autorelease pool, since this can be called from anywhere, fixes #13449
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69198 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-25 12:14:52 +00:00
Vadim Zeitlin
e427c04537 Improve appearance of wxTreeListCtrl during live resizing.
When using the generic wxDataViewCtrl version, forcefully refresh it after
changing its size to avoid artefacts during resizing of wxTreeListCtrl.

Closes #13502.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69183 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-22 10:36:01 +00:00
Vadim Zeitlin
6b719a1c09 Always give all the remaining space to the first wxTreeListCtrl column.
Under GTK the columns of wxDataViewCtrl (and hence wxTreeListCtrl) are always
resized to cover the entire control width. For consistency, also do it under
the other platforms and give the remaining space to the first column and not
to the last one as GTK does by default, as the first column is more important.

Do this even if this results in reducing the size of the column: presumably,
if the entire control itself can be resized, the user wouldn't bother resizing
the columns and, on the contrary, if the user did resize the columns, the
entire control size is unlikely to change, so in practice we don't risk
overriding the user preferences and reducing as well as increasing the first
column width works much better by default as it doesn't leave the other
columns invisible after making the control wider and than reverting it back to
its initial, more narrow, state again.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-22 10:35:58 +00:00
Vadim Zeitlin
7d0cf3f9be Fix scrolling in small wxVListBox with tall items.
Scrolling in a small wxVListBox with tall items (i.e. taller than the height
of wxVListBox itself) behaved wrongly: wrong item was being scrolled into view
and Page Up/Down didn't scroll as much as they should.

Fix both of these problems by checking for these corner cases explicitly.

Closes #13454.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:08:10 +00:00
Vadim Zeitlin
c559c4b3ef Change wxSound ctor from in-memory data to use size_t/void *.
This constructor previously used int and, especially annoyingly, wxByte* for
the data. Use standard void* for untyped binary data instead.

Also document this ctor as it seems to be implemented in all ports.

Closes #13451.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:08:02 +00:00
Vadim Zeitlin
7ed24cb652 Send EVT_DATAVIEW_ITEM_CONTEXT_MENU events even when not clicking on an item.
Always send this event, even if the user right clicked outside of the client
area. This is useful for showing item-independent commands in the context
menu.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69177 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:56 +00:00
Vadim Zeitlin
da2e758f83 Implement sorting in wxTreeListCtrl.
Allow the user to sort the control contents by clicking on the columns with
wxCOL_SORTABLE flag and also provide SetSortColumn() method to sort the
control programmatically.

Also add wxTreeListItemComparator class and SetItemComparator() method to
allow customizing the way the items are compared.

Update the sample to show how to define a custom comparator.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:53 +00:00
Vadim Zeitlin
15b8afdcb8 Reset previous sort column in generic wxDataViewColumn::SetSortOrder().
The sort indicator on the column previously used for sorting was only reset
when the user clicked on the column header (by wxDataViewHeaderWindow code
that explicitly called wxDataViewCtrl::SetSortingColumnIndex()) but not when
wxDataViewCtrl::SetSortOrder() was called directly.

Fix this and take care of updating everything in SetSortOrder() itself. This
makes the code simpler and also means that calling SetSortOrder() from the
program now works as expected (it resulted in having sort indicators in two
columns at once before).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:49 +00:00
Vadim Zeitlin
aadbdd1699 Remove wxHeaderColumn::SetAsSortKey() and only use SetSortOrder().
The two member functions, SetAsSortKey() and SetSortOrder(), were doing almost
the same thing but differently and the former was only used in the generic
wxDataViewCtrl implementation and not implemented in the native GTK/OS X one.

Remove SetAsSortKey() entirely and only keep UnsetAsSortKey() which is still
needed by generic/MSW wxDataViewCtrl. But only SetSortOrder() should now be
called to indicate that the column is used for sorting.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:46 +00:00
Vadim Zeitlin
8148ae02ef Add wxTreeListCtrl::GetView() and GetDataView().
It can be useful to have access to the window used to actually show the items
by wxTreeListCtrl, provide two accessors for m_view: a wxDataViewCtrl-specific
one and a generic one returning just a wxWindow that can be used to keep the
code isolated from wxDataViewCtrl.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69173 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:41 +00:00
Vadim Zeitlin
b83d8f7339 Don't limit window size to (0, 0) in wxSizer if getting display size failed.
It's possible that wxDisplay::GetClientArea() returns (0, 0) size indicating
that it failed. Don't set the maximal window size to (0, 0) in this case as
this prevents the user from seeing the window at all and just don't do
anything instead.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69172 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:37 +00:00
Vadim Zeitlin
ad6f09f543 Refresh wxDisplay when a monitor is added to or removed from the system.
If a monitor was attached or detached while a wx program was running, the
monitor handles stored in wxDisplayFactoryMSW became invalid and all display
operations (e.g. getting display size) failed from this moment onwards
requiring a program restart to work again.

Fix this by updating the monitor handles when we get WM_SETTINGCHANGE as it is
sent when a monitor is added or removed (while it's also sent in quite a few
other cases re-enumerating the monitors shouldn't take very long so just do it
always).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:35 +00:00
Vadim Zeitlin
b481194f51 No changes, just extract wxCreateHiddenWindow() declaration in a header.
Add wx/msw/private/hiddenwin.h with wxCreateHiddenWindow() declaration instead
of declaring it manually in all the files using it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69170 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-21 15:07:32 +00:00
Julian Smart
23a9a87c85 Remove pointless case insensitivity
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69168 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-20 20:03:42 +00:00
Vadim Zeitlin
1841f0790d Add GetExpanderColumnOrFirstOne() to avoid code duplication in generic wxDVC.
There were two strictly identical code snippets setting the expander column to
be the first one if it hadn't been set before, replace both of them with a
call to GetExpanderColumnOrFirstOne() function.

Also use this function instead of just GetExpanderColumn() (which might return
NULL) in a couple of places.

Notice that there are still a lot of places in the code where the column 0 is
hard coded as being the expander column, this would need to be fixed to really
support non-first expander column.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-20 18:37:11 +00:00