Commit Graph

1345 Commits

Author SHA1 Message Date
Vadim Zeitlin
bfabc7f47c Extract wxPipeInputStream and wxPipeOutputStream in a header.
No real changes, just put these classes in a private header. They're still not
part of the public API but at least it will be easier to reuse them inside the
library itself in the upcoming commits.

See #10258.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-03 00:26:38 +00:00
Vadim Zeitlin
bdbdb4d181 Avoid forcing wxYield() after wxUIActionSimulator::MouseMove() in wxGTK.
Yield (for input events only) inside this function itself instead of forcing
all the code using this function to call wxYield() after it as otherwise the
mouse position change is not taken into account by the subsequent simulated
events.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74328 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-02 20:23:58 +00:00
Vadim Zeitlin
cb50bdc075 Fix Unix build with libSDL 2 in debug mode.
SDL_AudioDriverName() was replaced with SDL_GetCurrentAudioDriver() in SDL v2.

Closes #15271.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-21 09:21:58 +00:00
Václav Slavík
31f125ed00 Use correct extensions in wxDynamicLibrary::CanonicalizeName() on OS X.
Contrary to the documentation, this function incorrectly appended the
.bundle extension on OS X for libraries as well as modules.

Fixed to use .dylib for libraries (wxDL_LIBRARY) and continue to use
.bundle for loadable modules (wxDL_MODULE). Change GetDllExt() to take optional wxDynamicLibearyCategory argument.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74161 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-11 16:46:49 +00:00
Václav Slavík
2e57ca641b Call wxThread::Create() from Run() automatically.
In the common case, when Run() is called immediately after Create() and
default stack size is used, it's unnecessarily verbose.  Just create the
thread in Run() if it wasn't done explicitly yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:46 +00:00
Václav Slavík
0dd300cab5 Move POSIX implementation of wxThread::Create() to wxThreadInternal.
No real changes, just refactoring to follow the same pattern as other
implementations use.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:42 +00:00
Václav Slavík
5063450e48 Lock m_critsect in POSIX wxThread::Create().
This is the documented behavior: all methods accessing m_internal should
lock it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-16 14:15:38 +00:00
Vadim Zeitlin
82e8b0ad6c Add missing space to fix r73681 changes.
We need a space between the command and stderr redirection to avoid the "2"
from being taken as part of the last option on the command line.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-19 15:43:32 +00:00
Vadim Zeitlin
8ea079b33e Suppress error output from Unix system information functions.
Redirect stderr to /dev/null in wxGetCommandOutput() to avoid errors from the
shell if the command we're trying to run doesn't exist.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-19 02:55:31 +00:00
Vadim Zeitlin
35f6f71b19 Don't use ternary operator ?: with wxString and literal strings.
This results in warnings about converting string literal to (non const) C
string.

Also remove the now unneeded calls to c_str() inside wxString::Printf().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73520 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-15 12:40:20 +00:00
Vadim Zeitlin
c8723b866e sAlways iInclude wx/encinfo.h from src/unix/fontutil.cpp.
We use wxNativeEncodingInfo in this file, so we always need this header, not
just when not using PCH.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-02-15 12:40:17 +00:00
Vadim Zeitlin
27e8395ed0 Fix crash in wxExecute() introduced by r73406.
Don't dereference potentially NULL wxProcess pointer.

See #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-21 11:26:00 +00:00
Paul Cornett
784d9056f4 sizeof(char) is 1. By definition.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73407 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 03:08:33 +00:00
Vadim Zeitlin
eaf4bde6e6 Add wxProcess::SetPriority() to allow setting the priority of child processes.
This uses the same conventions as wxThread::SetPriority() but works on the
entire process.

Closes #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:10:12 +00:00
Vadim Zeitlin
90e95e6117 Rename WXTHREAD_XXX_PRIORITY yo wxPRIORITY_XXX.
This will allow to reuse the same constants for the process priorities in an
upcoming commit.

See #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73405 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:10:07 +00:00
Vadim Zeitlin
dee05929ba Ensure that client display rectangle is always less than its total area.
Under Unix we could return client display rectangle that was bigger than the
entire display size as it corresponded to the total screen size when
_NET_WORKAREA was not supported or was not correctly implemented by the WM.

Fix this by explicitly intersecting the client rect with the total one.

