Commit Graph

31309 Commits

Author SHA1 Message Date
Vadim Zeitlin
20e6714a67 Add wxBitmap::NewFromPNGData() for creating bitmaps from PNG data.
This simple function can be used to create a wxBitmap from the raw image data
in PNG format. It is just a thin wrapper around wxImage load functions under
almost all platforms but has two advantages:

1. It can be implemented natively for some platforms (currently only OS X).
2. It can be used in a single expression as it doesn't require creating a
   temporary wxMemoryInputStream and this will be required by wxBITMAP_PNG()
   macro that will be added soon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72476 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:15:00 +00:00
Vadim Zeitlin
3ccea0978c Don't ignore invalid files entered into wxFileDirPickerCtrlBase.
File/directory picker controls with wxFLP_FILE_MUST_EXIST/wxDIRP_DIR_MUST_EXIST
style simply ignored any value entered by user if it didn't correspond to an
existing file/directory. This meant that the program didn't use the value that
was shown on the screen resulting in very confusing UI -- e.g. a program could
complain that no value was entered when actually it was and just corresponded
to a non-existing file.

As we can't prevent the entry of arbitrary strings in the text field of the
file picker control, stop pretending that we can validate it and just update
the control value, and send the corresponding event, whenever the text control
value changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:14:37 +00:00
Vadim Zeitlin
be7a086c0c Extract "Close" button creation from wxInfoBarGeneric into new function.
Such buttons may be needed in other places and it's not obvious to create
them, so add a new public wxBitmapButton::NewCloseButton() method to allow
creating them easily.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:14:14 +00:00
Vadim Zeitlin
e23fd60fe7 Change wxMSW-specific wxLoadUserResource() to accept standard RT_XXX types.
Resource types can be either strings for custom types or integers casted to a
TCHAR* for the standard ones. Using wxString for the resource type prevented
us from using the latter as any attempt to initialize wxString for such a
pseudo-string resulted in an immediate crash.

Change wxLoadUserResource() resource type parameter type to wxChar* to avoid
this and allow passing standard resource types, such as RT_RCDATE, to this
function directly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:13:28 +00:00
Vadim Zeitlin
9a0f0f462f Don't initialize alpha twice when loading wxImage from resources.
Calling InitAlpha() when we already had loaded alpha from the resource data
results in an assert. Fix this by only initializing alpha if don't have it
yet.

Closes #14643.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:13:05 +00:00
Vadim Zeitlin
0825f0ba2b Fix wxFindWindowAtPoint() with nested windows in wxMSW.
Return the deepest child of the window and not the first one as this function
needs to return the window that is at the top of Z-order.

Closes #14591.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72470 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:12:42 +00:00
Vadim Zeitlin
5ddb3b8c53 Fix setting colours for the edit control part of wxComboBox.
Recognize this control as part of wxComboBox and so handle WM_CTLCOLOR for it.

To do this, override ContainsHWND() in wxComboBox and use it, on the parent
window, in wxControl::DoMSWControlColor(), if we fail to find the window
directly.

Closes #811.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-13 17:11:56 +00:00
Julian Smart
d07f2e1918 Added support for wxTEXT_ATTR_EFFECT_SMALL_CAPITALS.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-12 18:58:30 +00:00
Steve Lamerton
0bfd90b3e7 Add generic wxFileSystem support to wxWebView using wxWebViewFSHandler.
Closes #14623.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-11 09:26:58 +00:00
Steve Lamerton
e52aec972c Move wxWebViewIE missing definitions to webview_missing.h and add new definitions required for Find.
These are required as some compilers, notably MinGW and VC6, do not include up to date headers. Fixes #14621.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72460 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-10 20:02:58 +00:00
Stefan Csomor
2128f218be layout adaption, current sizer code leads to too much white space
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-10 12:49:16 +00:00
Vadim Zeitlin
155ce4f184 Fix handling of wxTextEntry hints in wxGTK.
Recent changes (r71308) optimizing away setting the text of the text entry if
it didn't really change completely broke the generic text hints implementation
as e.g. clearing the hint didn't change anything because the entry was already
logically empty anyhow.

