]>
git.saurik.com Git - wxWidgets.git/blob - utils/serialize/sergdi.cpp
a73423430318ecf067a31d05879830698a47b31f
2 #pragma implementation "sergdi.h"
4 #include <wx/objstrm.h>
5 #include <wx/datstrm.h>
11 #include <wx/serbase.h>
14 IMPLEMENT_SERIAL_CLASS(wxBitmap
, wxObject
)
15 IMPLEMENT_SERIAL_CLASS(wxGDIObject
, wxObject
)
16 IMPLEMENT_SERIAL_CLASS(wxColour
, wxGDIObject
)
17 IMPLEMENT_SERIAL_CLASS(wxFont
, wxGDIObject
)
18 IMPLEMENT_SERIAL_CLASS(wxPen
, wxGDIObject
)
19 IMPLEMENT_SERIAL_CLASS(wxBrush
, wxGDIObject
)
21 IMPLEMENT_ALIAS_SERIAL_CLASS(wxPenList
, wxList
)
22 IMPLEMENT_ALIAS_SERIAL_CLASS(wxBrushList
, wxList
)
23 IMPLEMENT_ALIAS_SERIAL_CLASS(wxFontList
, wxList
)
24 IMPLEMENT_ALIAS_SERIAL_CLASS(wxColourDatabase
, wxList
)
25 IMPLEMENT_ALIAS_SERIAL_CLASS(wxBitmapList
, wxList
)
27 void WXSERIAL(wxBitmap
)::StoreObject(wxObjectOutputStream
& s
)
32 void WXSERIAL(wxBitmap
)::LoadObject(wxObjectInputStream
& s
)
37 void WXSERIAL(wxGDIObject
)::StoreObject(wxObjectOutputStream
& s
)
42 bool visible
= ((wxGDIObject
*)Object())->GetVisible();
44 wxDataOutputStream
data_s(s
);
45 data_s
.Write8(visible
);
48 void WXSERIAL(wxGDIObject
)::LoadObject(wxObjectInputStream
& s
)
50 wxDataInputStream
data_s(s
);
52 ((wxGDIObject
*)Object())->SetVisible( data_s
.Read8() );
55 void WXSERIAL(wxColour
)::StoreObject(wxObjectOutputStream
& s
)
57 WXSERIAL(wxGDIObject
)::StoreObject(s
);
62 wxDataOutputStream
data_s(s
);
63 wxColour
*colour
= (wxColour
*)Object();
65 data_s
.Write8(colour
->Red());
66 data_s
.Write8(colour
->Green());
67 data_s
.Write8(colour
->Blue());
70 void WXSERIAL(wxColour
)::LoadObject(wxObjectInputStream
& s
)
72 WXSERIAL(wxGDIObject
)::LoadObject(s
);
74 wxDataInputStream
data_s(s
);
75 wxColour
*colour
= (wxColour
*)Object();
85 void WXSERIAL(wxPen
)::StoreObject(wxObjectOutputStream
& s
)
87 wxPen
*pen
= (wxPen
*)Object();
88 WXSERIAL(wxGDIObject
)::StoreObject(s
);
91 s
.AddChild(& (pen
->GetColour()) );
95 wxDataOutputStream
data_s(s
);
97 data_s
.Write8( pen
->GetCap() );
98 data_s
.Write8( pen
->GetJoin() );
99 data_s
.Write8( pen
->GetStyle() );
100 data_s
.Write8( pen
->GetWidth() );
103 void WXSERIAL(wxPen
)::LoadObject(wxObjectInputStream
& s
)
105 wxPen
*pen
= (wxPen
*)Object();
106 wxColour
*col
= (wxColour
*) s
.GetChild(0);
110 WXSERIAL(wxGDIObject
)::LoadObject(s
);
112 wxDataInputStream
data_s(s
);
114 pen
->SetColour(*col
);
115 pen
->SetCap( data_s
.Read8() );
116 pen
->SetJoin( data_s
.Read8() );
117 pen
->SetStyle( data_s
.Read8() );
118 pen
->SetWidth( data_s
.Read8() );
121 void WXSERIAL(wxBrush
)::StoreObject(wxObjectOutputStream
& s
)
123 wxBrush
*brush
= (wxBrush
*)Object();
124 WXSERIAL(wxGDIObject
)::StoreObject(s
);
126 if (s
.FirstStage()) {
127 s
.AddChild( &(brush
->GetColour()) );
128 s
.AddChild( brush
->GetStipple() );
132 wxDataOutputStream
data_s(s
);
133 data_s
.Write8( brush
->GetStyle() );
136 void WXSERIAL(wxBrush
)::LoadObject(wxObjectInputStream
& s
)
138 wxBrush
*brush
= (wxBrush
*)Object();
139 wxColour
*col
= (wxColour
*)s
.GetChild(0);
140 wxBitmap
*bmap
= (wxBitmap
*)s
.GetChild(1);
144 WXSERIAL(wxGDIObject
)::LoadObject(s
);
146 wxDataInputStream
data_s(s
);
148 *brush
= wxBrush(*col
, data_s
.Read8());
150 *brush
= wxBrush(bmap
);
153 void WXSERIAL(wxFont
)::StoreObject(wxObjectOutputStream
& s
)
155 wxFont
*font
= (wxFont
*)Object();
157 WXSERIAL(wxGDIObject
)::StoreObject(s
);
162 wxDataOutputStream
data_s(s
);
164 data_s
.Write8( font
->GetPointSize() );
165 data_s
.WriteString( font
->GetFaceName() );
166 data_s
.Write8( font
->GetFamily() );
167 data_s
.Write8( font
->GetStyle() );
168 data_s
.Write8( font
->GetWeight() );
169 data_s
.Write8( font
->GetUnderlined() );
172 void WXSERIAL(wxFont
)::LoadObject(wxObjectInputStream
& s
)
174 wxFont
*font
= (wxFont
*)Object();
176 WXSERIAL(wxGDIObject
)::LoadObject(s
);
178 wxDataInputStream
data_s(s
);
179 int psize
, family
, style
, weight
;
183 psize
= data_s
.Read8();
184 face_name
= data_s
.ReadString();
185 family
= data_s
.Read8();
186 style
= data_s
.Read8();
187 weight
= data_s
.Read8();
188 underlined
= data_s
.Read8();
190 *font
= wxFont(psize
, face_name
, family
, style
, weight
, underlined
);