diff options
Diffstat (limited to 'examples/ConfigViewer/ValueListCtrl.cpp')
-rw-r--r-- | examples/ConfigViewer/ValueListCtrl.cpp | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/examples/ConfigViewer/ValueListCtrl.cpp b/examples/ConfigViewer/ValueListCtrl.cpp deleted file mode 100644 index 93c9af14fcb..00000000000 --- a/examples/ConfigViewer/ValueListCtrl.cpp +++ /dev/null @@ -1,227 +0,0 @@ -// $Id$ -#include "stdafx.h" -#include "ValueListCtrl.h" -#include "MainFrame.h" -#include "ValueDlg.h" - - -enum {VALUEMODIFY=200, VALUEDELETE, VALUERENAME}; - -BEGIN_EVENT_TABLE(ValueListCtrl, wxListCtrl) - EVT_RIGHT_DOWN(ValueListCtrl::OnRightDown) - EVT_MENU(VALUEMODIFY, ValueListCtrl::OnModify) - EVT_MENU(VALUEDELETE, ValueListCtrl::OnDelete) - EVT_MENU(VALUERENAME, ValueListCtrl::OnRename) -END_EVENT_TABLE() - - -ValueListCtrl::ValueListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxValidator& validator, const wxString& name) -: wxListCtrl(parent, id, pos, size, style | wxLC_REPORT | wxLC_SINGLE_SEL, validator, name) -{ - InsertColumn(0, "Name"); - InsertColumn(1, "Type"); - InsertColumn(2, "Data"); -} - -ValueListCtrl::~ValueListCtrl() -{ -} - -void ValueListCtrl::DisplaySection(const ACE_Configuration_Section_Key& Key) -{ - m_Key = Key; - DeleteAllItems(); - m_pConfig = MainFrame::Instance()->GetpConfig(); - ACE_TString Name; - int Index = 0; - ACE_Configuration::VALUETYPE Type; - ACE_TString StringValue; - u_int UINTValue; - while(!m_pConfig->enumerate_values(Key, Index, Name, Type)) - { - int Row = InsertItem(0, Name.fast_rep()); - switch(Type) - { - case ACE_Configuration::STRING: - SetItem(Row, 1, "String"); - m_pConfig->get_string_value(Key, Name.fast_rep(), StringValue); - SetItem(Row, 2, StringValue.fast_rep()); - break; - case ACE_Configuration::INTEGER: - { - SetItem(Row, 1, "Integer"); - m_pConfig->get_integer_value(Key, Name.fast_rep(), UINTValue); - wxString Text; - Text.sprintf("%d", UINTValue); - SetItem(Row, 2, Text); - } - break; - case ACE_Configuration::BINARY: - SetItem(Row, 1, "Binary"); - break; - } - SetItemData(Row, Type); - ++Index; - } -} - -long ValueListCtrl::GetSelectedItem() -{ - return GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); -} - -void ValueListCtrl::SelectItem(long ItemID) -{ - // XXX Something isn't right here... When I use a mask it doesn't work at - // all someone explain.. - long State = wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED; - SetItemState(ItemID, State, State); -} - -void ValueListCtrl::OnRightDown(wxMouseEvent& event) -{ - int Flags = wxLIST_HITTEST_ONITEM; - long ItemID = HitTest(wxPoint(event.m_x, event.m_y), Flags); - if(ItemID < 0) - { - return; - } - SelectItem(ItemID); - - wxMenu* pMenu = new wxMenu; - pMenu->Append(VALUEMODIFY, "Modify"); - pMenu->AppendSeparator(); - pMenu->Append(VALUEDELETE, "Delete"); - pMenu->Append(VALUERENAME, "Rename"); - PopupMenu(pMenu, event.m_x, event.m_y); - delete pMenu; -} - -void ValueListCtrl::OnModify(wxCommandEvent& event) -{ - long Item = GetSelectedItem(); - if(Item == -1) - { - return ; - } - wxListItem ListItem; - ACE_Configuration::VALUETYPE Type = (ACE_Configuration::VALUETYPE)GetItemData(Item); - wxString Name = GetItemText(Item); - - switch(Type) - { - case ACE_Configuration::STRING: - { - ACE_TString Value; - m_pConfig->get_string_value(m_Key, Name, Value); - wxString ValueText(Value.fast_rep()); - ValueDlg Dlg(this, Name, ValueText); - if(Dlg.ShowModal() != wxID_OK) - { - return; - } - - Value = (const char*)Dlg.GetStringValue(); - m_pConfig->set_string_value(m_Key, Name, Value); - } - break; - case ACE_Configuration::INTEGER: - { - u_int Value; - m_pConfig->get_integer_value(m_Key, Name, Value); - ValueDlg Dlg(this, Name, Value); - if(Dlg.ShowModal() != wxID_OK) - { - return; - } - - Value = Dlg.GetUINTValue(); - m_pConfig->set_integer_value(m_Key, Name, Value); - - } - break; - case ACE_Configuration::BINARY: - { - wxMessageBox("Binary modification not supported (why don't you implement it?)"); - //assert(0); - } - break; - } - DisplaySection(m_Key); -} - -void ValueListCtrl::OnDelete(wxCommandEvent& event) -{ - wxMessageDialog Dlg(this, "Are you sure you want to delete this value?", "Confirm Value Delete", wxYES_NO | wxICON_EXCLAMATION ); - if(Dlg.ShowModal() != wxID_YES) - { - return; - } - long Item = GetSelectedItem(); - if(Item == -1) - { - return ; - } - wxString Text = GetItemText(Item); - m_pConfig->remove_value(m_Key, Text); - DeleteItem(Item); -} - -void ValueListCtrl::OnRename(wxCommandEvent& event) -{ - long Item = GetSelectedItem(); - if(Item == -1) - { - return ; - } - wxListItem ListItem; - ACE_Configuration::VALUETYPE Type = (ACE_Configuration::VALUETYPE)GetItemData(Item); - wxString Name = GetItemText(Item); - wxString Message; - Message.sprintf("Enter new name for '%s'", Name); - wxTextEntryDialog Dlg(this, Message, "Please enter text", Name); - if(Dlg.ShowModal() != wxID_OK) - { - return; - } - wxString NewName = Dlg.GetValue(); - if(NewName == Name) - { - return; - } - - // XXX Check to see if an entry with this new name already exists - - switch(Type) - { - case ACE_Configuration::STRING: - { - ACE_TString Value; - m_pConfig->get_string_value(m_Key, Name, Value); - m_pConfig->set_string_value(m_Key, NewName, Value); - } - break; - case ACE_Configuration::INTEGER: - { - u_int Value; - m_pConfig->get_integer_value(m_Key, Name, Value); - m_pConfig->set_integer_value(m_Key, NewName, Value); - } - break; - case ACE_Configuration::BINARY: - { - wxMessageBox("Rename binary not supported (Why don't you implement it?)"); - assert(0); - } - } - m_pConfig->remove_value(m_Key, Name); - DisplaySection(m_Key); -} - -void ValueListCtrl::ChangeConfig(ACE_Configuration* pConfig) -{ - m_pConfig = pConfig; - DisplaySection(pConfig->root_section()); -} - - |