* Some new feature in wxObject*Stream (objects aren't duplicated)

* Added SetBackgroundBrush in wxGridCell
* New classes/fixes in wxSerial


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Guilhem Lavaux
1998-08-19 18:33:19 +00:00
parent 4c444f19cf
commit 8d43638db1
13 changed files with 262 additions and 43 deletions

View File

@@ -13,12 +13,16 @@
#pragma implementation "serext.h"
#endif
#include "serext.h"
#include <wx/wx.h>
#include <wx/splitter.h>
#include <wx/grid.h>
#include <wx/objstrm.h>
#include <wx/datstrm.h>
#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;r<n_rows;r++)
for (c=0;c<n_cols;c++)
s.AddChild( grid->GetCell(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);
}