#include "propedit.h"
#include "pe_basic.h"
#include "pe_adv.h"
+#include "editor.h"
// ------------- support classes --------
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);
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;
BEGIN_EVENT_TABLE(PropsTree, wxRemotelyScrolledTreeCtrl)
EVT_PAINT(PropsTree::OnPaint)
EVT_TREE_SEL_CHANGED(-1, PropsTree::OnSelChange)
+ EVT_SCROLLWIN(PropsTree::OnScroll)
END_EVENT_TABLE()
wxTreeItemId item = GetTreeCtrl()->HitTest(wxPoint(1, event.GetY()), flags);
if (item.IsOk())
{
- GetTreeCtrl()->ScrollTo(item);
GetTreeCtrl()->SelectItem(item);
}
}
-
+
DECLARE_EVENT_TABLE()
};
}
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;
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_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());