use GetText() instead of GetText(wxString&), made some methods inline

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-06-26 16:08:03 +00:00
parent 6b1a0f7a66
commit 544421165f

View File

@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: listctrl.cpp
// Purpose:
// Name: generic/listctrl.cpp
// Purpose: generic implementation of wxListCtrl
// Author: Robert Roebling
// Id: $Id$
// Copyright: (c) 1998 Robert Roebling
@ -65,31 +65,24 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_LIST_ITEM_ACTIVATED)
class WXDLLEXPORT wxListItemData : public wxObject
{
public:
wxString m_text;
int m_image;
long m_data;
int m_xpos,m_ypos;
int m_width,m_height;
wxListItemAttr *m_attr;
public:
wxListItemData();
~wxListItemData() { delete m_attr; }
wxListItemData( const wxListItem &info );
void SetItem( const wxListItem &info );
void SetText( const wxString &s );
void SetImage( int image );
void SetData( long data );
void SetPosition( int x, int y );
void SetSize( int width, int height );
bool HasImage() const;
bool HasText() const;
bool HasText() const { return !m_text.empty(); }
const wxString& GetText() const { return m_text; }
void SetText(const wxString& text) { m_text = text; }
bool IsHit( int x, int y ) const;
void GetText( wxString &s );
const wxString& GetText() { return m_text; }
int GetX( void ) const;
int GetY( void ) const;
int GetWidth() const;
@ -99,6 +92,19 @@ public:
wxListItemAttr *GetAttributes() const { return m_attr; }
public:
int m_image;
long m_data;
int m_xpos,
m_ypos;
int m_width,
m_height;
wxListItemAttr *m_attr;
protected:
wxString m_text;
private:
DECLARE_DYNAMIC_CLASS(wxListItemData);
};
@ -127,10 +133,14 @@ public:
void SetFormat( int format );
void SetHeight( int h );
bool HasImage() const;
bool HasText() const;
bool IsHit( int x, int y ) const;
bool HasText() const { return !m_text.empty(); }
const wxString& GetText() const { return m_text; }
void SetText(const wxString& text) { m_text = text; }
void GetItem( wxListItem &item );
void GetText( wxString &s );
bool IsHit( int x, int y ) const;
int GetImage() const;
int GetWidth() const;
int GetFormat() const;
@ -172,7 +182,7 @@ public:
void InitItems( int num );
void SetItem( int index, const wxListItem &info );
void GetItem( int index, wxListItem &info );
void GetText( int index, wxString &s );
wxString GetText(int index) const;
void SetText( int index, const wxString s );
int GetImage( int index );
void GetRect( wxRect &rect );
@ -439,9 +449,12 @@ wxListItemData::wxListItemData( const wxListItem &info )
void wxListItemData::SetItem( const wxListItem &info )
{
if (info.m_mask & wxLIST_MASK_TEXT) m_text = info.m_text;
if (info.m_mask & wxLIST_MASK_IMAGE) m_image = info.m_image;
if (info.m_mask & wxLIST_MASK_DATA) m_data = info.m_data;
if (info.m_mask & wxLIST_MASK_TEXT)
SetText(info.m_text);
if (info.m_mask & wxLIST_MASK_IMAGE)
m_image = info.m_image;
if (info.m_mask & wxLIST_MASK_DATA)
m_data = info.m_data;
if ( info.HasAttributes() )
{
@ -457,11 +470,6 @@ void wxListItemData::SetItem( const wxListItem &info )
m_height = 0;
}
void wxListItemData::SetText( const wxString &s )
{
m_text = s;
}
void wxListItemData::SetImage( int image )
{
m_image = image;
@ -489,21 +497,11 @@ bool wxListItemData::HasImage() const
return (m_image >= 0);
}
bool wxListItemData::HasText() const
{
return (!m_text.IsNull());
}
bool wxListItemData::IsHit( int x, int y ) const
{
return ((x >= m_xpos) && (x <= m_xpos+m_width) && (y >= m_ypos) && (y <= m_ypos+m_height));
}
void wxListItemData::GetText( wxString &s )
{
s = m_text;
}
int wxListItemData::GetX() const
{
return m_xpos;
@ -610,11 +608,6 @@ bool wxListHeaderData::HasImage() const
return (m_image != 0);
}
bool wxListHeaderData::HasText() const
{
return (m_text.Length() > 0);
}
bool wxListHeaderData::IsHit( int x, int y ) const
{
return ((x >= m_xpos) && (x <= m_xpos+m_width) && (y >= m_ypos) && (y <= m_ypos+m_height));
@ -629,11 +622,6 @@ void wxListHeaderData::GetItem( wxListItem &item )
item.m_width = m_width;
}
void wxListHeaderData::GetText( wxString &s )
{
s = m_text;
}
int wxListHeaderData::GetImage() const
{
return m_image;
@ -959,16 +947,18 @@ void wxListLineData::GetItem( int index, wxListItem &info )
}
}
void wxListLineData::GetText( int index, wxString &s )
wxString wxListLineData::GetText(int index) const
{
int i = index;
wxNode *node = m_items.Nth( i );
s = "";
wxString s;
wxNode *node = m_items.Nth( index );
if (node)
{
wxListItemData *item = (wxListItemData*)node->Data();
item->GetText( s );
s = item->GetText();
}
return s;
}
void wxListLineData::SetText( int index, const wxString s )
@ -1321,7 +1311,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
DoDrawRect( &dc, x, y, cw, h-2 );
dc.SetClippingRegion( x, y, cw-5, h-4 );
dc.DrawText( item.m_text, x+4, y+3 );
dc.DrawText( item.GetText(), x+4, y+3 );
dc.DestroyClippingRegion();
x += wCol;
@ -1851,8 +1841,7 @@ void wxListMainWindow::EditLabel( long item )
// update taken place.
if (m_dirty) wxYield();
wxString s;
m_currentEdit->GetText( 0, s );
wxString s = m_currentEdit->GetText(0);
int x = 0;
int y = 0;
int w = 0;
@ -2483,7 +2472,8 @@ void wxListMainWindow::SetColumn( int col, wxListItem &item )
wxNode *node = m_columns.Nth( col );
if (node)
{
if (item.m_width == wxLIST_AUTOSIZE_USEHEADER) item.m_width = GetTextLength( item.m_text )+7;
if (item.m_width == wxLIST_AUTOSIZE_USEHEADER)
item.m_width = GetTextLength( item.m_text )+7;
wxListHeaderData *column = (wxListHeaderData*)node->Data();
column->SetItem( item );
}
@ -2529,8 +2519,7 @@ void wxListMainWindow::SetColumnWidth( int col, int width )
}
if (item->HasText())
{
wxString str;
item->GetText( str );
wxString str = item->GetText();
dc.GetTextExtent( str, &lx, &ly );
current += lx;
}
@ -2575,7 +2564,7 @@ void wxListMainWindow::GetColumn( int col, wxListItem &item )
{
item.m_format = 0;
item.m_width = 0;
item.m_text = "";
item.m_text = _T("");
item.m_image = 0;
item.m_data = 0;
}
@ -2618,49 +2607,68 @@ void wxListMainWindow::SetItem( wxListItem &item )
void wxListMainWindow::SetItemState( long item, long state, long stateMask )
{
wxCHECK_RET( item >= 0 && (size_t)item < m_lines.GetCount(),
_T("invalid list ctrl item index in SetItem") );
// m_dirty = TRUE; no recalcs needed
wxListLineData *oldCurrent = m_current;
if (stateMask & wxLIST_STATE_FOCUSED)
if ( stateMask & wxLIST_STATE_FOCUSED )
{
if (item >= 0 && (size_t)item < m_lines.GetCount())
wxListLineData *line = &m_lines[(size_t)item];
if ( state & wxLIST_STATE_FOCUSED )
{
wxListLineData *line = &m_lines[(size_t)item];
UnfocusLine( m_current );
m_current = line;
FocusLine( m_current );
if ((m_mode & wxLC_SINGLE_SEL) && oldCurrent) oldCurrent->Hilight( FALSE );
RefreshLine( m_current );
if (oldCurrent) RefreshLine( oldCurrent );
}
}
if (stateMask & wxLIST_STATE_SELECTED)
{
bool on = (state & wxLIST_STATE_SELECTED) != 0;
if (!on && (m_mode & wxLC_SINGLE_SEL)) return;
if (item >= 0 && (size_t)item < m_lines.GetCount())
{
wxListLineData *line = &m_lines[(size_t)item];
if (m_mode & wxLC_SINGLE_SEL)
// don't do anything if this item is already focused
if ( line != m_current )
{
UnfocusLine( m_current );
m_current = line;
FocusLine( m_current );
if (oldCurrent) oldCurrent->Hilight( FALSE );
if ( (m_mode & wxLC_SINGLE_SEL) && oldCurrent )
oldCurrent->Hilight( FALSE );
RefreshLine( m_current );
if (oldCurrent) RefreshLine( oldCurrent );
if ( oldCurrent )
RefreshLine( oldCurrent );
}
bool on = (state & wxLIST_STATE_SELECTED) != 0;
if (on != line->IsHilighted())
}
else // unfocus
{
// don't do anything if this item is not focused
if ( line == m_current )
{
line->Hilight( on );
RefreshLine( line );
UnfocusLine( m_current );
m_current = NULL;
}
}
}
if ( stateMask & wxLIST_STATE_SELECTED )
{
bool on = (state & wxLIST_STATE_SELECTED) != 0;
if (!on && (m_mode & wxLC_SINGLE_SEL))
return;
wxListLineData *line = &m_lines[(size_t)item];
if (m_mode & wxLC_SINGLE_SEL)
{
UnfocusLine( m_current );
m_current = line;
FocusLine( m_current );
if (oldCurrent)
oldCurrent->Hilight( FALSE );
RefreshLine( m_current );
if (oldCurrent)
RefreshLine( oldCurrent );
}
if (on != line->IsHilighted())
{
line->Hilight( on );
RefreshLine( line );
}
}
}
int wxListMainWindow::GetItemState( long item, long stateMask )
@ -2695,7 +2703,7 @@ void wxListMainWindow::GetItem( wxListItem &item )
else
{
item.m_mask = 0;
item.m_text = "";
item.m_text = _T("");
item.m_image = 0;
item.m_data = 0;
}
@ -3009,9 +3017,10 @@ long wxListMainWindow::FindItem(long start, const wxString& str, bool WXUNUSED(p
for (size_t i = (size_t)pos; i < m_lines.GetCount(); i++)
{
wxListLineData *line = &m_lines[i];
wxString s = "";
line->GetText( 0, s );
if (s == tmp) return pos;
wxString s = line->GetText(0);
if (s == tmp)
return pos;
pos++;
}
return -1;
@ -3089,7 +3098,8 @@ void wxListMainWindow::InsertColumn( long col, wxListItem &item )
m_dirty = TRUE;
if (m_mode & wxLC_REPORT)
{
if (item.m_width == wxLIST_AUTOSIZE_USEHEADER) item.m_width = GetTextLength( item.m_text );
if (item.m_width == wxLIST_AUTOSIZE_USEHEADER)
item.m_width = GetTextLength( item.m_text );
wxListHeaderData *column = new wxListHeaderData( item );
if ((col >= 0) && (col < (int)m_columns.GetCount()))
{
@ -3179,7 +3189,7 @@ void wxListItem::Clear()
m_data = 0;
m_format = wxLIST_FORMAT_CENTRE;
m_width = 0;
m_text = wxEmptyString;
m_text = _T("");
if (m_attr) delete m_attr;
m_attr = NULL;