Commit Graph

4010 Commits

Author SHA1 Message Date
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
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
Vadim Zeitlin
b10c408980 Corrections to expander position calculations and drawing in generic wxDVC.
Correct the calculation of the indent for the columns following the expander
and the calculation of the position of the expander itself.

See #11558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 11:17:49 +00:00
Vadim Zeitlin
e3dbeaaf31 Correct selection/drop highlight rectangles width in generic wxDataViewCtrl.
The third parameter of wxRect ctor is the width, not the right edge.

See #11558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 11:17:42 +00:00
Vadim Zeitlin
68d7680d0f Always draw standard-sized checkboxes in generic wxDataViewToggleRenderer.
The checkbox should be always shown in its normal size, otherwise it looks
strange. And this also fixes the overflow of the checkbox in the next column
which happened if the size passed to Render() had negative width before.

See #11558.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-19 11:17:32 +00:00
Vadim Zeitlin
e75390d4aa No changes, just minor cleanup.
Don't call wxWindow::PrepareDC() which doesn't do anything anyhow.

Use wxBitmap::IsOk() instead of Ok().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-18 14:46:44 +00:00
Vadim Zeitlin
c15cc7fa26 Remove asserts in wxChoicebook::Get/SetPageImage().
It's better to silently return an error code than assert when these methods
are called as their failure is relatively harmless and the user code may call
them via base class pointer without caring if it works with a control which
supports images or not.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62895 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-15 21:12:06 +00:00
Vadim Zeitlin
f03c22f9b3 Avoid painting generic wxDataViewCtrl if it has no columns.
The code in wxDataViewMainWindow::OnPaint() relied on having at least the
first column and didn't work for a completely empty control. Just don't paint
it at all in this case as it's unnecessary anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-14 19:17:12 +00:00
Stefan Csomor
766fc09288 avoiding string conversions on 1st param of wxStat, as the latter is having a param of wxString now always and does the conversion internally
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-09 07:38:22 +00:00
Vadim Zeitlin
f26c1c3e4a Don't override DoGetBestSize() in wxGenericStaticText, it's unnecessary.
The base class already does exactly the same thing -- except that it also
accounts for the borders properly.

Also fix access for a couple of DoXXX() member functions which should be
protected and an event handler which can be private.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 15:56:21 +00:00
Paul Cornett
65391c8ffc minor cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62789 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-05 19:57:58 +00:00
Paul Cornett
a243da29c8 make array data fully const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 17:28:45 +00:00
Vadim Zeitlin
ad42f414c8 Don't override msw.remap system option value in wxToolbook.
Introducing a system option for all toolbars and then ignoring it inside wx
itself is ridiculous and just goes to prove that this option itself was a
mistake. But as we have it, we should respect whatever value it's set to
(which should hopefully be 0 anyhow for most modern systems) instead of
overriding it forcefully making the mockery of the whole "option" concept.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-28 02:29:08 +00:00
Vadim Zeitlin
1c54c4ed04 Avoid infinite recursion in wxToolbook::OnSize() under wxMSW.
Reset m_needsRealizing flag before calling wxToolBar::Realize() as doing this
can result in another call to wxToolbook::OnSize() itself.

Closes #11942.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-28 02:29:02 +00:00
Vadim Zeitlin
9a67941f0b Compilation fix for wxUSE_CAIRO==0 after last commit.
Include wx/graphics.h when wxUSE_CAIRO==0 but wxUSE_GRAPHICS_CONTEXT==1 (as in
e.g. MSW builds).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-27 21:36:03 +00:00
Vadim Zeitlin
6c99dbd55e Define wxUSE_CAIRO in wx/chkconf.h to ensure that it's always defined.
wxUSE_CAIRO used to be defined only in wx/cairo.h but this header wasn't
included by src/common/dcgraph.cpp so the code there was compiled as if we
were not using Cairo even when we were (thanks g++ for the warning).

Define it in wx/chkconf.h (included from wx/defs.h, i.e. always) now to ensure
that not only this bug is fixed but also that it can't happen any more.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-27 21:06:03 +00:00
Vadim Zeitlin
a8f9fe13aa Use #ifdef to check for __WXMSW__ and __WXGTK__ and not #if.
Using #if doesn't work when symbols are not defined.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62729 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-27 21:05:57 +00:00
Vadim Zeitlin
cfbc15ee04 Allow changing horizontal alignment of numeric cells in wxGrid.
wxGridCellAttr didn't provide any way to query its alignment attributes
without falling back to the (always defined) default alignment so the code in
wxGridCellNumberRenderer and similar classes simply always used right
alignment,

Add a new wxGridCellAttr::GetNonDefaultAlignment() function which allows to
retrieve the alignment defined in the attribute and use it to use right
alignment by default but allow overriding it.

Add a test to the sample showing a non right-aligned numeric cell.

