annotate gui/dialog/playlist.c @ 36000:9bdcd4ec73ae

Remove HidePlaylist(). Simply destroy the window. (It's pointless to check whether the window is existing, because it cannot be called without an existing window.)
author ib
date Fri, 29 Mar 2013 17:17:02 +0000
parents 6c891a0e3fea
children d154d0035cb0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
1 /*
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
2 * This file is part of MPlayer.
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
3 *
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
7 * (at your option) any later version.
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
8 *
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
12 * GNU General Public License for more details.
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
13 *
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License along
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
17 */
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
18
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
19 #include <sys/types.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
20 #include <sys/stat.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
21 #include <string.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
22 #include <dirent.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
23 #include <unistd.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
24 #include <stdio.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
25 #include <stdlib.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
26
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
27 #include <gdk/gdkkeysyms.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
28 #include <gtk/gtk.h>
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
29
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
30 #include "help_mp.h"
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
31 #include "stream/stream.h"
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
32
35525
e27855a45128 Rebuild GUI directory structure.
ib
parents: 35522
diff changeset
33 #include "gui/app/cfg.h"
e27855a45128 Rebuild GUI directory structure.
ib
parents: 35522
diff changeset
34 #include "gui/app/gui.h"
35381
746e2e0577b2 Without current playlist item, reset guiInfo's Filename and StreamType.
ib
parents: 34681
diff changeset
35 #include "gui/interface.h"
35529
8ad4d2fb46e8 Rebuild GUI directory structure.
ib
parents: 35526
diff changeset
36 #include "dialog.h"
33742
e1539e14d60f Move purely list related parts of gtkSet() from interface.c to list.c.
ib
parents: 33740
diff changeset
37 #include "gui/util/list.h"
33739
9f6d46d325de Remove gfree() from interface.c.
ib
parents: 33575
diff changeset
38 #include "gui/util/mem.h"
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
39 #include "gui/util/string.h"
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
40 #include "playlist.h"
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
41 #include "tools.h"
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
42
35526
3c901704a27c Rebuild GUI directory structure.
ib
parents: 35525
diff changeset
43 #include "pixmaps/open2.xpm"
3c901704a27c Rebuild GUI directory structure.
ib
parents: 35525
diff changeset
44 #include "pixmaps/dir2.xpm"
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
45
35872
93ab56bda68a Utilize new cfg_old_filename_from_utf8() in playlist code.
ib
parents: 35578
diff changeset
46 #define CFG_OLD_PLAYLIST 1
93ab56bda68a Utilize new cfg_old_filename_from_utf8() in playlist code.
ib
parents: 35578
diff changeset
47 #include "gui/app/cfg-old.c"
93ab56bda68a Utilize new cfg_old_filename_from_utf8() in playlist code.
ib
parents: 35578
diff changeset
48
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
49 GtkWidget * Playlist = NULL;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
50 static GtkWidget * CTDirTree;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
51 static GtkWidget * CLFiles;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
52 static GtkWidget * CLSelected;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
53 static GtkWidget * Add;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
54 static GtkWidget * Remove;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
55 static GtkWidget * Ok;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
56 static GtkWidget * Cancel;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
57 static GdkPixmap * pxOpenedBook;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
58 static GdkPixmap * pxClosedBook;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
59 static GdkBitmap * msOpenedBook;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
60 static GdkBitmap * msClosedBook;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
61
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
62 static int NrOfEntrys = 0;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
63 static int NrOfSelected = 0;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
64 static int * CLFileSelected = NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
65 static int * CLListSelected = NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
66
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
67 static int sigSel;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
68 static int sigUnsel;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
69 static int sigEvent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
70
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
71 typedef struct
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
72 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
73 int scaned;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
74 char * path;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
75 } DirNodeType;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
76
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
77 static GtkCTreeNode * sibling;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
78 static GtkCTreeNode * parent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
79 static gchar * current_path;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
80 static gchar * old_path = NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
81
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
82 static int compare_func(const void *a, const void *b)
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
83 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
84 char * tmp;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
85 int i;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
86 if ( !a || !b || !( (DirNodeType *)a )->path ) return -1;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
87 tmp=strdup( (char *)b ); tmp[strlen( tmp )-1]=0;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
88 i=strcmp( ( (DirNodeType *)a )->path,tmp );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
89 free( tmp );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
90 return i;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
91 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
92
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
93 static void plRowSelect( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
94 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
95 switch ( (int) user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
96 {
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
97 case 0: CLFileSelected[row]=True; break;
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
98 case 1: CLListSelected[row]=True; break;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
99 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
100 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
101
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
102 static void plUnRowSelect( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
103 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
104 switch ( (int) user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
105 {
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
106 case 0: CLFileSelected[row]=False; break;
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
107 case 1: CLListSelected[row]=False; break;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
108 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
109 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
110
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
111 static void plButtonReleased( GtkButton * button,gpointer user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
112 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
113 switch ( (int) user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
114 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
115 case 1: // ok
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
116 {
35572
0827fa4c3401 While playing, allow extensive editing of the playlist without stopping.
ib
parents: 35554
diff changeset
117 int i;
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
118 plItem curr, * item, * old;
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
119 item = listMgr( PLAYLIST_ITEM_GET_CURR,0 );
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
120 if (item)
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
121 {
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
122 curr.path = gstrdup(item->path);
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
123 curr.name = gstrdup(item->name);
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
124 }
35573
af20559e55c9 Adapt assignments.
ib
parents: 35572
diff changeset
125 else
af20559e55c9 Adapt assignments.
ib
parents: 35572
diff changeset
126 {
af20559e55c9 Adapt assignments.
ib
parents: 35572
diff changeset
127 curr.path = NULL;
af20559e55c9 Adapt assignments.
ib
parents: 35572
diff changeset
128 curr.name = NULL;
af20559e55c9 Adapt assignments.
ib
parents: 35572
diff changeset
129 }
34666
a5c69b91ff2c Remove unnecessary condition.
ib
parents: 34664
diff changeset
130 listMgr( PLAYLIST_DELETE,0 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
131 for ( i=0;i<NrOfSelected;i++ )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
132 {
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
133 char * text[2];
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
134 item=calloc( 1,sizeof( plItem ) );
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
135 gtk_clist_get_text( GTK_CLIST( CLSelected ),i,2,&text[0] );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
136 gtk_clist_get_text( GTK_CLIST( CLSelected ),i,3,&text[1] );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
137 item->name = strdup( text[0] );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
138 item->path = strdup( text[1] );
34681
42fa91951bd2 Rename PLAYLIST_ITEM_ADD PLAYLIST_ITEM_APPEND.
ib
parents: 34667
diff changeset
139 listMgr( PLAYLIST_ITEM_APPEND,item );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
140 }
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
141 item = listMgr( PLAYLIST_GET,0 );
34664
4df4d842d5fb Remove global variable pointing to current playlist item.
ib
parents: 34663
diff changeset
142 if ( item )
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
143 {
35578
d186ebe43c68 Remove pointless condition.
ib
parents: 35577
diff changeset
144 if ( guiInfo.Playing )
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
145 {
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
146 old = listMgr( PLAYLIST_ITEM_FIND,&curr );
35572
0827fa4c3401 While playing, allow extensive editing of the playlist without stopping.
ib
parents: 35554
diff changeset
147 if ( old )
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
148 {
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
149 listMgr( PLAYLIST_ITEM_SET_CURR,old );
35572
0827fa4c3401 While playing, allow extensive editing of the playlist without stopping.
ib
parents: 35554
diff changeset
150 guiInfo.Track = (int) listMgr( PLAYLIST_ITEM_GET_POS,old );
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
151 item = NULL;
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
152 }
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
153 }
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
154 if ( item )
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
155 {
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
156 uiSetFile( item->path,item->name,STREAMTYPE_FILE );
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
157 guiInfo.NewPlay = GUI_FILE_NEW;
35577
b356942130df Fix setting PlaylistNext after a playlist change.
ib
parents: 35573
diff changeset
158 guiInfo.PlaylistNext = !guiInfo.Playing;
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
159 guiInfo.Track = 1;
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
160 }
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
161 }
35455
c9c79a011f6f Fix bug with wrong track number after playlist has been cleared.
ib
parents: 35452
diff changeset
162 else if (isPlaylistStreamtype && !guiInfo.Playing) uiUnsetFile();
35554
5cccc59f4c5b Calculate number of playlist tracks in any case.
ib
parents: 35548
diff changeset
163 guiInfo.Tracks = (int) listMgr( PLAYLIST_ITEM_GET_POS,0 );
35461
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
164 free(curr.path);
b7696c82c72d Fix various issues with a playlist change.
ib
parents: 35455
diff changeset
165 free(curr.name);
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
166 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
167 case 0: // cancel
36000
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
168 NrOfSelected=NrOfEntrys=0;
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
169 nfree( CLListSelected );
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
170 nfree( CLFileSelected );
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
171 free( old_path );
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
172 old_path=strdup( current_path );
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
173 gtk_widget_destroy( Playlist );
9bdcd4ec73ae Remove HidePlaylist().
ib
parents: 35996
diff changeset
174 Playlist=NULL;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
175 break;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
176 case 2: // remove
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
177 {
35522
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
178 int i; int j;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
179
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
180 gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigSel );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
181 gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigUnsel );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
182 gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigEvent );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
183
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
184 gtk_clist_freeze( GTK_CLIST( CLSelected ) );
35522
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
185 i = 0;
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
186 while ( i<NrOfSelected )
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
187 {
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
188 if ( CLListSelected[i] )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
189 {
35522
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
190 gtk_clist_remove( GTK_CLIST( CLSelected ),i );
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
191 NrOfSelected--;
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
192 for ( j=i;j<NrOfSelected;j++ )
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
193 CLListSelected[j] = CLListSelected[j+1];
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
194 }
35522
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
195 else i++;
92809c17fc9d Fix bug with removing items from playlist.
ib
parents: 35493
diff changeset
196 }
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
197 gtk_clist_thaw( GTK_CLIST( CLSelected ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
198
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
199 gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigSel );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
200 gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigUnsel );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
201 gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigEvent );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
202
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
203 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
204 break;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
205 case 3: // add
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
206 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
207 int i;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
208 void *p;
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
209 char * itext[2];
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
210 char * text[1][5]; text[0][4]="";
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
211 gtk_clist_freeze( GTK_CLIST( CLSelected ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
212 for ( i=0;i<NrOfEntrys;i++ )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
213 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
214 if ( CLFileSelected[i] )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
215 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
216 NrOfSelected++;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
217 p=realloc( CLListSelected,NrOfSelected * sizeof( int ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
218 if ( !p ) NrOfSelected--;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
219 else
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
220 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
221 CLListSelected=p;
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
222 CLListSelected[NrOfSelected - 1]=False;
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
223 gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,&itext[0] );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
224 gtk_clist_get_text( GTK_CLIST( CLFiles ),i,1,&itext[1] );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
225 text[0][0]=itext[0]; text[0][1]=g_filename_display_name( current_path );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
226 text[0][2]=itext[1]; text[0][3]=current_path;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
227 gtk_clist_append( GTK_CLIST( CLSelected ),text[0] );
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
228 g_free( text[0][1] );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
229 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
230 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
231 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
232 gtk_clist_thaw( GTK_CLIST( CLSelected ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
233 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
234 break;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
235 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
236 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
237
34348
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
238 static gboolean plKeyReleased( GtkWidget * widget,
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
239 GdkEventKey * event,
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
240 gpointer user_data )
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
241 {
34349
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
242 if (event->keyval == GDK_Return)
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
243 {
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
244 if ( GTK_WIDGET_TYPE( widget ) == GTK_TYPE_BUTTON ) plButtonReleased( NULL, user_data );
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
245 else
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
246 {
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
247 switch ( (int) user_data )
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
248 {
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
249 case 0:
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
250 plButtonReleased( NULL, (void *) 3 );
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
251 break;
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
252 case 1:
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
253 plButtonReleased( NULL, (void *) 2 );
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
254 break;
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
255 }
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
256 }
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
257 }
34348
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
258 return FALSE;
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
259 }
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
260
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
261 static gboolean plEvent ( GtkWidget * widget,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
262 GdkEvent * event,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
263 gpointer user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
264 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
265 GdkEventButton *bevent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
266 gint row, col;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
267
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
268 bevent = (GdkEventButton *) event;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
269
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
270 if ( event->type == GDK_BUTTON_RELEASE && bevent->button == 2 )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
271 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
272 if ( gtk_clist_get_selection_info( GTK_CLIST( widget ), bevent->x, bevent->y, &row, &col ) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
273 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
274 switch ( (int) user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
275 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
276 case 0:
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
277 CLFileSelected[row] = True;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
278 plButtonReleased( NULL, (void *) 3 );
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
279 CLFileSelected[row] = False;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
280 return TRUE;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
281
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
282 case 1:
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
283 CLListSelected[row] = True;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
284 plButtonReleased( NULL, (void *) 2 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
285 return TRUE;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
286 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
287 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
288 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
289
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
290 return FALSE;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
291 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
292
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
293 static int check_for_subdir( gchar * path )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
294 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
295 DIR * dir;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
296 struct dirent * dirent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
297 struct stat statbuf;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
298 gchar * npath;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
299
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
300 if ( (dir=opendir( path )) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
301 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
302 while ( (dirent=readdir( dir )) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
303 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
304 if ( dirent->d_name[0] != '.' )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
305 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
306 npath=calloc( 1,strlen( path ) + strlen( dirent->d_name ) + 3 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
307 sprintf( npath,"%s/%s",path,dirent->d_name );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
308 if ( stat( npath,&statbuf ) != -1 && S_ISDIR( statbuf.st_mode ) )
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
309 { free( npath ); closedir( dir ); return True; }
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
310 free( npath );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
311 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
312 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
313 closedir( dir );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
314 }
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
315 return False;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
316 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
317
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
318 static void plCTree( GtkCTree * ctree,GtkCTreeNode * parent_node,gpointer user_data )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
319 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
320 GtkCTreeNode * node;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
321 DirNodeType * DirNode;
35938
8515446e81c6 Cosmetic: Rename variables holding data in UTF-8 encoding.
ib
parents: 35927
diff changeset
322 gchar * text, * utf8name = NULL;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
323 gchar * dummy = "dummy";
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
324 int subdir = True;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
325 DIR * dir = NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
326 struct dirent * dirent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
327 gchar * path;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
328 struct stat statbuf;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
329
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
330 DirNode=gtk_ctree_node_get_row_data( ctree,parent_node );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
331 if ( !DirNode->scaned )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
332 {
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
333 DirNode->scaned=True; current_path=DirNode->path;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
334 gtk_clist_freeze( GTK_CLIST( ctree ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
335 node=gtk_ctree_find_by_row_data( ctree,parent_node,NULL );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
336 gtk_ctree_remove_node( ctree,node );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
337
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
338 if ( (dir=opendir( DirNode->path ) ) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
339 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
340 while( (dirent=readdir( dir )) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
341 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
342 path=calloc( 1,strlen( DirNode->path ) + strlen( dirent->d_name ) + 2 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
343 if ( !strcmp( current_path,"/" ) ) sprintf( path,"/%s",dirent->d_name );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
344 else sprintf( path,"%s/%s",current_path,dirent->d_name );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
345 text=dirent->d_name;
35938
8515446e81c6 Cosmetic: Rename variables holding data in UTF-8 encoding.
ib
parents: 35927
diff changeset
346 g_free( utf8name );
8515446e81c6 Cosmetic: Rename variables holding data in UTF-8 encoding.
ib
parents: 35927
diff changeset
347 utf8name=g_filename_display_name( text );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
348
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
349 if ( stat( path,&statbuf ) != -1 && S_ISDIR( statbuf.st_mode ) && dirent->d_name[0] != '.' )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
350 {
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
351 DirNode=malloc( sizeof( DirNodeType ) ); DirNode->scaned=False; DirNode->path=strdup( path );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
352 subdir=check_for_subdir( path );
35938
8515446e81c6 Cosmetic: Rename variables holding data in UTF-8 encoding.
ib
parents: 35927
diff changeset
353 node=gtk_ctree_insert_node( ctree,parent_node,NULL,&utf8name,4,pxOpenedBook,msOpenedBook,pxClosedBook,msClosedBook,!subdir,FALSE );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
354 gtk_ctree_node_set_row_data_full( ctree,node,DirNode,NULL );
35403
e93282a4e332 Remove variable assignment.
ib
parents: 35390
diff changeset
355 if ( subdir ) gtk_ctree_insert_node( ctree,node,NULL,&dummy,4,NULL,NULL,NULL,NULL,FALSE,FALSE );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
356 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
357 free( path ); path=NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
358 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
359 closedir( dir );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
360 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
361
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
362 gtk_ctree_sort_node( ctree,parent_node );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
363 gtk_clist_thaw( GTK_CLIST( ctree ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
364 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
365
35938
8515446e81c6 Cosmetic: Rename variables holding data in UTF-8 encoding.
ib
parents: 35927
diff changeset
366 g_free( utf8name );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
367 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
368
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
369 static void scan_dir( char * path )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
370 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
371 DIR * dir = NULL;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
372 char * curr;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
373 struct dirent * dirent;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
374 struct stat statbuf;
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
375 char * text[1][3]; text[0][2]="";
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
376
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
377 gtk_clist_clear( GTK_CLIST( CLFiles ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
378 if ( (dir=opendir( path )) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
379 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
380 NrOfEntrys=0;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
381 while( (dirent=readdir( dir )) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
382 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
383 curr=calloc( 1,strlen( path ) + strlen( dirent->d_name ) + 3 ); sprintf( curr,"%s/%s",path,dirent->d_name );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
384 if ( stat( curr,&statbuf ) != -1 && ( S_ISREG( statbuf.st_mode ) || S_ISLNK( statbuf.st_mode ) ) )
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
385 {
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
386 text[0][0]=g_filename_display_name( dirent->d_name );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
387 text[0][1]=dirent->d_name;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
388 gtk_clist_append( GTK_CLIST( CLFiles ), text[0] );
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
389 g_free( text[0][0] );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
390 NrOfEntrys++;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
391 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
392 free( curr );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
393 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
394 closedir( dir );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
395 gtk_clist_sort( GTK_CLIST( CLFiles ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
396 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
397 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
398
34466
a650895d50a5 Use correct data types and common variable names in GTK callback functions.
ib
parents: 34349
diff changeset
399 static void plCTRow(GtkCList * clist, gint row, gint column, GdkEvent * event, gpointer user_data)
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
400 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
401 DirNodeType * DirNode;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
402 GtkCTreeNode * node;
34466
a650895d50a5 Use correct data types and common variable names in GTK callback functions.
ib
parents: 34349
diff changeset
403 node=gtk_ctree_node_nth( GTK_CTREE( clist ),row );
a650895d50a5 Use correct data types and common variable names in GTK callback functions.
ib
parents: 34349
diff changeset
404 DirNode=gtk_ctree_node_get_row_data( GTK_CTREE( clist ),node );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
405 current_path=DirNode->path;
34466
a650895d50a5 Use correct data types and common variable names in GTK callback functions.
ib
parents: 34349
diff changeset
406 gtk_ctree_expand( GTK_CTREE( clist ),node );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
407 scan_dir( DirNode->path );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
408 free( CLFileSelected );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
409 CLFileSelected=calloc( 1,NrOfEntrys * sizeof( int ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
410 }
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
411
35996
6c891a0e3fea Cosmetic: Rename the functions creating the dialogs.
ib
parents: 35983
diff changeset
412 static GtkWidget * CreatePlaylist( void )
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
413 {
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
414 GtkWidget * vbox1;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
415 GtkWidget * hbox1;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
416 GtkWidget * scrolledwindow1;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
417 GtkWidget * vbox2;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
418 GtkWidget * scrolledwindow2;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
419 GtkWidget * scrolledwindow3;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
420 GtkWidget * hbuttonbox1;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
421 GtkAccelGroup * accel_group;
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
422 GdkColor transparent = { 0,0,0,0 };
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
423 gchar * root = "/";
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
424 gchar * dummy = "dummy";
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
425 DirNodeType * DirNode;
35963
db72a3183d41 Preselect current playlist directory from last playlist entry.
ib
parents: 35938
diff changeset
426 plItem * last;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
427
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
428 accel_group=gtk_accel_group_new();
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
429
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
430 Playlist=gtk_window_new( GTK_WINDOW_TOPLEVEL );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
431 gtk_object_set_data( GTK_OBJECT( Playlist ),"PlayList",Playlist );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
432 gtk_widget_set_usize( Playlist,512,384 );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
433 gtk_window_set_title( GTK_WINDOW( Playlist ),MSGTR_PlayList );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
434 gtk_window_set_position( GTK_WINDOW( Playlist ),GTK_WIN_POS_CENTER );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
435 // gtk_window_set_policy( GTK_WINDOW( Playlist ),FALSE,FALSE,FALSE );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
436 gtk_window_set_wmclass( GTK_WINDOW( Playlist ),"Playlist","MPlayer" );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
437
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
438 gtk_widget_realize( Playlist );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
439 gtkAddIcon( Playlist );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
440
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
441 vbox1=AddVBox( AddDialogFrame( Playlist ),0 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
442 hbox1=AddHBox( NULL,1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
443 gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
444
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
445 scrolledwindow1=gtk_scrolled_window_new( NULL,NULL );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
446 gtk_widget_show( scrolledwindow1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
447 gtk_container_add( GTK_CONTAINER(
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
448 AddFrame( NULL,0,hbox1,1 ) ),scrolledwindow1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
449 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
450
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
451 CTDirTree=gtk_ctree_new( 1,0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
452 gtk_signal_connect( GTK_OBJECT( CTDirTree ),"tree_expand",GTK_SIGNAL_FUNC( plCTree ),(void*)0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
453 gtk_signal_connect( GTK_OBJECT( CTDirTree ),"select_row",GTK_SIGNAL_FUNC( plCTRow ),(void *)0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
454 gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),CTDirTree );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
455 gtk_clist_set_column_auto_resize( GTK_CLIST( CTDirTree ),0,TRUE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
456 gtk_clist_set_column_width( GTK_CLIST( CTDirTree ),0,80 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
457 gtk_clist_set_selection_mode( GTK_CLIST( CTDirTree ),GTK_SELECTION_SINGLE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
458 gtk_ctree_set_line_style( GTK_CTREE( CTDirTree ),GTK_CTREE_LINES_SOLID );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
459 gtk_clist_column_titles_show( GTK_CLIST( CTDirTree ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
460 gtk_clist_set_shadow_type( GTK_CLIST( CTDirTree ),GTK_SHADOW_NONE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
461
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
462 if ( !pxOpenedBook ) pxOpenedBook=gdk_pixmap_create_from_xpm_d( Playlist->window,&msOpenedBook,&transparent,(gchar **)dir2_xpm );
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
463 if ( !pxClosedBook ) pxClosedBook=gdk_pixmap_create_from_xpm_d( Playlist->window,&msClosedBook,&transparent,(gchar **)open2_xpm );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
464
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
465 parent=gtk_ctree_insert_node( GTK_CTREE( CTDirTree ),NULL,NULL,&root,4,pxOpenedBook,msOpenedBook,pxClosedBook,msClosedBook,FALSE,FALSE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
466 DirNode=malloc( sizeof( DirNodeType ) );
35493
411875efca3f Introduce boolean symbolic constants.
ib
parents: 35488
diff changeset
467 DirNode->scaned=False; DirNode->path=strdup( root );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
468 gtk_ctree_node_set_row_data_full(GTK_CTREE( CTDirTree ),parent,DirNode,NULL );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
469 sibling=gtk_ctree_insert_node( GTK_CTREE( CTDirTree ),parent,NULL,&dummy,4,NULL,NULL,NULL,NULL,TRUE,TRUE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
470 gtk_ctree_expand( GTK_CTREE( CTDirTree ),parent );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
471 gtk_widget_show( CTDirTree );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
472
35963
db72a3183d41 Preselect current playlist directory from last playlist entry.
ib
parents: 35938
diff changeset
473 last=listMgr( PLAYLIST_ITEM_GET_LAST,0 );
db72a3183d41 Preselect current playlist directory from last playlist entry.
ib
parents: 35938
diff changeset
474
db72a3183d41 Preselect current playlist directory from last playlist entry.
ib
parents: 35938
diff changeset
475 if ( last && last->path ) old_path = strdup( last->path );
db72a3183d41 Preselect current playlist directory from last playlist entry.
ib
parents: 35938
diff changeset
476 else if ( fsHistory[0] ) old_path = strdup( cfg_old_filename_from_utf8( fsHistory[0] ) );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
477
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
478 gtk_clist_set_column_widget( GTK_CLIST( CTDirTree ),0,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
479 AddLabel( MSGTR_PLAYLIST_DirectoryTree,NULL ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
480
34347
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
481 gtk_clist_column_title_passive( GTK_CLIST( CTDirTree ),0 );
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
482
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
483 vbox2=AddVBox(
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
484 AddFrame( NULL,1,hbox1,1 ),0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
485
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
486 scrolledwindow2=gtk_scrolled_window_new( NULL,NULL );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
487 gtk_widget_show( scrolledwindow2 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
488 gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow2,TRUE,TRUE,0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
489 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
490
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
491 CLFiles=gtk_clist_new( 2 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
492 gtk_widget_show( CLFiles );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
493 gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLFiles );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
494 gtk_clist_set_column_width( GTK_CLIST( CLFiles ),0,80 );
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
495 gtk_clist_set_column_visibility( GTK_CLIST( CLFiles ),1,FALSE );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
496 gtk_clist_set_selection_mode( GTK_CLIST( CLFiles ),GTK_SELECTION_EXTENDED );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
497 gtk_clist_column_titles_show( GTK_CLIST( CLFiles ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
498 gtk_clist_set_shadow_type( GTK_CLIST( CLFiles ),GTK_SHADOW_NONE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
499
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
500 gtk_clist_set_column_widget( GTK_CLIST( CLFiles ),0,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
501 AddLabel( MSGTR_PLAYLIST_Files,NULL ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
502
34347
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
503 gtk_clist_column_title_passive( GTK_CLIST( CLFiles ),0 );
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
504
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
505 AddHSeparator( vbox2 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
506
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
507 scrolledwindow3=gtk_scrolled_window_new( NULL,NULL );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
508 gtk_widget_show( scrolledwindow3 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
509 gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
510 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
511
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
512 CLSelected=gtk_clist_new( 4 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
513 gtk_widget_show( CLSelected );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
514 gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLSelected );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
515 gtk_clist_set_column_width( GTK_CLIST( CLSelected ),0,295 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
516 gtk_clist_set_column_width( GTK_CLIST( CLSelected ),1,295 );
35927
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
517 gtk_clist_set_column_visibility( GTK_CLIST( CLSelected ),2,FALSE );
e43fa34e33cf Support mixed filename encodings.
ib
parents: 35872
diff changeset
518 gtk_clist_set_column_visibility( GTK_CLIST( CLSelected ),3,FALSE );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
519 gtk_clist_set_selection_mode( GTK_CLIST( CLSelected ),GTK_SELECTION_MULTIPLE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
520 gtk_clist_column_titles_show( GTK_CLIST( CLSelected ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
521 gtk_clist_set_shadow_type( GTK_CLIST( CLSelected ),GTK_SHADOW_NONE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
522
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
523 gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),0,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
524 AddLabel( MSGTR_PLAYLIST_Selected,NULL ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
525
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
526 gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),1,
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
527 AddLabel( MSGTR_PLAYLIST_Path,NULL ) );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
528
34347
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
529 gtk_clist_column_title_passive( GTK_CLIST( CLSelected ),0 );
8861ea3ec08c Make column titles in playlist passive.
ib
parents: 33894
diff changeset
530
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
531 AddHSeparator( vbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
532
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
533 hbuttonbox1=AddHButtonBox( vbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
534 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
535 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
536
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
537 Add=AddButton( MSGTR_Add,hbuttonbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
538 Remove=AddButton( MSGTR_Remove,hbuttonbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
539 Ok=AddButton( MSGTR_Ok,hbuttonbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
540 Cancel=AddButton( MSGTR_Cancel,hbuttonbox1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
541
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
542 gtk_widget_add_accelerator( Cancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
543
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
544 gtk_signal_connect( GTK_OBJECT( Playlist ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&Playlist );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
545
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
546 gtk_signal_connect( GTK_OBJECT( CLFiles ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void *)0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
547 gtk_signal_connect( GTK_OBJECT( CLFiles ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void *)0 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
548 gtk_signal_connect( GTK_OBJECT( CLFiles ),"event",GTK_SIGNAL_FUNC( plEvent ),(void *)0 );
34349
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
549 gtk_signal_connect( GTK_OBJECT( CLFiles ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void *)0 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
550 sigSel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void*)1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
551 sigUnsel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void*)1 );
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
552 sigEvent=gtk_signal_connect( GTK_OBJECT( CLSelected ),"event",GTK_SIGNAL_FUNC( plEvent ),(void *)1 );
34349
6e4af5500f8f Add Return key events to playlist's file lists.
ib
parents: 34348
diff changeset
553 gtk_signal_connect( GTK_OBJECT( CLSelected ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void *)1 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
554
34348
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
555 gtk_signal_connect( GTK_OBJECT( Add ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)3 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
556 gtk_signal_connect( GTK_OBJECT( Add ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)3 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
557 gtk_signal_connect( GTK_OBJECT( Remove ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)2 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
558 gtk_signal_connect( GTK_OBJECT( Remove ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)2 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
559 gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)1 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
560 gtk_signal_connect( GTK_OBJECT( Ok ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)1 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
561 gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)0 );
be4236a5186c Add Return key events to playlist buttons.
ib
parents: 34347
diff changeset
562 gtk_signal_connect( GTK_OBJECT( Cancel ),"key_release_event",GTK_SIGNAL_FUNC( plKeyReleased ),(void*)0 );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
563
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
564 gtk_window_add_accel_group( GTK_WINDOW( Playlist ),accel_group );
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
565
35981
1d11ed014a53 Cosmetic: Rename ShowPlayList() ShowPlaylist().
ib
parents: 35980
diff changeset
566 return Playlist;
33572
d9b805602aa1 Rename some gtk files.
ib
parents:
diff changeset
567 }
35982
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
568
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
569 void ShowPlaylist( void )
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
570 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
571 plItem * next;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
572
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
573 if ( Playlist ) gtkActive( Playlist );
35996
6c891a0e3fea Cosmetic: Rename the functions creating the dialogs.
ib
parents: 35983
diff changeset
574 else Playlist=CreatePlaylist();
35982
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
575
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
576 if ( old_path && *old_path )
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
577 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
578 char * currentdir = strdup( old_path );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
579 char * tpath,* pos;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
580 GtkCTreeNode * node,* nextnode;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
581 gboolean leaf;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
582 tpath=strdup( "/" );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
583 pos=strtok( currentdir,"/" );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
584 node=gtk_ctree_find_by_row_data_custom( GTK_CTREE( CTDirTree ),NULL,"/",compare_func );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
585 do
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
586 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
587 char * tpathnew = g_strconcat( tpath,pos,"/",NULL );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
588 free( tpath ); tpath=tpathnew;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
589 nextnode=gtk_ctree_find_by_row_data_custom( GTK_CTREE( CTDirTree ),node,tpath,compare_func );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
590 if ( !nextnode ) break;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
591 node=nextnode;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
592 pos=strtok( NULL,"/" );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
593 gtk_ctree_get_node_info( GTK_CTREE( CTDirTree ),node,NULL,NULL,NULL,NULL,NULL,NULL,&leaf,NULL );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
594 if ( !leaf && pos ) gtk_ctree_expand( GTK_CTREE( CTDirTree ),node );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
595 else
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
596 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
597 DirNodeType * DirNode;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
598 gtk_ctree_select( GTK_CTREE( CTDirTree ),node );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
599 DirNode=gtk_ctree_node_get_row_data( GTK_CTREE( CTDirTree ),node );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
600 current_path=DirNode->path;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
601 scan_dir( DirNode->path );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
602 free( CLFileSelected );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
603 CLFileSelected=calloc( 1,NrOfEntrys * sizeof( int ) );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
604 break;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
605 }
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
606 } while( pos );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
607 free( tpath );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
608 free( currentdir );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
609 }
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
610 else gtk_ctree_select( GTK_CTREE( CTDirTree ),parent );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
611
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
612 gtk_clist_freeze( GTK_CLIST( CLSelected ) );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
613 gtk_clist_clear( GTK_CLIST( CLSelected ) );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
614 next = listMgr( PLAYLIST_GET,0 );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
615 if ( next )
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
616 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
617 while ( next || next->next )
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
618 {
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
619 char * text[1][5]; text[0][4]="";
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
620 text[0][0]=g_filename_display_name( next->name );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
621 text[0][1]=g_filename_display_name( next->path );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
622 text[0][2]=next->name;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
623 text[0][3]=next->path;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
624 gtk_clist_append( GTK_CLIST( CLSelected ),text[0] );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
625 g_free( text[0][0] );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
626 g_free( text[0][1] );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
627 NrOfSelected++;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
628 if ( next->next ) next=next->next; else break;
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
629 }
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
630 CLListSelected=calloc( 1,NrOfSelected * sizeof( int ) );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
631 }
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
632 gtk_clist_thaw( GTK_CLIST( CLSelected ) );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
633
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
634 gtk_widget_show( Playlist );
3fbbee95fc22 Make create_PlayList() static.
ib
parents: 35981
diff changeset
635 }