Commit Graph

141 Commits

Author SHA1 Message Date
Paul Cornett
b5a554b9a6 Avoid -Wdouble-promotion warnings 2020-10-14 11:07:55 -07:00
Paul Cornett
85d63c3150 Add a class derived from GtkImage to support HiDPI bitmaps
And use it to get HiDPI support wherever we use GtkImage. This extends and
consolidates support for custom drawing of images which has already been added
somewhat redundantly in several places.
2020-09-15 11:52:03 -07:00
Artur Wieczorek
c1bb80987f Improve implementation of wxBU_EXACTFIT style for wxButton under wxGTK2
We can reduce padding to make the button smaller and more adjusted
to the contents size.
2020-04-13 19:23:27 +02:00
Artur Wieczorek
215a6ee238 Implement wxBU_EXACTFIT style for wxButton under wxGTK3
GtkButton without inner border is just as big as its contents.
2020-04-09 22:50:19 +02:00
Paul Cornett
948ddc6e0f Eliminate -Wcast-qual warnings with GCC and Clang
Use const_cast, mutable, and various other changes to avoid -Wcast-qual
2020-02-02 22:50:32 -08:00
Maarten Bent
462f2a4686 Add optional wxWindow parameter to wxButtonBase::GetDefaultSize()
When per-monitor DPI is used, the default button size depends on the DPI of the
display. Use the window to determine this DPI.
2019-09-06 20:59:59 +02:00
Paul Cornett
0aa8b5874f Fix setting markup on a wxButton that was initially created with an empty label
See #18378
2019-04-07 15:01:04 -07:00
Paul Cornett
29bd2c9274 Don't avoid stock items with GTK+3
They still work fine with GTK+3, we just have to avoid them with GTK+4
2018-11-16 23:31:30 -08:00
Vadim Zeitlin
c0b0562533 Avoid many -Wparentheses warnings from gtk/gtk.h with gcc8
Add wx/gtk/private/wrapgtk.h wrapping gtk/gtk.h in pragmas disabling
these warnings and include it everywhere instead of directly including
gtk/gtk.h.

Also include wx/gtk/private/gtk2-compat.h from this wrapper header as it
was included by 90% of the files including gtk/gtk.h itself and it seems
to be better and simpler to just always include it.
2018-05-21 12:34:04 +02:00
Paul Cornett
32fe8b4b43 build fixes for wxUSE_UNICODE==0 2018-02-10 08:49:25 -08:00
Paul Cornett
ecda9c2016 Avoid GtkAlignment with GTK+4 2017-12-19 10:12:04 -08:00
Artur Wieczorek
38c192acc5 Don't use stock items in wxButton
Stock items are deprecated since GTK+ 3.10 so corresponding labels
should be used instead of them.
2017-12-16 23:49:42 +01:00
Vadim Zeitlin
25c9b032a8 Don't call CacheBestSize() from DoGetBestSize() implementations
This is unnecessary, wxWindow::GetBestSize() already does this, so calling it
from DoGetBestSize() called by it too is just useless.
2016-04-03 18:04:26 +02: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
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
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
2013-04-25 10:11:03 +00:00
Paul Cornett
1897abe1d8 avoid functions deprecated in GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-25 03:41:42 +00:00
Paul Cornett
7fff16b863 Simplify GetDefaultAttributesFromGTKWidget() by passing the widget to use,
rather than a pointer to a function to create the widget


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73010 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-25 02:23:34 +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
Vadim Zeitlin
0eec47e4a2 No changes, just add wxGtkList to ensure g_list_free() is always called.
Add an extremely simple RAII wrapper around GList and use it.

Also add wxGtkTreePathList which also automatically frees its contents to
simplify working with the lists of GtkTreePaths.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-22 12:41:00 +00:00
Paul Cornett
af806b13aa fix GTKGetLabel() and DoApplyWidgetStyle(): children are GtkWidget, not GtkBoxChild
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-19 20:52:26 +00:00
Vadim Zeitlin
b4354db179 Refactor wxButton and wxToggleButton to derive from wxAnyButton.
Introduce wxAnyButton class, a common base class for wxButton and
wxToggleButton, allowing to reuse the same implementation for them.

This also allows to implement support for bitmaps in wxToggleButton for all
platforms and make wxBitmapToggleButton a trivial subclass of it everywhere,
similarly to wxBitmapButton and wxButton.

