Commit Graph

318 Commits

Author SHA1 Message Date
Vadim Zeitlin
4fcad4fb6d Do not unref GtkWidget of unattached wxMenuBar.
This results in the destruction of the widgets of all of its menu and when
wxMenu objects are themselves destroyed in the base class dtor, we try to
destroy their already destroyed widgets, resulting in critical GTK warnings.

Simply don't do anything in wxMenuBar dtor itself if the menu bar is not
attached to a frame as the workaround was only needed in case of destroying
attached menu bars.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72560 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-26 22:30:00 +00:00
Vadim Zeitlin
e2f268db5c Fix GTK warnings when destroying unattached wxMenuBar.
Reset m_focusWidget to NULL when destroying m_widget in wxMenuBar dtor,
otherwise we try to use this already destroyed (because it's the same as
m_widget) widget in wxWindow dtor later resulting in critical GTK warnings.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-26 22:29:37 +00:00
Vadim Zeitlin
64b788642d Don't crash in wxMenuBar::Remove() if unattached in wxGTK.
It should be possible to remove a menu from a menu bar even before it is
attached to a frame without crashing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-26 22:29:14 +00:00
Vadim Zeitlin
45f0926d41 Avoid crashes when creating initially hidden MDI child under Unity.
Ignore "hide" signals for the menus without associated shown window. Ubuntu
Unity sends them and we crashed because of a recursive assert in the
corresponding signal handler before.

Now the code doesn't crash any more but the menus still don't behave correctly
when the last MDI child is destroyed.

Closes #13593.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72379 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-26 16:35:02 +00:00
Paul Cornett
7dae41b9f7 remove STOCKITEM_26 macro, unneeded after r72001
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 17:26:40 +00:00
Paul Cornett
4e621d2471 update minimum GTK2 version requirement to 2.6
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 16:39:44 +00:00
Paul Cornett
9dc44eff02 support for GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-30 20:39:06 +00:00
Paul Cornett
d5027818a4 fix warnings about conversion to bool, closes #14381
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-07 05:18:30 +00:00
Paul Cornett
12a5cf1324 Workaround for Ubuntu 12.04 run time warning
"LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent."
Avoid calling gtk_widget_destroy() on a wxMenuBar attached to a frame
Fixes #14292


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71648 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-05 16:49:28 +00:00
Vadim Zeitlin
e4a23857ec Implement wxMenuBar::EnableTop() for wxMSW and wxGTK.
This method was only available in wxUniv before and just always returned true
in the other ports. Implement it for wxMSW and wxGTK too now and document it.
Also add a unit test.

Closes #795.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-15 13:41:17 +00:00
Vadim Zeitlin
f089d73634 Don't use gtk_menu_item_set_submenu() with NULL menu with GTK+ < 2.12.
In GTK+ 2.10 and earlier gtk_menu_item_remove_submenu() had to be used to
remove the items submenu as gtk_menu_item_set_submenu() gave errors when
passed NULL submenu, so call the old function when using old GTK+ version.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-07 23:21:06 +00:00
Paul Cornett
0f29501b66 Fix crash when appending menuitem after removing it from another menu.
Also remove unused return value from GtkAppend

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-01 06:57:44 +00:00
Vadim Zeitlin
a082862987 Fix inserting radio menu items in wxGTK too.
After fixing the insertion of radio menu items in wxMSW, also do it for wxGTK
to make the newly added unit test pass there as well.

Remove the unneeded wxMenu::m_prevRadio which doesn't make any sense neither
(just as the "current radio group" pointer removed from wxMSW code before) and
simply use the radio group of the existing item this radio item is being
inserted before or after instead.

See #13200.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-10 08:50:47 +00:00
Paul Cornett
4c2ea5999b avoid GCC warning "suggest braces around empty body in an ‘else’ statement"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-06 17:03:31 +00:00
Paul Cornett
385e8575dd avoid deprecated functions and direct struct access
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-28 06:27:49 +00:00
Stefan Csomor
d27d59fb91 having menu classinfo at one place
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-07 21:36:17 +00:00
Paul Cornett
96a3acb72c remove const from by-value return type, it's useless
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-17 05:57:21 +00:00
Vadim Zeitlin
7bc0ff8672 Correct form of mnemonics returned by wxGTK wxMenu::GetTitle().
wxMenu::GetTitle() returned a string in GTK+ format (i.e. using underscores
instead of ampersands) instead of the expected wx one.

This is, of course, the right thing to do and it also fixes
wxMenuBar::FindMenuItem() as a side effect.

Closes #12672.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-16 22:38:53 +00:00
Vadim Zeitlin
82302ad45a Disconnect "hide" menu signal to fix menu destruction in wxGTK.
The "hide" signal handler was triggered when destroying a sub-menu (even if it
was not shown at this time). Disconnect it to avoid asserts due to attempts to
generate an event for an already detached menu and to avoid the (bogus)
wxEVT_MENU_CLOSE event as well.

