Commit Graph

159 Commits

Author SHA1 Message Date
Vadim Zeitlin
04209e3a3e Remove GetStandardCmdLineOptions() from wxGTK
Unfortunately there is no reasonable way to implement this function for all
glibc versions as the information we need is stored in the private
_GOptionGroup struct whose layout has already changed once (in 2.44) and could
change again, so we can't rely on it.

We really need a g_option_group_get_entries() in glib itself, but the request
to add it at http://bugzilla.gnome.org/show_bug.cgi?id=431021 hasn't been
touched since 10 years, so it seems unlikely to happen.

See 99367a1530 (commitcomment-25789514)
2017-11-22 22:02:36 +01:00
Vadim Zeitlin
ad448da284 Suppress deprecation warnings for g_option_group_free()
Closes #17877.
2017-11-14 00:41:31 +01:00
Vadim Zeitlin
99367a1530 Update glib version check in GetStandardCmdLineOptions()
This code still works fine with glib 2.50.
2017-11-14 00:41:31 +01:00
Dimitri Schoolwerth
1e78bf639e Add micro version to toolkit version functions
Support micro versions in wxAppTraits::GetToolkitVersion and
wxPlatformInfo functions related to toolkit versions.
2016-02-29 10:05:43 +01:00
Vadim Zeitlin
b7f1ac40f4 Don't hard code the number of stack frames after wxOnAssert().
The number of frames between the code containing the assert and the code
generating the stack trace is not the same under different platforms and so
hardcoding 8 for it in wxAppTraitsBase::GetAssertStackTrace() worked for wxMSW
but not e.g. wxGTK.

Instead, just ignore all frames up to and including the one for wxOnAssert()
itself. This makes the code work correctly on all platforms and it also won't
need to be modified whenever any extra functions are added/removed
(wxGTK-specific code in utilsgtk.cpp used wrong number of frames too, even
though it was presumably correct once before).
2015-07-05 18:39:37 +02:00
Vadim Zeitlin
0c408e2785 Really break into the debugger at the assertion line under wxGTK.
This completes the changes of r78408: in addition to making wxTrap() a macro,
we also need to call it directly from the assert macro expansion instead of
doing it from deep inside wx assert dialog code.

See #11184.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2015-02-09 12:10:30 +00:00
Paul Cornett
00cc0233f6 fix releasing mouse capture before showing modal dialog, see #16647
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-11-14 18:56:37 +00:00
Vadim Zeitlin
01f9accd19 Remove wxPM, wxWidgets port to OS/2.
This port is not used and is not being worked on, so remove it to reduce the
amount of the code which needs to be updated for every global change.

Also remove tests for VisualAge compiler which isn't used since ages.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 23:56:58 +00:00
Paul Cornett
a0f10ec1d6 Implement access to a global toplevel GdkWindow in a way that does not require always having an extra GtkWindow.
And don't use "RootWindow" in the name, it is not a root window in the X11 sense.
Also add wxGetPangoContext() to get access to a PangoContext.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-05 15:53:27 +00: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
Paul Cornett
12fffeb456 update GLib version check
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74966 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-07 16:50:22 +00:00
Vadim Zeitlin
6e48287c6a Add missing c_str() call to fix wxGTK ANSI+STL build.
Closes #15518.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-18 18:02:25 +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
Vadim Zeitlin
821d856a61 Rewrite wxExecute() implementation under Unix.
This commit changes wxExecute() to handle SIGCHLD to be notified about the
child process termination instead of detecting when the file descriptor
corresponding to the other end of a pipe opened in the parent process was
closed in the child as this was not reliable and could (and did) result in not
detecting the termination of the child processes that closed all their file
descriptors before exiting.

This commit also removes a lot of platform-specific code duplicating the
generic event loop sources support and reuses it for wxExecute() purposes too.

Final big change is that wxEndProcessData was merged into wxExecuteData and we
don't have two similar but quite different classes any more but just one,
which is used both to pass the information from wxExecute() to wxAppTraits
methods and to store this information until the child termination.