Incidentally fix a long-standing bug in wxGridCell{DateTime,Enum}Renderers
which used wxRIGHT instead of wxALIGN_RIGHT and so were not aligned properly
even by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62728 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-27 01:47:38 +00:00
Kevin Ollivier
c0e69d720d Forward port of r60190 (wxMSW Cairo support) to trunk.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-18 19:05:42 +00:00
Robert Roebling
de67922eaa Always set focus to the item selected using Select()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-16 18:39:32 +00:00
Robert Roebling
bc6ca1a9e6 Also update focus rect when changing selection in single selection mode, fixes #11332
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-13 08:24:00 +00:00
Robert Roebling
7d5d2f237a Reset m_underMouse anytime the display is changed programmatically, fixes #11322
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-13 08:05:00 +00:00
Vadim Zeitlin
62265c2c67 Allow custom wxDataViewCtrl renderers to easily use attributes.
Set up the DC passed to wxDataViewCustomRenderer::Render() to use the font and
colour defined by the item attribute by default so that any calls to
RenderText() from it will use them automatically.

Also added public wxDataViewCustomRenderer::GetAttr() to allow retrieving the
attribute explicitly in Render().

The column using custom renderer in the dataview sample now works as expected
in the generic version; the native ones will be corrected in the upcoming
commits.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:41:11 +00:00
Vadim Zeitlin
6eec70b984 Big wxDataViewCtrl renderer classes refactoring.
This commit adds no changes in functionality but paves way for the upcoming
improvements of wxDataViewCustomRenderer.

First, introduce wxDataViewCustomRendererBase class in order to allow
implementing behaviour common to custom renderers in all ports in this class
instead of triplicating it.

This required splitting monolithic dataview.h in more parts, now we have
wx/dvrenderer.h which defines wxDataViewRendererBase and the new
wxDataViewCustomRendererBase and includes wx/port/dvrenderer.h which define
wxDataViewRenderer and wx/port/dvrenderers.h which defines all the other
renderer classes.

Also bring renderers hierarchy in the generic version closer to other ports:
all standard renderer classes now inherit from wxDataViewRenderer and not
wxDataViewCustomRenderer in for consistency with the other ports.
wxDataViewRenderer itself still does derive from wxDataViewCustomRendererBase,
unlike elsewhere, but this is unavoidable considering that all generic
renderers are custom ones.

Finally do some cleanup in OS X part of the code: correct indentation,
spacing, comment style.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-10 17:40:58 +00:00
Vadim Zeitlin
aa2444bd9e Prefer to use standard selection colour in wxDataViewCustomRenderer.
We currently don't allow customizing the background colour of the selected
items which is always the system standard colour and so we should also use the
system standard selection foreground colour as a combination of a custom
foreground and standard background may be completely unreadable.

Notice that it is still possible to use custom colour if really needed from a
custom renderer by removing wxDATAVIEW_CELL_SELECTED from the flags before
calling the base class version of RenderText().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-06 20:47:44 +00:00
Vadim Zeitlin
651548666a Change wxLongLongFmtSpec to be a non-wide string.
As with other ANSI/Unicode unification changes, we choose to preserve
compatibility with the existing code using wxLongLongFmtSpec in ANSI build
and require people using it in Unicode build to change their code.

Closes #11372.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-05 14:59:55 +00:00
Vadim Zeitlin
795dac4c86 Add wxDataViewModel::ChangeValue() and use it in wxDVC implementation.
ChangeValue() is a trivial wrapper calling both SetValue() and ValueChanged().
It allows to replace many calls to SetValue() immediately followed by
ValueChanged() with a single function call which is significantly shorter and
less error-prone (e.g. most of the existing code didn't test SetValue() return
code at all).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-23 23:49:16 +00:00
Vadim Zeitlin
6b8ef0b35d Merge SOC2009_FSWATCHER branch into trunk.
Merges everything from the branch with only some minor changes, mostly renamed
wxUSE_FSWATCHER_{INOTIFY,KQUEUE} to wxHAS_{INOTIFY,KQUEUE}.

Add wxFileSystemWatcher and related classes.

Also introduces wxEventLoopSource.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:35:43 +00:00
Vadim Zeitlin
c937bcac0f Add ellipsization support to wxDataViewCtrl.
Implemented ellipsization in the generic, GTK and both OS X Carbon and Cocoa
versions but it currently doesn't work well in GTK as it changes the item
alignment unconditionally, this will need to be fixed later.

