Commit Graph

450 Commits

Author SHA1 Message Date
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
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Vadim Zeitlin
6d07584544 Do send wxEVT_UPDATE_UI events to hidden windows.
Failing to send wxEVT_UPDATE_UI to hidden windows made it impossible to show
them from their update UI handler which was totally unexpected as the
documented wxUpdateUIEvent::Show() method could never be used.

Do send these events to the hidden windows themselves but avoid sending the
update UI events to the children of hidden windows as this is really useless
because any change of their state wouldn't be seen by the user anyhow (even if
the child is shown, it would still remain hidden until its parent is) and
would just waste time processing a lot of needless events.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 23:50:14 +00:00
Vadim Zeitlin
935594c16e Don't send wxWindowDestroyEvent if we hadn't sent wxWindowCreateEvent.
Don't generate wxWindowDestroyEvent when destroying the windows that had been
never created for symmetry with wxWindowCreateEvent which wasn't sent for this
window neither.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67540 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-18 23:36:46 +00:00
Vadim Zeitlin
01871bf642 Add wxUSE_STD_CONTAINERS and turn it on by default.
Previously, wxUSE_STL enabled both implicit conversion of wxString to
std::[w]string and use of standard containers for the implementation of their
wx equivalents. Split up the two roles now by allowing to enable the use of
the standard containers independently of (backwards incompatible) implicit
conversion in wxString and actually enable wxUSE_STD_CONTAINERS by default.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-30 14:16:04 +00:00
Vadim Zeitlin
b83144c46f Post size events to the event handler and not window itself.
Post the artificial wxSizeEvent to the window event handler and not window
itself in SendSizeEvent() as otherwise any event handlers wouldn't see this
event at all.

Closes #13066.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-22 17:15:38 +00:00
Dimitri Schoolwerth
80fdcdb90e No changes, synchronised source names that appear commented at the top of files with the actual path to the files.
Fixed commented names (path, filename, and extension) of files in include/ and src/. Prepended the names in src/ with "src/" everywhere, while starting those in include/wx/ with "wx/".

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-20 00:14:35 +00:00
Vadim Zeitlin
e4c903b2ea Fix wxWrapSizer minimal size calculation.
Add a unit test checking that wxWrapSizer::CalcMin() returns the expected
results.

Closes #12464.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66862 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-08 13:36:13 +00:00
Paul Cornett
0c3e2a5baa Move SendIdleEvents() from wxApp to wxWindow.
Use it to properly implement idle events for
wxGTK menubar, toolbar and statusbar.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-08 06:42:41 +00:00
Paul Cornett
6a50a2c4d3 move default OnInternalIdle processing to wxWindowBase
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66633 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 18:15:21 +00:00
Stefan Csomor
e765d7ee73 xti changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66630 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 17:49:18 +00:00
Paul Cornett
f313deaa38 move variable definitions to more appropriate places, remove now-empty src/common/datacmn.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-05 18:27:58 +00:00
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
7822ffb1de Add #if checks fixing minimal wxGTK build.
Check for functions availability before using them. This fixes compilation of
wxGTK with all features disabled.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:22 +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
a0fe77034b Fixes for calling Enable() on children of a disabled TLW in wxMSW.
The change of the child window state wasn't reflected immediately if it was
done while the TLW itself was disabled but only happened when it was
reenabled and in some cases the child could not be enabled even then.

Fix this by updating the child state immediately, even when its TLW parent is
disabled and only skip the update of the children state when TLW is being
disabled, not when it's enabled back.

Closes #11622.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65864 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-22 14:17:48 +00:00
Václav Slavík
c063e45035 Scale sizes more accurately in generic SetWindowVariant().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-28 17:05:02 +00:00
Vadim Zeitlin
7e843c0e2b Don't set negative size when using constraints for layout.
Passing negative size to GTK+ results in error messages and in the future
wxWindow::SetSize() itself might assert if passed negative size so just avoid
setting it in the first place even if there is not enough space for
everything.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:53 +00:00
Vadim Zeitlin
b35549525f Implement wxWindow::DoGetBorderSize() for all ports.
Implement DoGetBorderSize() properly for wxGTK and use the difference between
the full window size and the client size for all the ports not implementing
this method. The latter is incorrect in the presence of the scrollbars but is
the best we can do in general.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:49 +00:00
Vadim Zeitlin
5276b0a53c Use wxDELETE() and wxDELETEA() when possible.
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.

