]>
git.saurik.com Git - wxWidgets.git/blob - utils/serialize/serext.cpp
2 #pragma implementation "serext.h"
5 #include <wx/splitter.h>
6 #include <wx/objstrm.h>
7 #include <wx/datstrm.h>
10 IMPLEMENT_SERIAL_CLASS(wxSplitterWindow
, wxWindow
)
12 void WXSERIAL(wxSplitterWindow
)::StoreObject(wxObjectOutputStream
& s
)
14 wxSplitterWindow
*splitter
= (wxSplitterWindow
*)Object();
15 WXSERIAL(wxWindow
)::StoreObject(s
);
18 s
.AddChild( splitter
->GetWindow1() );
19 s
.AddChild( splitter
->GetWindow2() );
23 wxDataOutputStream
data_s(s
);
24 data_s
.Write8( splitter
->GetSplitMode() );
25 data_s
.Write32( splitter
->GetSashSize() );
26 data_s
.Write8( splitter
->GetBorderSize() );
27 data_s
.Write32( splitter
->GetSashPosition() );
28 data_s
.Write32( splitter
->GetMinimumPaneSize() );
31 void WXSERIAL(wxSplitterWindow
)::LoadObject(wxObjectInputStream
& s
)
33 wxSplitterWindow
*splitter
= (wxSplitterWindow
*)Object();
34 WXSERIAL(wxWindow
)::LoadObject(s
);
36 wxDataInputStream
data_s(s
);
37 int split_mode
, sash_size
, border_size
, sash_position
, min_pane_size
;
39 split_mode
= data_s
.Read8();
40 sash_size
= data_s
.Read32();
41 border_size
= data_s
.Read8();
42 sash_position
= data_s
.Read32();
43 min_pane_size
= data_s
.Read32();
45 splitter
->Create(m_parent
, m_id
, wxPoint(m_x
, m_y
), wxSize(m_w
, m_h
), m_style
,
49 if (data_s
.Read8() == wxSPLIT_VERTICAL
)
50 splitter
->SplitVertically((wxWindow
*)s
.GetChild(0),
51 (wxWindow
*)s
.GetChild(1), sash_position
);
53 splitter
->SplitHorizontally((wxWindow
*)s
.GetChild(0),
54 (wxWindow
*)s
.GetChild(1), sash_position
);
57 splitter
->SetSashSize(sash_size
);
58 splitter
->SetBorderSize(border_size
);
59 splitter
->SetMinimumPaneSize(min_pane_size
);