Closes #14419.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73282 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-28 00:44:09 +00:00
Vadim Zeitlin
9f987630e2 Handle IN_MOVE inotify events better.
Set the new path correctly for moved or renamed files.

Closes #14889.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73162 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-11 01:32:42 +00:00
Vadim Zeitlin
aa29d293df Warn, don't assert, about unexpected inotify events.
In practice we seem to be getting some unexpected inotify() events during
heavy IO activity. This shouldn't happen but it does, so at least don't
prevent the program from running by popping up the assertion dialog when it
happens.

Closes #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-02 20:24:38 +00:00
Vadim Zeitlin
dab61056c8 Don't assert when stopping watching a just renamed file.
(Almost) silently ignore renames of the files which we don't watch any longer
instead of asserting if this happens.

Closes #14863.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73065 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:03:21 +00:00
Vadim Zeitlin
0a41f17e0b Log invalid inotify() events without a valid watch descriptor.
Apparently we can get events without any valid watch descriptor, even though
this is not supposed to happen. At least warn about them.

See #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:02:58 +00:00
Vadim Zeitlin
8ded8d08ab Correct handling of IN_Q_OVERFLOW in wxFileSystemWatcher Linux code.
Don't use wd field if it's -1 which can happen for IN_Q_OVERFLOW.

See #14854.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-29 22:02:36 +00:00
Vadim Zeitlin
092e08a844 Add wxFSW_EVENT_UNMOUNT wxFileSystemWatcher flag and implement it for Linux.
This flag generates the corresponding event when the file system containing
the watched directory is unmounted. Currently it is only implemented for
Linux where unmounting now generates this event instead of an error.

Closes #14834.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72987 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 12:52:18 +00:00
Vadim Zeitlin
1ec4e9c2b7 Convert wxFSW_EVENT_{WARNING,ERROR} to string correctly.
Previously these types were not handled at all, resulting in asserts.

See #14834.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 12:51:54 +00:00
Vadim Zeitlin
f31f9900e4 Add wxFSW_EVENT_ATTRIB wxFileSystemWatcher flag.
This flag allows to monitor changes to the file attributes, such as file
modification time.

This patch adds the flag, support for it under Linux and the corresponding
modifications to the sample and the test suite.

Closes #14833.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-17 23:56:00 +00:00
Vadim Zeitlin
b77bb705dd Support monitoring only some events in wxGTK wxFileSystemWatcher.
Call inotify() with the appropriate flags instead of always using IN_ALL_EVENTS.

Closes #14832.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72961 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-15 22:24:22 +00:00
Vadim Zeitlin
c55f46d0a1 Add wxDIR_NO_FOLLOW flag for wxDir iteration.
This flag allows to avoid following the symbolic links during the directory
traversal. In particular, this means that links to the directories
(potentially outside the directory being traversed) are not considered as
directories at all when it is used, potentially avoiding surprises.

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-23 23:57:32 +00:00
Vadim Zeitlin
20ffcd779a Improve inotify()-based wxFileSystemWatcher to handle creation/deletion.
Handle creation and deletion of directories under the watched path better.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-16 14:02:40 +00:00
Vadim Zeitlin
0f306261b8 Fix bug in Unix wxFileSystemWatcher implementation when watch is deleted.
Don't assert when removing a watch descriptor from the stale descriptors list.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72682 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:49 +00:00
Vadim Zeitlin
6eef5763a8 Check for filespec when generating events in wxFileSystemWatcher.
Instead of setting watches on individual files when a non-empty filespec is
given, always watch all the files but just ignore the events from the ones not
matching the filespec. This makes the code simpler and fixes several bugs.

See #14544.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:25 +00:00
Vadim Zeitlin
c063adebba Add support for symlinks to wxFileName.
Allow to work with the symlinks themselves and not the file they reference by
calling the new wxFileName::DontFollowLink().

Update Unix wxDir implementation to not treat symlinks to directories as
directories, this ensures that we don't recurse into the directories outside
of the original parent accidentally.

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:01 +00:00
Paul Cornett
7d1214cd72 silence warnings about shadowed variables with GCC -Wshadow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-04 15:55:06 +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
d2fd662983 Vietnamese translations update from Trần Ngọc Quân.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-25 10:48:56 +00:00
Vadim Zeitlin
89b3361ec2 Fix wrong configure test for abi::__forced_unwind in previous commit.
The previous commit was accidental and contained an initial version of the
patch which didn't test for NPTL abi::__forced_unwind correctly and just
tested whether cxxabi.h header was available.