Fix this by simply comparing the new value with the real value of the entry
returned by DoGetValue() and not GetValue() that takes hints into account.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72458 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 20:28:22 +00:00
Vadim Zeitlin
14722c43c3 Fix deprecating warning introduced in r72446.
Use wxVScrolledWindow::ScrollToRow() instead of the old and ambiguous
ScrollToLine() which is only preserved for compatibility reasons.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72457 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:37:06 +00:00
Vadim Zeitlin
2eb92b0da8 Allow using versions of libnotify < 0.7 in wxGTK.
libnotify 0.4.5 included in Ubuntu Lucid (10.04) can be used for implementing
wxNotificationMessage too, there is only a minor difference with 0.7 API. So
while we stick check for 0.7 initially, accept lower versions too if 0.7 is
not available.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72456 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:36:43 +00:00
Vadim Zeitlin
82213cb04e Set modifiers properly for the key events with AltGr in wxGTK.
Just as under Windows, represent AltGr as a combination of wxMOD_CONTROL and
wxMOD_ALT.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:36:20 +00:00
Vadim Zeitlin
44b7211689 Remove workarounds for wxTextCtrl::SetValue() events in pickers code.
Simply use ChangeValue() instead of SetValue() to avoid the unwanted events
instead of using guard variables.

No real changes but the code is simpler and shorter now.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72454 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:35:57 +00:00
Vadim Zeitlin
06a419244f Simplify and correct setting of initial directory for wxFilePickerCtrl.
Create wxFileDialog with correct initial directory and default file name from
the very beginning instead of updating it later. This makes the code simpler
and also actually makes it work as the initial directory setting was
overwritten by setting the default path later even if it didn't contain any
directory component.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72451 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:34:49 +00:00
Vadim Zeitlin
d965bcda31 Fix harmless virtual function hiding warning in wxMSW build.
Override the other StrokeLines() overload in wxGDIPlusContext just to avoid
the warning about hiding a base class virtual method from MinGW compiler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:34:25 +00:00
Julian Smart
be8d847d4a Ensure the selected style is visible.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 09:38:15 +00:00
Vadim Zeitlin
f78b3d1fc0 Don't try to determine the clicked item ourselves in wxMSW wxListBox.
This doesn't work when the listbox is scrolled as the result of a click to
make the selected item fully visible and results in the index of the item
being off by 1 in the generated event which is a pretty serious problem.

Fix it by simply retrieving the item from the listbox itself, without doing
any hit testing. This seems to give the correct result in all cases and also
makes the code much simpler as we don't have to use 2 different ways of
finding the item depending on whether it was selected using the keyboard or
the mouse and makes it unnecessary to keep track of how the selection was done
completely, i.e. reverts r64498 which is not needed any more.

Closes #14635.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 00:44:26 +00:00
Vadim Zeitlin
dd9bafe129 Don't use StringFormat::GenericTypographic() in MSW wxGraphicsContext.
Using this string format results in very condensed strings when using small
fonts. The results of GDI+ font rendering are still pretty bad even without it
but they are at least slightly better.

Closes #14537.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72442 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 00:43:40 +00:00
Vadim Zeitlin
122b3d0df3 Use a single global StringFormat in all wxMSW wxGraphicsContext code.
Instead of creating StringFormat in DrawText() and Get[Partial]TextExtent[s],
create it once and simply use it from both functions.

This might be slightly more efficient as we don't waste time recreating it but
the main advantage is that it ensures that these functions use the same string
format and no discrepancies between them are possible.

