X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12d9e30820444b48882ab9e29139611b99a84495..0d1dff0172e94487c4aa2d830c714f93be73c7ec:/contrib/utils/wxrcedit/propframe.cpp?ds=sidebyside diff --git a/contrib/utils/wxrcedit/propframe.cpp b/contrib/utils/wxrcedit/propframe.cpp index cb82a0d32d..35022bd126 100644 --- a/contrib/utils/wxrcedit/propframe.cpp +++ b/contrib/utils/wxrcedit/propframe.cpp @@ -18,7 +18,7 @@ #endif #include "wx/wx.h" -#include "wx/xml/xml.h" +#include "wx/xrc/xml.h" #include "wx/config.h" #include "splittree.h" #include "xmlhelpr.h" @@ -27,6 +27,7 @@ #include "propedit.h" #include "pe_basic.h" #include "pe_adv.h" +#include "editor.h" // ------------- support classes -------- @@ -48,7 +49,7 @@ class PropsTree: public wxRemotelyScrolledTreeCtrl // Reset the device origin since it may have been set dc.SetDeviceOrigin(0, 0); - wxPen pen(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT), 1, wxSOLID); + wxPen pen(wxColour(_T("BLACK")), 1, wxSOLID); dc.SetPen(pen); dc.SetBrush(* wxTRANSPARENT_BRUSH); @@ -104,6 +105,19 @@ class PropsTree: public wxRemotelyScrolledTreeCtrl m_EditCtrl = NULL; } } + + void OnScroll(wxScrollWinEvent& event) + { + event.Skip(); + if (event.GetOrientation() == wxHORIZONTAL) return; + if (!m_EditCtrl) return; + + wxTreeItemId id = GetSelection(); + wxRect bounding; + GetBoundingRect(id, bounding); + + m_EditCtrl->Move(-1, bounding.y); + } PropEditCtrl *m_EditCtrl; @@ -113,6 +127,7 @@ class PropsTree: public wxRemotelyScrolledTreeCtrl BEGIN_EVENT_TABLE(PropsTree, wxRemotelyScrolledTreeCtrl) EVT_PAINT(PropsTree::OnPaint) EVT_TREE_SEL_CHANGED(-1, PropsTree::OnSelChange) + EVT_SCROLLWIN(PropsTree::OnScroll) END_EVENT_TABLE() @@ -157,7 +172,7 @@ class PropsValueWindow: public wxTreeCompanionWindow GetTreeCtrl()->SelectItem(item); } } - + DECLARE_EVENT_TABLE() }; @@ -184,7 +199,13 @@ PropertiesFrame *PropertiesFrame::Get() } PropertiesFrame::PropertiesFrame() - : wxFrame(NULL, -1, _("Properties")) + : wxFrame(EditorFrame::Get(), -1, _("Properties"), + wxDefaultPosition, wxDefaultSize, + wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR +#ifdef __WXMSW__ + | wxFRAME_TOOL_WINDOW +#endif + ) { ms_Instance = this; m_Node = NULL; @@ -221,13 +242,15 @@ PropertiesFrame::PropertiesFrame() m_EditCtrls.Put(_T("coord"), new PropEditCtrlCoord(this)); m_EditCtrls.Put(_T("color"), new PropEditCtrlColor(this)); m_EditCtrls.Put(_T("dimension"), new PropEditCtrlDim(this)); - m_EditCtrls.Put(_T("flags"), new PropEditCtrlTxt(this)); + m_EditCtrls.Put(_T("flags"), new PropEditCtrlFlags(this)); m_EditCtrls.Put(_T("integer"), new PropEditCtrlInt(this)); m_EditCtrls.Put(_T("not_implemented"), new PropEditCtrlNull(this)); m_EditCtrls.Put(_T("text"), new PropEditCtrlTxt(this)); - m_EditCtrls.Put(_T("xmlid"), new PropEditCtrlXMLID(this)); + m_EditCtrls.Put(_T("xmlid"), new PropEditCtrlXRCID(this)); m_EditCtrls.Put(_T("font"), new PropEditCtrlFont(this)); m_EditCtrls.Put(_T("choice"), new PropEditCtrlChoice(this)); + m_EditCtrls.Put(_T("file"), new PropEditCtrlFile(this)); + m_EditCtrls.Put(_T("imagefile"), new PropEditCtrlImageFile(this)); m_EditCtrls.Put(_T(""), new PropEditCtrlNull(this)); ClearProps(); @@ -254,7 +277,7 @@ void PropertiesFrame::ShowProps(wxXmlNode *node) m_Node = node; ClearProps(); - AddSingleProp(PropertyInfo(_T("xmlid"), _T("XMLID"), wxEmptyString)); + AddSingleProp(PropertyInfo(_T("xmlid"), _T("XRCID"), wxEmptyString)); AddProps(NodeHandler::Find(node)->GetPropsList(node)); m_tree->Expand(m_tree->GetRootItem()); @@ -280,10 +303,12 @@ void PropertiesFrame::AddProps(PropertyInfoArray& plist) -void PropertiesFrame::AddSingleProp(const PropertyInfo& pinfo) +void PropertiesFrame::AddSingleProp(const PropertyInfo& pinfo, wxTreeItemId *root) { PropEditCtrl *pec = (PropEditCtrl*)m_EditCtrls.Get(pinfo.Type); - wxTreeItemId tid = m_tree->GetRootItem(); + wxTreeItemId tid; + if (root != NULL) tid = *root; + else tid = m_tree->GetRootItem(); if (pec == NULL) wxLogError(_("Unknown property type '%s'!"), pinfo.Type.c_str());