Closes #9685.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Vadim Zeitlin
512220b67b Replace public wxEvtHandler::ProcessEventHere() with private TryHere().
ProcessEventHere() doesn't have to be public any more now that we have
ProcessEventLocally() which is safe to call from the outside (i.e. doesn't
forget about the chained event handlers and validators).

Still keep this function because it makes the code more modular and also
because we might want to make it virtual for consistency with TryBefore() and
TryAfter() later. Also rename it to TryHere() to make the symmetry with these
functions more manifest.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-09 14:55:46 +00:00
Vadim Zeitlin
c59aa14a6c Set popup menu invoking window in wxWindowBase and not in all ports.
Don't duplicate the code for setting (and unsetting, which was forgotten by at
least wxGTK) the popup menu invoking window in all ports but do it in the base
class PopupMenu() itself.

Also add a helper wxMenuInvokingWindowSetter class which ensures that the
invoking window will be unset in any case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-26 14:19:17 +00:00
Robin Dunn
9e96e16fe0 Apply patch (plus some additional changes) upgrading Scintilla to version 2.03. Closes #11765, #11748, #11346
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-30 03:50:06 +00:00
Václav Slavík
5c3c137277 Fixed dialog units <-> pixels conversion.
The computation is now identical to Windows native one. To achieve this,
MSDN-recommended GetTextExtent() call is used instead of GetCharWidth().
wxMulDivInt32() is used instead of integer arithmetics to achieve
correct rounding.

Use toplevel parent's font instead of window's own. This makes more
sense, as dialog units are defined for TLWs, not individual subcontrols.

Also fixed wxMSW's wxButton::GetDefaultSize() to compute dialog units
correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 11:51:09 +00:00
Václav Slavík
0e7f59ab29 Make ConvertPixelsToDialog() and ConvertDialogToPixels() const.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-19 17:53:29 +00:00
Václav Slavík
e27619029d Don't query metrics that won't be used.
If ConvertPixelsToDialog() or ConvertDialogToPixels() was called with
one of the two input values set to -1, the respective font metric was
queried needlessly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-19 16:32:31 +00:00
Vadim Zeitlin
cbab155657 No real changes, just fix a typo in comments and documentation.
Use "surprising" instead of (common) "surprizing" misspelling.

Closes #11627.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-14 18:02:26 +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
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
54a3120e95 STL build compilation fix.
Explicitly cast wxWindowBase pointer to wxWindow before passing it to
wxWindowList::Find().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-09 13:27:53 +00:00
Vadim Zeitlin
d7d943a71c Implement wxWindow::DoGetBorderSize() in the trivial case of wxBORDER_NONE.
This fixes an assert in wxGenericStaticText which overrode
DoGetBestClientSize() but not DoGetBorderSize().

It would still be useful to implement DoGetBorderSize() in wxGTK (and other
ports) in general too as using wxGenericStaticText with non-default border
still doesn't work.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62820 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 15:56:14 +00:00
Vadim Zeitlin
efc8837250 Fix unused parameter warning after last commit (r62818).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62819 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 15:56:08 +00:00
Vadim Zeitlin
6f34fcb34e Fix event object in wxSysColourChangedEvent.
The handler for this event in the base class incorrectly changed the event
object of the original event instead of setting it for the event being sent to
the window children as it was supposed to.

Closes #11458.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62818 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 15:36:51 +00:00
Vadim Zeitlin
62354609e6 Don't set the initial size as minimal size for top level windows.
Correct the change of r62814: only call SetMinSize() for non-top-level windows
as the user should be able to resize the top-level ones to be smaller than
their initial size.

