Code: Select all
wxPanel* mainPanel;
//(*IdInit(MachineLearningLinkerFrame)
const long MachineLearningLinkerFrame::ID_MENUITEM1 = wxNewId();
const long MachineLearningLinkerFrame::idMenuAbout = wxNewId();
const long MachineLearningLinkerFrame::ID_STATUSBAR1 = wxNewId();
const long MachineLearningLinkerFrame::ID_LIST = wxNewId();
const long MachineLearningLinkerFrame::ID_CONNECT = wxNewId();
wxListView* list;
wxListCtrl* link;
wxTreeCtrl* treeList;
//*)
BEGIN_EVENT_TABLE(MachineLearningLinkerFrame, wxFrame)
//(*EventTable(MachineLearningLinkerFrame)
EVT_MOTION(MachineLearningLinkerFrame::onMouse)
//*)
END_EVENT_TABLE()
MachineLearningLinkerFrame::MachineLearningLinkerFrame(wxWindow* parent, wxWindowID id)
{
//(*Initialize(MachineLearningLinkerFrame)
wxMenu* Menu1;
wxMenu* Menu2;
wxMenuBar* MenuBar1;
wxMenuItem* MenuItem1;
wxMenuItem* MenuItem2;
wxButton* connect;
wxBoxSizer* verticalSizer = new wxBoxSizer(wxVERTICAL);
wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL);
wxBoxSizer* horSize2 = new wxBoxSizer(wxHORIZONTAL);
Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
SetClientSize(wxSize(500, 500));
mainPanel = new wxPanel(this, wxID_ANY);
//mainPanel->Bind(wxEVT_PAINT, &MachineLearningLinkerFrame::on_paint, this);
mainPanel->SetSizer(verticalSizer);
verticalSizer->Add(horizontalSizer, 1, wxALL | wxEXPAND, 2);
MenuBar1 = new wxMenuBar();
Menu1 = new wxMenu();
MenuItem1 = new wxMenuItem(Menu1, ID_MENUITEM1, _("Quit\tAlt-F4"), _("Quit the application"), wxITEM_NORMAL);
Menu1->Append(MenuItem1);
MenuBar1->Append(Menu1, _("&File"));
Menu2 = new wxMenu();
MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info about this application"), wxITEM_NORMAL);
Menu2->Append(MenuItem2);
MenuBar1->Append(Menu2, _("Help"));
SetMenuBar(MenuBar1);
StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T("ID_STATUSBAR1"));
int __wxStatusBarWidths_1[1] = { -1 };
int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };
StatusBar1->SetFieldsCount(1, __wxStatusBarWidths_1);
StatusBar1->SetStatusStyles(1, __wxStatusBarStyles_1);
SetStatusBar(StatusBar1);
wxBitmap checked;
checked.LoadFile("C:/Users/pavne/Downloads/redFlag.png", wxBITMAP_TYPE_PNG);
wxBitmap unchecked;
unchecked.LoadFile("C:/Users/pavne/Downloads/greenFlag.png", wxBITMAP_TYPE_PNG);
wxImageList* images = new wxImageList(checked.GetWidth(), unchecked.GetWidth(), true);
images->Add(checked);
images->Add(unchecked);
list = new wxListView(mainPanel, ID_LIST, wxDefaultPosition, wxDefaultSize, wxLC_LIST );
list->AssignImageList(images,0);
treeList = new wxTreeCtrl(mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize);
link = new wxListCtrl(mainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_VRULES);
treeList->AddRoot("Pavneet");
connect = new wxButton(mainPanel, ID_CONNECT, "Connect", wxDefaultPosition, wxDefaultSize);
horizontalSizer->Add(list, 1, wxEXPAND | wxALL, 2);
horizontalSizer->Add(treeList, 1, wxEXPAND | wxALL, 2);
horSize2->Add(connect, 1, wxEXPAND | wxALL, 4);
verticalSizer->Add(horSize2, 0, wxALIGN_TOP | wxALIGN_CENTER | wxTOP | wxRIGHT | wxBOTTOM, 4);
verticalSizer->Add(link, 1, wxEXPAND | wxALL, 2);
wxListItem itemCol;
itemCol.SetText("Item");
itemCol.SetImage(-1);
link->InsertColumn(0, itemCol);
itemCol.SetText("Linkage");
itemCol.SetAlign(wxLIST_FORMAT_CENTRE);
link->InsertColumn(1, itemCol)
for (int i = 0; i < 3; i++)
{
list->InsertItem(i, "Item");
}
Connect(ID_MENUITEM1, wxEVT_COMMAND_MENU_SELECTED, (wxObjectEventFunction)& MachineLearningLinkerFrame::OnQuit);
Connect(idMenuAbout, wxEVT_COMMAND_MENU_SELECTED, (wxObjectEventFunction)& MachineLearningLinkerFrame::OnAbout);
Connect(ID_LIST, wxEVT_COMMAND_LIST_ITEM_SELECTED, (wxObjectEventFunction)& MachineLearningLinkerFrame::OnItem);
Connect(ID_CONNECT, wxEVT_COMMAND_BUTTON_CLICKED, (wxObjectEventFunction)& MachineLearningLinkerFrame::onConnect);
Connect(wxID_ANY, wxEVT_LEFT_DOWN, wxMouseEventHandler (MachineLearningLinkerFrame::onMouse));
//*)
}
MachineLearningLinkerFrame::~MachineLearningLinkerFrame()
{
//(*Destroy(MachineLearningLinkerFrame)
//*)
}
void MachineLearningLinkerFrame::OnQuit(wxCommandEvent& event)
{
Close();
}
void MachineLearningLinkerFrame::OnAbout(wxCommandEvent& event)
{
wxString msg = wxbuildinfo(long_f);
wxMessageBox(msg, _("Welcome to..."));
}
void MachineLearningLinkerFrame::on_paint(wxPaintEvent& WXUNUSED(event))
{
// you *must* create a wxPaintDC in a paint event handler.
wxPaintDC dc(mainPanel);
// dummy drawing
//dc.SetBrush(*wxYELLOW);
//dc.DrawLine(wxPoint(10, 10), wxPoint(100, 100));
}
void MachineLearningLinkerFrame::onMouse(wxMouseEvent& event)
{
/*
if (event.Dragging())
{
wxClientDC dc(mainPanel);
wxPen pen(*wxRED, 1); // red pen of width 1
dc.SetPen(pen);
dc.DrawPoint(event.GetPosition());
dc.SetPen(wxNullPen);
}
*/
}
void MachineLearningLinkerFrame::OnItem(wxCommandEvent& event)
{
list->Disable();
}
void MachineLearningLinkerFrame::onConnect(wxCommandEvent& event)
{
long tmp = link->InsertItem(0, list->GetItemText(list->GetFocusedItem()));
link->SetItem(tmp, 1, treeList->GetItemText(treeList->GetFocusedItem()));
list->SetItemBackgroundColour(list->GetFocusedItem(), wxColour(*wxRED));
list->Enable();
}