Commit Graph

96 Commits

Author SHA1 Message Date
Vadim Zeitlin
37513b6715 Correct handling of %hs and %ls in our wxPrintf() implementation.
The strings corresponding to %hs and %ls are always narrow/wide independently
of the build so using wxArgNormalizedString which is defined differently in
different builds doesn't make sense in wxPrintf().

Instead, simply expect the parameter of the appropriate matching type for
these conversion specifications. Any conversions to it, if necessary, had been
already done before by wxFormatString.

This fixes some VsnprintfTestCase::BigToSmallBuffer() unit test failures.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-30 14:30:35 +00:00
Vadim Zeitlin
e2dd624761 Fix handling of asterisks in wxPrintf() implementation.
Count the number of asterisks before modifying the string we use to do this,
otherwise we were off by one for the format specifications containing two of
them.

This really fixes the handling of asterisks (used for width/precision) in
wxPrintf() format string, it wasn't done correctly by r60120 but now
VsnprintfTestCase::Asterisk() test does pass.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65689 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-30 14:30:28 +00:00
Vadim Zeitlin
233f573883 Fix file paths in the header comments.
Consistently use only "wx/foo.h" instead of "include/wx/foo.h" ("include" is
always implicit anyhow).

Also use "src/osx" instead of "src/mac" for the files in this directory.

See #12165.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64943 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-13 13:29:58 +00:00
Václav Slavík
b113edcdd7 Fix format strings parsing to understand C99 %zu etc.
The parser used to understand only 'Z' specifier for size_t/ptrdiff_t,
which is non-standard libc5 extension. C99 defines 'z' for this purpose,
so use that. Compatibility with 'Z' is preserved.

Also support Visual C++'s non-standard 'I' modifier with the same
meaning.

Fixes #12192.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64800 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-03 14:24:23 +00:00
Václav Slavík
060ec116e4 Always NUL-terminate wxPrintfConvSpec::m_szFlags.
The array was initialized and terminating NUL was only added in some
cases. In combination with strchr() calls, this would result it
incorrect calculations or even crashes.

Fixed by initializing the array to zeros. This is less error-prone than
fixing the few places where explicitly adding the terminating NUL was
missing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64708 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-24 10:34:06 +00:00
Francesco Montorsi
b1153ed60f no real change: just fix RCS-ID so that it reflects the current revision number
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64140 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-25 21:33:16 +00:00
Vadim Zeitlin
d141826876 Always include sys/time.h and sys/select.h from selectdispatcher.h.
fd_set used by this header is supposed to be defined in sys/select.h and not
including this header resulted in compilation problems under QNX. And
including sys/time.h shouldn't hurt and is needed by select() under many
systems anyhow.

See #11817.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63716 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-20 12:45:28 +00:00
Václav Slavík
5c3c137277 Fixed dialog units <-> pixels conversion.
The computation is now identical to Windows native one. To achieve this,
MSDN-recommended GetTextExtent() call is used instead of GetCharWidth().
wxMulDivInt32() is used instead of integer arithmetics to achieve
correct rounding.

Use toplevel parent's font instead of window's own. This makes more
sense, as dialog units are defined for TLWs, not individual subcontrols.

Also fixed wxMSW's wxButton::GetDefaultSize() to compute dialog units
correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-01-24 11:51:09 +00:00
Vadim Zeitlin
8b190e3310 Fix wxFD_CLR() definition for Intel compiler under Linux.
wxFD_CLR() should be void, not bool.

Closes #11517.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-06 02:29:42 +00:00
Paul Cornett
2a32b8071b check for self assignment in operator=
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 16:36:50 +00:00
Vadim Zeitlin
5cd9986613 Refactor wxEventLoopSource-related code.
Currently wxEventLoopSource can't be created directly and can only be used to
monitor file descriptors so reduce the API to just wxEventLoop::AddSourceForFD()
and remove AddSource(), RemoveSource() and RemoveAllSources() which couldn't
be implemented for all ports. This makes the code much simpler without any
loss of functionality.

Make wxEventLoopSource responsible for removing itself from the event loop
when it is deleted. This allows to remove IsOk() and Invalidate() methods
making the code simpler and gets rid of various sets/maps which were used
before.

This also allows to support event loop sources in Carbon as well: wxOSX/Carbon
now compiles and works with wxUSE_FSWATCHER==1.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:36:35 +00:00
Vadim Zeitlin
6b8ef0b35d Merge SOC2009_FSWATCHER branch into trunk.
Merges everything from the branch with only some minor changes, mostly renamed
wxUSE_FSWATCHER_{INOTIFY,KQUEUE} to wxHAS_{INOTIFY,KQUEUE}.