See #14537.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 00:43:18 +00:00
Vadim Zeitlin
d3f3e7f11d Undid accidental modification of wxTaskBarIcon in the last commit.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 21:51:02 +00:00
Vadim Zeitlin
e60165f72e Fix narrow/wide string concatenation in recently added wxSizerFlags assert.
This fixes MSVC build after r72434.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72436 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 21:48:57 +00:00
Vadim Zeitlin
58b1ae5e72 Fix some typos in the comments in wxOSX code.
Closes #14636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 16:03:34 +00:00
Václav Slavík
616ae1e843 Fix VC6 compilation after r72430.
VC6 doesn't handle for loop scope correctly.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72432 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 10:53:40 +00:00
Václav Slavík
c4dae34da8 Add MUI_LANGUAGE_NAME to wx/msw/missing.h.
Fixes VC6 compilation after r72430.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 10:53:16 +00:00
Václav Slavík
01f953efb2 Add wxTranslations::GetBestTranslation().
Implement preferred language selection on modern systems (OS X, Windows
Vista+). User settings for locale (aka "regional settings") and UI
language are independent there and the UI language shouldn't be
determined from the locale.

Moreover, the OS provides a list of preferred languages, not a single
value (as with locale), so we should use the best language given user's
preferences and available translations. A Czech user may prefer Slovak
UI over English, for example, and we should use Slovak translation in
absence of Czech one in that case instead of falling back to English.

On Unix, locale is language and so things remain as before.

Notice that calling wxLocale::Init(wxLANGUAGE_DEFAULT) does the right
thing now: it sets the locale to whatever the user has configured in
regional settings and loads translations corresponding to default
wxTranslations language, which is determined as described above.
Previously, UI would be translated using a language corresponding to the
regional settings.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72430 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-08 08:58:38 +00:00
Václav Slavík
c9a695b777 wxMSW: Fix incorrect subitem rect calculation in wxListCtrl.
HandleSubItemPrepaint() calls wxGetListCtrlSubItemRect() (a thin
replacement of ListView_GetSubItemRect) with subitem argument
corresponding to MSDN documentation: it should be 0 for the whole item
and 1-based for subitems.

Unfortunately, as pointed out in an explanatory comment for
wxGetListCtrlSubItemRect(), MSDN lies and the index actually is 0-based.

The bug causes wxListCtrl's content to be shifted by one column and
rendered with additional artifacts as soon as custom drawing is used,
e.g. when a custom font is used.

This bug was introduced in r55378; the code correctly accounted for this
before that. This change partially reverts that commit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-07 09:51:10 +00:00
Stefan Csomor
b7e3daf441 restrict change from r71719 because otherwise apps like docview sample in ddi mode are not allowing their different child frames to be z-reordered
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-06 14:24:28 +00:00
Steve Lamerton
58f513e990 Disable wxWebView::Find and associated functions under MinGW and VC6 to fix compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-06 08:39:12 +00:00
Václav Slavík
f5462b02b8 Fix compilation after r72375 - LC_CTYPE requires locale.h.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72419 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-31 10:45:45 +00:00
Vadim Zeitlin
22d00dbb82 Fix opening URLs in new window with recent Firefox under Windows.
Don't fail if we can't replace "-1" in the WWW_OpenURL topic value stored in
the registry with "0", it can be already "0" for the recent Firefox versions.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72417 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:25:46 +00:00
Vadim Zeitlin
9ecc6bc2f1 Explicitly reject the use of wxTE_PASSWORD in generic wxSpinCtrl.
wxTE_PASSWORD has the same value as wxALIGN_CENTRE_VERTICAL which could be
implicitly specified as part of wxALIGN_CENTRE, but should never be used with
wxSpinCtrl, so explicitly filter it out when creating the associated
wxTextCtrl.

Closes #14452.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:25:24 +00:00
Vadim Zeitlin
9bd25c8670 Generate wxEVT_COMMAND_TEXT_ENTER events for generic wxSpinCtrl.
Pass wxTE_PROCESS_ENTER to wxSpinCtrlTextGeneric if it's specified for
wxSpinCtrl itself and also forward wxEVT_COMMAND_TEXT_ENTER events from it to
wxSpinCtrl itself.

This fixes lack of these events for wxSpinCtrlDouble under MSW and also lack
of them for any kind of wxSpinCtrl in the ports using generic version (notably
wxOSX).

Closes #14604.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:25:01 +00:00
Vadim Zeitlin
9e565667d0 Add wxSpinCtrl::SetBase() to allow entering hexadecimal numbers.
Add a generic SetBase() API even though right now only bases 10 and 16 are
supported as we might support other ones (e.g. 8?) in the future. Implement it
for MSW, GTK and generic versions.

