X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/123a7fddb89d0d39f8c280aea95182d054c8887b..af01f1ba0d697c07173f436ab661b4c833258a91:/utils/serialize/serext.cpp diff --git a/utils/serialize/serext.cpp b/utils/serialize/serext.cpp index da6d92785a..aaddb4066a 100644 --- a/utils/serialize/serext.cpp +++ b/utils/serialize/serext.cpp @@ -13,12 +13,16 @@ #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) { @@ -69,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); +}