df/wxSlider.df df/wxSpinButton.df df/wxSpinCtrl.df \
df/wxStaticBitmap.df df/wxStaticBox.df df/wxStaticBoxSizer.df \
df/wxStaticLine.df df/wxStaticText.df df/wxTextCtrl.df \
- df/wxToolBar.df df/wxTreeCtrl.df
+ df/wxToolBar.df df/wxTreeCtrl.df df/wxFrame.df
APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
APPEXTRADEFS=-I$(top_srcdir)/contrib/include
--- /dev/null
+node wxFrame
+type panel
+icon 1
+var title of text
+var style of flags wxSTAY_ON_TOP,wxCAPTION,wxDEFAULT_FRAME_STYLE,wxSYSTEM_MENU,wxRESIZE_BORDER,wxICONIZE,wxMINIMIZE,wxMINIMIZE_BOX,wxMAXIMIZE,wxMAXIMIZE_BOX,wxSIMPLE_BORDER,wxFRAME_TOOL_WINDOW,wxFRAME_NO_TASKBAR,wxFRAME_FLOAT_ON_PARENT
+var exstyle of flags wxFRAME_EX_CONTEXTHELP
+var centered of bool
+derived from panelbase
UpgradeNode(node);
}
node->DeleteProperty(wxT("version"));
- node->AddProperty(wxT("version"), wxT(WX_XMLRES_CURRENT_VERSION_STRING));
+ node->AddProperty(wxT("version"), WX_XMLRES_CURRENT_VERSION_STRING);
}
ID_COPY,
ID_NEWDIALOG,
+ ID_NEWFRAME,
ID_NEWPANEL,
ID_NEWMENU,
ID_NEWMENUBAR,
m_FileName = "";
m_Resource = new wxXmlRcEditDocument;
m_Resource->SetRoot(new wxXmlNode(wxXML_ELEMENT_NODE, _("resource")));
+
+ m_Resource->SetFileEncoding("utf-8");
+ m_Resource->GetRoot()->AddProperty(_T("version"),
+ WX_XMLRES_CURRENT_VERSION_STRING);
+
m_Modified = FALSE;
RefreshTree();
RefreshTitle();
wxXmlNode *sel = m_SelectedNode;
m_TreeCtrl->DeleteAllItems();
+
wxTreeItemId root = m_TreeCtrl->AddRoot("Resource: " + wxFileNameFromPath(m_FileName), 5, 5);
wxXmlNode *n = m_Resource->GetRoot()->GetChildren();
switch (event.GetId())
{
case ID_NEWDIALOG : name = _T("wxDialog"); break;
+ case ID_NEWFRAME : name = _T("wxFrame"); break;
case ID_NEWPANEL : name = _T("wxPanel"); break;
case ID_NEWMENU : name = _T("wxMenu"); break;
case ID_NEWMENUBAR : name = _T("wxMenuBar"); break;
if (m_SelectedNode == NULL || m_SelectedNode == m_Resource->GetRoot())
{
popup->Append(ID_NEWDIALOG, _("New wxDialog"));
+ popup->Append(ID_NEWFRAME, _("New wxFrame"));
popup->Append(ID_NEWPANEL, _("New wxPanel"));
popup->Append(ID_NEWMENU, _("New wxMenu"));
popup->Append(ID_NEWMENUBAR, _("New wxMenuBar"));
clr = wxColour((tmp & 0xFF0000) >> 16,
(tmp & 0x00FF00) >> 8,
(tmp & 0x0000FF));
+
clr = wxGetColourFromUser(NULL, clr);
if (clr.Ok())
{
if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog"))
XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
+ if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxFrame"))
+ XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
+
doc.Save(m_TmpFile);
// wxXmlResource will detect change automatically
}
PreviewToolbar();
else if (XmlGetClass(node) == _T("wxPanel") || XmlGetClass(node) == _T("wxDialog"))
PreviewPanel();
-
+ else if (XmlGetClass(node) == _T("wxFrame"))
+ PreviewWXFrame();
+
wxSetWorkingDirectory(oldcwd);
wxLog::SetActiveTarget(oldlog);
void PreviewFrame::PreviewPanel()
{
wxPanel *panel = m_RC->LoadPanel(m_ScrollWin, m_Node->GetPropVal(_T("name"), _T("-1")));
-
+
if (panel == NULL)
wxLogError(_("Cannot preview the panel -- XML resource corrupted."));
else
}
}
+void PreviewFrame::PreviewWXFrame()
+{
+ //for this to work the frame MUST have a child panel!
+
+ wxXmlNode* child = m_Node;
+ wxString name;
+
+ while( child != NULL)
+ {
+ name = child->GetPropVal(_T("name"), _T("-1"));
+
+ if(name != _T("-1"))
+ {
+ wxXmlNode* parent = child->GetParent();
+ if(parent->GetPropVal(_T("class"),_T("-1")) == _T("wxPanel"))
+ break;
+ }
+ child = child->GetNext();
+ }
+
+ wxPanel *panel = m_RC->LoadPanel(m_ScrollWin, name);
+
+ if (panel == NULL)
+ wxLogError(_("Cannot preview the panel -- XML resource corrupted."));
+ else
+ {
+ m_ScrollWin->SetScrollbars(1, 1, panel->GetSize().x, panel->GetSize().y,
+ 0, 0, TRUE);
+ }
+
+}
BEGIN_EVENT_TABLE(PreviewFrame, wxFrame)
EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
void PreviewMenu();
void PreviewToolbar();
void PreviewPanel();
+ void PreviewWXFrame();
private:
static PreviewFrame *ms_Instance;
PropsTree(wxWindow* parent, wxWindowID id, const wxPoint& pt = wxDefaultPosition,
const wxSize& sz = wxDefaultSize, long style = wxTR_HAS_BUTTONS)
: wxRemotelyScrolledTreeCtrl(parent, id, pt, sz, style),
- m_EditCtrl(NULL) {}
+ m_EditCtrl(NULL)
+ {
+#if 0
+ // VS: Don't do it, it is *extremely* ugly.
+ // FIXME: find a better solution.
+
+ //make text larger so controls will fit properly
+ wxFont font = GetFont();
+ font.SetPointSize(font.GetPointSize()*1.5);
+ SetFont(font);
+#endif
+ }
void OnPaint(wxPaintEvent& event)
{
dc.SetDeviceOrigin(0, 0);
wxPen pen(wxColour(_T("BLACK")), 1, wxSOLID);
- dc.SetPen(pen);
-
+ dc.SetPen(pen);
+
dc.SetBrush(* wxTRANSPARENT_BRUSH);
wxSize clientSize = GetClientSize();
if (h.IsOk() && GetBoundingRect(h, itemRect))
{
cy = itemRect.GetTop();
+
dc.DrawLine(0, cy, clientSize.x, cy);
lastH = h;
}
dc.DrawLine(0, cy, clientSize.x, cy);
}
}
-
+
void OnSelChange(wxTreeEvent& event)
{
if (m_EditCtrl != NULL)
{
wxRect bounding;
GetBoundingRect(item, bounding);
+
bounding.SetX(0);
bounding.SetWidth(GetCompanionWindow()->GetSize().x);
dt->EditCtrl->BeginEdit(bounding, item);
wxTreeItemId item = GetTreeCtrl()->HitTest(wxPoint(1, event.GetY()), flags);
if (item.IsOk())
{
- GetTreeCtrl()->ScrollTo(item);
GetTreeCtrl()->SelectItem(item);
}
}