Closes #10258.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74350 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-03 00:32:16 +00:00
Vadim Zeitlin
2b76114b61 Don't use GetStandardCmdLineOptions() under non-Unix platforms.
The GTK+ standard options are only available under Unix.

Closes #15131.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-01 23:59:37 +00:00
Paul Cornett
2a9332ae2c gtk_assert_dialog_set_message() was unintentionally excluded in r73163
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73339 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-03 16:43:40 +00:00
Jouk Jansen
3a0c6eff1b gtk_assert_dialog_set_message is only defined if wxUSE_STACKWALKER is set
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-03 15:19:01 +00:00
Paul Cornett
2c64b066ea decrease number of skipped frames in assert dialog backtrace, 7 is not the minimum, closes #14690
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73178 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-13 04:41:52 +00:00
Paul Cornett
d180f4e007 put both versions of wxGetMousePosition in one place so they can use one implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 04:17:42 +00:00
Vadim Zeitlin
b51014176a Don't call setlocale("") on startup by default any longer.
This undoes the changes of r44773 because calling setlocale() resulted in C
locale being set differently from C++ locale which was confusing and led to
huge slowdowns in any code using std::stream with at least MinGW. And setting
the C++ locale to be the same, as r72719 tried to do, doesn't seem to be
practical as it results in immediate crashes under OS X and MinGW when used
under XP.

Do provide wxApp::SetCLocale() helper to explicitly do what was previously
done implicitly, even though currently it is a trivial wrapper for setlocale()
and we don't even need to call gtk_set_locale() as it has never done anything
else and is deprecated since GTK+ 2.24.

Closes #14780.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72951 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:46:50 +00:00
Vadim Zeitlin
1114902acf Really fix stack dumps for asserts and wxStackWalker::Walk() calls.
The code apparently tried to compensate for the wrong "skip" values used in
the calls to wxStackWalker::Walk() by skipping too much in Walk() itself which
was wrong as it dropped the frames that should have been shown.

Fix this by skipping only the one extra (compared to Walk() itself) frame we
add in wxStackWalker Unix implementation and not 3 of them and do skip more
frames when calling Walk() from assert failure handlers.

Also fix the wrong number of frames used in ProcessFrames(): we must not
subtract the number of skipped frames, they were already skipped.

Closes #14690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-25 10:49:45 +00:00
Vadim Zeitlin
3fce0e6480 Use utf8_str(), not mb_str(), for strings passed to GTK+.
All GTK+ strings must be encoded in UTF-8, not whichever encoding the current
locale happens to use.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72545 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-25 10:49:22 +00:00
Vadim Zeitlin
fe943278df Minor fixes to wxGTK3 with Broadway backend build.
Reuse some functions for both Broadway and X11 backends. Fix invalid casts
from Broadway screen/display types to X11 ones.

Closes #14469.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-14 20:10:50 +00:00
Vadim Zeitlin
a73251a80d Allow building wxGTK3 with Broadway backend.
Use GDK_WINDOWING_BROADWAY to fix compilation with it.

Closes #14469.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-13 18:22:22 +00:00
Paul Cornett
c49ba2113c no real changes, just remove unnecessary indentation and scoping after r72001
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 17:17:53 +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
Vadim Zeitlin
598fe99d56 Move wxBell() from base to core library.
This allows to get rid of ugly preprocessor checks due to the fact that this
function could be defined in one or the other library depending on the port
used and also fix a problem with it being defined differently in the base
library depending on which GUI port (Carbon or Cocoa) was used under OS X.
It also fixes the problem with wxBell() in wxGTK under Windows.

Closes #14406.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-17 21:35:06 +00:00
Vadim Zeitlin
85b1dc6e3c Don't use Unix-specific wxGTK utility functions under non-Unix.
Unix-specific functions shouldn't be used under Windows, add "#ifdef __UNIX__"
guards around them.

Closes #14410.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-17 21:34:54 +00:00
Paul Cornett
233f786e8e update version check for glib 2.32
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71791 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-17 17:08:35 +00:00
Paul Cornett
f069ac4801 remove some unnecessary c_str() calls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-17 15:46:08 +00:00
Vadim Zeitlin
8d241dea5c Fix display of "const" methods in wxGTK assert dialog.
Don't separate the function name and its arguments types in 2 different
columns in the assert dialog, this doesn't really work with const methods as
"const" can't be separated from the function like this. The old code just
didn't take "const" into account at all and mangled all the const methods by
showing ") cons" (no typo) at the end.

