* playlist.cpp: Playlist control
*****************************************************************************
* Copyright (C) 2003 VideoLAN
- * $Id: playlist.cpp,v 1.10 2003/04/28 12:25:34 asmax Exp $
+ * $Id$
*
* Authors: Olivier Teulière <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr>
// Scroll
StartIndex = 0;
+
}
//---------------------------------------------------------------------------
ControlPlayList::~ControlPlayList()
{
+ if( CaseLeft )
+ {
+ delete[] CaseLeft;
+ }
+ if( CaseRight )
+ {
+ delete[] CaseRight;
+ }
+ if( CaseTextLeft )
+ {
+ delete[] CaseTextLeft;
+ }
+ if( Slider )
+ {
+ delete Slider;
+ }
+ if( TextClipRgn )
+ {
+ delete TextClipRgn;
+ }
if( PlayList != NULL )
{
vlc_object_release( PlayList );
delete[] y;
// Get size of control
- Left = Slider->Left;
- Top = Slider->Top;
- Width = Slider->Left + Slider->Width;
- Height = Slider->Top + Slider->Height;
+ Left = Slider->GetLeft();
+ Top = Slider->GetTop();
+ Width = Slider->GetLeft() + Slider->GetWidth();
+ Height = Slider->GetTop() + Slider->GetHeight();
if( TextLeft < Left )
Left = TextLeft;
if( TextTop < Top )
case PLAYLIST_ID_DEL:
if( (GenericControl *)evt->GetParam1() == this )
{
- vlc_mutex_lock( &PlayList->object_lock );
for( int i = PlayList->i_size - 1; i >= 0; i-- )
{
if( Select[i] && i != PlayList->i_index )
playlist_Delete( PlayList, i );
}
- vlc_mutex_unlock( &PlayList->object_lock );
+ RefreshList();
RefreshAll();
}
break;
if( NumOfItems != PlayList->i_size )
{
if( NumOfItems > 0 )
- delete Select;
+ delete[] Select;
NumOfItems = PlayList->i_size;
if( PlayList->i_size > 0 )
{
{
if( LongFileName )
{
- return PlayList->pp_items[i]->psz_name;
+ return PlayList->pp_items[i]->input.psz_name;
}
else
{
- string f = PlayList->pp_items[i]->psz_name;
+ string f = PlayList->pp_items[i]->input.psz_name;
int pos = f.rfind( DIRECTORY_SEPARATOR, f.size() );
- return PlayList->pp_items[i]->psz_name + pos + 1;
+ return PlayList->pp_items[i]->input.psz_name + pos + 1;
}
}
//---------------------------------------------------------------------------
{
for( j = 0; j < NumOfItems; j++ )
{
- if( j == i + StartIndex )
- Select[j] = !Select[j];
+ if( button & KEY_CTRL )
+ {
+ // CTRL is pressed
+ if( j == i + StartIndex )
+ {
+ Select[j] = !Select[j];
+ }
+ }
+ else
+ {
+ // CTRL is not pressed
+ Select[j] = ( j == i + StartIndex );
+ }
}
RefreshAll();
return true;
if( x >= CaseLeft[i] && x <= CaseRight[i] && y >=
TextTop + i * CaseHeight && y < TextTop + (i + 1) * CaseHeight )
{
- TextFont->GetSize( PlayList->pp_items[i + StartIndex]->psz_name, w,
+ TextFont->GetSize( PlayList->pp_items[i + StartIndex]->input.psz_name, w,
h );
if( w > FileWidth )
{
ParentWindow->ChangeToolTipText(
- (string)PlayList->pp_items[i + StartIndex]->psz_name );
+ (string)PlayList->pp_items[i + StartIndex]->input.psz_name );
return true;
}
}