m_label = label;
m_key = key;
}
-
+
~wxGtkCollatableString()
{
- if (m_key)
+ if (m_key)
g_free( m_key );
}
{
public:
wxGtkCollatedArrayString() { }
-
+
int Add( const wxString &new_label )
{
int index = 0;
-
- gchar *new_key_lower = g_utf8_casefold( new_label.utf8_str(), -1);
- gchar *new_key = g_utf8_collate_key( new_key_lower, -1);
+
+ gchar *new_key_lower = g_utf8_casefold( new_label.utf8_str(), -1);
+ gchar *new_key = g_utf8_collate_key( new_key_lower, -1);
g_free( new_key_lower );
-
+
wxSharedPtr<wxGtkCollatableString> new_ptr( new wxGtkCollatableString( new_label, new_key ) );
-
+
wxVector< wxSharedPtr<wxGtkCollatableString> >::iterator iter;
for (iter = m_list.begin(); iter != m_list.end(); ++iter)
{
wxSharedPtr<wxGtkCollatableString> ptr = *iter;
-
+
gchar *key = ptr->m_key;
- if (strcmp(key,new_key) > 0)
+ if (strcmp(key,new_key) >= 0)
{
m_list.insert( iter, new_ptr );
return index;
}
index ++;
}
-
+
m_list.push_back( new_ptr );
return index;
}
-
+
size_t GetCount()
{
return m_list.size();
}
-
+
wxString At( size_t index )
{
return m_list[index]->m_label;
}
-
+
void Clear()
{
m_list.clear();
}
-
+
void RemoveAt( size_t index )
{
m_list.erase( m_list.begin() + index );
}
-
+
private:
wxVector< wxSharedPtr<wxGtkCollatableString> > m_list;
};