Commit Graph

19 Commits

Author SHA1 Message Date
Vadim Zeitlin
a67f4b8254 Don't pretend static box with enabled label is disabled
Trying to be smart by setting m_isEnabled to false in
wxStaticBox::Enable() without actually disabling the box itself (because
it can't be done if its label window is to remain enabled) didn't really
work. For example, it was impossible to TAB to a checkbox label of the
box when it was disabled, because keyboard navigation (correctly)
doesn't recurse into disabled windows and there could be similar
problems with any other code iterating over windows and skipping over
the disabled ones.

So, finally, simplify things and keep m_isEnabled in sync with the real
box state, even if this, counter-intuitively, means that IsEnabled() on
the box returns true after calling Enable(false) on it.

This also reverts 4ee35cf5ee569b6ee6c7d0d5702484d4d2a20f96 ("Don't
disable wxStaticBox children at wx level when disabling it") as we can't
avoid really disabling the children any more now that their parent is
not disabled: without this, their IsEnabled() would return true, i.e.
they wouldn't be disabled at all, from the program point of view. This
is unfortunate for the reasons that originally motivated that commit,
i.e. if some wxStaticBox child is disabled, disabling and re-enabling
the box will now re-enable this child, even if it shouldn't, but seems
impossible to avoid. The only possible alternative is to modify
IsEnabled() to add some wxStaticBox-specific hook to it, e.g. instead of
calling GetParent()->IsEnabled() there, we could call some now
AreChildrenEnable() method, which would delegate to IsEnabled() by
default but overridden in wxStaticBox. However this seems complicated,
and will add an extra virtual function call to all (frequently
happening) IsEnabled() calls.
2018-01-18 23:28:16 +01:00
Vadim Zeitlin
564df77283 Correct new wxStaticBox::Create() overload documentation
Fix the method name and update its description to mention that it's also
available in wxMSW.
2018-01-13 22:26:07 +01:00
Vadim Zeitlin
1d037dd4c9 Don't disable wxStaticBox window label when disabling the box
This behaviour might be not completely intuitive, but it makes it much
simpler to handle the box state using a checkbox as the label control
(which is by far the most common case of using box window labels).

Notice that while we could add a separate EnableWithoutLabel() method to
wxStaticBox to make it possible to set the state of the box directly
relatively easily, it wouldn't help with using wxEVT_UPDATE_UI for
managing the box state indirectly as it relies on calling Enable() only.
And this solution does allow wxEVT_UPDATE_UI handlers for the box itself
to work (provided the handler takes care to check for the event object
being the box itself, as otherwise it would still disable the child
checkbox when its wxEVT_UPDATE_UI bubbles up to the box).
2018-01-07 01:14:17 +01:00
Vadim Zeitlin
687192d86a Add support for arbitrary window labels in wxStaticBox to wxMSW
Just reparent the label window and position it accordingly and, also,
avoid painting over it in MSW-specific code.
2017-12-24 22:38:10 +01:00
Vadim Zeitlin
3ff9846a22 Document alignment styles in wxStaticBox
Mention that they work in wxGTK, even if it seems to be the only
platform supporting them currently.
2017-12-24 22:38:10 +01:00
Vadim Zeitlin
7c849276f8 Add support for using arbitrary windows as wxStaticBox labels
This commit implements the new feature in wxGTK and updates the sample
and the documentation.
2017-12-24 22:38:10 +01:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Bryan Petty
ce15461608 Fixed appearance images to use Doxygen @image command (Doxygen will now copy files automatically), and cleaned up some more overviews.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-03 18:32:50 +00:00
Vadim Zeitlin
526954c596 Globally use "wxWindows licence" consistently.
Use "wxWindows licence" and not "wxWidgets licence" (the latter doesn't
exist) and consistently spell "licence" using British spelling.

See #12165.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:13 +00:00
Vadim Zeitlin
338c3ec73a Correct examples in wxStaticBox(Sizer) documentation.
Added missing wxID_ANY in the control creation calls.

Also rephrase/extend the discussion about creating windows shown inside the
static box as its children or siblings.

Closes #11086.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61628 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-07 12:39:41 +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
Francesco Montorsi
f3289ffb1f name wxStaticBoxSizer; some other minor wording clarifications
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-19 19:46:36 +00:00
Francesco Montorsi
11e3af6e7e further ifacecheck fixes (now only 3.3% of documented methods have a wrong signature\!)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-13 21:32:53 +00:00
Francesco Montorsi
5267aefd85 automated ifacecheck fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-29 15:34:31 +00:00
Francesco Montorsi
7e59b88579 re-enabled all @appearance tags
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56260 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-13 08:05:18 +00:00
Francesco Montorsi
4701dc0983 revised st*.h headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-07 16:57:34 +00:00
Francesco Montorsi
adaaa68635 HUGE commit of ifacecheck-automated fixes to virtualness/constness/staticness of wxWidgets documented functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55912 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-27 11:21:10 +00:00
Bryan Petty
12f5e1e78f Commit 3 of 3 for Doxygen path fixes, this one finally removes all 600+ unnecessary uses of @wxheader and @headerfile.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54387 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-27 18:00:03 +00:00
Bryan Petty
ae3c17b401 Moved all interface headers into a 'wx' subdirectory for proper use of Doxygen path settings.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-27 16:22:58 +00:00