Closes #13198.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-14 13:00:42 +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
Václav Slavík
fc9ab22a76 Use accessor functions instead of deprecated GTK+ macros.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-26 15:49:57 +00:00
Vadim Zeitlin
f382836f40 Add another missing #if wxUSE_MARKUP check.
The definition of DoSetLabelMarkup() should only be compiled when
wxUSE_MARKUP==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-08 17:22:15 +00:00
Vadim Zeitlin
de1cc37868 Implement support for markup labels for wxGTK wxButton.
Simply directly set the markup for the GtkLabel used by GtkButton internally.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-02-27 12:48:30 +00:00
Stefan Csomor
5c06430713 fixing duplicate rti info for gtk
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 09:20:10 +00:00
Robin Dunn
06bb8d923d Invalidate best size when the bitmap or bitmap position changes. Add GetBitmapMargins
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63595 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-01 23:20:35 +00:00
Paul Cornett
b545684e13 simplify Enable()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62785 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-05 19:25:04 +00:00
Vadim Zeitlin
e71aec80fd check whether we show bitmaps at all in GTKUpdateBitmap() (closes #10933)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-27 22:11:41 +00:00
Vadim Zeitlin
5366ff46b8 set use-underline button property when setting its label
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61119 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-18 18:10:05 +00:00
Vadim Zeitlin
a21175918e added wxBU_NOTEXT style to allow creating bitmap buttons with stock id not showing the label, as it was possible before
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61104 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-17 22:13:46 +00:00
Vadim Zeitlin
c37dd6dad7 implement wxGTK wxBitmapButton in terms of wxButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61081 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 19:31:50 +00:00
Vadim Zeitlin
b4a4eafbcc implement support for bitmaps for all states in wxGTK wxButton
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61080 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 19:08:59 +00:00
Vadim Zeitlin
7be740a3fd implement support for button bitmaps (normal state only for now) for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 05:16:31 +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
Julian Smart
ad60f9e7b6 Workaround for GTK+ sensitivity bug
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58194 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-18 12:34:23 +00:00
Paul Cornett
f4b0832d72 fix memory leak
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-05 16:59:23 +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
Paul Cornett
4cdf71be82 don't modify position for default border if button is in a native widget
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55054 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-10 20:45:06 +00:00
Vadim Zeitlin
dfc220831a propagate style changes correctly to buttons with images (#3939)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54138 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-12 00:50:07 +00:00
Václav Slavík
937013e0fd 1. added wxEvtHandler::SafelyProcessEvent() and wxWindow::HandleWindowEvent() to correctly handle exceptions in even handlers in wxGTK
2. use HandleWindowEvent() everywhere as more obvious and convenient shortcut for GetEventHandler()->ProcessEvent(); also for consistency with wxGTK where it's required

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50329 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-29 17:00:58 +00:00
Robert Roebling
593ac8df8e Minimum is now GTK+ 2.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-05 18:51:23 +00:00
Paul Cornett
18ac7bef9e fix reversed left/top variables
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-21 03:43:01 +00:00
Mart Raudsepp
6cfdfed86b gtk_border_free is for freeing GtkBorder's, not g_free.
Using g_free instead used to have no ill effects as gtk_border_free called that anyway, but in gtk+-2.11 GtkBorder
uses GSlice and gtk_border_free therefore uses g_slice_free and using g_free makes things crash hard.
So fix it or wxGTK won't work with the upcoming gtk+-2.12 stable release planned for end of July.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-18 06:03:50 +00:00
Vadim Zeitlin
e8375af8ff remove wxWindow::m_needParent and use GTKNeedsParent() which can be overridden in just wxMenuBar (and not set in each and every wxGTK control)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-23 15:16:06 +00:00
Paul Cornett
a1abca322f Reorganize idle system code.
Installing idle handler from GTK callbacks is no longer necessary.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-19 16:58:07 +00:00
Vadim Zeitlin
94aff5ff86 Call wxTLW::SetDefaultItem() from wxButtonBase::SetDefault() instead of doing
it in wxButton implementations in (almost) all ports; changed its return type
to "wxWindow *" from "void" to accommodate the ports needing the old default
item (replaces part of patch 1696563)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-08 22:18:35 +00:00
Vadim Zeitlin
28e88942bc use native TAB traversal for GTK+ 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45073 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-26 19:30:20 +00:00
Vadim Zeitlin
ef5c70f96f Many changes:
- Introduced GTKGetWindow() which returns all GdkWindows associated with the
  given wxWindow
- Renamed IsOwnGtkWindow() to GTKIsOwnWindow() to avoid confusion with the old
  virtual function (the new one is non-virtual and is implemented in terms of
  GTKGetWindow())
- Refactored/simplified event handlers code in gtk/window.cpp
- Fixed some header guards names (__GTKFOO__ -> _WX_GTK_FOO_H_)
- Added GTKUpdateCursor() which sets the current cursor for all windows
  returned by GTKGetWindow()
- Factored out code from many different classes in wxControl::OnInternalIdle()
  which now updates the cursor, checks for internal focus and sends update UI
  events


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40815 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-08-25 12:59:28 +00:00