s.AddChild(win_object->GetValidator());
// BAD HACK, but I don't have access to the internal variable of wxWindow.
- m_bg_colour = win_object->GetDefaultBackgroundColour();
- m_fg_colour = win_object->GetDefaultForegroundColour();
+ m_bg_colour = win_object->GetBackgroundColour();
+ m_fg_colour = win_object->GetForegroundColour();
s.AddChild(&m_bg_colour);
s.AddChild(&m_fg_colour);
s.AddChild(win_object->GetFont());
wxWindow *win_object = (wxWindow *)Object();
wxColour *colour;
wxFont *font;
- int number;
+
+ if (s.SecondCall()) {
+ /* I assume we will never create raw wxWindow object */
+ (void)s.GetChild(); // We pass wxLayoutConstraints.
+ (void)s.GetChild(); // We pass wxValidator.
+
+ colour = (wxColour *)s.GetChild();
+ if (colour)
+ win_object->SetBackgroundColour(*colour);
+ colour = (wxColour *)s.GetChild();
+ if (colour)
+ win_object->SetForegroundColour(*colour);
+ font = (wxFont *)s.GetChild();
+ if (font)
+ win_object->SetFont(*font);
+ s.RemoveChildren(m_number);
+ return;
+ }
m_parent = (wxWindow *)s.GetParent();
m_shown = data_s.Read8();
m_style = data_s.Read32();
m_id = data_s.Read32();
- number = data_s.Read8();
+ m_number = data_s.Read8();
m_x = data_s.Read16();
m_y = data_s.Read16();
m_w = data_s.Read16();
m_h = data_s.Read16();
- /* I assume we will never create raw wxWindow object */
(void)s.GetChild(); // We pass wxLayoutConstraints.
-
+
m_validator = (wxValidator *)s.GetChild();
if (!m_validator)
m_validator = (wxValidator *)&wxDefaultValidator;
- colour = (wxColour *)s.GetChild();
- if (colour)
- win_object->SetDefaultBackgroundColour(*colour);
- colour = (wxColour *)s.GetChild();
- if (colour)
- win_object->SetDefaultForegroundColour(*colour);
- font = (wxFont *)s.GetChild();
- if (font)
- win_object->SetFont(*font);
+ s.RemoveChildren(m_number+3);
- s.RemoveChildren(number);
+ s.Recall();
return;
}
WXSERIAL(wxWindow)::LoadObject(s);
+ if (s.SecondCall())
+ return;
+
wxDataInputStream data_s(s);
- frame->SetMenuBar(mbar);
if (frame->GetClassInfo() == CLASSINFO(wxFrame))
frame->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y),
wxSize(m_w, m_h), m_style, m_name);
+ frame->SetMenuBar(mbar);
frame->CreateStatusBar(data_s.Read8());
}
wxMenuItem *item = (wxMenuItem *)Object();
if (s.FirstStage()) {
+#ifdef __WXGTK__
s.AddChild(item->GetSubMenu());
+#endif
return;
}
wxDataOutputStream data_s(s);
+#ifdef __WXGTK__
data_s.Write8( item->GetId() );
data_s.WriteString( item->GetText() );
data_s.Write8( item->IsCheckable() );
data_s.Write8( item->IsEnabled() );
data_s.Write8( item->IsChecked() );
+#endif
}
void WXSERIAL(wxMenuItem)::LoadObject(wxObjectInputStream& s)
wxMenuItem *item = (wxMenuItem *)Object();
wxDataInputStream data_s(s);
+#ifdef __WXGTK__
item->SetId( data_s.Read8() );
item->SetText( data_s.ReadString() );
item->SetCheckable( data_s.Read8() );
item->Enable( data_s.Read8() );
item->Check( data_s.Read8() );
item->SetSubMenu( (wxMenu *)s.GetChild() );
+#endif
}
/////////////////////////////////////////////////////////////////////////////
{
WXSERIAL(wxWindow)::LoadObject(s);
+ if (s.SecondCall())
+ return;
+
((wxPanel *)Object())->Create(m_parent, m_id, wxPoint(m_x, m_y),
wxSize(m_w, m_h), m_style, m_name);
}
{
WXSERIAL(wxWindow)::LoadObject(s);
+ if (s.SecondCall())
+ return;
+
((wxDialog *)Object())->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y),
wxSize(m_w, m_h), m_style, m_name);
}
wxMDIParentFrame *frame = (wxMDIParentFrame *)Object();
wxMDIClientWindow *client;
+ if (s.SecondCall()) {
+ WXSERIAL(wxFrame)::LoadObject(s);
+ return;
+ }
+
client = (wxMDIClientWindow *) s.GetChild();
frame->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y),
{
WXSERIAL(wxFrame)::LoadObject(s);
+ if (s.SecondCall())
+ return;
+
((wxMDIChildFrame *)Object())->Create((wxMDIParentFrame *)m_parent,
m_id, m_title,
wxPoint(m_x, m_y), wxSize(m_w, m_h),
{
WXSERIAL(wxWindow)::LoadObject(s);
+ if (s.SecondCall())
+ return;
+
((wxMDIClientWindow *)Object())->CreateClient((wxMDIParentFrame *)m_parent, m_style);
}