Add controls allowing to test this feature to the widgets sample.

Add "base" property support to the XRC handler for wxSpinCtrl, document it and
test it in the xrc sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72414 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:24:38 +00:00
Vadim Zeitlin
36090ae57e Remove wxOSX implementation of wxSpinCtrl and use the generic one.
wxOSX doesn't provide a native spinner+text control so it used a generic
implementation of wxSpinCtrl but a different one to the version found in
src/generic/spinctlg.cpp.

Just use the real generic version instead, it doesn't make sense to have two
different versions of the same generic control.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72413 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:24:12 +00:00
Vadim Zeitlin
62f96636b5 Refactor text to/from double conversion in wxSpinCtrlGenericBase.
The code always used ToDouble() and Format("%g") which was a bit strange for
integer-valued wxSpinCtrl. Move the conversions to their own virtual functions
for clarity, perhaps correctness and, especially, flexibility as they will be
overridden in wxSpinCtrl soon.

Also move wxSpinCtrlGenericBase::m_format to wxSpinCtrlDouble as the base
class really doesn't need it at all.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72412 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:23:49 +00:00
Vadim Zeitlin
b9b1eec604 Remove wxRTTI macros from wxSpinCtrlGTKBase.
This is not a public class and it doesn't need to be appear in wxRTTI.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:23:26 +00:00
Vadim Zeitlin
63420bcccf Fix position carried in wxSpin{Button,Ctrl} events for 32 bit values in wxMSW.
Don't use WM_VSCROLL message parameter as the position because it's a 16 bit
value and is not enough for the spin controls using 32 bit range. Just use the
current value available from the control itself instead.

This fixes assert failures in the spin page of the widgets sample when
changing the value of a control when it is > SHRT_MAX.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:23:03 +00:00
Vadim Zeitlin
d15e514e84 Use wxSOCKET_WAITALL in wxHTTP to ensure that all data is sent.
POST-ing sufficiently big amounts of data in wxHTTP didn't work because it
couldn't be sent all at once to the server. Use wxSOCKET_WAITALL to ensure
that we do send all of the data.

Closes #14598.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72409 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:22:40 +00:00
Vadim Zeitlin
8421cb3c7c Fix bugs in parsing wxLongLong values starting with zeroes.
wxCRT_StrtoullBase(), used by wxString::To[U]LongLong(), didn't handle leading
zeroes nor leading 0x correctly: it never auto-detected base 8; didn't ignore
the leading 0 even if base 8 was specified explicitly; didn't recognize "0X"
prefix at all (only "0x").

Fix all these bugs and add test cases for parsing numbers in other bases to
the unit tests.

Closes #14596.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72408 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:22:17 +00:00
Vadim Zeitlin
2e18fe7139 Virtualize showing/hiding the pages in wxBookCtrlBase.
No real changes, just make it possible to change how the pages are hidden and
shown in the derived classes. This is not used by any of them yet, but will be
used by wxSimplebook soon.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:21:29 +00:00
Vadim Zeitlin
5f9f6b4742 Don't lay out the window being destroyed unnecessarily.
This is just a small optimization: it's useless to waste time on redoing the
layout of a window that is going to be destroyed soon anyhow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-30 20:20:20 +00:00
Stefan Csomor
f43a398892 avoid duplication in native dialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72398 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 12:17:31 +00:00
Stefan Csomor
8556919437 use global NSLayoutManager
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72397 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 12:16:36 +00:00
Stefan Csomor
befe64edb4 add global NSLayoutManager instance
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72396 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 12:15:50 +00:00
Stefan Csomor
ee6a122fa3 fixes #13557
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 12:01:19 +00:00
Stefan Csomor
3e43dbc6c7 temporary workaround
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 11:20:23 +00:00
Stefan Csomor
18d5c52d67 propagating font to the individual columns, changing row heights according to font size, fixes #14578
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-08-29 09:00:51 +00:00