From cd25b18c8e7e8d77b1a5847f289afec6e114fbd5 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 24 Jul 1999 10:50:13 +0000 Subject: [PATCH] Renamed wxStream::StreamSize() to wxStream::GetSize() Add wxStream bool operator !(). Made wxTextStream safe for conversion from/to Mac/DOS/Unix Added wxFrame::Iconize() Applied patch for stippled brushes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3117 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/frame.h | 8 +- include/wx/gtk1/frame.h | 8 +- include/wx/mstream.h | 4 +- include/wx/stream.h | 7 +- include/wx/txtstrm.h | 5 +- include/wx/wfstream.h | 4 +- src/common/imagjpeg.cpp | 6 +- src/common/mstream.cpp | 4 +- src/common/txtstrm.cpp | 474 +++++++++++++++++++++++++--------------- src/common/wfstream.cpp | 4 +- src/gtk/dcclient.cpp | 9 +- src/gtk/frame.cpp | 23 ++ src/gtk1/dcclient.cpp | 9 +- src/gtk1/frame.cpp | 23 ++ 14 files changed, 387 insertions(+), 201 deletions(-) diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h index b69144382b..4470508567 100644 --- a/include/wx/gtk/frame.h +++ b/include/wx/gtk/frame.h @@ -91,11 +91,11 @@ public: virtual void MakeModal(bool modal = TRUE); virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } bool Iconized() const { return IsIconized(); } - virtual void Maximize(bool WXUNUSED(maximize)) {} - virtual void Restore() {} + virtual void Maximize( bool maximize ); + virtual void Restore(); + virtual void Iconize( bool iconize ); + virtual bool IsIconized() const; virtual void Command( int id ); diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h index b69144382b..4470508567 100644 --- a/include/wx/gtk1/frame.h +++ b/include/wx/gtk1/frame.h @@ -91,11 +91,11 @@ public: virtual void MakeModal(bool modal = TRUE); virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } bool Iconized() const { return IsIconized(); } - virtual void Maximize(bool WXUNUSED(maximize)) {} - virtual void Restore() {} + virtual void Maximize( bool maximize ); + virtual void Restore(); + virtual void Iconize( bool iconize ); + virtual bool IsIconized() const; virtual void Command( int id ); diff --git a/include/wx/mstream.h b/include/wx/mstream.h index c16cfea2ed..61a9df7eff 100644 --- a/include/wx/mstream.h +++ b/include/wx/mstream.h @@ -22,7 +22,7 @@ class wxMemoryInputStream: public wxInputStream { public: wxMemoryInputStream(const char *data, size_t length); virtual ~wxMemoryInputStream(); - virtual size_t StreamSize() const { return m_length; } + virtual size_t GetSize() const { return m_length; } char Peek(); @@ -41,7 +41,7 @@ class wxMemoryOutputStream: public wxOutputStream { public: wxMemoryOutputStream(char *data = NULL, size_t length = 0); virtual ~wxMemoryOutputStream(); - virtual size_t StreamSize() const { return m_o_streambuf->GetLastAccess(); } + virtual size_t GetSize() const { return m_o_streambuf->GetLastAccess(); } wxStreamBuffer *OutputStreamBuffer() const { return m_o_streambuf; } diff --git a/include/wx/stream.h b/include/wx/stream.h index 7e0045323c..a7b6783663 100644 --- a/include/wx/stream.h +++ b/include/wx/stream.h @@ -55,8 +55,9 @@ class WXDLLEXPORT wxStreamBase { wxStreamBase(); virtual ~wxStreamBase(); + bool operator!() const { return (LastError() != wxSTR_NOERROR); } wxStreamError LastError() const { return m_lasterror; } - virtual size_t StreamSize() const { return ~((size_t)0); } + virtual size_t GetSize() const { return ~((size_t)0); } protected: @@ -147,7 +148,7 @@ class WXDLLEXPORT wxFilterInputStream: public wxInputStream { char Peek() { return m_parent_i_stream->Peek(); } wxStreamError LastError() const { return m_parent_i_stream->LastError(); } - size_t StreamSize() const { return m_parent_i_stream->StreamSize(); } + size_t GetSize() const { return m_parent_i_stream->GetSize(); } protected: wxInputStream *m_parent_i_stream; @@ -160,7 +161,7 @@ class WXDLLEXPORT wxFilterOutputStream: public wxOutputStream { ~wxFilterOutputStream(); wxStreamError LastError() const { return m_parent_o_stream->LastError(); } - size_t StreamSize() const { return m_parent_o_stream->StreamSize(); } + size_t GetSize() const { return m_parent_o_stream->GetSize(); } protected: wxOutputStream *m_parent_o_stream; diff --git a/include/wx/txtstrm.h b/include/wx/txtstrm.h index 2fc0ac7aa7..5586707252 100644 --- a/include/wx/txtstrm.h +++ b/include/wx/txtstrm.h @@ -43,6 +43,9 @@ public: protected: wxInputStream *m_input; + + wxChar NextNonWhiteSpace(); + void SkipIfEndOfLine( wxChar c ); }; class WXDLLEXPORT wxTextOutputStream { @@ -55,7 +58,7 @@ class WXDLLEXPORT wxTextOutputStream { void Write8(wxUint8 i); void WriteDouble(double d); void WriteString(const wxString& string); - + wxTextOutputStream& operator<<(const wxChar *string); wxTextOutputStream& operator<<(const wxString& string); wxTextOutputStream& operator<<(wxChar c); diff --git a/include/wx/wfstream.h b/include/wx/wfstream.h index 65313efd05..efd9317e1f 100644 --- a/include/wx/wfstream.h +++ b/include/wx/wfstream.h @@ -33,7 +33,7 @@ class wxFileInputStream: public wxInputStream { ~wxFileInputStream(); char Peek(); - size_t StreamSize() const; + size_t GetSize() const; bool Ok() const { return m_file->IsOpened(); } @@ -61,7 +61,7 @@ class wxFileOutputStream: public wxOutputStream { // { return wxOutputStream::Write(buffer, size); } void Sync(); - size_t StreamSize() const; + size_t GetSize() const; bool Ok() const { return m_file->IsOpened(); } diff --git a/src/common/imagjpeg.cpp b/src/common/imagjpeg.cpp index 9a82b1029a..04de921c97 100644 --- a/src/common/imagjpeg.cpp +++ b/src/common/imagjpeg.cpp @@ -106,10 +106,10 @@ void jpeg_wxio_src( j_decompress_ptr cinfo, wxInputStream& infile ) src = (my_src_ptr) cinfo->src; } src = (my_src_ptr) cinfo->src; - src->pub.bytes_in_buffer = infile.StreamSize(); /* forces fill_input_buffer on first read */ - src->buffer = (JOCTET *) malloc (infile.StreamSize()); + src->pub.bytes_in_buffer = infile.GetSize(); /* forces fill_input_buffer on first read */ + src->buffer = (JOCTET *) malloc (infile.GetSize()); src->pub.next_input_byte = src->buffer; /* until buffer loaded */ - infile.Read(src->buffer, infile.StreamSize()); + infile.Read(src->buffer, infile.GetSize()); src->pub.init_source = my_init_source; src->pub.fill_input_buffer = my_fill_input_buffer; diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp index 04501d5e5d..8e81abd394 100644 --- a/src/common/mstream.cpp +++ b/src/common/mstream.cpp @@ -104,8 +104,8 @@ size_t wxMemoryOutputStream::CopyTo(char *buffer, size_t len) const if (!buffer) return 0; - if (len > StreamSize()) - len = StreamSize(); + if (len > GetSize()) + len = GetSize(); memcpy(buffer, m_o_streambuf->GetBufferStart(), len); return len; diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp index 0522238cd7..e4d260bcf1 100644 --- a/src/common/txtstrm.cpp +++ b/src/common/txtstrm.cpp @@ -25,6 +25,19 @@ #include "wx/txtstrm.h" #include + +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +// Unix: "\n" +// Dos: "\r\n" +// Mac: "\r" + +// ---------------------------------------------------------------------------- +// wxTextInputStream +// ---------------------------------------------------------------------------- + wxTextInputStream::wxTextInputStream(wxInputStream& s) : m_input(&s) { @@ -34,154 +47,234 @@ wxTextInputStream::~wxTextInputStream() { } -wxUint32 wxTextInputStream::Read32() +wxChar wxTextInputStream::NextNonWhiteSpace() { - /* I only implemented a simple integer parser */ - int c; - int sign; - wxInt32 i; + wxChar c = (wxChar) 0; + for (;;) + { + c = m_input->GetC(); + if (!m_input) return (wxChar) 0; + + if (c != _T('\n') && + c != _T('\r') && + c != _T('\t') && + c != _T(' ')) + { + return c; + } + } + + // this shouldn't happen + return (wxChar) 0; +} - while (isspace( c = m_input->GetC() ) ) - /* Do nothing */ ; +void wxTextInputStream::SkipIfEndOfLine( wxChar c ) +{ + if (c == _T('\n')) + { + // eat on UNIX + return; + } + + if (c == _T('\r')) + { + // eat on both Mac and DOS + + wxChar c2 = m_input->GetC(); + if (!m_input) return; + + if (c2 == _T('\n')) + { + // eat on DOS + return; + } + else + { + // Don't eat on Mac + m_input->Ungetch( c2 ); + } + } + else + { + // no line terminator + m_input->Ungetch( c ); + } +} - i = 0; - if (! (c == '-' || isdigit(c)) ) { - m_input->Ungetch(c); - return 0; - } +wxUint32 wxTextInputStream::Read32() +{ + /* I only implemented a simple integer parser */ + int sign; + wxInt32 i; + + int c = NextNonWhiteSpace(); + if (!m_input) return 0; + + i = 0; + if (! (c == _T('-') || c == _T('+') || isdigit(c)) ) + { + m_input->Ungetch(c); + return 0; + } - if (c == '-') { - sign = -1; - c = m_input->GetC(); - } else if (c == '+') { - sign = 1; - c = m_input->GetC(); - } else { - sign = 1; - } + if (c == _T('-')) + { + sign = -1; + c = m_input->GetC(); + } else + if (c == _T('+')) + { + sign = 1; + c = m_input->GetC(); + } else + { + sign = 1; + } - while (isdigit(c)) { - i = i*10 + (c - (int)'0'); - c = m_input->GetC(); - } + while (isdigit(c)) + { + i = i*10 + (c - (int)_T('0')); + c = m_input->GetC(); + } - if (c != '\n' && c != '\r') - m_input->Ungetch(c); + SkipIfEndOfLine( c ); - i *= sign; + i *= sign; - return (wxUint32)i; + return (wxUint32)i; } wxUint16 wxTextInputStream::Read16() { - return (wxUint16)Read32(); + return (wxUint16)Read32(); } wxUint8 wxTextInputStream::Read8() { - return (wxUint8)Read32(); + return (wxUint8)Read32(); } double wxTextInputStream::ReadDouble() { - /* I only implemented a simple float parser */ - double f; - int c, sign; - - while (isspace( c = m_input->GetC() ) || c == '\n' || c == '\r') - /* Do nothing */ ; - - f = 0.0; - if (! (c == '-' || isdigit(c)) ) { - m_input->Ungetch(c); - return 0.0; - } - - if (c == '-') { - sign = -1; - c = m_input->GetC(); - } else if (c == '+') { - sign = 1; - c = m_input->GetC(); - } else { - sign = 1; - } - - while (isdigit(c)) { - f = f*10 + (c - '0'); - c = m_input->GetC(); - } - - if (c == '.') { - double f_multiplicator = (double) 0.1; - - c = m_input->GetC(); - - while (isdigit(c)) { - f += (c-'0')*f_multiplicator; - f_multiplicator /= 10; - c = m_input->GetC(); + /* I only implemented a simple float parser */ + double f; + int sign; + + int c = NextNonWhiteSpace(); + if (!m_input) return 0.0; + + f = 0.0; + if (! (c == _T('.') || c == _T('-') || c == _T('+') || isdigit(c)) ) + { + m_input->Ungetch(c); + return 0.0; + } + + if (c == _T('-')) + { + sign = -1; + c = m_input->GetC(); + } else + if (c == _T('+')) + { + sign = 1; + c = m_input->GetC(); + } + else + { + sign = 1; + } + + while (isdigit(c)) + { + f = f*10 + (c - _T('0')); + c = m_input->GetC(); } - if (c == 'e') { - double f_multiplicator = 0.0; - int i, e; + if (c == _T('.')) + { + double f_multiplicator = (double) 0.1; - c = m_input->GetC(); + c = m_input->GetC(); - switch(c) { - case '-': - f_multiplicator = 0.1; - break; - case '+': - f_multiplicator = 10.0; - break; - } + while (isdigit(c)) + { + f += (c-_T('0'))*f_multiplicator; + f_multiplicator /= 10; + c = m_input->GetC(); + } - e = Read8(); + if (c == _T('e')) + { + double f_multiplicator = 0.0; + int i, e; - for (i=0;iUngetch(c); - - } + c = m_input->GetC(); - f *= sign; + switch (c) + { + case _T('-'): f_multiplicator = 0.1; break; + case _T('+'): f_multiplicator = 10.0; break; + } - return f; + e = Read8(); // why only max 256 ? + + for (i=0;iUngetch(c); + } + + f *= sign; + + return f; } wxString wxTextInputStream::ReadString() { - char c, last_endl = 0; - bool end_line = FALSE; - wxString line; - - while (!end_line) { - c = m_input->GetC(); - if (m_input->LastError() != wxStream_NOERROR) - break; - - switch (c) { - case '\n': - end_line = TRUE; - break; - case '\r': - last_endl = '\r'; - break; - default: - if (last_endl == '\r') { - end_line = TRUE; - m_input->Ungetch(c); - break; - } - line += c; - break; - } - } - return line; + wxChar c; + wxString line; + + for (;;) + { + c = m_input->GetC(); + if (!m_input) break; + + if (c == _T('\n')) + { + // eat on UNIX + break; + } + + if (c == _T('\r')) + { + // eat on both Mac and DOS + + wxChar c2 = m_input->GetC(); + if (!m_input) break; + + if (c2 == _T('\n')) + { + // eat on DOS + break; + } + else + { + // Don't eat on Mac + m_input->Ungetch( c2 ); + break; + } + } + + line += c; + } + + return line; } wxTextInputStream& wxTextInputStream::operator>>(wxString& line) @@ -192,47 +285,67 @@ wxTextInputStream& wxTextInputStream::operator>>(wxString& line) wxTextInputStream& wxTextInputStream::operator>>(wxChar& c) { - // TODO -/* - m_input->Read(&c, sizeof(wxChar)); -*/ - return *this; + wxChar c1 = m_input->GetC(); + if (!m_input) + { + c = (wxChar) 0; + return *this; + } + + if (c1 == _T('\r')) + { + c = _T('\n'); + wxChar c2 = m_input->GetC(); + if (!m_input) return *this; + + if (c2 != _T('\n')) + { + // we are on a Mac + m_input->Ungetch( c2 ); + } + } + else + { + c = c1; + } + + return *this; } wxTextInputStream& wxTextInputStream::operator>>(wxInt16& i) { - i = (wxInt16)Read16(); - return *this; + i = (wxInt16)Read16(); + return *this; } wxTextInputStream& wxTextInputStream::operator>>(wxInt32& i) { - i = (wxInt32)Read32(); - return *this; + i = (wxInt32)Read32(); + return *this; } wxTextInputStream& wxTextInputStream::operator>>(wxUint16& i) { - i = Read16(); - return *this; + i = Read16(); + return *this; } wxTextInputStream& wxTextInputStream::operator>>(wxUint32& i) { - i = Read32(); - return *this; + i = Read32(); + return *this; } wxTextInputStream& wxTextInputStream::operator>>(double& i) { - i = ReadDouble(); - return *this; + i = ReadDouble(); + return *this; } wxTextInputStream& wxTextInputStream::operator>>(float& f) { - f = (float)ReadDouble(); - return *this; + f = (float)ReadDouble(); + return *this; } wxTextOutputStream::wxTextOutputStream(wxOutputStream& s) @@ -246,100 +359,117 @@ wxTextOutputStream::~wxTextOutputStream() void wxTextOutputStream::Write32(wxUint32 i) { - wxString str; - - str.Printf(_T("%u"), i); - WriteString(str); + wxString str; + str.Printf(_T("%u"), i); + + WriteString(str); } void wxTextOutputStream::Write16(wxUint16 i) { - wxString str; - - str.Printf(_T("%u"), i); - WriteString(str); + wxString str; + str.Printf(_T("%u"), i); + + WriteString(str); } void wxTextOutputStream::Write8(wxUint8 i) { - wxString str; - - str.Printf(_T("%u"), i); - WriteString(str); + wxString str; + str.Printf(_T("%u"), i); + + WriteString(str); } void wxTextOutputStream::WriteDouble(double d) { - wxString str; + wxString str; - str.Printf(_T("%f"), d); - WriteString(str); + str.Printf(_T("%f"), d); + WriteString(str); } void wxTextOutputStream::WriteString(const wxString& string) { -#if wxUSE_UNICODE - const wxWX2MBbuf buf = string.mb_str(); - m_output->Write(buf, string.Len()); + for (size_t i = 0; i < string.Len(); i++) + { + wxChar c = string[i]; + if (c == _T('\n')) + { +#if defined(__WINDOWS__) + c = _T('\r'); + m_output->Write( (const void*)(&c), sizeof(wxChar) ); + c = _T('\n'); + m_output->Write( (const void*)(&c), sizeof(wxChar) ); +#elif defined(__UNIX__) + c = _T('\n'); + m_output->Write( (const void*)(&c), sizeof(wxChar) ); +#elif defined(__WXMAC__) + c = _T('\r'); + m_output->Write( (const void*)(&c), sizeof(wxChar) ); #else - m_output->Write(string, string.Len()); + #error "wxTextOutputStream: unsupported platform." #endif + } + else + { + m_output->Write( (const void*)(&c), sizeof(wxChar) ); + } + } } wxTextOutputStream& wxTextOutputStream::operator<<(const wxChar *string) { - WriteString(wxString(string)); - return *this; + WriteString( wxString(string) ); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(const wxString& string) { - WriteString(string); - return *this; + WriteString( string ); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(wxChar c) { - wxString tmp_str; - tmp_str.Printf(_T("%c"), c); - WriteString(tmp_str); - return *this; + WriteString( wxString(c) ); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(wxInt16 c) { - Write16((wxUint16)c); - return *this; + Write16( (wxUint16)c ); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(wxInt32 c) { - Write32((wxUint32)c); - return *this; + Write32( (wxUint32)c ); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(wxUint16 c) { - Write16(c); - return *this; + Write16(c); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(wxUint32 c) { - Write32(c); - return *this; + Write32(c); + return *this; } wxTextOutputStream &wxTextOutputStream::operator<<(double f) { - WriteDouble(f); - return *this; + WriteDouble(f); + return *this; } wxTextOutputStream& wxTextOutputStream::operator<<(float f) { - WriteDouble((double)f); - return *this; + WriteDouble((double)f); + return *this; } #endif diff --git a/src/common/wfstream.cpp b/src/common/wfstream.cpp index 50c662d35c..3bf2a080ba 100644 --- a/src/common/wfstream.cpp +++ b/src/common/wfstream.cpp @@ -67,7 +67,7 @@ char wxFileInputStream::Peek() return 0; } -size_t wxFileInputStream::StreamSize() const +size_t wxFileInputStream::GetSize() const { return m_file->Length(); } @@ -161,7 +161,7 @@ void wxFileOutputStream::Sync() m_file->Flush(); } -size_t wxFileOutputStream::StreamSize() const +size_t wxFileOutputStream::GetSize() const { return m_file->Length(); } diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp index a28165297c..0df1276c4b 100644 --- a/src/gtk/dcclient.cpp +++ b/src/gtk/dcclient.cpp @@ -1010,7 +1010,7 @@ void wxWindowDC::SetBrush( const wxBrush &brush ) if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) { if (m_brush.GetStipple()->GetPixmap()) - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetPixmap() ); + gdk_gc_set_tile( m_brushGC, m_brush.GetStipple()->GetPixmap() ); else gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); } @@ -1055,9 +1055,12 @@ void wxWindowDC::SetBackground( const wxBrush &brush ) gdk_gc_set_fill( m_bgGC, fillStyle ); - if (m_backgroundBrush.GetStyle() == wxSTIPPLE) + if ((m_backgroundBrush.GetStyle() == wxSTIPPLE) && (m_backgroundBrush.GetStipple()->Ok())) { - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); + if (m_brush.GetStipple()->GetPixmap()) + gdk_gc_set_tile( m_bgGC, m_brush.GetStipple()->GetPixmap() ); + else + gdk_gc_set_stipple( m_bgGC, m_brush.GetStipple()->GetBitmap() ); } if (IS_HATCH(m_backgroundBrush.GetStyle())) diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 61259fad4b..c0ebd7fe34 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -29,6 +29,7 @@ #include "gtk/gtk.h" #include "wx/gtk/win_gtk.h" #include "gdk/gdkkeysyms.h" +#include "gdk/gdkx.h" //----------------------------------------------------------------------------- // constants @@ -1043,3 +1044,25 @@ void wxFrame::SetIcon( const wxIcon &icon ) gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); } +void wxFrame::Maximize(bool WXUNUSED(maximize)) +{ +} + +void wxFrame::Restore() +{ +} + +void wxFrame::Iconize( bool iconize ) +{ + if (iconize) + { + XIconifyWindow( GDK_WINDOW_XDISPLAY( m_widget->window ), + GDK_WINDOW_XWINDOW( m_widget->window ), + DefaultScreen( GDK_DISPLAY() ) ); + } +} + +bool wxFrame::IsIconized() const +{ + return FALSE; +} diff --git a/src/gtk1/dcclient.cpp b/src/gtk1/dcclient.cpp index a28165297c..0df1276c4b 100644 --- a/src/gtk1/dcclient.cpp +++ b/src/gtk1/dcclient.cpp @@ -1010,7 +1010,7 @@ void wxWindowDC::SetBrush( const wxBrush &brush ) if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) { if (m_brush.GetStipple()->GetPixmap()) - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetPixmap() ); + gdk_gc_set_tile( m_brushGC, m_brush.GetStipple()->GetPixmap() ); else gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); } @@ -1055,9 +1055,12 @@ void wxWindowDC::SetBackground( const wxBrush &brush ) gdk_gc_set_fill( m_bgGC, fillStyle ); - if (m_backgroundBrush.GetStyle() == wxSTIPPLE) + if ((m_backgroundBrush.GetStyle() == wxSTIPPLE) && (m_backgroundBrush.GetStipple()->Ok())) { - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); + if (m_brush.GetStipple()->GetPixmap()) + gdk_gc_set_tile( m_bgGC, m_brush.GetStipple()->GetPixmap() ); + else + gdk_gc_set_stipple( m_bgGC, m_brush.GetStipple()->GetBitmap() ); } if (IS_HATCH(m_backgroundBrush.GetStyle())) diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp index 61259fad4b..c0ebd7fe34 100644 --- a/src/gtk1/frame.cpp +++ b/src/gtk1/frame.cpp @@ -29,6 +29,7 @@ #include "gtk/gtk.h" #include "wx/gtk/win_gtk.h" #include "gdk/gdkkeysyms.h" +#include "gdk/gdkx.h" //----------------------------------------------------------------------------- // constants @@ -1043,3 +1044,25 @@ void wxFrame::SetIcon( const wxIcon &icon ) gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); } +void wxFrame::Maximize(bool WXUNUSED(maximize)) +{ +} + +void wxFrame::Restore() +{ +} + +void wxFrame::Iconize( bool iconize ) +{ + if (iconize) + { + XIconifyWindow( GDK_WINDOW_XDISPLAY( m_widget->window ), + GDK_WINDOW_XWINDOW( m_widget->window ), + DefaultScreen( GDK_DISPLAY() ) ); + } +} + +bool wxFrame::IsIconized() const +{ + return FALSE; +} -- 2.45.2