X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9fdd83842f5ead4ef45852b9943df36c38b4d7d7..dee9ba58f5ca2104c0b5749f38a6a7d6ee7fe1cd:/utils/serialize/serext.cpp diff --git a/utils/serialize/serext.cpp b/utils/serialize/serext.cpp index ce8c34d1fb..aaddb4066a 100644 --- a/utils/serialize/serext.cpp +++ b/utils/serialize/serext.cpp @@ -1,13 +1,28 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: serext.cpp +// Purpose: Serialization: Other classes +// Author: Guilhem Lavaux +// Modified by: +// Created: July 1998 +// RCS-ID: $Id$ +// Copyright: (c) 1998 Guilhem Lavaux +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + #ifdef __GNUG__ #pragma implementation "serext.h" #endif +#include "serext.h" +#include #include +#include #include #include -#include "serext.h" IMPLEMENT_SERIAL_CLASS(wxSplitterWindow, wxWindow) +IMPLEMENT_SERIAL_CLASS(wxGridCell, wxObject) +IMPLEMENT_SERIAL_CLASS(wxGrid, wxPanel) void WXSERIAL(wxSplitterWindow)::StoreObject(wxObjectOutputStream& s) { @@ -58,3 +73,65 @@ void WXSERIAL(wxSplitterWindow)::LoadObject(wxObjectInputStream& s) splitter->SetBorderSize(border_size); splitter->SetMinimumPaneSize(min_pane_size); } + +void WXSERIAL(wxGridCell)::StoreObject(wxObjectOutputStream& s) +{ + wxGridCell *cell = (wxGridCell *)Object(); + wxDataOutputStream data_s(s); + + if (s.FirstStage()) { + s.AddChild( cell->GetFont() ); + s.AddChild( cell->GetBackgroundBrush() ); + s.AddChild( cell->GetCellBitmap() ); + s.AddChild( &(cell->GetTextColour()) ); + s.AddChild( &(cell->GetBackgroundColour()) ); + return; + } + + data_s.WriteString( cell->GetTextValue() ); + data_s.Write16( cell->GetAlignment() ); +} + +void WXSERIAL(wxGridCell)::LoadObject(wxObjectInputStream& s) +{ + wxGridCell *cell = (wxGridCell *)Object(); + wxDataInputStream data_s(s); + + cell->SetTextValue( data_s.ReadString() ); + cell->SetAlignment( data_s.Read16() ); + cell->SetFont( (wxFont *)s.GetChild() ); + cell->SetBackgroundBrush( (wxBrush *)s.GetChild() ); + cell->SetCellBitmap( (wxBitmap *)s.GetChild() ); + cell->SetTextColour( *((wxColour *)s.GetChild()) ); + cell->SetBackgroundColour( *((wxColour *)s.GetChild()) ); +} + +void WXSERIAL(wxGrid)::StoreObject(wxObjectOutputStream& s) +{ + wxDataOutputStream data_s(s); + wxGrid *grid = (wxGrid *)Object(); + int n_rows = grid->GetRows(), n_cols = grid->GetCols(); + int r, c; + + if (s.FirstStage()) { + for (r=0;rGetCell(r, c) ); + + s.AddChild( grid->GetDividerPen() ); + WXSERIAL(wxPanel)::StoreObject(s); + return; + } + + data_s.Write16( n_rows ); + data_s.Write16( n_cols ); + data_s.Write16( grid->GetCursorRow() ); + data_s.Write16( grid->GetCursorColumn() ); + + WXSERIAL(wxPanel)::StoreObject(s); +} + +void WXSERIAL(wxGrid)::LoadObject(wxObjectInputStream& s) +{ + WXSERIAL(wxPanel)::LoadObject(s); +}