Commit Graph

403 Commits

Author SHA1 Message Date
Vadim Zeitlin
907832bd21 Fix reentrancy issues in wxMSW wxTextCtrl max length handling code.
The changes of r75940 didn't work correctly if the handler of wxEVT_TEXT in
some text control modified a (potentially) different text control, as the same
global variable was reused with disastrous results. Avoid this by keeping a
stack of insertion lengths instead.

Using a per-control field would work too, but would be a bit wasteful as the
size of the stack will rarely be more than 1 (and never much more) and this
change can also be applied to 3.0 branch without breaking ABI.

Additionally, fix another problem in r75940 which used 0 as a special marker
for the insertion length, which result in redoing each insertion of empty
string (which is another word for Remove()) twice unnecessarily, by using -1
instead.

Closes #15980.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-03-24 13:06:11 +00:00
Vadim Zeitlin
81b62354dc Fix wxTextCtrl contents corruption with long strings in wxMSW.
wxMSW automatically extended wxTextCtrl length limit beyond the tiny standard
32KB when it was exceeded, but part of the text being appended into the
control was lost when doing it.

Fix this by retrying insertion after extending the limit.

Closes #15980.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-02-20 00:32:34 +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
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
3d37e56c0b 64 bit compilation fix for wxTextCtrl in wxMSW.
Use DWORD_PTR instead of DWORD for a pointer.

This was already done for another occurrence of the same cast in r58564 but
somehow this one fell through the cracks.

Close #14949.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73395 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:09:18 +00:00
Vadim Zeitlin
22f1466595 Set margins on creation correctly for wxTE_RICH[2] wxTextCtrl in wxMSW.
In spite of the MSDN documentation, EC_USEFONTINFO can't be used in lParam
with rich edit controls, so pass it in wParam for them.

Closes #14598.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:08:59 +00:00
Vadim Zeitlin
176da26d22 Explicitly set margins for single line text controls in wxMSW.
The margin used by them was inconsistent and depended on the initial size the
control was created with for some reason. Call EM_SETMARGINS explicitly to
ensure consistent appearance in all cases.

Closes #2438.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-04 00:39:37 +00:00
Vadim Zeitlin
a0e5592007 Revert all wxNOEXCEPT-related changes.
This reverts r72978, 72984, 72989 and 72992. Do not use wxNOEXCEPT for
wxTextCtrl dtor as this breaks compilation of any user-defined classes
inheriting from it unless they use wxNOEXCEPT as well and the benefits
(fixing a harmless warning for the niche ICC compiler) are just not worth
the compatibility breakage.

See #14826.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-20 12:49:03 +00:00
Vadim Zeitlin
e6a277032d Fix another compilation problem after wxNOEXCEPT introduction.
Also add wxNOEXCEPT to wxTextCtrl dtor definition in wxMSW.

See #14826.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-20 00:57:25 +00:00
Vadim Zeitlin
c10361ef2e Define SPI_GETCARETWIDTH ourselves if it's not defined.
This fixes another compilation error for VC6.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72981 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-18 00:17:07 +00:00
Vadim Zeitlin
e2ac737fba Implement wxComboCtrl::GetSizeFromTextSize().
Improve calculation of wxComboCtrl best size which doesn't work correctly for
non-default fonts as shown by r72935. It is still not perfect but better now.

Closes #14825.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72955 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:48:23 +00:00
Vadim Zeitlin
aa24f946c6 Implement DoGetSizeFromTextSize() for wxMSW wx{Choice,Combobox,TextCtrl}.
Refactor and improve the existing DoGetBestSize() implementations to use
DoGetBestSize().

Closes #14816.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72954 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 13:47:59 +00:00
Vadim Zeitlin
017dc06b50 Use wxString::t_str() in calls to Windows API functions in wxMSW.
Use t_str() instead of wx_str() to make the code work correctly in UTF-8 build
in which wx_str() returns a pointer to UTF-8 buffer while we need a wchar_t
pointer for Windows.

Closes #14371.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-03 19:16:59 +00:00
Julian Smart
6c6b938377 A fix for flicker when the top-level window is disabled or enabled (e.g. by modal dialogs).
Achieved by using IsThisEnabled to determine the visual disabled state and thus requiring no refresh on top-level window enabling/disabling.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-11 05:31:06 +00:00
Vadim Zeitlin
be85a191e1 No changes, just minor wxMSW code cleanup: use WinStruct<>.
Use WinStruct instead of the usual ZeroMemory() + cbSize setting fragment to
initialize Win32 structs that need to be initialized in this way.