Add wxFileSystemWatcher and related classes.

Also introduces wxEventLoopSource.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:35:43 +00:00
Vadim Zeitlin
8462a84b2c Removed wxFont::Set/GetNoAntiAliasing() implementations.
Most of them were dummy and didn't do anything and this API was never meant to
be used anyhow.

Keep just the declarations in wxFontBase but mark them as deprecated.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62349 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-09 13:04:59 +00:00
Vadim Zeitlin
6bcc1145fe Cleanly separate GUI socket-related code from net library.
This fixes linking problems under Unix introduced by recent changes which
fixed previous problems which were due to files not being linked in at all.

In order to provide a clean separation between base, net and core libraries we
now use the same wxSocketManager (wxSocketFDBasedManager), defined in net
library for both console and GUI Unix applications and just use different FD
IO manager for them: the latter can be defined in base and core libraries as
it doesn't involve wxSocketImpl at all, only its base wxFDIOHandler class.

At more detailed level, these changes required:
 1. Adding the new wxFDIOManager class.
 2. Refactoring the old (and now removed) wxSocketFDIOManager to use the same
    code as wxSocketFDIOManager. This involved:
  a) Adding handler and direction parameter to RemoveInput().
  b) Storing the mask of registered events in wxFDIOHandler itself.
  c) Defining wxFDIOManagerUnix which works with wxFDIODispatcher.
 3. Changing the traits classes in Unix ports to define GetFDIOManager()
    instead of GetSocketManager().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-17 23:02:46 +00:00