This also fixes the GTK+ warning resulting from calling wxTLW::SetMinSize()
from the ctor, before the window is realized.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-08 15:24:59 +00:00
Vadim Zeitlin
032e024c1c Set initial window size as its minimal size.
The change of r62306 broke the code which relied on the window created with a
given initial size to never become smaller than this size. This was to be
expected because the best size of such window is now (1, 1) and not its
initial size but we still need to preserve the old behaviour for compatibility
and also because it usually does make sense to avoid shrinking the window with
an explicitly specified initial size beneath this value.

So call SetMinSize() with the initial size explicitly now in wxWindowBase
ctor.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62814 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 23:37:36 +00:00
Vadim Zeitlin
2973301f6f Refactor initialization code in wxTopLevelWindowMSW::Create().
No real changes as the old code was, in fact, correct (although Create()
didn't initialize m_parent explicitly, it was still done in AddChild() if the
parent was not NUL) but just make it more explicit and clear.

Add a new helper wxWindowBase::CreateBase() overload for top level windows,
not taking the validator parameter which doesn't apply to them.

Also make CreateBase() protected as it is only meant to be called from derived
classes Create().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:58:15 +00:00
Vadim Zeitlin
7ccc497b9c Don't use the current size in DoGetBestSize() by default.
Doing this means that a window which was made initially large because no other
windows were present or shown will refuse to shrink to make space for them
later even if it doesn't need to be that large. The issue was masked under MSW
and GTK because the first size event under these ports is sent so early that
the top level parent window is not realized yet and has default size of 20*20
pixels meaning that its children will cache their initial (very small) size as
their best size, but it was very visible under OS X where the initial layout
is done using the real top level window size and broke wxInfoBar showing in
the dialogs sample, for example.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:58:10 +00:00
Vadim Zeitlin
32be10a45d Use wxDEBUG_LEVEL instead of __WXDEBUG__ in wxInfoMessageBox().
Also disable sizer-drawing code unless wxDEBUG_LEVEL>=2 as we don't want it to
be available in production versions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61888 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-12 11:29:23 +00:00
Vadim Zeitlin
c5cc7fbd27 Made wxWindow::HasScrollbar() do what it says.
Added wxWindow::CanScroll() with the old HasScrollbar() meaning but changed
HasScrollbar() to check for the scrollbar existence instead of just checking
if it might exist.

Closes #10897.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-10 11:18:09 +00:00
Vadim Zeitlin
a16a233822 Implement wxWindow::GetToolTipText().
This was declared in wx/window.h but somehow never implemented.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61535 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-25 23:13:58 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Stefan Csomor
9504069ea6 guarding for scrollbar use
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-10 17:38:36 +00:00
Vadim Zeitlin
743b426605 Added DoGetClientBestSize() and use it for a couple of controls in wxMSW.
DoGetClientBestSize() returns the best size of the client area, without
accounting for the border which is done by GetBestSize() itself and
DoGetBorderSize() called from it.

Use DoGetClientBestSize() in wxStaticText (where it was done
insideDoGetBestSize() before) and in wxListBox, to fix its height calculation.

Also use correct height of listbox items as returned by the control itself
instead of trying to guess it.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-22 20:36:13 +00:00
Vadim Zeitlin
9c61c5b04b introduce wxBG_STYLE_{ERASE,PAINT} and implement their documented semantics in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 23:04:42 +00:00
Vadim Zeitlin
6528a7f145 make wxWindow::SetAutoLayout() now works for all windows, not just panels
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-23 11:26:58 +00:00
Francesco Montorsi
39cdc95fb3 allow windows which are placed inside wxStaticBoxes to be built as children of the wxStaticBox itself rather than forcing users to build them as siblings of the static box (closes #9859)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-25 10:49:36 +00:00
Stefan Csomor
d792823395 special casing mac code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-29 20:51:40 +00:00
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Vadim Zeitlin
8cc208e39f deprecate the old TryValidator/Parent() and replace them with the new and documented TryBefore/After()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-26 16:16:31 +00:00
Paul Cornett
817d2e9b9b remove unused gtk includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59020 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-19 07:37:12 +00:00