wxListCtrl::DeleteAllItems() doesn't send notification events (as documented)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -140,7 +140,10 @@ Deletes all items and all columns.
|
|||||||
|
|
||||||
\func{bool}{DeleteItem}{\param{long }{item}}
|
\func{bool}{DeleteItem}{\param{long }{item}}
|
||||||
|
|
||||||
Deletes the specified item.
|
Deletes the specified item. This function sends the
|
||||||
|
{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event for the item being deleted.
|
||||||
|
|
||||||
|
See also: \helpref{DeleteAllItems}{wxlistctrldeleteallitems}
|
||||||
|
|
||||||
\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
|
\membersection{wxListCtrl::DeleteAllItems}\label{wxlistctrldeleteallitems}
|
||||||
|
|
||||||
@@ -148,6 +151,11 @@ Deletes the specified item.
|
|||||||
|
|
||||||
Deletes all the items in the list control.
|
Deletes all the items in the list control.
|
||||||
|
|
||||||
|
{\bf NB:} This function does {\it not} send the
|
||||||
|
{\tt wxEVT\_COMMAND\_LIST\_DELETE\_ITEM} event because deleting many items
|
||||||
|
from the control would be too slow then (unlike
|
||||||
|
\helpref{DeleteItem}{wxlistctrldeleteitem})
|
||||||
|
|
||||||
\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
|
\membersection{wxListCtrl::DeleteColumn}\label{wxlistctrldeletecolumn}
|
||||||
|
|
||||||
\func{bool}{DeleteColumn}{\param{int }{col}}
|
\func{bool}{DeleteColumn}{\param{int }{col}}
|
||||||
|
@@ -311,9 +311,9 @@ void wxListLineData::CalculateSize( wxDC *dc, int spacing )
|
|||||||
int w = 0;
|
int w = 0;
|
||||||
int h = 0;
|
int h = 0;
|
||||||
m_owner->GetImageSize( item->GetImage(), w, h );
|
m_owner->GetImageSize( item->GetImage(), w, h );
|
||||||
m_bound_all.width += 4 + w;
|
m_bound_all.width += 4 + w;
|
||||||
if (h > m_bound_all.height) m_bound_all.height = h;
|
if (h > m_bound_all.height) m_bound_all.height = h;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -410,18 +410,18 @@ void wxListLineData::SetPosition( wxDC *dc, int x, int y, int window_width )
|
|||||||
{
|
{
|
||||||
wxListItemData *item = (wxListItemData*)node->Data();
|
wxListItemData *item = (wxListItemData*)node->Data();
|
||||||
if (item->HasImage())
|
if (item->HasImage())
|
||||||
{
|
{
|
||||||
m_bound_icon.x = m_bound_all.x + 2;
|
m_bound_icon.x = m_bound_all.x + 2;
|
||||||
m_bound_icon.y = m_bound_all.y + 2;
|
m_bound_icon.y = m_bound_all.y + 2;
|
||||||
int w;
|
int w;
|
||||||
int h;
|
int h;
|
||||||
m_owner->GetImageSize( item->GetImage(), w, h );
|
m_owner->GetImageSize( item->GetImage(), w, h );
|
||||||
m_bound_icon.width = w;
|
m_bound_icon.width = w;
|
||||||
m_bound_icon.height = h;
|
m_bound_icon.height = h;
|
||||||
m_bound_label.x += 4 + w;
|
m_bound_label.x += 4 + w;
|
||||||
m_bound_label.width -= 4 + w;
|
m_bound_label.width -= 4 + w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case wxLC_REPORT:
|
case wxLC_REPORT:
|
||||||
@@ -441,23 +441,23 @@ void wxListLineData::SetPosition( wxDC *dc, int x, int y, int window_width )
|
|||||||
wxListItemData *item = (wxListItemData*)node->Data();
|
wxListItemData *item = (wxListItemData*)node->Data();
|
||||||
wxString s;
|
wxString s;
|
||||||
item->GetText( s );
|
item->GetText( s );
|
||||||
if (s.IsEmpty()) s = wxT("H");
|
if (s.IsEmpty()) s = wxT("H");
|
||||||
long lw,lh;
|
long lw,lh;
|
||||||
dc->GetTextExtent( s, &lw, &lh );
|
dc->GetTextExtent( s, &lw, &lh );
|
||||||
m_bound_label.width = lw;
|
m_bound_label.width = lw;
|
||||||
m_bound_label.height = lh;
|
m_bound_label.height = lh;
|
||||||
if (item->HasImage())
|
if (item->HasImage())
|
||||||
{
|
{
|
||||||
m_bound_icon.x = m_bound_all.x + 2;
|
m_bound_icon.x = m_bound_all.x + 2;
|
||||||
m_bound_icon.y = m_bound_all.y + 2;
|
m_bound_icon.y = m_bound_all.y + 2;
|
||||||
int w;
|
int w;
|
||||||
int h;
|
int h;
|
||||||
m_owner->GetImageSize( item->GetImage(), w, h );
|
m_owner->GetImageSize( item->GetImage(), w, h );
|
||||||
m_bound_icon.width = w;
|
m_bound_icon.width = w;
|
||||||
m_bound_icon.height = h;
|
m_bound_icon.height = h;
|
||||||
m_bound_label.x += 4 + w;
|
m_bound_label.x += 4 + w;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -787,15 +787,15 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
wxPaintDC dc( this );
|
wxPaintDC dc( this );
|
||||||
PrepareDC( dc );
|
PrepareDC( dc );
|
||||||
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
||||||
if ( m_owner->GetMode() & wxLC_REPORT )
|
if ( m_owner->GetMode() & wxLC_REPORT )
|
||||||
{
|
{
|
||||||
int x , y ;
|
int x , y ;
|
||||||
int xpix , ypix ;
|
int xpix , ypix ;
|
||||||
|
|
||||||
m_owner->GetScrollPixelsPerUnit( &xpix , &ypix ) ;
|
m_owner->GetScrollPixelsPerUnit( &xpix , &ypix ) ;
|
||||||
m_owner->ViewStart( &x, &y ) ;
|
m_owner->ViewStart( &x, &y ) ;
|
||||||
dc.SetDeviceOrigin( -x * xpix, 0 );
|
dc.SetDeviceOrigin( -x * xpix, 0 );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
dc.BeginDrawing();
|
dc.BeginDrawing();
|
||||||
|
|
||||||
@@ -820,8 +820,8 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
m_owner->GetColumn( i, item );
|
m_owner->GetColumn( i, item );
|
||||||
int cw = item.m_width-2;
|
int cw = item.m_width-2;
|
||||||
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
||||||
if ((i+1 == numColumns) || ( dc.LogicalToDeviceX(x+item.m_width) > w-5))
|
if ((i+1 == numColumns) || ( dc.LogicalToDeviceX(x+item.m_width) > w-5))
|
||||||
cw = dc.DeviceToLogicalX(w)-x-1;
|
cw = dc.DeviceToLogicalX(w)-x-1;
|
||||||
#else
|
#else
|
||||||
if ((i+1 == numColumns) || (x+item.m_width > w-5)) cw = w-x-1;
|
if ((i+1 == numColumns) || (x+item.m_width > w-5)) cw = w-x-1;
|
||||||
#endif
|
#endif
|
||||||
@@ -905,31 +905,31 @@ void wxListHeaderWindow::OnMouse( wxMouseEvent &event )
|
|||||||
hit_border = TRUE;
|
hit_border = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (x-xpos < 0)
|
if (x-xpos < 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_minX = xpos;
|
m_minX = xpos;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.LeftDown())
|
if (event.LeftDown())
|
||||||
{
|
{
|
||||||
if (hit_border)
|
if (hit_border)
|
||||||
{
|
{
|
||||||
m_isDragging = TRUE;
|
m_isDragging = TRUE;
|
||||||
m_currentX = x;
|
m_currentX = x;
|
||||||
DrawCurrent();
|
DrawCurrent();
|
||||||
CaptureMouse();
|
CaptureMouse();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxListEvent le( wxEVT_COMMAND_LIST_COL_CLICK, GetParent()->GetId() );
|
wxListEvent le( wxEVT_COMMAND_LIST_COL_CLICK, GetParent()->GetId() );
|
||||||
le.SetEventObject( GetParent() );
|
le.SetEventObject( GetParent() );
|
||||||
le.m_col = m_column;
|
le.m_col = m_column;
|
||||||
GetParent()->GetEventHandler()->ProcessEvent( le );
|
GetParent()->GetEventHandler()->ProcessEvent( le );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.Moving())
|
if (event.Moving())
|
||||||
@@ -1003,14 +1003,14 @@ void wxListTextCtrl::OnChar( wxKeyEvent &event )
|
|||||||
{
|
{
|
||||||
(*m_accept) = TRUE;
|
(*m_accept) = TRUE;
|
||||||
(*m_res) = GetValue();
|
(*m_res) = GetValue();
|
||||||
m_owner->SetFocus();
|
m_owner->SetFocus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.m_keyCode == WXK_ESCAPE)
|
if (event.m_keyCode == WXK_ESCAPE)
|
||||||
{
|
{
|
||||||
(*m_accept) = FALSE;
|
(*m_accept) = FALSE;
|
||||||
(*m_res) = "";
|
(*m_res) = "";
|
||||||
m_owner->SetFocus();
|
m_owner->SetFocus();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
event.Skip();
|
event.Skip();
|
||||||
@@ -1040,7 +1040,7 @@ BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow)
|
|||||||
EVT_KEY_DOWN (wxListMainWindow::OnKeyDown)
|
EVT_KEY_DOWN (wxListMainWindow::OnKeyDown)
|
||||||
EVT_SET_FOCUS (wxListMainWindow::OnSetFocus)
|
EVT_SET_FOCUS (wxListMainWindow::OnSetFocus)
|
||||||
EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus)
|
EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus)
|
||||||
EVT_SCROLLWIN (wxListMainWindow::OnScroll)
|
EVT_SCROLLWIN (wxListMainWindow::OnScroll)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
wxListMainWindow::wxListMainWindow()
|
wxListMainWindow::wxListMainWindow()
|
||||||
@@ -1161,18 +1161,18 @@ void wxListMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
int dummy = 0;
|
int dummy = 0;
|
||||||
line->GetSize( dummy, lineSpacing );
|
line->GetSize( dummy, lineSpacing );
|
||||||
lineSpacing += 1;
|
lineSpacing += 1;
|
||||||
|
|
||||||
int y_s = m_yScroll*GetScrollPos( wxVERTICAL );
|
int y_s = m_yScroll*GetScrollPos( wxVERTICAL );
|
||||||
|
|
||||||
wxNode *node = m_lines.Nth( y_s / lineSpacing );
|
wxNode *node = m_lines.Nth( y_s / lineSpacing );
|
||||||
for (int i = 0; i < m_visibleLines+2; i++)
|
for (int i = 0; i < m_visibleLines+2; i++)
|
||||||
{
|
{
|
||||||
if (!node) break;
|
if (!node) break;
|
||||||
|
|
||||||
line = (wxListLineData*)node->Data();
|
line = (wxListLineData*)node->Data();
|
||||||
line->Draw( &dc );
|
line->Draw( &dc );
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1335,21 +1335,21 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
if (event.Dragging())
|
if (event.Dragging())
|
||||||
{
|
{
|
||||||
if (m_dragCount == 0)
|
if (m_dragCount == 0)
|
||||||
m_dragStart = wxPoint(x,y);
|
m_dragStart = wxPoint(x,y);
|
||||||
|
|
||||||
m_dragCount++;
|
m_dragCount++;
|
||||||
|
|
||||||
if (m_dragCount != 3) return;
|
if (m_dragCount != 3) return;
|
||||||
|
|
||||||
int command = wxEVT_COMMAND_LIST_BEGIN_DRAG;
|
int command = wxEVT_COMMAND_LIST_BEGIN_DRAG;
|
||||||
if (event.RightIsDown()) command = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
|
if (event.RightIsDown()) command = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
|
||||||
|
|
||||||
wxListEvent le( command, GetParent()->GetId() );
|
wxListEvent le( command, GetParent()->GetId() );
|
||||||
le.SetEventObject( GetParent() );
|
le.SetEventObject( GetParent() );
|
||||||
le.m_pointDrag = m_dragStart;
|
le.m_pointDrag = m_dragStart;
|
||||||
GetParent()->GetEventHandler()->ProcessEvent( le );
|
GetParent()->GetEventHandler()->ProcessEvent( le );
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1416,7 +1416,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
else if (event.ControlDown())
|
else if (event.ControlDown())
|
||||||
{
|
{
|
||||||
m_current = line;
|
m_current = line;
|
||||||
|
|
||||||
int numOfCurrent = -1;
|
int numOfCurrent = -1;
|
||||||
node = m_lines.First();
|
node = m_lines.First();
|
||||||
while (node)
|
while (node)
|
||||||
@@ -1426,7 +1426,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
if (test_line == oldCurrent) break;
|
if (test_line == oldCurrent) break;
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
|
|
||||||
int numOfLine = -1;
|
int numOfLine = -1;
|
||||||
node = m_lines.First();
|
node = m_lines.First();
|
||||||
while (node)
|
while (node)
|
||||||
@@ -1439,11 +1439,11 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
|||||||
|
|
||||||
if (numOfLine < numOfCurrent)
|
if (numOfLine < numOfCurrent)
|
||||||
{
|
{
|
||||||
int i = numOfLine;
|
int i = numOfLine;
|
||||||
numOfLine = numOfCurrent;
|
numOfLine = numOfCurrent;
|
||||||
numOfCurrent = i;
|
numOfCurrent = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxNode *node = m_lines.Nth( numOfCurrent );
|
wxNode *node = m_lines.Nth( numOfCurrent );
|
||||||
for (int i = 0; i <= numOfLine-numOfCurrent; i++)
|
for (int i = 0; i <= numOfLine-numOfCurrent; i++)
|
||||||
{
|
{
|
||||||
@@ -1601,9 +1601,9 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
{
|
{
|
||||||
int steps = 0;
|
int steps = 0;
|
||||||
if (m_mode & wxLC_REPORT)
|
if (m_mode & wxLC_REPORT)
|
||||||
{
|
{
|
||||||
steps = m_visibleLines-1;
|
steps = m_visibleLines-1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
@@ -1620,9 +1620,9 @@ void wxListMainWindow::OnChar( wxKeyEvent &event )
|
|||||||
{
|
{
|
||||||
int steps = 0;
|
int steps = 0;
|
||||||
if (m_mode & wxLC_REPORT)
|
if (m_mode & wxLC_REPORT)
|
||||||
{
|
{
|
||||||
steps = m_visibleLines-1;
|
steps = m_visibleLines-1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int pos = 0; wxNode *node = m_lines.First();
|
int pos = 0; wxNode *node = m_lines.First();
|
||||||
@@ -1860,25 +1860,25 @@ void wxListMainWindow::SetColumnWidth( int col, int width )
|
|||||||
if (n)
|
if (n)
|
||||||
{
|
{
|
||||||
wxListItemData *item = (wxListItemData*)n->Data();
|
wxListItemData *item = (wxListItemData*)n->Data();
|
||||||
int current = 0, ix = 0, iy = 0;
|
int current = 0, ix = 0, iy = 0;
|
||||||
long lx = 0, ly = 0;
|
long lx = 0, ly = 0;
|
||||||
if (item->HasImage())
|
if (item->HasImage())
|
||||||
{
|
{
|
||||||
GetImageSize( item->GetImage(), ix, iy );
|
GetImageSize( item->GetImage(), ix, iy );
|
||||||
current = ix + 5;
|
current = ix + 5;
|
||||||
}
|
}
|
||||||
if (item->HasText())
|
if (item->HasText())
|
||||||
{
|
{
|
||||||
wxString str;
|
wxString str;
|
||||||
item->GetText( str );
|
item->GetText( str );
|
||||||
dc.GetTextExtent( str, &lx, &ly );
|
dc.GetTextExtent( str, &lx, &ly );
|
||||||
current += lx;
|
current += lx;
|
||||||
}
|
}
|
||||||
if (current > max) max = current;
|
if (current > max) max = current;
|
||||||
}
|
}
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
width = max+10;
|
width = max+10;
|
||||||
}
|
}
|
||||||
|
|
||||||
node = m_columns.Nth( col );
|
node = m_columns.Nth( col );
|
||||||
@@ -1998,11 +1998,11 @@ void wxListMainWindow::SetItemState( long item, long state, long stateMask )
|
|||||||
if (oldCurrent) RefreshLine( oldCurrent );
|
if (oldCurrent) RefreshLine( oldCurrent );
|
||||||
}
|
}
|
||||||
bool on = state & wxLIST_STATE_SELECTED;
|
bool on = state & wxLIST_STATE_SELECTED;
|
||||||
if (on != line->IsHilighted())
|
if (on != line->IsHilighted())
|
||||||
{
|
{
|
||||||
line->Hilight( on );
|
line->Hilight( on );
|
||||||
RefreshLine( line );
|
RefreshLine( line );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2191,9 +2191,9 @@ void wxListMainWindow::CalculatePositions()
|
|||||||
y += lineSpacing; // one pixel blank line between items
|
y += lineSpacing; // one pixel blank line between items
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
m_visibleLines = clientHeight / lineSpacing;
|
m_visibleLines = clientHeight / lineSpacing;
|
||||||
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
||||||
SetScrollbars( m_xScroll, m_yScroll, entireWidth / m_xScroll , (entireHeight+15) / m_yScroll, x_scroll_pos , scroll_pos, TRUE );
|
SetScrollbars( m_xScroll, m_yScroll, entireWidth / m_xScroll , (entireHeight+15) / m_yScroll, x_scroll_pos , scroll_pos, TRUE );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2203,7 +2203,7 @@ void wxListMainWindow::CalculatePositions()
|
|||||||
// approximated 15 pt for the horizontal scrollbar
|
// approximated 15 pt for the horizontal scrollbar
|
||||||
|
|
||||||
GetSize( &clientWidth, &clientHeight );
|
GetSize( &clientWidth, &clientHeight );
|
||||||
clientHeight -= 4; // sunken frame
|
clientHeight -= 4; // sunken frame
|
||||||
|
|
||||||
int entireWidth = 0;
|
int entireWidth = 0;
|
||||||
|
|
||||||
@@ -2214,22 +2214,22 @@ void wxListMainWindow::CalculatePositions()
|
|||||||
int y = 5; // painting is done at y-2
|
int y = 5; // painting is done at y-2
|
||||||
int maxWidth = 0;
|
int maxWidth = 0;
|
||||||
m_visibleLines = 0;
|
m_visibleLines = 0;
|
||||||
int m_currentVisibleLines = 0;
|
int m_currentVisibleLines = 0;
|
||||||
wxNode *node = m_lines.First();
|
wxNode *node = m_lines.First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
m_currentVisibleLines++;
|
m_currentVisibleLines++;
|
||||||
wxListLineData *line = (wxListLineData*)node->Data();
|
wxListLineData *line = (wxListLineData*)node->Data();
|
||||||
line->CalculateSize( &dc, iconSpacing );
|
line->CalculateSize( &dc, iconSpacing );
|
||||||
line->SetPosition( &dc, x, y, clientWidth );
|
line->SetPosition( &dc, x, y, clientWidth );
|
||||||
line->GetSize( lineWidth, lineHeight );
|
line->GetSize( lineWidth, lineHeight );
|
||||||
if (lineWidth > maxWidth) maxWidth = lineWidth;
|
if (lineWidth > maxWidth) maxWidth = lineWidth;
|
||||||
y += lineSpacing;
|
y += lineSpacing;
|
||||||
if (m_currentVisibleLines > m_visibleLines)
|
if (m_currentVisibleLines > m_visibleLines)
|
||||||
m_visibleLines = m_currentVisibleLines;
|
m_visibleLines = m_currentVisibleLines;
|
||||||
if (y+lineSpacing-6 >= clientHeight) // -6 for earlier "line breaking"
|
if (y+lineSpacing-6 >= clientHeight) // -6 for earlier "line breaking"
|
||||||
{
|
{
|
||||||
m_currentVisibleLines = 0;
|
m_currentVisibleLines = 0;
|
||||||
y = 5;
|
y = 5;
|
||||||
x += maxWidth+6;
|
x += maxWidth+6;
|
||||||
entireWidth += maxWidth+6;
|
entireWidth += maxWidth+6;
|
||||||
@@ -2241,13 +2241,13 @@ void wxListMainWindow::CalculatePositions()
|
|||||||
{
|
{
|
||||||
clientHeight -= 15; // scrollbar height
|
clientHeight -= 15; // scrollbar height
|
||||||
m_visibleLines = 0;
|
m_visibleLines = 0;
|
||||||
m_currentVisibleLines = 0;
|
m_currentVisibleLines = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!node) tries = 1; // everything fits, no second try required
|
if (!node) tries = 1; // everything fits, no second try required
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int scroll_pos = GetScrollPos( wxHORIZONTAL );
|
int scroll_pos = GetScrollPos( wxHORIZONTAL );
|
||||||
SetScrollbars( m_xScroll, m_yScroll, (entireWidth+15) / m_xScroll, 0, scroll_pos, 0, TRUE );
|
SetScrollbars( m_xScroll, m_yScroll, (entireWidth+15) / m_xScroll, 0, scroll_pos, 0, TRUE );
|
||||||
}
|
}
|
||||||
@@ -2316,7 +2316,12 @@ void wxListMainWindow::DeleteAllItems( void )
|
|||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
wxListLineData *line = (wxListLineData*)node->Data();
|
wxListLineData *line = (wxListLineData*)node->Data();
|
||||||
DeleteLine( line );
|
|
||||||
|
// to make the deletion of all items faster, we don't send the
|
||||||
|
// notifications in this case: this is compatible with wxMSW and
|
||||||
|
// documented in DeleteAllItems() description
|
||||||
|
//DeleteLine( line );
|
||||||
|
|
||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
m_lines.Clear();
|
m_lines.Clear();
|
||||||
@@ -2485,19 +2490,19 @@ void wxListMainWindow::SortItems( wxListCtrlCompare fn, long data )
|
|||||||
|
|
||||||
void wxListMainWindow::OnScroll(wxScrollWinEvent& event)
|
void wxListMainWindow::OnScroll(wxScrollWinEvent& event)
|
||||||
{
|
{
|
||||||
wxScrolledWindow::OnScroll( event ) ;
|
wxScrolledWindow::OnScroll( event ) ;
|
||||||
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
#if wxUSE_GENERIC_LIST_EXTENSIONS
|
||||||
|
|
||||||
if (event.GetOrientation() == wxHORIZONTAL && ( m_mode & wxLC_REPORT ))
|
if (event.GetOrientation() == wxHORIZONTAL && ( m_mode & wxLC_REPORT ))
|
||||||
{
|
{
|
||||||
wxListCtrl* lc = wxDynamicCast( GetParent() , wxListCtrl ) ;
|
wxListCtrl* lc = wxDynamicCast( GetParent() , wxListCtrl ) ;
|
||||||
if ( lc )
|
if ( lc )
|
||||||
{
|
{
|
||||||
lc->m_headerWin->Refresh() ;
|
lc->m_headerWin->Refresh() ;
|
||||||
#ifdef __WXMAC__
|
#ifdef __WXMAC__
|
||||||
lc->m_headerWin->MacUpdateImmediately() ;
|
lc->m_headerWin->MacUpdateImmediately() ;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -2659,15 +2664,15 @@ void wxListCtrl::SetWindowStyleFlag( long flag )
|
|||||||
if (!m_headerWin)
|
if (!m_headerWin)
|
||||||
{
|
{
|
||||||
m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin,
|
m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin,
|
||||||
wxPoint(0,0), wxSize(width,23), wxTAB_TRAVERSAL );
|
wxPoint(0,0), wxSize(width,23), wxTAB_TRAVERSAL );
|
||||||
if (HasFlag(wxLC_NO_HEADER))
|
if (HasFlag(wxLC_NO_HEADER))
|
||||||
m_headerWin->Show( FALSE );
|
m_headerWin->Show( FALSE );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (flag & wxLC_NO_HEADER)
|
if (flag & wxLC_NO_HEADER)
|
||||||
m_headerWin->Show( FALSE );
|
m_headerWin->Show( FALSE );
|
||||||
else
|
else
|
||||||
m_headerWin->Show( TRUE );
|
m_headerWin->Show( TRUE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2678,7 +2683,7 @@ void wxListCtrl::SetWindowStyleFlag( long flag )
|
|||||||
{
|
{
|
||||||
m_headerWin->Show( FALSE );
|
m_headerWin->Show( FALSE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindow::SetWindowStyleFlag( flag );
|
wxWindow::SetWindowStyleFlag( flag );
|
||||||
@@ -2901,7 +2906,7 @@ bool wxListCtrl::DeleteAllColumns()
|
|||||||
{
|
{
|
||||||
for ( size_t n = 0; n < m_mainWin->m_columns.GetCount(); n++ )
|
for ( size_t n = 0; n < m_mainWin->m_columns.GetCount(); n++ )
|
||||||
DeleteColumn(n);
|
DeleteColumn(n);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user