Added wxFFileStream base on wxFFile (as opposed to wxFile)
Implemented the "endl" thing for text streams, Corrected cursor display for text ctrls, Corrected the strange spin button behaviour when dynamically changing its range Corrcected bug in wxListBox when programmatically unselecting an item in multi-select mode (bug reports are getting esoteric) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3440 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -127,6 +127,7 @@ public:
|
||||
bool IsOwnGtkWindow( GdkWindow *window );
|
||||
void ApplyWidgetStyle();
|
||||
void CalculateScrollbar();
|
||||
void OnInternalIdle();
|
||||
|
||||
void SetModified() { m_modified = TRUE; }
|
||||
|
||||
|
@@ -127,6 +127,7 @@ public:
|
||||
bool IsOwnGtkWindow( GdkWindow *window );
|
||||
void ApplyWidgetStyle();
|
||||
void CalculateScrollbar();
|
||||
void OnInternalIdle();
|
||||
|
||||
void SetModified() { m_modified = TRUE; }
|
||||
|
||||
|
@@ -20,6 +20,14 @@
|
||||
|
||||
#if wxUSE_STREAMS
|
||||
|
||||
class WXDLLEXPORT wxTextInputStream;
|
||||
class WXDLLEXPORT wxTextOutputStream;
|
||||
|
||||
typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&);
|
||||
typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
|
||||
|
||||
WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
|
||||
|
||||
class WXDLLEXPORT wxTextInputStream {
|
||||
public:
|
||||
wxTextInputStream(wxInputStream& s);
|
||||
@@ -40,7 +48,9 @@ public:
|
||||
wxTextInputStream& operator>>(wxUint32& i);
|
||||
wxTextInputStream& operator>>(double& i);
|
||||
wxTextInputStream& operator>>(float& f);
|
||||
|
||||
|
||||
wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); }
|
||||
|
||||
protected:
|
||||
wxInputStream *m_input;
|
||||
|
||||
@@ -69,12 +79,12 @@ class WXDLLEXPORT wxTextOutputStream {
|
||||
wxTextOutputStream& operator<<(double f);
|
||||
wxTextOutputStream& operator<<(float f);
|
||||
|
||||
wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); }
|
||||
|
||||
protected:
|
||||
wxOutputStream *m_output;
|
||||
};
|
||||
|
||||
wxTextOutputStream &endl( wxTextOutputStream &stream );
|
||||
|
||||
#endif
|
||||
// wxUSE_STREAMS
|
||||
|
||||
|
@@ -24,6 +24,11 @@
|
||||
#include "wx/string.h"
|
||||
#include "wx/stream.h"
|
||||
#include "wx/file.h"
|
||||
#include "wx/ffile.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFileStream using wxFile
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFileInputStream: public wxInputStream {
|
||||
public:
|
||||
@@ -81,6 +86,65 @@ class wxFileStream: public wxFileInputStream, public wxFileOutputStream {
|
||||
wxFileStream(const wxString& fileName);
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxFFileStream using wxFFile
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
class wxFFileInputStream: public wxInputStream {
|
||||
public:
|
||||
wxFFileInputStream(const wxString& ifileName);
|
||||
wxFFileInputStream(wxFFile& file);
|
||||
wxFFileInputStream(FILE *file);
|
||||
~wxFFileInputStream();
|
||||
|
||||
size_t GetSize() const;
|
||||
|
||||
bool Ok() const { return m_file->IsOpened(); }
|
||||
|
||||
protected:
|
||||
wxFFileInputStream();
|
||||
|
||||
size_t OnSysRead(void *buffer, size_t size);
|
||||
off_t OnSysSeek(off_t pos, wxSeekMode mode);
|
||||
off_t OnSysTell() const;
|
||||
|
||||
protected:
|
||||
wxFFile *m_file;
|
||||
bool m_file_destroy;
|
||||
};
|
||||
|
||||
class wxFFileOutputStream: public wxOutputStream {
|
||||
public:
|
||||
wxFFileOutputStream(const wxString& fileName);
|
||||
wxFFileOutputStream(wxFFile& file);
|
||||
wxFFileOutputStream(FILE *file);
|
||||
virtual ~wxFFileOutputStream();
|
||||
|
||||
// To solve an ambiguity on GCC
|
||||
// inline wxOutputStream& Write(const void *buffer, size_t size)
|
||||
// { return wxOutputStream::Write(buffer, size); }
|
||||
|
||||
void Sync();
|
||||
size_t GetSize() const;
|
||||
|
||||
bool Ok() const { return m_file->IsOpened(); }
|
||||
|
||||
protected:
|
||||
wxFFileOutputStream();
|
||||
|
||||
size_t OnSysWrite(const void *buffer, size_t size);
|
||||
off_t OnSysSeek(off_t pos, wxSeekMode mode);
|
||||
off_t OnSysTell() const;
|
||||
|
||||
protected:
|
||||
wxFFile *m_file;
|
||||
bool m_file_destroy;
|
||||
};
|
||||
|
||||
class wxFFileStream: public wxFFileInputStream, public wxFFileOutputStream {
|
||||
public:
|
||||
wxFFileStream(const wxString& fileName);
|
||||
};
|
||||
#endif
|
||||
// wxUSE_STREAMS && wxUSE_FILE
|
||||
|
||||
|
Reference in New Issue
Block a user