Tighten the check to work on the other systems and check for __forced_unwind
existence itself.

Also check for cxxabi.h before testing for __cxa_demangle as there is no need
to try to compile another test program if we already know that this entire
header is unavailable anyhow.

See #14626.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-20 23:12:28 +00:00
Vadim Zeitlin
e02ea2030c Rethrow abi::__forced_unwind in wxThread code under Unix.
We must always rethrow the special abi::__forced_unwind exception when
handling exception in threads under Linux as the NPTL simply terminates the
process at first opportunity if this exception is not rethrown.

See http://udrepper.livejournal.com/21541.html for more details.

Closes #14626.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72531 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-20 23:00:44 +00:00
Vadim Zeitlin
a349dc1085 Handle underlined and strikethrough attributes in wxGTK native font info.
These attributes were not handled by wxFont::GetNativeFontInfoDesc() as it
only serialized the Pango font description which doesn't support them.

Fix this by handling these attributes explicitly and prepending them to the
Pango font string if necessary.

Closes #14559.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72488 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-15 23:17:12 +00:00
Vadim Zeitlin
6619c4af1b Add wxDir::Close().
This is trivial to have and can sometimes be useful and also is symmetric to
Open().

Closes #14493.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-24 20:45:30 +00:00
Vadim Zeitlin
da0ee16ef9 Use __DARWIN__ instead of __WXOSX__ in non-GUI code.
This fixes compilation of non-wxOSX ports (e.g. wxGTK) under OS X.

Also make the difference between the two symbols more clear in the
documentation.

Closes #14503.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-23 15:03:42 +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
Vadim Zeitlin
3c03599e71 Fix bogus asserts in Unix wxFileSystemWatcher for removed files.
Store the recently removed file descriptors and don't assert if we get an
event for one of them, this can happen and is normal unlike unexpected events
for completely unknown descriptors for which we still keep an assert.

Closes #14465.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72049 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-12 18:34:22 +00:00
Paul Cornett
41e027551c guard against empty name field in inotify_event, see #14466
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-06 16:39:08 +00:00
Vadim Zeitlin
82cf5d5953 Show gstreamer errors in wxGStreamerMediaBackend to the user.
If the media file fails to play, we really need to show to the user the
corresponding gstreamer error, otherwise there is no way to understand what
the problem is.

Collect the errors in gst_error_callback() and show them from the main thread
if we get a gstreamer error.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-02 00:16:18 +00:00
Vadim Zeitlin
7ae14eb15f Use wxFileSystem::FileNameToURL() in wxGStreamerMediaBackend.
Converting files to URIs is not as simple as just prepending "file://" to
them, notably we need to escape characters that are special in URIs such as
"#" and "%", so use FileNameToURL() which already does do it correctly.

Closes #13663.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-02 00:16:14 +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
268fba466f build fix for wxUSE_STL==1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-18 16:11:36 +00:00
Vadim Zeitlin
abf99aad2d Implement wxStackWalker for wxOSX.
Use atos(1) to map address to their symbolic names.

Closes #10067.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71513 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-20 20:29:22 +00:00
Vadim Zeitlin
c4239f1920 Fix wxWakeUpIdle() in Unix console application broken by r71089.
Initialize m_pipeIsEmpty to true as we don't have anything in the pipe
initially and if this variable was false, nothing was ever written to the wake
up pipe and it was never set to true as nothing was read from it neither.

Closes #14166.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-16 15:10:01 +00:00
Vadim Zeitlin
1b63698581 Use better face names first in wxGTK wxNativeFontInfo::SetFamily().
Try better matches and not the most widespread ones first when building a list
of face names to try for the given family. This gives better results when
these better fonts are indeed available and doesn't change anything if they
are not.

See #14126.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71382 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-09 14:24:03 +00:00
Vadim Zeitlin
bb91ff63bc Don't remove the last slash from "/" directory name under Unix.
This was totally wrong as it returned empty string as (invalid) directory
name.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-04 18:31:48 +00:00