Closes #12668.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66082 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 00:36:55 +00:00
Vadim Zeitlin
6abf7b639c Don't use invoking window in wxGTK wxMenuBar implementation.
wxGTK wxMenuBar used its own SetInvokingWindow/UnsetInvokingWindow() and
related functions instead of reusing the base class Attach/Detach() which
exist for exactly the same purpose. This resulted in unnecessary code
duplication and confusion and, since the changes of r64104, resulted in
asserts due to use of SetInvokingWindow() for non-popup menus.

Fix this by removing the wxGTK-specific functions and doing the work they used
to do in (now overridden) Attach() and Detach(). Also call Attach/Detach()
instead of these functions from wxGTK wxFrame and wxMDIParentFrame code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64127 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-24 15:08:00 +00:00
Vadim Zeitlin
341d8cb2cf Avoid code duplication in wxGTK menu events generation code.
Reuse the existing DoCommonMenuCallbackCode() function instead of duplicating
its code in menuitem_select() and menuitem_deselect() GTK callbacks.

No changes in behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-24 15:07:51 +00:00
Vadim Zeitlin
6ea0139862 No real changes, just remove empty wxMenuBar dtor in wxGTK.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-24 15:07:47 +00:00
Julian Smart
426d19f139 Applied patch #9058 (add Hildon 2.0 support)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62071 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-24 12:36:34 +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
Robert Roebling
496e7ec647 More GTK prefixing for internal methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-13 10:25:38 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Paul Cornett
9065953545 make sure update UI handlers are called for accelerators, #10130
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-31 05:25:59 +00:00
Václav Slavík
352cd79f63 reverted broken changes from r56345 and r56349
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-16 08:15:56 +00:00
Václav Slavík
01603d4396 don't use deprecated gtk_object_sink(), replace it with g_object_ref_sink()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-15 19:14:46 +00:00
Paul Cornett
9ff9d30c0a Hold a reference on m_widget for the life of the associated wxWindow object.
This allows removing some ugly hacks, and leaking of GtkWidgets by wxNotebook.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-26 16:19:23 +00:00
Vadim Zeitlin
6b1eedc1bb add more stock items (#9799)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54903 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-01 14:38:02 +00:00
Paul Cornett
4a4a02acd1 fix masking of disabled bitmaps with some themes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-18 02:45:48 +00:00
Robert Roebling
e98c065545 Use wxMenuBase:SendEvent() to emit event, shoudl also fix #801: Menu cmd events: Inconsistent GetEventObject()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-21 15:03:44 +00:00
Paul Cornett
e2147e6d3c simplify menu item callbacks by passing in wxMenuItem instead of wxMenu
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-11 17:07:07 +00:00
Paul Cornett
cabb286d30 move 8 copies of the same function to common code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54092 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-11 05:23:53 +00:00
Paul Cornett
1deef99727 wxMenuItem code cleanup, removing duplicate and unneccessary code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-10 03:54:43 +00:00
Robert Roebling
92159e3d76 Separate label with wx mnemonics (&) and with gtk mnemonics (_) into m_text and m_gtkText, fixes #4409
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53958 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-02 21:46:29 +00:00
Paul Cornett
aac7dbf3aa remove unused/unneeded menuitem cruft
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53811 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-29 04:41:37 +00:00
Paul Cornett
efebabb7ff mark long-deprecated ctor as such
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53809 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-29 04:26:29 +00:00
Paul Cornett
e828d3fc80 fix leak introduced by r53753
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53799 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-28 06:15:35 +00:00
Paul Cornett
afd83fb797 fix removing menu item, ticket 3387
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-26 17:28:41 +00:00
Paul Cornett
bcf7614cf3 move wxWindowGTK::DoPopupMenu back to window.cpp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-18 03:32:27 +00:00
Paul Cornett
3ed946f283 simplify wxEVT_MENU_OPEN/CLOSE generation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-18 03:01:30 +00:00
Paul Cornett
8ef9a526ce minimize searching for tlw parent, remove useless code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-14 16:51:14 +00:00
Paul Cornett
f03789294f fix for glib critical errors when closing an mdi child
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-11 17:39:06 +00:00
Paul Cornett
e3041f4af0 add missing ! accidentally dropped in last commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-03 19:04:57 +00:00
Paul Cornett
6f536f31df Remove remnants of GTK1 accelerator code.
Change deprecated gtk_menu_item_remove_submenu() to gtk_menu_item_set_submenu().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-03 04:12:14 +00:00
Paul Cornett
16487a6fde remove unused wxMenuBar::m_style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51511 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-03 02:43:48 +00:00
Paul Cornett
3fd7b18a61 remove redundant WX_CLEAR_LIST, it's done by base dtor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51362 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-24 18:13:12 +00:00
Paul Cornett
0f35e441b0 fix memory leak when wxMenu is used as a popup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-01-24 17:59:11 +00:00