Just show everything in one column to avoid the problem and also simplify the
code.

Closes #14104.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-21 00:11:12 +00:00
Vadim Zeitlin
f04f570fd2 Only include <unistd.h> under Unix in wxGTK code.
Also remove the inclusions of some Unix-specific headers that were not needed
at all.

Closes #14048.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70704 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-27 00:40:16 +00:00
Vadim Zeitlin
3b81515cb1 Fix wxGTK compilation when using non X11-based GDK.
Only use X11-specific GDK functions inside "#ifdef GDK_WINDOWING_X11" checks.

Closes #14044.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-26 17:18:41 +00:00
Paul Cornett
8f81f01db3 update _GOptionGroup check
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69851 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-28 05:11:27 +00:00
Paul Cornett
803a1b9454 pass proper window to gdk_window_get_pointer(), NULL does not work with GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-12 05:33:59 +00:00
Paul Cornett
753cba1a75 fix conversion of gdk_input_add() to g_io_add_watch() from r67326
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-19 05:17:45 +00:00
Paul Cornett
a481bbc318 convert assertdlg_gtk to C++
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-30 05:35:24 +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
Paul Cornett
dc771347d0 remove unneeded #includes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-08 18:05:33 +00:00
Vadim Zeitlin
e3cd024e85 Revert the changes of r65826 in wxConvertToGTK().
This is not necessary any longer after the previous commit which changed
cMB2WC() to not return NULL for empty input.

See #12432.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-17 13:59:48 +00:00
Vadim Zeitlin
dd5ab30d6a Don't return invalid buffer from wxConvertToGTK("").
The result of wxConvertToGTK() is often passed to GTK+ functions directly and
not all of them handle NULLs gracefully, e.g. gtk_editable_insert_text() just
crashes.

Return an empty string from wxConvertToGTK() explicitly for empty string input
to avoid such problems.

Another potential solution might have been to change wxMBConv::cMB2WC() to
return empty buffer instead of invalid one for empty input but it's not clear
if this is not going to break something else.

Closes #12432.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-16 18:10:58 +00:00
Vadim Zeitlin
acdc8633de Extract X11 Display wrapper class in a private header.
No real changes, just extract a private Dpy class used by wxGTK to a header
and rename it to wxX11Display.

This will allow reusing it from X11 wxUIActionSimulator implementation in the
upcoming commits.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65380 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-22 22:15:13 +00:00
Vadim Zeitlin
61c18e1a3d Don't limit the number of stack frames in GTK assert dialog to 20.
This dialog uses a scrollbar to keep its vertical size reasonable in any case
so there is absolutely no danger of making it too tall even if we show more
frames in it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62843 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-09 14:59:13 +00:00
Vadim Zeitlin
2d8e0096cd Better handling for asserts in non-main threads.
Don't call wxTrap() when an assert in a non-main thread fails. As asserts are
now always enabled by default, this is not a good idea. Instead just show the
full details about the assert failure using wxMessageOutputDebug under the
platforms without MT-safe message box function (i.e. everything but MSW
currently).

Add a possibility to test an assert happening in non-main thread to the except
sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-09 14:59:08 +00:00
Vadim Zeitlin
f9837e4693 Define wxSetDetectableAutoRepeat() for X11-based ports only.
This function is not needed in wxGTK2 as GTK+ sets detectable auto-repeat on
its own in gdk_display_open() anyhow, so move its implementation to
src/x11/utilsx.cpp where it can be used by wxX11 and wxMotif which do need it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-22 00:22:44 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +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
Vadim Zeitlin
4b6a582bef replace more __WXDEBUG__ occurrences with wxDEBUG_LEVEL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-22 12:53:48 +00:00
Francesco Montorsi
3fb2bf54c7 the GOption hack is valid for Glib 2.20 too (it looks like it will be valid forever...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-17 21:09:37 +00:00