All:
- Added wxSizerFlags::Shaped() and FixedMinSize() methods
+- Added wxCSConv::IsOk() (Manuel Martin)
- Added wxDateTime::GetDateOnly()
- Made wxTextFile work with unseekable files again (David Hart)
\func{}{wxCSConv}{\param{wxFontEncoding }{encoding}}
Constructor. You may specify either the name of the character set you want to
-convert from/to or an encoding constant. If the character set name is not
-recognized, ISO 8859-1 is used as fall back.
+convert from/to or an encoding constant. If the character set name (or the
+encoding) is not recognized, ISO 8859-1 is used as fall back.
\membersection{wxCSConv::\destruct{wxCSConv}}\label{wxcsconvdtor}
Destructor frees any resources needed to perform the conversion.
+\membersection{wxCSConv::IsOk}\label{wxcsconvisok}
+
+\constfunc{bool}{IsOk}{\void}
+
+Returns \true if the charset (or the encoding) given at constructor is really
+available to use. Returns \false if ISO 8859-1 will be used instead.
+
+Note this does \emph{not} mean that a given string will be correctly converted.
+A malformed string may still make conversion functions return \texttt{wxCONV\_FAILED}.
+
+\newsince{2.8.2}
+
+
\membersection{wxCSConv::MB2WC}\label{wxcsconvmb2wc}
\constfunc{size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}}
Converts from the selected character set to Unicode. Returns length of string written to destination buffer.
+
\membersection{wxCSConv::WC2MB}\label{wxcsconvwc2mb}
\constfunc{size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}}
void Clear();
+#if wxABI_VERSION >= 20802
+ // return true if the conversion could be initilized successfully
+ bool IsOk() const;
+#endif // wx 2.8.2+
+
private:
// common part of all ctors
void Init();
}
}
+bool wxCSConv::IsOk() const
+{
+ CreateConvIfNeeded();
+
+ // special case: no convReal created for wxFONTENCODING_ISO8859_1
+ if ( m_encoding == wxFONTENCODING_ISO8859_1 )
+ return true; // always ok as we do it ourselves
+
+ // m_convReal->IsOk() is called at its own creation, so we know it must
+ // be ok if m_convReal is non-NULL
+ return m_convReal != NULL;
+}
+
size_t wxCSConv::ToWChar(wchar_t *dst, size_t dstLen,
const char *src, size_t srcLen) const
{
CPPUNIT_TEST( ConversionUTF8 );
CPPUNIT_TEST( ConversionUTF16 );
CPPUNIT_TEST( ConversionUTF32 );
+ CPPUNIT_TEST( IsConvOk );
#endif // wxUSE_WCHAR_T
CPPUNIT_TEST_SUITE_END();
void ConversionUTF8();
void ConversionUTF16();
void ConversionUTF32();
+ void IsConvOk();
// test if converting s using the given encoding gives ws and vice versa
//
CPPUNIT_ASSERT_EQUAL( (size_t)3, len );
}
+void UnicodeTestCase::IsConvOk()
+{
+ CPPUNIT_ASSERT( wxCSConv(wxFONTENCODING_SYSTEM).IsOk() );
+ CPPUNIT_ASSERT( wxCSConv(_T("UTF-8")).IsOk() );
+ CPPUNIT_ASSERT( !wxCSConv(_T("NoSuchConversion")).IsOk() );
+
+#ifdef __WINDOWS__
+ CPPUNIT_ASSERT( wxCSConv(_T("WINDOWS-437")).IsOk() );
+#endif
+}
+
#endif // wxUSE_WCHAR_T