The behaviour for the columns is currently inconsistent between ports too:
under MSW they (natively) use wxELLIPSIZE_END, under GTK -- wxELLIPSIZE_NONE
and under OS X the same ellipsization mode as the column contents, i.e.
wxELLIPSIZE_MIDDLE by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-16 21:35:26 +00:00
Vadim Zeitlin
355ce7adea Rename wxEllipsizeFlags elements to avoid confusion with wxEllipsizeMode.
We shouldn't use the same "wxELLIPSIZE_" prefix for two different enums, so
use wxELLIPSIZE_FLAGS one for wxEllipsizeFlags (they should be used less often
than wxEllipsizeMode so it's better to keep the short prefix for the latter).

Also add wxELLIPSIZE_FLAGS_NONE flag.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-16 21:32:51 +00:00
Vadim Zeitlin
73b1b99623 Improve wxCollapsiblePane appearance under OS X.
By default, don't use border in wxDisclosureTriangle because the native
applications do not. However do honour wxBORDER_XXX style if specified in case
this becomes useful in the future (this required no effort as the code was
already there for bitmap buttons and just had to be extracted into a reusable
function).

Don't expand the disclosure triangle in wxCollapsiblePane sizer, as this
resulted in the text being centered instead of remaining left-aligned.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-16 16:25:43 +00:00
Vadim Zeitlin
3d35ec88d9 Don't use sunken border for the list control in log dialog.
There doesn't seem to be any reason to use a heavy border here as there is
nothing much to separate the list control from. In particular this looks
rather horrible under OS X.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-16 16:25:37 +00:00
Vadim Zeitlin
7bade612f0 Correct cell alignment computation for too small column sizes.
Actually the column size might not even be too small but the size returned by
renderers GetSize() could be too large -- as is the case for spin renderer
currently. And trusting it results in drawing outside of the cell boundary
even when there is enough space inside it, so don't do this and fall back to
left alignment if there is not enough space.

This fixes display of the year column in the dataview sample broken by the
recent changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62418 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-15 16:53:52 +00:00
Vadim Zeitlin
84fc95da58 Use correct colour for selected items in generic wxDVC.
wxDataViewCustomRenderer::RenderText() taking attributes must use correct
colour for the selected items if no attribute is specified as it can be (and
is) called directly and not only via the compatibility overload.

This fixes the display of the selected items in the dataview sample broken by
recent changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-15 16:53:45 +00:00
Vadim Zeitlin
38c349189a Implement attributes support in generic wxDataViewIconTextRenderer.
Simply override RenderWithAttr() instead of Render().

Update the sample to show that this works now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:15 +00:00
Vadim Zeitlin
3e60a3c147 Make generic wxDataViewProgressRenderer fill the entire cell.
After the fixes in the previous commit it is finally possibly to make the
progress renderer expand to the entire cell area instead of taking a
fixed width, it is enough to simply override RenderWithAttr() instead of
Render() and ignore the alignment as this avoids the use of (arbitrary and
hardcoded) wxDataViewProgressRenderer::GetSize().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:09 +00:00
Vadim Zeitlin
a6f1201f97 Handle cell alignment in the renderer itself in generic wxDVC.
Instead of using wxDataViewRenderer::GetSize() and rendering the cell into the
appropriate part of the rectangle, pass the full rectangle and the alignment
of the cell contents in it to the renderer itself.

This fixes the bug with bold text being truncated in the "attributes" column
of the dataview sample and is also generally more flexible as the renderer may
decide itself what to do with the extra space.

It also somewhat reduces the code duplication between CreateItemBitmap() and
OnPaint().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 22:44:03 +00:00
Vadim Zeitlin
2d0d781336 Remove wxDataViewTextRendererAttr by merging it with wxDataViewTextRenderer.
There is no reason to have a separate class for rendering the text honouring
the attributes defined for it, wxDataViewTextRenderer itself already does this
perfectly well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 13:59:25 +00:00
Jouk Jansen
30fbed20ac add more samples to the compile cascade for OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-12 06:50:59 +00:00
Vadim Zeitlin
869b1b26ff Fix mismatched new/free in generic Region code.
Closes #11287.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-08 22:38:18 +00:00
Jouk Jansen
c11b48536b OpenVMS : add compile support for debugrpt sample
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62330 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-08 10:59:33 +00:00
Vadim Zeitlin
a8e87569b7 Compilation fix for PCH-less in wxInfoBar.
wx/dcmemory.h include is needed at least for OS X build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62325 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-07 15:12:57 +00:00
Jouk Jansen
6470a6a950 adding dataview sample to OpenVMS make cascade
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-06 22:03:21 +00:00
Jouk Jansen
4bd57bb6da OpenVMS compile support : adding more samples for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-06 14:47:53 +00:00
Vadim Zeitlin
21d5ec7d65 Compilation fix for VC6 in wxInfoBarGeneric code.
VC6 apparently can't compare const pointer to derived class with a non-const
pointer to the base class.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-06 14:18:48 +00:00
Vadim Zeitlin
3996b21a7f Determine the appropriate show effect automatically in wxInfoBar.
Slide the info bar from top or bottom of the parent window depending on its
location.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62302 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:57:45 +00:00
Vadim Zeitlin
15ea6e205b Remove the hack with changing the parent background colour in wxInfoBar.
Finding the closest info bar to copy the background colour from only worked
for very simple layouts and failed for more complicated ones with nested
sizers so don't try to change the colour automatically, it's easy enough to do
it manually as shown in the updated dialogs sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62301 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:57:39 +00:00
Vadim Zeitlin
5c67a53d87 Use wxART_BUTTON instead of wxART_MENU for info bar icons.
wxART_BUTTON seems to be more appropriate, although in practice this doesn't
make any difference.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62298 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:57:20 +00:00
Vadim Zeitlin
bccb042c2a Make info bar buttons smaller.
This looks better under Mac OS X (and currently has no effect under the other
platforms).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:57:15 +00:00