Vadim Zeitlin
3327957c0f Extract wxFDIOHandler in its own header.
The files defining classes processing events on file descriptor only need this
class and not wxFDIODispatcher itself so reduce build dependencies by extracting
wxFDIOHandler in a separate header which they can include instead of the
entire fdiodispatcher.h.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-17 23:02:29 +00:00
Vadim Zeitlin
251e98cb73 Added wxFDIOHandler::IsOk() and use it with wxSocketImplUnix.
This will allow to use the base wxFDIOHandler class only in GUI-specific
network code and this remove its dependency on wxSocketImplUnix. IOW it paves
the way for a proper solution of the problem fixed by r61336 without the hack
of r61335 which results in linking problems (which went undiscovered until now
but were, in fact, always present, i.e. r61335 couldn't work).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-17 23:02:18 +00:00
Vadim Zeitlin
4f260c9c68 Virtualize wxSocketImpl creation by routing it via wxSocketManager.
This is necessary to create different kinds of sockets for the console and GUI
applications under OS X: unlike Unix which use different socket managers for
the console and GUI programs but still use the same data structures in both
cases as X11 and derived toolkits APIs are very similar, Core Foundation
sockets don't have anything in common with their console counterparts and so
we need to use different wxSocketImpl versions too.

A side effect of this commit is that now we need to force linking of
src/msw/sockmsw.cpp when using sockets: this wasn't necessary before because
it contained wxSocketImpl method definition but now that there are no more
direct dependencies on it, MSVC linker simply discards the object file unless
we force it to link with it.

Notice that this commit doesn't change anything yet, it simply refactors the
code to use wxSocketManager::CreateSocket() instead of wxSocketImpl::Create()
in preparation for the next change.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-16 23:13:45 +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
53ff8df7d5 Make wxLog::EnableLogging() and wxLogNull thread-specific.
Disabling logging in a single thread (even the main one) shouldn't disable
logs from the background threads which should disable their logging themselves
as/if needed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-13 13:21:52 +00:00
Vadim Zeitlin
acad886cb4 Add support for thread-specific log targets.
A worker thread can now have its own log target which will be used directly
by the log functions instead of buffering log output in the main thread; the
GUI thread in the thread sample shows how it works.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61422 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-13 11:09:26 +00:00
Vadim Zeitlin
255c07b4df extracted wxTextWrapper in its own header and made it public
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-31 20:12:07 +00:00
Vadim Zeitlin
3b84c8078e compilation fix for Windows after the last change (misplaced #endif)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60575 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-09 17:25:27 +00:00
Vadim Zeitlin
7172db1857 initialize the local address before calling getsockname() on it (closes #10779)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60567 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-09 13:07:21 +00:00
Vadim Zeitlin
f20e268907 fix g++ warnings about initialization order mismatch after the last change
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60121 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-12 23:43:04 +00:00
Vadim Zeitlin
75ac34cefc fix support for using asterisks in the format string and some code cleanup
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60120 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-12 23:37:28 +00:00
Paul Cornett
be4674271d fix for IBM xlC 8, it can't parse the template syntax
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59016 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-19 05:34:25 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Francesco Montorsi
87315ea262 fix a couple of typos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-10 11:11:33 +00:00
Francesco Montorsi
94a007ece4 a few more int/wxPolygonFillMode substitutions in wxRegion and wxGraphicsContext code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57915 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-08 16:43:56 +00:00
Jouk Jansen
4d8988f7b1 insert missing include file for OpenVMS platforms
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57898 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-07 20:37:16 +00:00
Vadim Zeitlin
a12698abb7 added wxFDIODispatcher::HasPending() and implemented correctly wxConsoleEventLoop::Pending() using it to fix the pending events processing in console event loop based programs; also changed wxFDIODispatcher::Dispatch() return type/value to be able to indicate the errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-03 01:21:24 +00:00
Vadim Zeitlin
df21920b80 disable the events when we get a notification about socket being ready for IO and reenable them later after performing the IO in the Unix version to avoid continuous flood of ready notifications
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 21:53:30 +00:00
Vadim Zeitlin
c363ead1e2 remove wxSOCKET_MAX_EVENT, it is not really necessary and results in gcc warnings about unhandled enum value in switch in existing code (including our own sample)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57653 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 00:11:04 +00:00
Vadim Zeitlin
67badd5753 build fixes for wxUSE_IPV6==1 under Windows
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57636 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-29 14:51:49 +00:00
Vadim Zeitlin
c9bccf239c replaced unweildy GAddress functions with wxSockAddressImpl class, similarly to GSocket -> wxSocketImpl transition; share more code between IPv4 and IPv6 branches
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-29 14:35:48 +00:00
Vadim Zeitlin
14372de82e move Read/Write() to common code, there was almost nothing platform-specific in it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 22:49:46 +00:00
Vadim Zeitlin
62088a3c3b wxSocketImpl::Shutdown() doesn't need to be virtual, its implementation can the same in Unix and Win32 versions (events are already disabled by Close() so there is no need to do it again explicitly under Unix)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 22:03:34 +00:00
Vadim Zeitlin
5e9238f9c6 remove the badle defined and apparently unnecessary wxSocketImpl::m_detected field
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 21:48:42 +00:00
Vadim Zeitlin
2b036c4b23 our sockets are always non-blocking anyhow so throw away all the code dealing with checking if they're blocking; also merge Unix/Win32 versions of connect() and accept() handling as they were almost identical except for the different checking of the return value which was factored out into a platform-specific GetLastError() function
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 17:15:22 +00:00
Vadim Zeitlin
00414faf34 use DispatchTimeout() and/or select() with timeout instead of polling loop in wxSocket::DoWait()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 22:50:50 +00:00
Vadim Zeitlin
22185a1f15 remove m_use_events from Unix wxSocket implementation, we always need asynchronous socket notifications now (and this was always the case under Windows anyhow), even if we don't always generate wx events corresponding to them
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 20:20:46 +00:00
Vadim Zeitlin
c6b1063250 refactor Input/Output_Timeout: don't duplicate the same code in MSW/Unix code and also don't duplicate it for input and output, one function is enough for both
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 20:27:35 +00:00
Vadim Zeitlin
9508a3e9a0 mingw32 typedef's and not define's SOCKET so test for __WXMSW__ before redefining it ourselves
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 19:52:00 +00:00
Vadim Zeitlin
2606716181 rename gsockmsw files to sockmsw
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 19:10:46 +00:00
Vadim Zeitlin
07792edb2e use void pointers, not char ones, in socket IO functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 18:29:08 +00:00
Vadim Zeitlin
54cb21d692 remove wxSocketManager::CreateSocket() function, we don't need to have different wxSocketImpl implementation for the same platform, all the differences between console and GUI applications are abstracted by wxSocketManager::Install/Uninstall_Callback() methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 15:06:50 +00:00
Vadim Zeitlin
a9d859df6f make wxSocketImplUnix inherit from wxFDIOHandler as they're used for almost the same purpose; this removes the need for the bridge wxSocketOHandler class
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56998 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 14:39:49 +00:00
Vadim Zeitlin
86c5b12b21 also rename gsocketiohandler.* to socketiohandler.* and move it to wxNet where it belongs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 13:37:19 +00:00
Vadim Zeitlin
6091364135 rename various gsock* files to sock* (except for MSW where this will be done later)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 13:04:47 +00:00
Vadim Zeitlin
51fe4b60ab Streamline wxSocket code: wxSocketBase now uses wxSocketImpl (previously known
as GSocket) which is a base class with various wxSocketImplXXX implementations
provided by different wxSocketManagers.

Share more code between ports (still not finished).

Refactor some code inside wxSocketImpl itself to be less redundant and fixed a
couple of minor bugs in the process.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 12:47:07 +00:00