]>
git.saurik.com Git - wxWidgets.git/blob - utils/serialize/sercore.cpp
2 #pragma implementation "sercore.h"
4 #include <wx/objstrm.h>
5 #include <wx/datstrm.h>
8 IMPLEMENT_SERIAL_CLASS(wxList
,wxObject
)
10 void WXSERIAL(wxList
)::StoreObject(wxObjectOutputStream
& s
)
12 wxList
*lst_object
= (wxList
*)Object();
13 wxNode
*node
= lst_object
->First();
17 s
.AddChild(node
->Data());
23 wxDataOutputStream
data_s(s
);
25 data_s
.Write8(lst_object
->destroy_data
);
26 data_s
.Write8(lst_object
->key_type
);
27 data_s
.Write32( lst_object
->Number() );
29 if (lst_object
->key_type
== wxKEY_INTEGER
) {
31 data_s
.Write32(node
->key
.integer
);
36 data_s
.WriteString(node
->key
.string
);
42 void WXSERIAL(wxList
)::LoadObject(wxObjectInputStream
& s
)
44 wxDataInputStream
data_s(s
);
45 wxList
*list
= (wxList
*)Object();
48 list
->DeleteContents( data_s
.Read8() );
49 list
->key_type
= data_s
.Read8();
50 number
= data_s
.Read32();
52 if (list
->key_type
== wxKEY_INTEGER
) {
53 for (i
=0;i
<number
;i
++)
54 list
->Append( data_s
.Read32(), s
.GetChild(i
) );
56 for (i
=0;i
<number
;i
++)
57 list
->Append( data_s
.ReadString(), s
.GetChild(i
) );