No real changes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70383 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-18 10:05:27 +00:00
Vadim Zeitlin
be74a2a21a Fix the size of the font returned from wxTextCtrl::GetStyle() in wxMSW.
Due to a typo the size was expressed in 1/10th of a point and not in points.
Fix this and add a unit test checking that GetStyle() returns the same font as
was set by SetStyle().

Closes #2120.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70341 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-14 17:57:11 +00:00
Vadim Zeitlin
f79f06665c Compilation fix for PCH-less build after r70122.
Include the header declaring wxClientDC.

Closes #13809.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70130 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-27 17:32:29 +00:00
Vadim Zeitlin
e170515a9b Fix the size of the font returned by wxTextCtrl::GetStyle() in MSW.
CHARFORMAT stores height in 1/20th of a point, not pixels. Add the correct
conversion to the units used by LOGFONT.

See #13384.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-27 01:21:33 +00:00
Vadim Zeitlin
b062fade9f Intercept some keys in wxMSW wxTextCtrl even if they're used as accelerators.
Bare (i.e. without any modifiers) Delete, Home and End keys are also required
by the text control itself so don't handle them as accelerators when wxTextCtrl
has focus.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69739 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-11 14:26:06 +00:00
Vadim Zeitlin
df0419d21d Fix best size computation for wxTextCtrl without borders in wxMSW.
wxTextCtrl with wxBORDER_NONE (and possibly wxTE_READONLY) style is often used
instead of a wxStaticText to allow copying the text, so make the size of such
control the same as size of the label. This ensures that it aligns correctly
with the label vertically while before the baselines were not aligned because
a border-less text control was rendered by MSW as a label but had a too big
size.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69066 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-09-11 21:55:47 +00:00
Julian Smart
827fb0e455 Better text control non-selection solution
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-08-17 08:38:00 +00:00
Vadim Zeitlin
6ce832135e Add wxTextCtrl::PositionToCoords() functions for wxMSW and wxGTK.
The new method allows to find the coordinates in pixels of the given character
in a text control.

Closes #13221.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-29 15:11:54 +00:00
Vadim Zeitlin
d19d14c550 Ignore WM_CLOSE generated by wxMSW edit control when Escape is pressed.
Multiline edit control posts WM_CLOSE to its parent window when Escape key is
pressed inside it for some reason. This is unwanted as it totally bypasses our
logic for only closing the dialog when Escape is pressed if there is a
Cancel-like button in it, so suppress this behaviour by not letting the edit
control to get Escape at all.

