Commit Graph

127 Commits

Author SHA1 Message Date
Paul Cornett
e85f89e522 Implement wxDC mirroring for RTL layout with GTK3
Co-Authored-By: AliKet <aliket1435@gmail.com>
2021-01-31 20:59:29 -08:00
Vadim Zeitlin
3568a160a9 Use wxGtkValue RAII wrapper in wxGTK code
wxGtkValue class was added back in 3f84cb17ca (Add wxActivityIndicator
control., 2015-03-06), but somehow never used. Start using it now
(better late than never...) as it makes the code simpler, shorter and
more robust.

No real changes.
2021-01-24 23:55:43 +01:00
Paul Cornett
b27aefacef Fix wxSplitterWindow sash appearance with some GTK themes
See #18981
2020-11-21 08:09:23 -08:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Vadim Zeitlin
36546b6f3f Merge branch 'grid-editors-placement'
Fix positions of the checkboxes drawn by wxGridCellBoolRenderer and
shown by wxGridCellBoolEditor so that there is no jump when starting or
stopping to edit grid cells with boolean values.

See https://github.com/wxWidgets/wxWidgets/pull/1662
2019-11-29 16:24:07 +01:00
Vadim Zeitlin
edd0d9b68f Ensure DrawCheckBox() fits inside the rectangle passed to it
This results in rather ugly checkboxes when the rectangle is too small,
and even "critical" GTK warnings with wxGTK 3, but is still arguably
better than drawing outside of the provided rectangle.
2019-11-28 23:57:15 +01:00
Vadim Zeitlin
e2bb8b05bf Factor out common checkbox-related code into CheckBoxInfo
No real changes, just extract the same code used in both GTK 2 and GTK 3
implementations of GetCheckBoxSize() and DrawCheckBox() in a helper
class which is now just used from both places.

This makes the code more clear and hopefully easier to maintain in the
future.
2019-11-28 02:14:50 +01:00
Vadim Zeitlin
9ae808dc86 Synchronize structure of DrawCheckBox() and GetCheckBoxSize()
Put GTK 3 version first in both functions instead of putting it in the
middle (!) of GTK 2 code in the former one for some reason.

No real changes, the code was just moved around (this commit is best
viewed with "git diff --color-moved").
2019-11-28 02:14:50 +01:00
Ilya Sinitsyn
53ffbf6cf5 Allow ignoring margins in wxRendererNative::GetCheckBoxSize()
Add ability to get the size of the checkbox without any margins by
passing wxCONTROL_CELL flag: this can be useful when the checkbox is
part of some "cell", e.g. wxGrid one, and doesn't need any extra margins
around it.

Currently wxCONTROL_CELL is only really used by wxGTK2 implementation.
2019-11-28 02:14:50 +01:00
Vadim Zeitlin
8997d06397 Fix build with GTK 3 < 3.20
Restore a check removed in d85794e87f as
it's still needed: AddTreeviewHeaderButton() is only defined for 3.20
or later.
2019-11-27 23:21:45 +01:00
Paul Cornett
d85794e87f Remove some unnecessary GTK preprocessor version checks
The contained code no longer uses anything version-specific
2019-11-25 20:54:51 -08:00
Paul Cornett
abaccbc2e2 Fixes for checkbox rendering with GTK3
Size should include border and padding. Margin values seem to be for a checkbox with text
label, so don't include margin. Check mark should be drawn inside border and padding.
2019-11-24 23:31:09 -08:00
Vadim Zeitlin
5488a1438f Globally replace vadim@wxwindows.org with vadim@wxwidgets.org
The old email address is invalid since many years and shouldn't be used
any longer.

No real changes.
2019-04-22 14:12:05 +02:00
Paul Cornett
5ff0d3a458 Improve wxRendererGTK drawing with HiDPI 2018-11-01 00:11:31 -07:00
Tim S
095176f840 Add GDK_WINDOWING_X11 guard for wxGTK/Win32 2018-10-16 16:00:54 -07:00
Vadim Zeitlin
ea71ea1259 Check for non-null window in wxRendererNative::GetCheckBoxSize()
Instead of running normally under some platforms and crashing under MSW
(when using themes) when passing NULL to GetCheckBoxSize(), now
consistently assert and return zero size everywhere.

