summaryrefslogtreecommitdiffstats
path: root/Source/WXDialog/PropertyList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WXDialog/PropertyList.cpp')
-rw-r--r--Source/WXDialog/PropertyList.cpp856
1 files changed, 0 insertions, 856 deletions
diff --git a/Source/WXDialog/PropertyList.cpp b/Source/WXDialog/PropertyList.cpp
deleted file mode 100644
index ef7c897..0000000
--- a/Source/WXDialog/PropertyList.cpp
+++ /dev/null
@@ -1,856 +0,0 @@
-/*=========================================================================
-
- Program: WXDialog - wxWidgets X-platform GUI Front-End for CMake
- Module: $RCSfile$
- Language: C++
- Date: $Date$
- Version: $Revision$
-
- Author: Jorgen Bodde
-
- Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-
-/* for compilers that support precompilation
- includes "wx/wx.h" */
-
-#include "wx/wxprec.h"
-
-#ifdef __BORLANDC__
- #pragma hdrstop
-#endif
-
-#include "PropertyList.h"
-#include "app_resources.h"
-
-#include "../cmCacheManager.h"
-#include "../cmSystemTools.h"
-#include "../cmake.h"
-
-BEGIN_EVENT_TABLE( wxPropertyList, wxGrid )
- EVT_GRID_CELL_LEFT_CLICK( wxPropertyList::OnSelectCell )
- EVT_GRID_CELL_CHANGE( wxPropertyList::OnCellChange )
- EVT_GRID_CMD_CELL_RIGHT_CLICK( wxID_ANY, wxPropertyList::OnCellPopup )
- EVT_MENU ( ID_CACHE_DELETE, wxPropertyList::OnDeleteCache )
- EVT_MENU ( ID_CACHE_IGNORE, wxPropertyList::OnIgnoreCache )
- EVT_MENU ( ID_CACHE_BROWSE, wxPropertyList::OnBrowseItem )
- EVT_SIZE ( wxPropertyList::OnSizeGrid )
- EVT_CHAR ( wxPropertyList::OnKeyPressed )
-END_EVENT_TABLE()
-
-#if 0
-
-// ----------------------------------------------------------------------------
-// wxGridCellPathEditor
-// ----------------------------------------------------------------------------
-
-wxGridCellPathEditor::wxGridCellPathEditor()
-{
- m_maxChars = 0;
-}
-
-void wxGridCellPathEditor::Create(wxWindow* parent,
- wxWindowID id,
- wxEvtHandler* evtHandler)
-{
- m_control = new wxTextCtrl(parent, id, wxEmptyString,
- wxDefaultPosition, wxDefaultSize
-#if defined(__WXMSW__)
- , wxTE_PROCESS_TAB | wxTE_AUTO_SCROLL
-#endif
- );
-//
-// m_button = new wxButton(parent, id+1, _("..."),
-// wxDefaultPosition, wxDefaultSize);
-//
-
- // set max length allowed in the textctrl, if the parameter was set
- if (m_maxChars != 0)
- {
- ((wxTextCtrl*)m_control)->SetMaxLength(m_maxChars);
- }
-
- wxGridCellEditor::Create(parent, id, evtHandler);
-}
-
-void wxGridCellPathEditor::PaintBackground(const wxRect& WXUNUSED(rectCell),
- wxGridCellAttr * WXUNUSED(attr))
-{
- // as we fill the entire client area, don't do anything here to minimize
- // flicker
-}
-
-void wxGridCellPathEditor::SetSize(const wxRect& rectOrig)
-{
- wxRect rect(rectOrig);
-
- // Make the edit control large enough to allow for internal
- // margins
- //
- // TODO: remove this if the text ctrl sizing is improved esp. for
- // unix
- //
-#if defined(__WXGTK__)
- if (rect.x != 0)
- {
- rect.x += 1;
- rect.y += 1;
- rect.width -= 1;
- rect.height -= 1;
- }
-#else // !GTK
- int extra_x = ( rect.x > 2 )? 2 : 1;
-
-// MB: treat MSW separately here otherwise the caret doesn't show
-// when the editor is in the first row.
-#if defined(__WXMSW__)
- int extra_y = 2;
-#else
- int extra_y = ( rect.y > 2 )? 2 : 1;
-#endif // MSW
-
-#if defined(__WXMOTIF__)
- extra_x *= 2;
- extra_y *= 2;
-#endif
- rect.SetLeft( wxMax(0, rect.x - extra_x) );
- rect.SetTop( wxMax(0, rect.y - extra_y) );
- rect.SetRight( rect.GetRight() + 2*extra_x );
- rect.SetBottom( rect.GetBottom() + 2*extra_y );
-#endif // GTK/!GTK
-
- wxGridCellEditor::SetSize(rect);
-}
-
-void wxGridCellPathEditor::BeginEdit(int row, int col, wxGrid* grid)
-{
- wxASSERT_MSG(m_control,
- wxT("The wxGridCellEditor must be Created first!"));
-
- m_startValue = grid->GetTable()->GetValue(row, col);
-
- DoBeginEdit(m_startValue);
-}
-
-void wxGridCellPathEditor::DoBeginEdit(const wxString& startValue)
-{
- Text()->SetValue(startValue);
- Text()->SetInsertionPointEnd();
- Text()->SetSelection(-1,-1);
- Text()->SetFocus();
-}
-
-bool wxGridCellPathEditor::EndEdit(int row, int col,
- wxGrid* grid)
-{
- wxASSERT_MSG(m_control,
- wxT("The wxGridCellEditor must be Created first!"));
-
- bool changed = false;
- wxString value = Text()->GetValue();
- if (value != m_startValue)
- changed = true;
-
- if (changed)
- grid->GetTable()->SetValue(row, col, value);
-
- m_startValue = wxEmptyString;
- // No point in setting the text of the hidden control
- //Text()->SetValue(m_startValue);
-
- return changed;
-}
-
-
-void wxGridCellPathEditor::Reset()
-{
- wxASSERT_MSG(m_control,
- wxT("The wxGridCellEditor must be Created first!"));
-
- DoReset(m_startValue);
-}
-
-void wxGridCellPathEditor::DoReset(const wxString& startValue)
-{
- Text()->SetValue(startValue);
- Text()->SetInsertionPointEnd();
-}
-
-bool wxGridCellPathEditor::IsAcceptedKey(wxKeyEvent& event)
-{
- return wxGridCellEditor::IsAcceptedKey(event);
-}
-
-void wxGridCellPathEditor::StartingKey(wxKeyEvent& event)
-{
- // Since this is now happening in the EVT_CHAR event EmulateKeyPress is no
- // longer an appropriate way to get the character into the text control.
- // Do it ourselves instead. We know that if we get this far that we have
- // a valid character, so not a whole lot of testing needs to be done.
-
- wxTextCtrl* tc = Text();
- wxChar ch;
- long pos;
-
-#if wxUSE_UNICODE
- ch = event.GetUnicodeKey();
- if (ch <= 127)
- ch = (wxChar)event.GetKeyCode();
-#else
- ch = (wxChar)event.GetKeyCode();
-#endif
- switch (ch)
- {
- case WXK_DELETE:
- // delete the character at the cursor
- pos = tc->GetInsertionPoint();
- if (pos < tc->GetLastPosition())
- tc->Remove(pos, pos+1);
- break;
-
- case WXK_BACK:
- // delete the character before the cursor
- pos = tc->GetInsertionPoint();
- if (pos > 0)
- tc->Remove(pos-1, pos);
- break;
-
- default:
- tc->WriteText(ch);
- break;
- }
-}
-
-void wxGridCellPathEditor::HandleReturn( wxKeyEvent &event )
-{
-#if defined(__WXMOTIF__) || defined(__WXGTK__)
- // wxMotif needs a little extra help...
- size_t pos = (size_t)( Text()->GetInsertionPoint() );
- wxString s( Text()->GetValue() );
- s = s.Left(pos) + wxT("\n") + s.Mid(pos);
- Text()->SetValue(s);
- Text()->SetInsertionPoint( pos );
-#else
- // the other ports can handle a Return key press
- //
- event.Skip();
-#endif
-}
-
-void wxGridCellPathEditor::SetParameters(const wxString& params)
-{
- if ( !params )
- {
- // reset to default
- m_maxChars = 0;
- }
- else
- {
- long tmp;
- if ( !params.ToLong(&tmp) )
- {
- wxLogDebug(_T("Invalid wxGridCellPathEditor parameter string '%s' ignored"), params.c_str());
- }
- else
- {
- m_maxChars = (size_t)tmp;
- }
- }
-}
-
-// return the value in the text control
-wxString wxGridCellPathEditor::GetValue() const
-{
- return Text()->GetValue();
-}
-
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// wxPropertyItem
-
-// returns true when this property item is a filepath
-bool wxPropertyItem::IsFilePath()
-{
- return m_nItemType == wxPropertyList::FILE;
-}
-
-// returns true when this property item is a dir path
-bool wxPropertyItem::IsDirPath()
-{
- return m_nItemType == wxPropertyList::PATH;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// wxPropertyList
-
-wxPropertyList::~wxPropertyList()
-{
- WX_CLEAR_ARRAY(m_PropertyItems);
-}
-
-int wxPropertyList::AddItem(const wxString &txt)
-{
- // TODO: Add the item to the grid!
-
- //int nIndex = AddString(txt);
- //return nIndex;
-
- return 0;
-}
-
-// order = 0 sorted (not supported yet)
-// order = 1 add to top
-// order = 2 add to bottom
-int wxPropertyList::AddPropItem(wxPropertyItem* pItem, int order)
-{
- m_PropertyItems.Add(pItem);
- if(pItem->GetAdvanced() && ! m_ShowAdvanced)
- return 0;
-
- // disable in progress editing
- HideControls();
-
- return AddPropertyToGrid(pItem, order);
-}
-
-int wxPropertyList::AddPropertyToGrid(wxPropertyItem *pItem, int order)
-{
- int row = 0;
- if(order == 1)
- InsertRows(0,1);
- else
- {
- AppendRows(1);
- row = GetNumberRows() - 1;
- }
-
- // initialise the type of renderer
- if(pItem->GetItemType() == wxPropertyList::CHECKBOX)
- {
- SetCellRenderer(row, 1, new wxGridCellBoolRenderer);
- SetCellEditor(row, 1, new wxGridCellBoolEditor);
- }
-
-#ifdef __LINUX__
- // fix to make sure scrollbars are drawn properly
- wxGrid::AdjustScrollbars();
-#endif
-
- // the property display is read only
- UpdatePropertyItem(pItem, row);
- return row;
-}
-
-void wxPropertyList::AddProperty(const char* name, const char* value, const char* helpString,
- int type, const char* comboItems, bool reverseOrder, bool advanced)
-{
- wxPropertyItem* pItem = 0;
-
- // add or update the property item
- for(size_t i = 0; i < m_PropertyItems.Count(); i++)
- {
- if(m_PropertyItems[i]->GetPropName().IsSameAs(name))
- {
- pItem = m_PropertyItems[i];
- if(!pItem->GetCurValue().IsSameAs(value))
- {
- pItem->SetCurValue(value);
- pItem->SetHelpString(helpString);
- pItem->SetAdvanced(advanced);
-
- // update the property item
- int row = FindProperty(pItem);
- if(row != -1)
- UpdatePropertyItem(pItem, row);
- }
- return;
- }
- }
-
- // if it is not found, then create a new one
- if(!pItem)
- {
- pItem = new wxPropertyItem(name, value, helpString, type, comboItems);
- pItem->SetAdvanced(advanced);
-
- AddPropItem(pItem, 1);
- }
-}
-
-void wxPropertyList::UpdateGridView()
-{
- // make sure all items are shown, remove items that should not be shown
- bool keepItem;
- int row;
- for(size_t i = 0; i < m_PropertyItems.Count(); i++)
- {
- // to begin with, does this item fit the query?
- keepItem = m_strQuery.IsEmpty() || (m_PropertyItems[i]->GetPropName().Find(m_strQuery) != -1);
- if(keepItem)
- {
- // when advanced items are allowed to be shown, keep when ok
- if(!m_ShowAdvanced)
- keepItem = !m_PropertyItems[i]->GetAdvanced();
- }
-
- // find the item, if not present but keep is true, add, if
- // present but keep is false, remove
- row = -1;
- for(size_t j = 0; j < (size_t)GetNumberRows(); j++)
- {
- if(m_PropertyItems[i]->GetPropName().IsSameAs(GetCellValue(j, 0)))
- {
- row = j;
- break;
- }
- }
-
- if(row == -1 && keepItem)
- AddPropertyToGrid(m_PropertyItems[i], (m_ShowAdvanced ? 2 : 0));
- else if(row != -1 && !keepItem)
- DeleteRows(row, 1);
- }
-
-#ifdef __LINUX__
- // fix to make sure scrollbars are drawn properly
- wxGrid::AdjustScrollbars();
-#endif
-}
-
-void wxPropertyList::HideControls()
-{
- DisableCellEditControl();
-}
-
-void wxPropertyList::RemoveProperty(wxPropertyItem *pItem)
-{
- HideControls();
-
- // look for property in grid, delete it when present
- for(size_t j = 0; j < (size_t)GetNumberRows(); j++)
- {
- if(pItem->GetPropName().IsSameAs(GetCellValue(j, 0), false))
- {
- DeleteRows(j, 1);
-
-#ifdef __LINUX__
- // fix to make sure scrollbars are drawn properly
- wxGrid::AdjustScrollbars();
-#endif
- break;
- }
- }
-
- // delete the item from the list
- m_PropertyItems.Remove(pItem);
- delete pItem;
-}
-
-wxPropertyItem *wxPropertyList::FindPropertyByName(const wxString &name)
-{
- for(size_t i = 0; i < m_PropertyItems.Count(); i++)
- {
- // we have an advanced item, go through table and if not present, show it
- if(m_PropertyItems[i]->GetPropName().IsSameAs(name, true))
- return m_PropertyItems[i];
- }
-
- return 0;
-}
-
-/**
-void wxPropertyList::OnIgnore()
-{
- if(m_curSel == -1 || this->GetCount() <= 0)
- {
- return;
- }
- wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel);
- pItem->m_curValue = "IGNORE";
- InvalidateList();
-}
-*/
-
-/**
-void wxPropertyList::OnDelete()
-{
- if(m_curSel == -1 || this->GetCount() <= 0)
- {
- return;
- }
- wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel);
- m_CMakeSetupDialog->GetCMakeInstance()->GetCacheManager()->RemoveCacheEntry(pItem->m_propName);
- m_PropertyItems.erase(pItem);
- delete pItem;
- this->DeleteString(m_curSel);
- this->HideControls();
- this->SetTopIndex(0);
- InvalidateList();
-}
-*/
-
-/**
-void wxPropertyList::OnHelp()
-{
- if(m_curSel == -1 || this->GetCount() <= 0)
- {
- return;
- }
- wxPropertyItem* pItem = (wxPropertyItem*) GetItemDataPtr(m_curSel);
- MessageBox(pItem->m_HelpString, pItem->m_propName, MB_OK|MB_ICONINFORMATION);
-}
-*/
-
-void wxPropertyList::RemoveAll()
-{
- WX_CLEAR_ARRAY(m_PropertyItems);
- m_generatedProjects = false;
-
- if(GetNumberRows() > 0)
- DeleteRows(0, GetNumberRows());
-
- m_strQuery.Empty();
-
-#ifdef __LINUX__
- // fix to make sure scrollbars are drawn properly
- wxGrid::AdjustScrollbars();
-#endif
-}
-
-void wxPropertyList::ShowAdvanced()
-{
- // set flag in the control
- m_ShowAdvanced = true;
- UpdateGridView();
-}
-
-
-void wxPropertyList::HideAdvanced()
-{
- // set flag in the control
- m_ShowAdvanced = false;
- UpdateGridView();
-}
-
-int wxPropertyList::FindProperty(wxPropertyItem *pItem)
-{
- if(GetNumberRows() > 0 && pItem != 0)
- {
- // find the property the traditional way
- for(size_t j = 0; j < (size_t)GetNumberRows(); j++)
- {
- if(pItem->GetPropName().IsSameAs(GetCellValue(j, 0)))
- return j;
- }
- }
-
- return -1;
-}
-
-wxPropertyItem *wxPropertyList::GetPropertyItemFromRow(int row)
-{
- if(row < GetNumberRows() && row >= 0)
- {
- wxString str = GetCellValue(row, 0);
- // find the property the traditional way
- for(size_t i = 0; i < (size_t)m_PropertyItems.Count(); i++)
- {
- if(m_PropertyItems[i]->GetPropName().IsSameAs(str))
- return m_PropertyItems[i];
- }
- }
-
- return 0;
-}
-
-bool wxPropertyList::UpdatePropertyItem(wxPropertyItem *pItem, int row)
-{
- wxCHECK(row < GetNumberRows(), false);
-
- // reflect the property's state to match the grid row
-
- SetReadOnly(row, 0);
- // TODO: Make this a UpdatePropItem where ADVANCED, and new edit values are reflected
- SetCellValue(row,0, pItem->GetPropName());
-
- // boolean renderer
- if(pItem->GetItemType() == wxPropertyList::CHECKBOX)
- {
- // translate ON or TRUE (case insensitive to a checkbox)
- if(pItem->GetCurValue().IsSameAs(wxT("ON"), false) ||
- pItem->GetCurValue().IsSameAs(wxT("TRUE"), false))
- SetCellValue(row, 1, wxT("1"));
- else
- SetCellValue(row, 1, wxT("0"));
- }
- else
- {
- // for normal path values, give bold in cell when
- // the NOTFOUND is present, for emphasis
- wxString str = pItem->GetPropName() + wxT("-NOTFOUND");
- if(pItem->GetCurValue().IsSameAs(str))
- {
- wxFont fnt = GetCellFont(row, 0);
- fnt.SetWeight(wxFONTWEIGHT_BOLD);
- SetCellFont(row, 1, fnt);
- }
- else
- SetCellFont(row, 1, GetCellFont(row, 0));
-
- SetCellValue(row,1, pItem->GetCurValue());
- }
-
- if(pItem->GetCurValue().IsSameAs("IGNORE"))
- {
- // ignored cell is completely dimmed
- wxColour col(192,192,192);
- SetCellTextColour(row, 1, col);
- }
- else
- {
- // we colour paths blue, filenames green, all else black
- wxColour col;
- if(pItem->IsDirPath())
- col.Set(0,0,255);
- else if(pItem->IsFilePath())
- col.Set(0,128,0);
- else
- col = GetCellTextColour(row, 0);
-
- SetCellTextColour(row, 1, col);
- }
-
- if(pItem->GetNewValue())
- {
- // new cell is red
- wxColour col(255,100,100);
- SetCellBackgroundColour(row, 0, col);
- }
- else
- {
- // old cell is grey
- wxColour col(192, 192, 192);
- SetCellBackgroundColour(row, 0, col);
- }
-
- return true;
-}
-
-void wxPropertyList::OnSelectCell( wxGridEvent& event )
-{
- this->SetFocus();
- event.Skip();
-}
-
-void wxPropertyList::OnCellChange( wxGridEvent& event )
-{
- int row = event.GetRow();
-
- wxPropertyItem *pItem = GetPropertyItemFromRow(row);
- if(pItem && row != wxNOT_FOUND)
- {
- // write propery back, and set as new
- pItem->SetNewValue(true);
-
- // write back bool
- if(pItem->GetItemType() == CHECKBOX)
- {
- if(GetCellValue(row, 1).IsSameAs("1"))
- pItem->SetCurValue("ON");
- else
- pItem->SetCurValue("OFF");
- }
- else
- pItem->SetCurValue(GetCellValue(row, 1));
-
- UpdatePropertyItem(pItem, row);
- event.Skip();
- }
-}
-
-void wxPropertyList::OnCellPopup( wxGridEvent& event )
-{
- wxPoint pt;
- int row = event.GetRow();
-
- //pt = ::wxGetMousePosition();
- //ScreenToClient(pt);
-
- //row = YToRow(pt.y);
- if(row != wxNOT_FOUND)
- {
- wxPropertyItem *pItem = GetPropertyItemFromRow(row);
-
- if(pItem)
- {
- // select the row first if already in selection, don't
- // this will clear the previous selection
- if(!IsInSelection(row, 0))
- SelectRow(row);
-
- // show popup menu
- wxMenu *menu = AppResources::CreatePopupMenu();
-
- // enable when it is browsable, and selected one only
- wxMenuItem *item = menu->FindItem(ID_CACHE_BROWSE);
- if(item)
- item->Enable(IsSelectedItemBrowsable());
-
- PopupMenu(menu);
-
- delete menu;
- }
- }
-}
-
-void wxPropertyList::OnIgnoreCache( wxCommandEvent& event )
-{
- HideControls();
-
- // ignore all selected items
- for(size_t i = 0; i < (size_t)GetNumberRows(); i++)
- {
- if(IsInSelection(i, 0))
- {
- wxPropertyItem *pItem = GetPropertyItemFromRow(i);
- if(pItem)
- {
- pItem->SetCurValue("IGNORE");
- UpdatePropertyItem(pItem, i);
- }
- }
- }
-}
-
-void wxPropertyList::OnDeleteCache( wxCommandEvent& event )
-{
- HideControls();
-
- // convert selections to prop items
- wxArrayPtrVoid items;
- for(size_t i = 0; i < (size_t)GetNumberRows(); i++)
- {
- // if selected, query for removal
- if(IsInSelection(i, 0))
- {
- wxPropertyItem *pItem = GetPropertyItemFromRow(i);
- if(pItem)
- items.Add((void *)pItem);
- }
- }
-
- // now delete all prop items in cells
- for(size_t i = 0; i < items.Count(); i++)
- RemoveProperty((wxPropertyItem *)items[i]);
-}
-
-void wxPropertyList::OnBrowseItem( wxCommandEvent& event )
-{
- BrowseSelectedItem();
-}
-
-bool wxPropertyList::IsSelectedItemBrowsable(int row)
-{
- // when there is only one selection, and our current item
- // is browsable, make sure it can be selected.
- wxPropertyItem *pItem = 0;
-
- size_t count = 0;
- for(size_t i = 0; i < (size_t)GetNumberRows() && (count < 2); i++)
- {
- if(IsInSelection(i, 0))
- {
- if(!pItem)
- pItem = GetPropertyItemFromRow(i);
- count ++;
- }
- }
-
- // if we found nothing, take row (because the event EVT_GRID_CELL_SELECTED
- // deselects the cells first before selecting the new one again
- if(row != -1 && !pItem)
- {
- pItem = GetPropertyItemFromRow(row);
- count ++; // needed because of next loop
- }
-
- // only one item allowed to select
- if(pItem && count == 1)
- {
- if(pItem)
- return pItem->IsDirPath() || pItem->IsFilePath();
- }
-
- return false;
-}
-
-
-void wxPropertyList::BrowseSelectedItem()
-{
- HideControls();
-
- for(size_t i = 0; i < (size_t)GetNumberRows(); i++)
- {
- if(IsInSelection(i, 0))
- {
- // browse for file or directory
- wxPropertyItem *pItem = GetPropertyItemFromRow(i);
- if(pItem)
- {
- wxString title;
- wxString str = pItem->GetPropName() + _("-NOTFOUND");
- if(pItem->GetCurValue().IsSameAs(str, true))
- str.Empty();
- else
- str = pItem->GetCurValue();
-
- // browse the directory path
-
- if(pItem->IsDirPath())
- {
- title = _("Select path for ") + pItem->GetPropName();
- str = ::wxDirSelector(title, str, 0, wxDefaultPosition, this);
- }
- else if(pItem->IsFilePath())
- {
- title = _("Select file for ") + pItem->GetPropName();
- str = ::wxFileSelector(title, str, _(""), _(""), _(MC_DEFAULT_WILDCARD), wxFILE_MUST_EXIST, this);
- }
- else
- str.Empty();
-
- if(!str.IsEmpty())
- {
- pItem->SetCurValue(str.c_str());
- UpdatePropertyItem(pItem, i);
- }
- }
-
- // only allow one item to browse
- break;
- }
- }
-}
-
-void wxPropertyList::OnSizeGrid( wxSizeEvent &event )
-{
- int width, height;
-
- // make sure the grid's cells are equally adjusted
- GetClientSize(&width, &height);
- SetDefaultColSize(width / 2, true);
-
- wxGrid::AdjustScrollbars();
-}
-
-void wxPropertyList::OnKeyPressed( wxKeyEvent &event )
-{
- event.Skip();
-}