Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).
The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.
Closes#10661.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Mouse events (LeftDown in particular) will only occur if the mouse is over the
sash, so it does not make sense to have a fudge factor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73111 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This made it possible to have the resize cursor, but not be able to drag the
sash, and happened because wxGTK sends a leave event when mouse leaves client
area instead of outer border of window. Setting the useless SashHitTest()
"tolerance" parameter to zero avoids the problem.
Fixes#1397
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73110 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
We could call SetSashPositionAndNotify() twice in a row which was probably
unexpected and possibly wasteful, if the user code did anything non trivial in
response to this event.
Just call it once after we're certain which sash position do we want to set.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69601 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
There was a strange check for the second pane size in OnSize() which hardcoded
5 pixels as minimal pane size in the check and 40 pixels as the minimal size
to set. This resulted in strange behaviour when the second pane size would
decrease to 6 pixels smoothly and then jump back to 40 pixels when the
splitter window was resized and also was ugly at the code level.
Get rid of this code and simply call AdjustSashPosition() to ensure that the
sash position remains valid as the splitter is resized.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The initial splitter size must be set correctly when using gravity with
wxSplitterWindow as otherwise the sash would jump on first resize -- which was
exactly what happened in the splitter sample.
Add a SetSize() call to the sample with the comment explaining why is it
needed and also actually make it stick as the cached last size was not updated
before the splitter was split before.
Closes#9821.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Gravity should take effect only after the originally requested sash position
is set as otherwise it's not really taken into account.
Closes#13508.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This variable seemed to be redundant with m_requestedSashPosition being set to
INT_MAX so harmonise the code to always check for the latter and get rid of
the former.
There should be no observable changes in behaviour.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
GetNeedUpdating() was never used at all while SetNeedUpdating() was used only
once while m_needUpdating variable was being changed directly in other places
making the code difficult to follow.
Just use the member variable directly and remove the accessors.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69596 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Since the changes if r68876, the splitter windows were not resized correctly
if the splitter size in the direction orthogonal to its own didn't change.
This was an unintended side effect of the changes in that commit as it only
wanted to avoid calling SetSashPositionAndNotify() in this case, but
SizeWindows() should still be called.
Ensure that we do call it always from wxSplitterWindow::OnSize() to fix this.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
The code in wxSplitterWindow tried to remember the requested position and set
the real sash position to it later, even if the initial window size was too
small to allow for it, but it didn't work because the requested position was
forgotten after the first size event, even though it was quite possible that
this event didn't really change the window size from the initial, small, one.
Try to make this more robust by ignoring the size events which don't really
change the window size. Also set m_lastSize correctly initially.
Now setting the sash position does work even if the splitter itself is inside
nested sizers (which results in many size events).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Simply inherit classes which need to provide TAB navigation among their
children from wxNavigationEnabled<> and remove the now unnecessary
WX_DECLARE_CONTROL_CONTAINER() macros.
Also remove WX_INIT_CONTROL_CONTAINER(), WX_DELEGATE_TO_CONTROL_CONTAINER()
and WX_EVENT_TABLE_CONTROL_CONTAINER() which are not needed neither any more.
And remove the event tables which became empty after removing the last macro.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68366 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Applied patch by snowleopard2 fixing a bunch of typos such as misspellings and double words in the documentation. Combined the patch with some local queued typos waiting to be committed as well as adding new typo fixes inspired by the patch.
Function names with American spelling were not changed nor was third-party code touched. The only code changes involve some changes in strings that are translated ("Can not" -> "Cannot").
Closes#13063 (again).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Setting sash size to non default value didn't work correctly and didn't make
much sense anyhow as the sash appearance is platform-dependent and current
code for drawing it doesn't work for arbitrary sizes.
Simply remove the possibility to set the sash size.
Closes#12412.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Any border specified for wxSplitterWindow was explicitly discarded when
creating it but there doesn't seem to be any reason to forbid it, the original
code probably predated the addition of wxWindow::GetDefaultBorder() which
allowed to have different borders by default for different classes.
In any case, simply remove this code now to allow creating splitters with
borders if so desired.
Closes#12413.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66230 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
There are no real changes in this commit but it removes all trailing white
space from our source files. This avoids problems when applying patches and
making diffs and it would be nice to prevent it from reappearing.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
- Handle mouse-capture-lost event to abort dragging mode.
- Remember mouse and sash position on buttondown event and use them as
absolute reference during dragging. Avoid delta values from one mousemove to
the next as this may introduce a skew during dragging and especially when
coordinate clipping occurs.
- Clear the requested sash position when dragging in live mode.
- Draw the tracker at correct coordinates - taking into account the width of
the pen used to draw the tracker.
- The old code did not clearly distinguish between live vs. tracking mode in
some places.
Closes#11076.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61615 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
generic and GTK+ wxScrolledWindow.
wxWindowBase::DoGetBestSize was returning a virtual size if there were child
controls, which was then used to set the scrolled window actual size.
Similarly, wxWindowBase::GetBestVirtualSize was returning
the actual window size; now we return the virtual size
for dimensions that have scrolling (e.g. vertical scrolling
direction), or the minimum/actual size for those that don't
(e.g. the maximum control width if there is no horizontal
scrolling).
This allows the scrolled window to be properly sized, whereas
before it would start off at the virtual size (giving
enormous layouts).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32866 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
DoGetBestSize returns standard control size e.g. 100x100 on Windows,
and not an explicit size passed to it. This may be because the splitter
window isn't a true sizer and m_bestSizeCache isn't updated properly
(see window.h, GetBestSize: IsFullySpecified fails.)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775