113 lines
2.5 KiB
C++
113 lines
2.5 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: src/xrc/xh_dataview.cpp
|
|
// Purpose: XRC resource for wxDataViewCtrl
|
|
// Author: Anton Triest
|
|
// Created: 2019/06/27
|
|
// Copyright: (c) 2019 Anton Triest, Bricsys
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// For compilers that support precompilation, includes "wx.h".
|
|
#include "wx/wxprec.h"
|
|
|
|
|
|
#if wxUSE_XRC && wxUSE_DATAVIEWCTRL
|
|
|
|
#include "wx/xrc/xh_dataview.h"
|
|
#include "wx/dataview.h"
|
|
|
|
wxIMPLEMENT_DYNAMIC_CLASS(wxDataViewXmlHandler, wxXmlResourceHandler);
|
|
|
|
wxDataViewXmlHandler::wxDataViewXmlHandler()
|
|
: wxXmlResourceHandler()
|
|
{
|
|
XRC_ADD_STYLE(wxDV_SINGLE);
|
|
XRC_ADD_STYLE(wxDV_MULTIPLE);
|
|
XRC_ADD_STYLE(wxDV_NO_HEADER);
|
|
XRC_ADD_STYLE(wxDV_HORIZ_RULES);
|
|
XRC_ADD_STYLE(wxDV_VERT_RULES);
|
|
XRC_ADD_STYLE(wxDV_ROW_LINES);
|
|
XRC_ADD_STYLE(wxDV_VARIABLE_LINE_HEIGHT);
|
|
|
|
AddWindowStyles();
|
|
}
|
|
|
|
wxObject *wxDataViewXmlHandler::DoCreateResource()
|
|
{
|
|
if (m_class == "wxDataViewCtrl")
|
|
{
|
|
return HandleCtrl();
|
|
}
|
|
else if (m_class == "wxDataViewListCtrl")
|
|
{
|
|
return HandleListCtrl();
|
|
}
|
|
else if (m_class == "wxDataViewTreeCtrl")
|
|
{
|
|
return HandleTreeCtrl();
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
bool wxDataViewXmlHandler::CanHandle(wxXmlNode *node)
|
|
{
|
|
return IsOfClass(node, "wxDataViewCtrl") ||
|
|
IsOfClass(node, "wxDataViewListCtrl") ||
|
|
IsOfClass(node, "wxDataViewTreeCtrl");
|
|
}
|
|
|
|
wxObject* wxDataViewXmlHandler::HandleCtrl()
|
|
{
|
|
XRC_MAKE_INSTANCE(control, wxDataViewCtrl)
|
|
|
|
control->Create(m_parentAsWindow,
|
|
GetID(),
|
|
GetPosition(),
|
|
GetSize(),
|
|
GetStyle(),
|
|
wxDefaultValidator,
|
|
GetName());
|
|
|
|
SetupWindow(control);
|
|
|
|
return control;
|
|
}
|
|
|
|
wxObject* wxDataViewXmlHandler::HandleListCtrl()
|
|
{
|
|
XRC_MAKE_INSTANCE(control, wxDataViewListCtrl)
|
|
|
|
control->Create(m_parentAsWindow,
|
|
GetID(),
|
|
GetPosition(),
|
|
GetSize(),
|
|
GetStyle(),
|
|
wxDefaultValidator);
|
|
|
|
SetupWindow(control);
|
|
|
|
return control;
|
|
}
|
|
|
|
wxObject* wxDataViewXmlHandler::HandleTreeCtrl()
|
|
{
|
|
XRC_MAKE_INSTANCE(control, wxDataViewTreeCtrl)
|
|
|
|
control->Create(m_parentAsWindow,
|
|
GetID(),
|
|
GetPosition(),
|
|
GetSize(),
|
|
GetStyle(),
|
|
wxDefaultValidator);
|
|
|
|
wxImageList *imagelist = GetImageList();
|
|
if (imagelist)
|
|
control->AssignImageList(imagelist);
|
|
|
|
SetupWindow(control);
|
|
|
|
return control;
|
|
}
|
|
|
|
#endif // wxUSE_XRC && wxUSE_DATAVIEWCTRL
|