Closes #18241.
2018-10-11 00:01:00 +02:00
Paul Cornett
e160cb37b6 Remove unused wxWindow parameter 2018-10-08 22:01:05 -07:00
Paul Cornett
5d3d6135e0 Fix wxRenderer for GTK+2 with wxGCDC created from wxMemoryDC
See #18242
2018-10-08 21:47:46 -07:00
Paul Cornett
de1322a02d Fix DrawItemSelectionRect() for focused state 2018-08-11 11:51:49 -07:00
Paul Cornett
102be6a3cc Add GtkStyleContext helper class
Manages ownership of GtkStyleContext and GtkWidgetPath, provides functions
for creating and querying style contexts.
2018-06-05 09:21:25 -07: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
48e6a0c851 Fix drawing header buttons with GTK3 renderer on GTK+ >= 3.20
Lines between columns were missing with default Adwaita theme
2016-12-11 23:25:45 -08:00
Paul Cornett
38246b96a4 Improve appearance of tree item button with GTK3 renderer 2016-12-11 10:54:56 -08:00
Paul Cornett
c5adf1f854 Fix drawing of splitter sash with GTK3 renderer 2016-12-11 09:16:15 -08:00
Paul Cornett
c2b9f650e4 Improve appearance of text control with GTK3 renderer 2016-12-10 21:52:05 -08:00
Paul Cornett
e627970ba6 Fix rendering of check and radio buttons with GTK+ >= 3.20 2016-12-10 21:49:06 -08:00
Paul Cornett
49361b6bb8 Improve appearance of header button with GTK3 renderer
Remove the mysterious insetting by 4. Where that came from I don't know,
but it makes the button look stupid
2016-12-10 18:53:57 -08:00
Vadim Zeitlin
857a8a1ba1 Don't assert in wxRenderer::GetHeaderButtonMargin()
Even if we don't have any way to determine the real margin, don't assert in
this method implementation in wxGTK and wxOSX, but just return 0 instead.

This fixes asserts when trying to fit a column of wxDataViewCtrl, by double
clicking a separator after it, to its contents.

See #13685.
2016-06-16 17:26:38 +02:00
Paul Cornett
ed817dd366 Fix drawing checkbox and radiobutton in checked state with GTK+ >= 3.14, see #17240 2015-11-01 19:46:01 -08:00
Paul Cornett
8b4ae731d3 use wxOVERRIDE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76220 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-30 00:02:23 +00: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
Paul Cornett
295683b22f add GTK3 implementations for remaining renderer functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72918 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-07 06:32:51 +00:00
Paul Cornett
3cc638ed7f add GTK3-specific code for DrawItemSelectionRect(), fixes drawing selected tree control item
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-06 17:43: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
Vadim Zeitlin
345c78ca5f Use wxDynamicCast() instead of IsKindOf() checks.
wxDynamicCast() is less verbose (due to the absence of "CLASSINFO") and more
compatible with the standard dynamic_cast<>, so prefer to use it when possible.

See #14356.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-01 11:01:18 +00:00
Paul Cornett
5ede3d24c8 position expander in center of given rectangle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69741 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-12 16:50:37 +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
Dimitri Schoolwerth
4c51a665c6 Fixed various typos.
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
2011-03-22 14:17:38 +00:00
Václav Slavík
9aebcb5e44 Add wxRenderer::GetHeaderButtonMargin().
Used for best size calculations of column width.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-30 15:57:32 +00:00
Robert Roebling
e78778c8e2 Add ability to render checkbox in undeterminate state, fixes #12290: wxRendererGTK does not support wx.CONTROL_UNDETERMINED for checkboxes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-29 16:57:09 +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
c70ad28733 Don't use tree style to draw focus in DrawItemSelectionRect() in wxGTK.
Using gtk_paint_focus() with a tree widget style did a clearly wrong thing
with Clearlooks theme: instead of drawing a focus rectangle it drew a
background with a shadow overflowing the specified rectangle. This resulted in
junk being left when the selection was changing in wx{List,Tree}Ctrl.

Just use the widgets own style instead as this seems to work just fine. After
this change the code for focus drawing in DrawItemSelectionRect() became
identical to the code of DrawFocusRect() so just call the latter from the
former instead of duplicating its code.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64878 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:39 +00:00
Vadim Zeitlin
6e6b532c1a Rename wxRendererNative::DrawRadioButton() to DrawRadioBitmap().
This old name function conflicted with the one in wxRenderer in wxUniv and
also was misleading as this function draws only a bitmap and not the entire
wxRadioButton control.

The old workaround for the warnings about the function names conflict was ugly
and unmaintainable, as proven by the fact that wxRenderer method signature
already became different from the wxRendererNative one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61715 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-20 00:44:22 +00:00
Francesco Montorsi
191e43fd02 revert r59246; the window parameter was there by purpose (i.e. for consistency with other Get* methods -- even if unused); document what the win parameter does in the various wxRenderer::Get* methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-02 20:09:10 +00:00
Francesco Montorsi
92c32bbee7 deprecated GetCheckBoxSize(wxWindow *) in favour of GetCheckBoxSize() const (the window parameter was unused and not documented)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-01 16:46:49 +00:00
Kevin Ollivier
a2ee194587 Restore DrawRadioButton to the main wxRenderer API, create a method overload for the wxUniv API so that it can coexist with the wxUniv method of the same name.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58825 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-12 01:06:53 +00:00
Vadim Zeitlin
99c4be6806 rename wxRendererNative::DrawRadioButton() to DrawOptionButton() to avoid conflict with wxUniv function with the same name
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58481 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-28 13:55:51 +00:00
Francesco Montorsi
b162ccca03 suppress warning about unused win pointer when wxUSE_GRAPHICS_CONTEXT==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-26 18:57:00 +00:00
Robert Roebling
1c1e6b5b50 Don't pretend to be a GtkTreeView where it isn't required
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 23:40:48 +00:00
Robert Roebling
981a80493a Tried hard to get the selection/focus rectangle drawn right. The GTK+ theme API is beyond repair.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 11:37:54 +00:00