+
+ //Firstly we clear the existing menu items, then we add the current ones
+ wxMenuHistoryMap::const_iterator it;
+ for( it = m_histMenuItems.begin(); it != m_histMenuItems.end(); ++it )
+ {
+ m_tools_history_menu->Destroy(it->first);
+ }
+ m_histMenuItems.clear();
+
+ wxVector<wxSharedPtr<wxWebHistoryItem> > back = m_browser->GetBackwardHistory();
+ wxVector<wxSharedPtr<wxWebHistoryItem> > forward = m_browser->GetForwardHistory();
+
+ wxMenuItem* item;
+
+ for(unsigned int i = 0; i < back.size(); i++)
+ {
+ item = m_tools_history_menu->AppendRadioItem(wxID_ANY, back[i]->GetTitle());
+ m_histMenuItems[item->GetId()] = back[i];
+ Connect(item->GetId(), wxEVT_COMMAND_MENU_SELECTED,
+ wxCommandEventHandler(WebFrame::OnHistory), NULL, this );
+ }
+
+ item = m_tools_history_menu->AppendRadioItem(wxID_ANY, m_browser->GetCurrentTitle());
+ item->Check();
+
+ //No need to connect the current item
+ m_histMenuItems[item->GetId()] = wxSharedPtr<wxWebHistoryItem>(new wxWebHistoryItem(m_browser->GetCurrentURL(), m_browser->GetCurrentTitle()));
+
+ for(unsigned int i = 0; i < forward.size(); i++)
+ {
+ item = m_tools_history_menu->AppendRadioItem(wxID_ANY, forward[i]->GetTitle());
+ m_histMenuItems[item->GetId()] = forward[i];
+ Connect(item->GetId(), wxEVT_COMMAND_TOOL_CLICKED,
+ wxCommandEventHandler(WebFrame::OnHistory), NULL, this );
+ }