annotate gui/dialog/playlist.c @ 36694:eed2fb870f43

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