tree control and dc::drawlines bug

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1998-07-10 23:08:39 +00:00
parent da7f8ac4dd
commit 4c6819972f
8 changed files with 151 additions and 144 deletions

View File

@@ -73,6 +73,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxDirCtrl,wxTreeCtrl)
BEGIN_EVENT_TABLE(wxDirCtrl,wxTreeCtrl)
EVT_TREE_ITEM_EXPANDED (-1, wxDirCtrl::OnExpandItem)
EVT_TREE_ITEM_COLLAPSED (-1, wxDirCtrl::OnCollapseItem)
EVT_TREE_DELETE_ITEM (-1, wxDirCtrl::OnDeleteItem)
EVT_MOUSE_EVENTS (wxDirCtrl::OnMouse)
END_EVENT_TABLE()
@@ -82,7 +83,7 @@ wxDirCtrl::wxDirCtrl(void)
m_showHidden = FALSE;
};
wxDirCtrl::wxDirCtrl(wxWindow *parent, const wxWindowID id, const wxString &dir,
wxDirCtrl::wxDirCtrl(wxWindow *parent, const wxWindowID id, const wxString &WXUNUSED(dir),
const wxPoint& pos, const wxSize& size,
const long style, const wxString& name )
:
@@ -92,56 +93,67 @@ wxDirCtrl::wxDirCtrl(wxWindow *parent, const wxWindowID id, const wxString &dir,
wxTreeItem item;
item.m_mask = wxTREE_MASK_TEXT | wxTREE_MASK_CHILDREN | wxTREE_MASK_DATA;
item.m_text = "root.";
item.m_text = "Sections";
item.m_children = 1;
/*
wxDirInfo *info = new wxDirInfo( dir );
item.m_data = (long)info;
long root_id = InsertItem( 0, item );
info = new wxDirInfo( "/" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/home" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/mnt" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/usr" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/usr/X11R6" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/usr/local" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/var" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
info = new wxDirInfo( "/proc" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( root_id, item );
*/
m_rootId = InsertItem( 0, item );
};
void wxDirCtrl::OnExpandItem( const wxTreeEvent &event )
{
if (event.m_item.m_itemId == m_rootId)
{
wxTreeItem item;
item.m_mask = wxTREE_MASK_TEXT | wxTREE_MASK_CHILDREN | wxTREE_MASK_DATA;
item.m_children = 1;
wxDirInfo *info = new wxDirInfo( "/" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/home" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/mnt" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/usr" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/usr/X11R6" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/usr/local" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/var" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
info = new wxDirInfo( "/proc" );
item.m_text = info->GetName();
item.m_data = (long)info;
InsertItem( m_rootId, item );
return;
};
wxDirInfo *info = (wxDirInfo *)event.m_item.m_data;
if (!info) return;
@@ -173,7 +185,7 @@ void wxDirCtrl::OnExpandItem( const wxTreeEvent &event )
path = wxFindNextFile();
};
for (int i = 0; i < slist.Count(); i++)
for (uint i = 0; i < slist.Count(); i++)
{
search = slist[i];
search += "/*";
@@ -190,6 +202,11 @@ void wxDirCtrl::OnExpandItem( const wxTreeEvent &event )
};
};
void wxDirCtrl::OnCollapseItem( const wxTreeEvent &event )
{
DeleteChildren( event.m_item.m_itemId );
};
void wxDirCtrl::OnDeleteItem( const wxTreeEvent &event )
{
wxDirInfo *info = (wxDirInfo *)event.m_item.m_data;

View File

@@ -56,15 +56,16 @@ class wxDirCtrl: public wxTreeCtrl
bool m_showHidden;
int m_dragX,m_dragY;
long m_rootId;
wxDirCtrl(void);
wxDirCtrl(wxWindow *parent, const wxWindowID id = -1, const wxString &dir = "/",
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const long style = wxTR_HAS_BUTTONS,
const wxString& name = "wxTreeCtrl" )
;
const wxString& name = "wxTreeCtrl" );
void OnExpandItem( const wxTreeEvent &event );
void OnCollapseItem( const wxTreeEvent &event );
void OnDeleteItem( const wxTreeEvent &event );
void OnMouse( wxMouseEvent &event );

View File

@@ -361,13 +361,13 @@ void MyFrame::OnListDrag( wxListEvent &event )
void MyFrame::OnTreeSelected( wxTreeEvent &event )
{
wxDirInfo *info = (wxDirInfo*) event.m_item.m_data;
SetStatusText( info->GetPath() );
if (info) SetStatusText( info->GetPath() );
};
void MyFrame::OnTreeKeyDown( wxTreeEvent &event )
{
wxDirInfo *info = (wxDirInfo*) event.m_item.m_data;
m_rightFile->GoToDir( info->GetPath() );
if (info) m_rightFile->GoToDir( info->GetPath() );
};
//-----------------------------------------------------------------------------