Closes #12501.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68351 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-24 10:50:51 +00:00
Vadim Zeitlin
3d55f45e94 Suppress various harmless warnings in MinGW build with -Wconversion.
No real changes, simply add casts to make the implicit conversions that g++
warns about when using -Wconversion explicit.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-06-16 15:14:02 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Stefan Csomor
2895324520 merging back XTI branch part 2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66555 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-01-04 08:31:53 +00:00
Vadim Zeitlin
179c657bc7 Really fix setting fonts in RichEdit 4.1 controls.
The fix applied in r64394 wasn't enough and the control could still decide to
overwrite the font used by default when non-ASCII characters were inserted
into it. To really force it to use the font we want we apparently must send it
EM_SETCHARFORMAT with SCF_ALL flag (MSDN also documents SCF_DEFAULT but it's
not clear if we should use it instead or together with SCF_ALL, for now it
doesn't seem to be necessary).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-18 16:26:35 +00:00
Vadim Zeitlin
a8abba41bc No changes, just refactor wxTextCtrl::SetStyle() in wxMSW.
Split this overly long function into MSWSetCharFormat() and MSWSetParaFormat().

No real changes otherwise except for the use of PARAFORMAT instead of
PARAFORMAT2 if wxUSE_RICHEDIT2 is not set as it was certainly intended (but
the fact that nobody complained about this problem means that nobody must be
compiling without wxUSE_RICHEDIT2 by now so arguably we should just remove it
completely).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-18 16:26:30 +00:00
Vadim Zeitlin
4f7c00f237 Set wxTextCtrl::m_verRichEdit to 4 for RichEdit 4.1.
Set m_verRichEdit to a different value for the version 4.1 of the control as
it behaves subtly differently from the previous versions.

Also clarify that value of 2 is used for both 2.0 and 3.0 versions of the
control.

No real changes yet.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65563 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-18 16:26:22 +00:00
Vadim Zeitlin
427861bde0 Fix scrolling to the bottom in wxTextCtrl::AppendText().
The old code used EM_LINESCROLL which could scroll too far if the caret wasn't
in the first line of the control. Instead of trying to compute the correct
number of the lines to scroll, just use WM_VSCROLL with SB_BOTTOM parameter
instead.

Closes #12123.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-12 21:26:41 +00:00
Vadim Zeitlin
81fb185e4f Fix setting the fonts for wxMSW wxTextCtrl with wxTE_RICH(2) style.
Using WM_SETFONT seemed to work with rich edit controls but in fact it
doesn't, it only changes the font used by the control initially apparently but
it can be reset later.

Use EM_SETCHARFORMAT which is more reliable.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-25 21:15:24 +00:00
Václav Slavík
8d94819c43 Remove wxUSE_WCHAR_T checks.
wxWidgets requires wchar_t for some time now; wx/chartype.h has a check
to fail complation without it. Simplify code by removing now-dead code
for the !wxUSE_WCHAR_T case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-16 10:43:18 +00:00
Vadim Zeitlin
d2356abe70 Use white background by default for multiline readonly wxTextCtrl under MSW.
The best default behaviour seems to be to use white background for multiline
text controls even when they're read-only, as in previous wx versions.

Also see #11521 which could be implemented to make this configurable.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62804 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 05:01:21 +00:00
Vadim Zeitlin
b7421ab625 Move wxMSW wxTextCtrl::GetDefaultAttributes() to wxTextCtrlBase.
This commit doesn't introduce any changes in the control behaviour, it simply
moves the existing method to the base class because it is not MSW-specific.

Also implement wxTextCtrlBase::GetClassDefaultAttributes() because if a class
implements GetDefaultAttributes() it should implement it as well.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-07 05:01:14 +00:00
Paul Cornett
a243da29c8 make array data fully const
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 17:28:45 +00:00
Vadim Zeitlin
7b6126aa3a Explicitly set the cursor when showing popup menu on text control in wxMSW.
Without this, an I-beam cursor is used when a menu is shown by a rich text
control. Set the arrow cursor explicitly to work around this apparent bug in
the native control.

Closes #11314.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-26 03:29:27 +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
a10f026b85 fix a problem with loading inked.dll (see #10633)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-26 18:41:02 +00:00
Vadim Zeitlin
d2f434e428 (harmless) Borland release build warning fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60348 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-25 14:07:38 +00:00
Vadim Zeitlin
135b23b266 added wxTextEntry::DoGetValue() to allow returning empty string if the control currently contains hint text
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-02 13:31:29 +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
Vadim Zeitlin
92715f1fea fix warnings about conversion between DWORD and pointers in MSLU=1 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58564 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-31 21:15:10 +00:00
Vadim Zeitlin
e408bf5257 add safe wxStrlcpy() function and replaced all wxStrncpy() calls by it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 14:41:02 +00:00
Vadim Zeitlin
5c33522fca replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
51725fc0c2 reverted the change of r56246 and keep the old behaviour of MB2WC/WC2MB; document it even more clearly and correct code using these functions incorrectly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-17 11:31:22 +00:00
Vadim Zeitlin
4c81144ce3 no changes, just clarified a comment
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-09-14 21:05:41 +00:00
Vadim Zeitlin
8f08b2509b don't send text changed events from ctor as wxGTK doesn't do it and people apparently don't like it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53547 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-11 00:29:47 +00:00
Václav Slavík
e2cf30aa1c wxMSW: generate wxClipboardTextEvent from wxTextCtrl with wxTE_RICH style too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52546 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 12:28:03 +00:00
Vadim Zeitlin
5a25f8581a refactored code reused in several different places in wxTextEntry::RemoveSelection() (patch 1910166)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52534 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:58:54 +00:00
Vadim Zeitlin
c2208899ed no real changes, just use more readable helper wxTextEntry methods (patch 1910160)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:47:41 +00:00