projects/aports·blob master · refs

2299 lines · 87.1 KiB

1FIXME crahes when show_tray_icon is 1
2
3diff --git a/meson.build b/meson.build
4index 66b7920..dbb87d7 100644
5--- a/meson.build
6+++ b/meson.build
7@@ -22,7 +22,7 @@ config_h.set_quoted('GNOMELOCALEDIR', grip_localedir)
8 cc = meson.get_compiler('c')
9 cxx = meson.get_compiler('cpp')
10
11-libgtk_dep = dependency('gtk+-2.0', version: '>= 2.14')
12+libgtk_dep = dependency('gtk+-3.0')
13 id3_dep = cxx.find_library('libid3', required: get_option('id3lib'))
14 curl_dep = dependency('libcurl')
15 thread_dep = dependency('threads')
16diff --git a/src/cddev.c b/src/cddev.c
17index 467fbc1..2f27d06 100644
18--- a/src/cddev.c
19+++ b/src/cddev.c
20@@ -71,9 +71,9 @@ gboolean CDInitDevice(char *device_name,DiscInfo *disc)
21 char devname[256];
22 #endif
23 #ifndef NON_BLOCKING
24- const int OPEN_MODE = O_RDONLY;
25+ const int OPEN_MODE = O_RDONLY|O_CLOEXEC;
26 #else
27- const int OPEN_MODE = O_RDONLY|O_NONBLOCK;
28+ const int OPEN_MODE = O_RDONLY|O_NONBLOCK|O_CLOEXEC;
29 #endif
30
31 disc->have_info=FALSE;
32diff --git a/src/cdpar.c b/src/cdpar.c
33index 982aa37..5c311ed 100644
34--- a/src/cdpar.c
35+++ b/src/cdpar.c
36@@ -378,7 +378,7 @@ gboolean CDPRip(char *device,char *generic_scsi_device,int track,
37 /* seteuid(getuid());
38 setegid(getgid());*/
39
40- out=open(outfile,O_RDWR|O_CREAT|O_TRUNC,0666);
41+ out=open(outfile,O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC,0666);
42 if(out==-1){
43 Debug(_("Cannot open default output file %s: %s\n"),outfile,
44 strerror(errno));
45diff --git a/src/cdplay.c b/src/cdplay.c
46index 0694d60..9cd5fdb 100644
47--- a/src/cdplay.c
48+++ b/src/cdplay.c
49@@ -289,8 +289,7 @@ void ResizeTrackList(GripInfo *ginfo)
50
51 column=gtk_tree_view_get_column(GTK_TREE_VIEW(track_list),
52 TRACKLIST_TRACK_COL);
53- gtk_tree_view_column_set_fixed_width(column,track_list->
54- allocation.width-tot_width);
55+ gtk_tree_view_column_set_fixed_width(column,gtk_widget_get_allocated_width(track_list)-tot_width);
56 }
57 }
58
59@@ -309,7 +308,7 @@ void MakeTrackPage(GripInfo *ginfo)
60 trackpage=MakeNewPage(uinfo->notebook,_("Tracks"));
61
62 vbox=gtk_vbox_new(FALSE,0);
63- gtk_container_border_width(GTK_CONTAINER(vbox),3);
64+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
65
66 uinfo->disc_name_label=gtk_label_new("");
67 gtk_box_pack_start(GTK_BOX(vbox),uinfo->disc_name_label,FALSE,FALSE,0);
68@@ -322,18 +321,18 @@ void MakeTrackPage(GripInfo *ginfo)
69 uinfo->dbinfo_hbox=gtk_hbox_new(FALSE,0);
70
71 uinfo->dbinfo_back_button=gtk_button_new_from_stock(GTK_STOCK_GO_BACK);
72- gtk_tooltips_set_tip(MakeToolTip(),uinfo->dbinfo_back_button,
73- _("Select previous CDDB entry."),NULL);
74- gtk_signal_connect(GTK_OBJECT(uinfo->dbinfo_back_button),"clicked",
75- GTK_SIGNAL_FUNC(DoPrevDiscDBEntry),(gpointer)ginfo);
76+ gtk_widget_set_tooltip_text(uinfo->dbinfo_back_button,
77+ _("Select previous CDDB entry."));
78+ g_signal_connect(G_OBJECT(uinfo->dbinfo_back_button),"clicked",
79+ G_CALLBACK(DoPrevDiscDBEntry),(gpointer)ginfo);
80 gtk_box_pack_start(GTK_BOX(uinfo->dbinfo_hbox),uinfo->dbinfo_back_button,FALSE,FALSE,0);
81 gtk_widget_show(uinfo->dbinfo_back_button);
82
83 uinfo->dbinfo_forward_button=gtk_button_new_from_stock(GTK_STOCK_GO_FORWARD);
84- gtk_tooltips_set_tip(MakeToolTip(),uinfo->dbinfo_forward_button,
85- _("Select next CDDB entry."),NULL);
86- gtk_signal_connect(GTK_OBJECT(uinfo->dbinfo_forward_button),"clicked",
87- GTK_SIGNAL_FUNC(DoNextDiscDBEntry),(gpointer)ginfo);
88+ gtk_widget_set_tooltip_text(uinfo->dbinfo_forward_button,
89+ _("Select next CDDB entry."));
90+ g_signal_connect(G_OBJECT(uinfo->dbinfo_forward_button),"clicked",
91+ G_CALLBACK(DoNextDiscDBEntry),(gpointer)ginfo);
92 gtk_box_pack_start(GTK_BOX(uinfo->dbinfo_hbox),uinfo->dbinfo_forward_button,FALSE,FALSE,0);
93 gtk_widget_show(uinfo->dbinfo_forward_button);
94
95@@ -506,7 +505,7 @@ static void SetCurrentTrack(GripInfo *ginfo,int track)
96 uinfo=&(ginfo->gui_info);
97
98 if(track<0) {
99- gtk_label_set(GTK_LABEL(uinfo->current_track_label),"--");
100+ gtk_label_set_text(GTK_LABEL(uinfo->current_track_label),"--");
101 gtk_entry_set_text(GTK_ENTRY(uinfo->start_sector_entry),"0");
102 gtk_entry_set_text(GTK_ENTRY(uinfo->end_sector_entry),"0");
103
104@@ -547,7 +546,7 @@ static void SetCurrentTrack(GripInfo *ginfo,int track)
105 track_artist_edit_entry),
106 TrackEditChanged,(gpointer)ginfo);
107 g_snprintf(buf,80,"%02d",track+1);
108- gtk_label_set(GTK_LABEL(uinfo->current_track_label),buf);
109+ gtk_label_set_text(GTK_LABEL(uinfo->current_track_label),buf);
110
111 gtk_entry_set_text(GTK_ENTRY(uinfo->start_sector_entry),"0");
112
113@@ -643,7 +642,7 @@ static gboolean TracklistButtonPressed(GtkWidget *widget,GdkEventButton *event,
114
115 row=indices[0];
116
117- cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(column->tree_view));
118+ cols=gtk_tree_view_get_columns(GTK_TREE_VIEW(gtk_tree_view_column_get_tree_view(column)));
119
120 col=g_list_index(cols,(gpointer)column);
121
122@@ -720,13 +719,7 @@ static void ToggleLoop(GtkWidget *widget,gpointer data)
123
124 ginfo->playloop=!ginfo->playloop;
125
126- if(ginfo->playloop)
127- CopyPixmap(GTK_PIXMAP(ginfo->gui_info.loop_image),\
128- GTK_PIXMAP(ginfo->gui_info.loop_indicator));
129- else
130- CopyPixmap(GTK_PIXMAP(ginfo->gui_info.noloop_image),
131- GTK_PIXMAP(ginfo->gui_info.loop_indicator));
132-
133+ gtk_image_set_from_pixbuf(GTK_IMAGE(ginfo->gui_info.loop_indicator), ginfo->playloop ? ginfo->gui_info.loop_image : ginfo->gui_info.noloop_image);
134 }
135
136 static void ChangePlayMode(GtkWidget *widget,gpointer data)
137@@ -737,8 +730,7 @@ static void ChangePlayMode(GtkWidget *widget,gpointer data)
138
139 ginfo->play_mode=(ginfo->play_mode+1)%PM_LASTMODE;
140
141- CopyPixmap(GTK_PIXMAP(ginfo->gui_info.play_pix[ginfo->play_mode]),
142- GTK_PIXMAP(ginfo->gui_info.play_indicator));
143+ gtk_image_set_from_pixbuf(GTK_IMAGE(ginfo->gui_info.play_indicator), ginfo->gui_info.play_pix[ginfo->play_mode]);
144
145 gtk_widget_set_sensitive(GTK_WIDGET(ginfo->gui_info.playlist_entry),
146 ginfo->play_mode==PM_PLAYLIST);
147@@ -760,7 +752,9 @@ GtkWidget *MakePlayOpts(GripInfo *ginfo)
148
149 hbox=gtk_hbox_new(FALSE,2);
150
151- uinfo->playlist_entry=gtk_entry_new_with_max_length(256);
152+ uinfo->playlist_entry=gtk_entry_new();
153+ gtk_entry_set_max_length(GTK_ENTRY(uinfo->playlist_entry),256);
154+
155 g_signal_connect(G_OBJECT(uinfo->playlist_entry),"focus_out_event",
156 G_CALLBACK(PlaylistChanged),(gpointer)ginfo);
157 gtk_widget_set_sensitive(GTK_WIDGET(uinfo->playlist_entry),
158@@ -768,9 +762,7 @@ GtkWidget *MakePlayOpts(GripInfo *ginfo)
159 gtk_box_pack_start(GTK_BOX(hbox),uinfo->playlist_entry,TRUE,TRUE,0);
160 gtk_widget_show(uinfo->playlist_entry);
161
162- uinfo->play_indicator=NewBlankPixmap(uinfo->app);
163- CopyPixmap(GTK_PIXMAP(uinfo->play_pix[ginfo->play_mode]),
164- GTK_PIXMAP(uinfo->play_indicator));
165+ uinfo->play_indicator=gtk_image_new_from_pixbuf(uinfo->play_pix[ginfo->play_mode]);
166
167 button=gtk_button_new();
168 gtk_container_add(GTK_CONTAINER(button),uinfo->play_indicator);
169@@ -779,18 +771,11 @@ GtkWidget *MakePlayOpts(GripInfo *ginfo)
170 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
171 g_signal_connect(G_OBJECT(button),"clicked",
172 G_CALLBACK(ChangePlayMode),(gpointer)ginfo);
173- gtk_tooltips_set_tip(MakeToolTip(),button,
174- _("Rotate play mode"),NULL);
175+ gtk_widget_set_tooltip_text(button,
176+ _("Rotate play mode"));
177 gtk_widget_show(button);
178
179- uinfo->loop_indicator=NewBlankPixmap(uinfo->app);
180-
181- if(ginfo->playloop)
182- CopyPixmap(GTK_PIXMAP(uinfo->loop_image),
183- GTK_PIXMAP(uinfo->loop_indicator));
184- else
185- CopyPixmap(GTK_PIXMAP(uinfo->noloop_image),
186- GTK_PIXMAP(uinfo->loop_indicator));
187+ uinfo->loop_indicator=gtk_image_new_from_pixbuf(ginfo->playloop ? uinfo->loop_image : uinfo->noloop_image);
188
189 button=gtk_button_new();
190 gtk_container_add(GTK_CONTAINER(button),uinfo->loop_indicator);
191@@ -799,8 +784,8 @@ GtkWidget *MakePlayOpts(GripInfo *ginfo)
192 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
193 g_signal_connect(G_OBJECT(button),"clicked",
194 G_CALLBACK(ToggleLoop),(gpointer)ginfo);
195- gtk_tooltips_set_tip(MakeToolTip(),button,
196- _("Toggle loop play"),NULL);
197+ gtk_widget_set_tooltip_text(button,
198+ _("Toggle loop play"));
199 gtk_widget_show(button);
200
201 gtk_container_add(GTK_CONTAINER(ebox),hbox);
202@@ -816,7 +801,7 @@ GtkWidget *MakeControls(GripInfo *ginfo)
203 GtkWidget *indicator_box;
204 GtkWidget *button;
205 GtkWidget *ebox,*lcdbox;
206- GtkObject *adj;
207+ GtkAdjustment *adj;
208 int mycpu;
209
210 uinfo=&(ginfo->gui_info);
211@@ -825,10 +810,10 @@ GtkWidget *MakeControls(GripInfo *ginfo)
212 gtk_widget_set_style(ebox,uinfo->style_wb);
213
214 vbox=gtk_vbox_new(FALSE,0);
215- gtk_container_border_width(GTK_CONTAINER(vbox),0);
216+ gtk_container_set_border_width(GTK_CONTAINER(vbox),0);
217
218 vbox3=gtk_vbox_new(FALSE,2);
219- gtk_container_border_width(GTK_CONTAINER(vbox3),2);
220+ gtk_container_set_border_width(GTK_CONTAINER(vbox3),2);
221
222 lcdbox=gtk_event_box_new();
223 g_signal_connect(G_OBJECT(lcdbox),"button_press_event",
224@@ -849,7 +834,7 @@ GtkWidget *MakeControls(GripInfo *ginfo)
225 gtk_widget_show(imagebox);
226
227 hbox=gtk_hbox_new(TRUE,0);
228- gtk_container_border_width(GTK_CONTAINER(hbox),0);
229+ gtk_container_set_border_width(GTK_CONTAINER(hbox),0);
230
231 uinfo->current_track_label=gtk_label_new("--");
232 gtk_box_pack_start(GTK_BOX(hbox),uinfo->current_track_label,FALSE,FALSE,0);
233@@ -872,25 +857,25 @@ GtkWidget *MakeControls(GripInfo *ginfo)
234
235 indicator_box=gtk_hbox_new(TRUE,0);
236
237- uinfo->rip_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app));
238+ uinfo->rip_indicator=gtk_image_new_from_pixbuf(uinfo->empty_image);
239 gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->rip_indicator,TRUE,TRUE,0);
240 gtk_widget_show(uinfo->rip_indicator);
241
242- uinfo->lcd_smile_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app));
243- gtk_tooltips_set_tip(MakeToolTip(),uinfo->lcd_smile_indicator,
244- _("Rip status"),NULL);
245+ uinfo->lcd_smile_indicator=gtk_image_new_from_pixbuf(uinfo->empty_image);
246+ gtk_widget_set_tooltip_text(uinfo->lcd_smile_indicator,
247+ _("Rip status"));
248 gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->lcd_smile_indicator,
249 TRUE,TRUE,0);
250 gtk_widget_show(uinfo->lcd_smile_indicator);
251
252 for(mycpu=0;mycpu<ginfo->num_cpu;mycpu++){
253- uinfo->mp3_indicator[mycpu]=NewBlankPixmap(GTK_WIDGET(uinfo->app));
254+ uinfo->mp3_indicator[mycpu]=gtk_image_new_from_pixbuf(uinfo->empty_image);
255 gtk_box_pack_start(GTK_BOX(indicator_box),
256 uinfo->mp3_indicator[mycpu],TRUE,TRUE,0);
257 gtk_widget_show(uinfo->mp3_indicator[mycpu]);
258 }
259
260- uinfo->discdb_indicator=NewBlankPixmap(GTK_WIDGET(uinfo->app));
261+ uinfo->discdb_indicator=gtk_image_new_from_pixbuf(uinfo->empty_image);
262 gtk_box_pack_start(GTK_BOX(indicator_box),uinfo->discdb_indicator,
263 TRUE,TRUE,0);
264 gtk_widget_show(uinfo->discdb_indicator);
265@@ -922,16 +907,16 @@ GtkWidget *MakeControls(GripInfo *ginfo)
266 gtk_widget_show(vbox3);
267
268 adj=gtk_adjustment_new((gfloat)ginfo->volume,0.0,255.0,1.0,1.0,0.0);
269- g_signal_connect(adj,"value_changed",
270+ g_signal_connect(G_OBJECT(adj),"value_changed",
271 G_CALLBACK(SetVolume),(gpointer)ginfo);
272- uinfo->volume_control=gtk_hscale_new(GTK_ADJUSTMENT(adj));
273+ uinfo->volume_control=gtk_hscale_new(adj);
274
275 gtk_scale_set_draw_value(GTK_SCALE(uinfo->volume_control),FALSE);
276 gtk_widget_set_name(uinfo->volume_control,"darkgrey");
277 gtk_box_pack_start(GTK_BOX(vbox),uinfo->volume_control,FALSE,FALSE,0);
278
279 /* CDGetVolume(cd_desc,&vol);
280- gtk_adjustment_set_value(GTK_ADJUSTMENT(adj),(vol.vol_front.left+
281+ gtk_adjustment_set_value(adj,(vol.vol_front.left+
282 vol.vol_front.right)/2);*/
283
284 if(uinfo->volvis) gtk_widget_show(uinfo->volume_control);
285@@ -944,8 +929,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
286 gtk_widget_set_style(button,uinfo->style_dark_grey);
287 g_signal_connect(G_OBJECT(button),"clicked",
288 G_CALLBACK(PlayTrackCB),(gpointer)ginfo);
289- gtk_tooltips_set_tip(MakeToolTip(),button,
290- _("Play track / Pause play"),NULL);
291+ gtk_widget_set_tooltip_text(button,
292+ _("Play track / Pause play"));
293 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
294 gtk_widget_show(button);
295
296@@ -955,8 +940,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
297 G_CALLBACK(RewindCB),(gpointer)ginfo);
298 g_signal_connect(G_OBJECT(button),"released",
299 G_CALLBACK(RewindCB),(gpointer)ginfo);
300- gtk_tooltips_set_tip(MakeToolTip(),button,
301- _("Rewind"),NULL);
302+ gtk_widget_set_tooltip_text(button,
303+ _("Rewind"));
304 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
305 gtk_widget_show(button);
306
307@@ -966,8 +951,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
308 G_CALLBACK(FastFwdCB),(gpointer)ginfo);
309 g_signal_connect(G_OBJECT(button),"released",
310 G_CALLBACK(FastFwdCB),(gpointer)ginfo);
311- gtk_tooltips_set_tip(MakeToolTip(),button,
312- _("FastForward"),NULL);
313+ gtk_widget_set_tooltip_text(button,
314+ _("FastForward"));
315 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
316 gtk_widget_show(button);
317
318@@ -976,8 +961,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
319 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
320 g_signal_connect(G_OBJECT(button),"clicked",
321 G_CALLBACK(PrevTrackCB),(gpointer)ginfo);
322- gtk_tooltips_set_tip(MakeToolTip(),button,
323- _("Go to previous track"),NULL);
324+ gtk_widget_set_tooltip_text(button,
325+ _("Go to previous track"));
326 gtk_widget_show(button);
327
328 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->nexttrk_image);
329@@ -985,8 +970,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
330 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
331 g_signal_connect(G_OBJECT(button),"clicked",
332 G_CALLBACK(NextTrackCB),(gpointer)ginfo);
333- gtk_tooltips_set_tip(MakeToolTip(),button,
334- _("Go to next track"),NULL);
335+ gtk_widget_set_tooltip_text(button,
336+ _("Go to next track"));
337 gtk_widget_show(button);
338
339 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->progtrack_image);
340@@ -994,8 +979,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
341 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
342 g_signal_connect(G_OBJECT(button),"clicked",
343 G_CALLBACK(ToggleProg),(gpointer)ginfo);
344- gtk_tooltips_set_tip(MakeToolTip(),button,
345- _("Toggle play mode options"),NULL);
346+ gtk_widget_set_tooltip_text(button,
347+ _("Toggle play mode options"));
348 gtk_widget_show(button);
349
350 if(ginfo->changer_slots>1) {
351@@ -1004,8 +989,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
352 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
353 g_signal_connect(G_OBJECT(button),"clicked",
354 G_CALLBACK(NextDisc),(gpointer)ginfo);
355- gtk_tooltips_set_tip(MakeToolTip(),button,
356- _("Next Disc"),NULL);
357+ gtk_widget_set_tooltip_text(button,
358+ _("Next Disc"));
359 gtk_widget_show(button);
360 }
361
362@@ -1018,8 +1003,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
363 gtk_widget_set_style(button,uinfo->style_dark_grey);
364 g_signal_connect(G_OBJECT(button),"clicked",
365 G_CALLBACK(StopPlayCB),(gpointer)ginfo);
366- gtk_tooltips_set_tip(MakeToolTip(),button,
367- _("Stop play"),NULL);
368+ gtk_widget_set_tooltip_text(button,
369+ _("Stop play"));
370 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
371 gtk_widget_show(button);
372
373@@ -1028,8 +1013,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
374 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
375 g_signal_connect(G_OBJECT(button),"clicked",
376 G_CALLBACK(EjectDisc),(gpointer)ginfo);
377- gtk_tooltips_set_tip(MakeToolTip(),button,
378- _("Eject disc"),NULL);
379+ gtk_widget_set_tooltip_text(button,
380+ _("Eject disc"));
381 gtk_widget_show(button);
382
383 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->cdscan_image);
384@@ -1037,16 +1022,16 @@ GtkWidget *MakeControls(GripInfo *ginfo)
385 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
386 g_signal_connect(G_OBJECT(button),"clicked",
387 G_CALLBACK(ScanDisc),(gpointer)ginfo);
388- gtk_tooltips_set_tip(MakeToolTip(),button,
389- _("Scan Disc Contents"),NULL);
390+ gtk_widget_set_tooltip_text(button,
391+ _("Scan Disc Contents"));
392 gtk_widget_show(button);
393
394 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->vol_image);
395 gtk_widget_set_style(button,uinfo->style_dark_grey);
396 g_signal_connect(G_OBJECT(button),"clicked",
397 G_CALLBACK(ToggleVol),(gpointer)ginfo);
398- gtk_tooltips_set_tip(MakeToolTip(),button,
399- _("Toggle Volume Control"),NULL);
400+ gtk_widget_set_tooltip_text(button,
401+ _("Toggle Volume Control"));
402 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
403 gtk_widget_show(button);
404
405@@ -1054,8 +1039,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
406 gtk_widget_set_style(button,uinfo->style_dark_grey);
407 g_signal_connect(G_OBJECT(button),"clicked",
408 G_CALLBACK(ToggleTrackEdit),(gpointer)ginfo);
409- gtk_tooltips_set_tip(MakeToolTip(),button,
410- _("Toggle disc editor"),NULL);
411+ gtk_widget_set_tooltip_text(button,
412+ _("Toggle disc editor"));
413 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
414 gtk_widget_show(button);
415
416@@ -1064,8 +1049,8 @@ GtkWidget *MakeControls(GripInfo *ginfo)
417 gtk_widget_set_style(button,uinfo->style_dark_grey);
418 g_signal_connect(G_OBJECT(button),"clicked",
419 G_CALLBACK(DiscDBToggle),(gpointer)ginfo);
420- gtk_tooltips_set_tip(MakeToolTip(),button,
421- _("Initiate/abort DiscDB lookup"),NULL);
422+ gtk_widget_set_tooltip_text(button,
423+ _("Initiate/abort DiscDB lookup"));
424 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
425 gtk_widget_show(button);
426 }
427@@ -1074,15 +1059,15 @@ GtkWidget *MakeControls(GripInfo *ginfo)
428 gtk_widget_set_style(button,uinfo->style_dark_grey);
429 g_signal_connect(G_OBJECT(button),"clicked",
430 G_CALLBACK(MinMax),(gpointer)ginfo);
431- gtk_tooltips_set_tip(MakeToolTip(),button,
432- _("Toggle track display"),NULL);
433+ gtk_widget_set_tooltip_text(button,
434+ _("Toggle track display"));
435 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
436 gtk_widget_show(button);
437
438 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->quit_image);
439 gtk_widget_set_style(button,uinfo->style_dark_grey);
440- gtk_tooltips_set_tip(MakeToolTip(),button,
441- _("Exit Grip"),NULL);
442+ gtk_widget_set_tooltip_text(button,
443+ _("Exit Grip"));
444
445 gtk_box_pack_start(GTK_BOX(hbox),button,TRUE,TRUE,0);
446 g_signal_connect(G_OBJECT(button),"clicked",
447@@ -1121,15 +1106,13 @@ void MinMax(GtkWidget *widget,gpointer data)
448 uinfo=&(ginfo->gui_info);
449
450 if(uinfo->minimized) {
451- gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),3);
452+ gtk_container_set_border_width(GTK_CONTAINER(uinfo->winbox),3);
453 gtk_box_set_child_packing(GTK_BOX(uinfo->winbox),
454 uinfo->controls,FALSE,FALSE,0,GTK_PACK_START);
455 gtk_widget_show(uinfo->notebook);
456
457- CopyPixmap(GTK_PIXMAP(uinfo->lcd_smile_indicator),
458- GTK_PIXMAP(uinfo->smile_indicator));
459- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
460- GTK_PIXMAP(uinfo->lcd_smile_indicator));
461+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->smile_indicator), uinfo->smile_pix[ginfo->rip_smile_level]);
462+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->lcd_smile_indicator), uinfo->empty_image);
463
464 gtk_widget_set_size_request(GTK_WIDGET(uinfo->app),
465 WINWIDTH,WINHEIGHT);
466@@ -1139,14 +1122,14 @@ void MinMax(GtkWidget *widget,gpointer data)
467 uinfo->win_height);
468 }
469 else {
470- gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),0);
471+ gtk_container_set_border_width(GTK_CONTAINER(uinfo->winbox),0);
472 gtk_box_set_child_packing(GTK_BOX(uinfo->winbox),uinfo->controls,
473 TRUE,TRUE,0,GTK_PACK_START);
474
475 gtk_widget_hide(uinfo->notebook);
476
477- CopyPixmap(GTK_PIXMAP(uinfo->smile_indicator),
478- GTK_PIXMAP(uinfo->lcd_smile_indicator));
479+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->lcd_smile_indicator), uinfo->smile_pix[ginfo->rip_smile_level]);
480+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->smile_indicator), uinfo->empty_image);
481
482 if(uinfo->track_edit_visible) ToggleTrackEdit(NULL,(gpointer)ginfo);
483 if(uinfo->volvis) ToggleVol(NULL,(gpointer)ginfo);
484@@ -1236,7 +1219,7 @@ static void SetVolume(GtkWidget *widget,gpointer data)
485 ginfo=(GripInfo *)data;
486
487 ginfo->volume=vol.vol_front.left=vol.vol_front.right=
488- vol.vol_back.left=vol.vol_back.right=GTK_ADJUSTMENT(widget)->value;
489+ vol.vol_back.left=vol.vol_back.right=gtk_adjustment_get_value(GTK_ADJUSTMENT(widget));
490
491 CDSetVolume(&(ginfo->disc),&vol);
492 }
493@@ -1702,11 +1685,11 @@ void UpdateDisplay(GripInfo *ginfo)
494 &uinfo->win_height);
495
496 if(old_width &&
497- (old_width != uinfo->track_list->allocation.width)) {
498+ (old_width != gtk_widget_get_allocated_width(uinfo->track_list))) {
499 ResizeTrackList(ginfo);
500 }
501
502- old_width=uinfo->track_list->allocation.width;
503+ old_width=gtk_widget_get_allocated_width(uinfo->track_list);
504 }
505 else {
506 gtk_window_get_size(GTK_WINDOW(uinfo->app),&uinfo->win_width_min,
507@@ -1718,8 +1701,7 @@ void UpdateDisplay(GripInfo *ginfo)
508 discdb_counter++;
509 }
510 else
511- CopyPixmap(GTK_PIXMAP(uinfo->discdb_pix[discdb_counter++%2]),
512- GTK_PIXMAP(uinfo->discdb_indicator));
513+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->discdb_indicator), uinfo->discdb_pix[discdb_counter++%2]);
514
515 if(!ginfo->update_required) {
516 if(ginfo->have_disc) {
517@@ -1792,7 +1774,7 @@ void UpdateDisplay(GripInfo *ginfo)
518 }
519
520 g_snprintf(buf,80,_("Current sector: %6d"),frames);
521- gtk_label_set(GTK_LABEL(uinfo->play_sector_label),buf);
522+ gtk_label_set_text(GTK_LABEL(uinfo->play_sector_label),buf);
523
524 if(uinfo->time_display_mode == TIME_MODE_LEFT_TRACK ||
525 uinfo->time_display_mode == TIME_MODE_LEFT_DISC)
526@@ -1814,7 +1796,7 @@ void UpdateDisplay(GripInfo *ginfo)
527
528 frames=secs=mins=0;
529 g_snprintf(buf,80,_("Current sector: %6d"),frames);
530- gtk_label_set(GTK_LABEL(uinfo->play_sector_label),buf);
531+ gtk_label_set_text(GTK_LABEL(uinfo->play_sector_label),buf);
532
533 strcpy(buf,"00:00");
534
535@@ -1824,10 +1806,10 @@ void UpdateDisplay(GripInfo *ginfo)
536 else return;
537 }
538
539- gtk_label_set(GTK_LABEL(uinfo->play_time_label),buf);
540+ gtk_label_set_text(GTK_LABEL(uinfo->play_time_label),buf);
541 g_snprintf(icon_buf,sizeof(icon_buf),"%02d %s %s",
542 disc->curr_track,buf,PACKAGE);
543- gdk_window_set_icon_name(uinfo->app->window,icon_buf);
544+ // FIXME gdk_window_set_icon_name(GDK_WINDOW(uinfo->app),icon_buf);
545 }
546 }
547
548@@ -1842,11 +1824,10 @@ void UpdateDisplay(GripInfo *ginfo)
549 g_snprintf(icon_buf, sizeof(icon_buf),"%02d %s %s",
550 disc->curr_track,buf,PACKAGE);
551
552- gtk_label_set(GTK_LABEL(uinfo->play_time_label),buf);
553+ gtk_label_set_text(GTK_LABEL(uinfo->play_time_label),buf);
554
555 if(!ginfo->looking_up) {
556- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
557- GTK_PIXMAP(uinfo->discdb_indicator));
558+ gtk_image_set_from_pixbuf(GTK_IMAGE(uinfo->discdb_indicator), uinfo->empty_image);
559
560 if(ginfo->auto_rip&&ginfo->is_new_disc) {
561 ClickColumn(NULL,ginfo);
562@@ -1862,13 +1843,13 @@ void UpdateDisplay(GripInfo *ginfo)
563 SelectRow(ginfo,disc->curr_track-1);
564 }
565 else {
566- gtk_label_set(GTK_LABEL(uinfo->play_time_label),"--:--");
567+ gtk_label_set_text(GTK_LABEL(uinfo->play_time_label),"--:--");
568 strncpy(icon_buf,PACKAGE,sizeof(icon_buf));
569
570 SetCurrentTrack(ginfo,-1);
571 }
572- if(uinfo->app->window)
573- gdk_window_set_icon_name(uinfo->app->window,icon_buf);
574+ /* FIXME if(GDK_WINDOW(uinfo->app))
575+ gdk_window_set_icon_name(GDK_WINDOW(uinfo->app),icon_buf); */
576 }
577 }
578
579diff --git a/src/common.h b/src/common.h
580index 5f2ea44..36f8a60 100644
581--- a/src/common.h
582+++ b/src/common.h
583@@ -27,14 +27,11 @@
584 void Debug(char *fmt,...);
585
586 /* Routines from uihelper.c */
587-GtkTooltips *MakeToolTip(void);
588 GdkColor *MakeColor(int red,int green,int blue);
589 GtkStyle *MakeStyle(GdkColor *fg,GdkColor *bg,gboolean do_grade);
590 GtkWidget *BuildMenuItemXpm(GtkWidget *xpm, gchar *text);
591 GtkWidget *BuildMenuItem(gchar *impath, gchar *text, gboolean stock);
592-GtkWidget *NewBlankPixmap(GtkWidget *widget);
593-GtkWidget *ImageButton(GtkWidget *widget,GtkWidget *image);
594-GtkWidget *Loadxpm(GtkWidget *widget,char **xpm);
595-void CopyPixmap(GtkPixmap *src,GtkPixmap *dest);
596-gint SizeInDubs(GdkFont *font,gint numchars);
597+GdkPixbuf *NewBlankPixmap(GtkWidget *widget);
598+GtkWidget *ImageButton(GtkWidget *widget,GdkPixbuf *image);
599+GdkPixbuf *Loadxpm(GtkWidget *widget,char **xpm);
600 void UpdateGTK(void);
601diff --git a/src/dialog.c b/src/dialog.c
602index b16a9d3..9ddc655 100644
603--- a/src/dialog.c
604+++ b/src/dialog.c
605@@ -70,9 +70,9 @@ gint ConfirmDialog(GtkWindow *parent, char *msg)
606 return (result == GTK_RESPONSE_OK) ? 0 : 1;
607 }
608
609-void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc,
610+void BoolDialog(char *question,char *yes,GCallback yesfunc,
611 gpointer yesdata,
612- char *no,GtkSignalFunc nofunc,gpointer nodata)
613+ char *no,GCallback nofunc,gpointer nodata)
614 {
615 GtkWidget *dialog;
616 GtkWidget *label;
617@@ -82,32 +82,32 @@ void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc,
618 dialog=gtk_dialog_new();
619 gtk_window_set_title(GTK_WINDOW(dialog),_("System Message"));
620
621- gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5);
622+ gtk_container_set_border_width(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),5);
623
624 label=gtk_label_new(question);
625- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0);
626+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),label,TRUE,TRUE,0);
627 gtk_widget_show(label);
628
629 yesbutton=gtk_button_new_with_label(yes);
630 if(yesfunc)
631- gtk_signal_connect(GTK_OBJECT(yesbutton),"clicked",
632+ g_signal_connect(G_OBJECT(yesbutton),"clicked",
633 yesfunc,yesdata);
634- gtk_signal_connect_object(GTK_OBJECT(yesbutton),"clicked",
635- GTK_SIGNAL_FUNC(gtk_widget_destroy),
636- GTK_OBJECT(dialog));
637- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),yesbutton,
638+ g_signal_connect_swapped(G_OBJECT(yesbutton),"clicked",
639+ G_CALLBACK(gtk_widget_destroy),
640+ G_OBJECT(dialog));
641+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),yesbutton,
642 TRUE,TRUE,0);
643 gtk_widget_show(yesbutton);
644
645 if(no) {
646 nobutton=gtk_button_new_with_label(no);
647 if(nofunc)
648- gtk_signal_connect(GTK_OBJECT(nobutton),"clicked",
649+ g_signal_connect(G_OBJECT(nobutton),"clicked",
650 nofunc,nodata);
651- gtk_signal_connect_object(GTK_OBJECT(nobutton),"clicked",
652- GTK_SIGNAL_FUNC(gtk_widget_destroy),
653- GTK_OBJECT(dialog));
654- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),nobutton,
655+ g_signal_connect_swapped(G_OBJECT(nobutton),"clicked",
656+ G_CALLBACK(gtk_widget_destroy),
657+ G_OBJECT(dialog));
658+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),nobutton,
659 TRUE,TRUE,0);
660 gtk_widget_show(nobutton);
661 }
662@@ -119,8 +119,8 @@ void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc,
663
664
665 void InputDialog(char *prompt,char *default_str,int len,char *doit,
666- GtkSignalFunc doitfunc,
667- char *cancel,GtkSignalFunc cancelfunc)
668+ GCallback doitfunc,
669+ char *cancel,GCallback cancelfunc)
670 {
671 GtkWidget *dialog;
672 GtkWidget *label;
673@@ -130,37 +130,38 @@ void InputDialog(char *prompt,char *default_str,int len,char *doit,
674
675 dialog=gtk_dialog_new();
676
677- gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5);
678+ gtk_container_set_border_width(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),5);
679
680 label=gtk_label_new(prompt);
681- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0);
682+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),label,TRUE,TRUE,0);
683 gtk_widget_show(label);
684
685- entry=gtk_entry_new_with_max_length(len);
686+ entry=gtk_entry_new();
687+ gtk_entry_set_max_length(GTK_ENTRY(entry),len);
688 if(default_str) gtk_entry_set_text(GTK_ENTRY(entry),default_str);
689- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),entry,TRUE,TRUE,0);
690+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),entry,TRUE,TRUE,0);
691 gtk_widget_show(entry);
692
693 doitbutton=gtk_button_new_with_label(doit);
694 if(doitfunc)
695- gtk_signal_connect(GTK_OBJECT(doitbutton),"clicked",
696+ g_signal_connect(G_OBJECT(doitbutton),"clicked",
697 doitfunc,(gpointer)entry);
698- gtk_signal_connect_object(GTK_OBJECT(doitbutton),"clicked",
699- GTK_SIGNAL_FUNC(gtk_widget_destroy),
700- GTK_OBJECT(dialog));
701- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),doitbutton,
702+ g_signal_connect_swapped(G_OBJECT(doitbutton),"clicked",
703+ G_CALLBACK(gtk_widget_destroy),
704+ G_OBJECT(dialog));
705+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),doitbutton,
706 TRUE,TRUE,0);
707 gtk_widget_show(doitbutton);
708
709 if(cancel) {
710 cancelbutton=gtk_button_new_with_label(cancel);
711 if(cancelfunc)
712- gtk_signal_connect(GTK_OBJECT(cancelbutton),"clicked",
713+ g_signal_connect(G_OBJECT(cancelbutton),"clicked",
714 cancelfunc,NULL);
715- gtk_signal_connect_object(GTK_OBJECT(cancelbutton),"clicked",
716- GTK_SIGNAL_FUNC(gtk_widget_destroy),
717- GTK_OBJECT(dialog));
718- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),cancelbutton,
719+ g_signal_connect_swapped(G_OBJECT(cancelbutton),"clicked",
720+ G_CALLBACK(gtk_widget_destroy),
721+ G_OBJECT(dialog));
722+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),cancelbutton,
723 TRUE,TRUE,0);
724 gtk_widget_show(cancelbutton);
725 }
726@@ -189,18 +190,19 @@ GtkWidget *MakeStrEntry(GtkWidget **entry,char *var,char *name,
727 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
728 gtk_widget_show(label);
729
730- widget=gtk_entry_new_with_max_length(len);
731- gtk_entry_set_editable(GTK_ENTRY(widget),editable);
732+ widget=gtk_entry_new();
733+ gtk_entry_set_max_length(GTK_ENTRY(widget),len);
734+ gtk_editable_set_editable(GTK_EDITABLE(GTK_ENTRY(widget)),editable);
735 if(var) {
736 gtk_entry_set_text(GTK_ENTRY(widget),var);
737
738- gtk_signal_connect(GTK_OBJECT(widget),"changed",
739- GTK_SIGNAL_FUNC(ChangeStrVal),(gpointer)var);
740+ g_signal_connect(G_OBJECT(widget),"changed",
741+ G_CALLBACK(ChangeStrVal),(gpointer)var);
742 }
743
744 gtk_box_pack_start(GTK_BOX(hbox),widget,TRUE,TRUE,0);
745
746- gtk_entry_set_position(GTK_ENTRY(widget),0);
747+ gtk_editable_set_position(GTK_EDITABLE(GTK_ENTRY(widget)),0);
748
749 gtk_widget_show(widget);
750
751@@ -233,8 +235,8 @@ GtkWidget *MakeNumEntry(GtkWidget **entry,int *var,char *name,int len)
752 if(var) {
753 sprintf(buf,"%d",*var);
754 gtk_entry_set_text(GTK_ENTRY(widget),buf);
755- gtk_signal_connect(GTK_OBJECT(widget),"changed",
756- GTK_SIGNAL_FUNC(ChangeIntVal),(gpointer)var);
757+ g_signal_connect(G_OBJECT(widget),"changed",
758+ G_CALLBACK(ChangeIntVal),(gpointer)var);
759 }
760
761 gtk_box_pack_end(GTK_BOX(hbox),widget,FALSE,FALSE,0);
762@@ -247,7 +249,7 @@ GtkWidget *MakeNumEntry(GtkWidget **entry,int *var,char *name,int len)
763
764 void ChangeDoubleVal(GtkWidget *widget,gpointer data)
765 {
766- *((gdouble *)data)=gtk_spin_button_get_value_as_float
767+ *((gdouble *)data)=gtk_spin_button_get_value
768 (GTK_SPIN_BUTTON(widget));
769 }
770
771@@ -256,7 +258,7 @@ GtkWidget *MakeDoubleEntry(GtkWidget **entry,gdouble *var,char *name)
772 GtkWidget *widget;
773 GtkWidget *label;
774 GtkWidget *hbox;
775- GtkObject *adj;
776+ GtkAdjustment *adj;
777
778 hbox=gtk_hbox_new(FALSE,5);
779
780@@ -266,12 +268,12 @@ GtkWidget *MakeDoubleEntry(GtkWidget **entry,gdouble *var,char *name)
781
782 adj=gtk_adjustment_new(0,0,1.0,0.001,0.1,0);
783
784- widget=gtk_spin_button_new(GTK_ADJUSTMENT(adj),0.1,3);
785+ widget=gtk_spin_button_new(adj,0.1,3);
786
787 if(var) {
788 gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget),*var);
789- gtk_signal_connect(GTK_OBJECT(widget),"changed",
790- GTK_SIGNAL_FUNC(ChangeDoubleVal),(gpointer)var);
791+ g_signal_connect(G_OBJECT(widget),"changed",
792+ G_CALLBACK(ChangeDoubleVal),(gpointer)var);
793 }
794
795 gtk_box_pack_end(GTK_BOX(hbox),widget,FALSE,FALSE,0);
796@@ -296,8 +298,8 @@ GtkWidget *MakeCheckButton(GtkWidget **button,gboolean *var,char *name)
797 if(var) {
798 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget),
799 *var);
800- gtk_signal_connect(GTK_OBJECT(widget),"clicked",
801- GTK_SIGNAL_FUNC(ChangeBoolVal),
802+ g_signal_connect(G_OBJECT(widget),"clicked",
803+ G_CALLBACK(ChangeBoolVal),
804 (gpointer)var);
805 }
806
807diff --git a/src/dialog.h b/src/dialog.h
808index 1f4c2d1..310acad 100644
809--- a/src/dialog.h
810+++ b/src/dialog.h
811@@ -26,14 +26,14 @@
812 /* Message routines */
813 void DisplayMsg(GtkMessageType type, GtkWindow *parent, char *msg);
814 gint ConfirmDialog(GtkWindow *parent, char *msg);
815-void BoolDialog(char *question,char *yes,GtkSignalFunc yesfunc,
816+void BoolDialog(char *question,char *yes,GCallback yesfunc,
817 gpointer yesdata,
818- char *no,GtkSignalFunc nofunc,gpointer nodata);
819+ char *no,GCallback nofunc,gpointer nodata);
820
821 /* Input routines */
822 void InputDialog(char *prompt,char *default_str,int len,char *doit,
823- GtkSignalFunc doitfunc,
824- char *cancel,GtkSignalFunc cancelfunc);
825+ GCallback doitfunc,
826+ char *cancel,GCallback cancelfunc);
827 void ChangeStrVal(GtkWidget *widget,gpointer data);
828 GtkWidget *MakeStrEntry(GtkWidget **entry,char *var,char *name,
829 int len,gboolean editable);
830diff --git a/src/discedit.c b/src/discedit.c
831index 35b1972..6ed4bb1 100644
832--- a/src/discedit.c
833+++ b/src/discedit.c
834@@ -46,10 +46,9 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
835 GtkWidget *button;
836 GtkWidget *label;
837 GtkWidget *frame;
838- GtkWidget *item;
839 GtkWidget *check;
840 GtkWidget *entry;
841- GtkObject *adj;
842+ GtkAdjustment *adj;
843 ID3Genre *id3_genre;
844 gint id3_genre_count;
845 int i;
846@@ -98,15 +97,16 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
847 g_object_unref(layout);
848
849
850- gtk_widget_set_usize(label,len,0);
851+ gtk_widget_set_size_request(label,len,0);
852
853 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
854 gtk_widget_show(label);
855
856- uinfo->title_edit_entry=gtk_entry_new_with_max_length(256);
857- gtk_signal_connect(GTK_OBJECT(uinfo->title_edit_entry),"changed",
858- GTK_SIGNAL_FUNC(TitleEditChanged),(gpointer)ginfo);
859- gtk_entry_set_position(GTK_ENTRY(uinfo->title_edit_entry),0);
860+ uinfo->title_edit_entry=gtk_entry_new();
861+ gtk_entry_set_max_length(GTK_ENTRY(uinfo->title_edit_entry),256);
862+ g_signal_connect(G_OBJECT(uinfo->title_edit_entry),"changed",
863+ G_CALLBACK(TitleEditChanged),(gpointer)ginfo);
864+ gtk_editable_set_position(GTK_EDITABLE(GTK_ENTRY(uinfo->title_edit_entry)),0);
865 gtk_box_pack_start(GTK_BOX(hbox),uinfo->title_edit_entry,TRUE,TRUE,0);
866 gtk_widget_show(uinfo->title_edit_entry);
867
868@@ -116,14 +116,15 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
869 hbox=gtk_hbox_new(FALSE,3);
870
871 label=gtk_label_new(labels[1]);
872- gtk_widget_set_usize(label,len,0);
873+ gtk_widget_set_size_request(label,len,0);
874 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
875 gtk_widget_show(label);
876
877- uinfo->artist_edit_entry=gtk_entry_new_with_max_length(256);
878- gtk_signal_connect(GTK_OBJECT(uinfo->artist_edit_entry),"changed",
879- GTK_SIGNAL_FUNC(ArtistEditChanged),(gpointer)ginfo);
880- gtk_entry_set_position(GTK_ENTRY(uinfo->artist_edit_entry),0);
881+ uinfo->artist_edit_entry=gtk_entry_new();
882+ gtk_entry_set_max_length(GTK_ENTRY(uinfo->artist_edit_entry),256);
883+ g_signal_connect(G_OBJECT(uinfo->artist_edit_entry),"changed",
884+ G_CALLBACK(ArtistEditChanged),(gpointer)ginfo);
885+ gtk_editable_set_position(GTK_EDITABLE(GTK_ENTRY(uinfo->artist_edit_entry)),0);
886 gtk_box_pack_start(GTK_BOX(hbox),uinfo->artist_edit_entry,TRUE,TRUE,0);
887 gtk_widget_show(uinfo->artist_edit_entry);
888
889@@ -133,24 +134,18 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
890 hbox=gtk_hbox_new(FALSE,3);
891
892 label=gtk_label_new(labels[2]);
893- gtk_widget_set_usize(label,len,0);
894+ gtk_widget_set_size_request(label,len,0);
895 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
896 gtk_widget_show(label);
897
898- uinfo->id3_genre_combo=gtk_combo_new();
899+ uinfo->id3_genre_combo=gtk_combo_box_text_new();
900+ g_signal_connect(G_OBJECT(uinfo->id3_genre_combo),"changed",
901+ G_CALLBACK(ID3GenreChanged),
902+ (gpointer)ginfo);
903
904 for(id3_genre_count=0;(id3_genre=ID3GenreByNum(id3_genre_count));
905 id3_genre_count++) {
906- item = gtk_list_item_new_with_label(id3_genre->name);
907- gtk_object_set_user_data(GTK_OBJECT(item),
908- GINT_TO_POINTER(id3_genre->num));
909- uinfo->id3_genre_item_list=g_list_append(uinfo->id3_genre_item_list,item);
910- gtk_signal_connect(GTK_OBJECT(item),"select",
911- GTK_SIGNAL_FUNC(ID3GenreChanged),
912- (gpointer)ginfo);
913- gtk_container_add(GTK_CONTAINER(GTK_COMBO(uinfo->id3_genre_combo)->list),
914- item);
915- gtk_widget_show(item);
916+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(uinfo->id3_genre_combo), id3_genre->name);
917 }
918
919 gtk_box_pack_start(GTK_BOX(hbox),uinfo->id3_genre_combo,TRUE,TRUE,0);
920@@ -164,15 +159,15 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
921 hbox=gtk_hbox_new(FALSE,3);
922
923 label=gtk_label_new(labels[3]);
924- gtk_widget_set_usize(label,len,0);
925+ gtk_widget_set_size_request(label,len,0);
926 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
927 gtk_widget_show(label);
928
929 adj=gtk_adjustment_new(0,0,9999,1.0,5.0,0);
930
931- uinfo->year_spin_button=gtk_spin_button_new(GTK_ADJUSTMENT(adj),0.5,0);
932- gtk_signal_connect(GTK_OBJECT(uinfo->year_spin_button),"value_changed",
933- GTK_SIGNAL_FUNC(YearEditChanged),(gpointer)ginfo);
934+ uinfo->year_spin_button=gtk_spin_button_new(adj,0.5,0);
935+ g_signal_connect(G_OBJECT(uinfo->year_spin_button),"value_changed",
936+ G_CALLBACK(YearEditChanged),(gpointer)ginfo);
937 gtk_box_pack_start(GTK_BOX(hbox),uinfo->year_spin_button,TRUE,TRUE,0);
938 gtk_widget_show(uinfo->year_spin_button);
939
940@@ -182,15 +177,16 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
941 hbox=gtk_hbox_new(FALSE,3);
942
943 label=gtk_label_new(labels[4]);
944- gtk_widget_set_usize(label,len,0);
945+ gtk_widget_set_size_request(label,len,0);
946 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
947 gtk_widget_show(label);
948
949- uinfo->track_edit_entry=gtk_entry_new_with_max_length(256);
950- gtk_signal_connect(GTK_OBJECT(uinfo->track_edit_entry),"changed",
951- GTK_SIGNAL_FUNC(TrackEditChanged),(gpointer)ginfo);
952- gtk_signal_connect(GTK_OBJECT(uinfo->track_edit_entry),"activate",
953- GTK_SIGNAL_FUNC(EditNextTrack),(gpointer)ginfo);
954+ uinfo->track_edit_entry=gtk_entry_new();
955+ gtk_entry_set_max_length(GTK_ENTRY(uinfo->track_edit_entry),256);
956+ g_signal_connect(G_OBJECT(uinfo->track_edit_entry),"changed",
957+ G_CALLBACK(TrackEditChanged),(gpointer)ginfo);
958+ g_signal_connect(G_OBJECT(uinfo->track_edit_entry),"activate",
959+ G_CALLBACK(EditNextTrack),(gpointer)ginfo);
960 gtk_box_pack_start(GTK_BOX(hbox),uinfo->track_edit_entry,TRUE,TRUE,0);
961 gtk_widget_show(uinfo->track_edit_entry);
962
963@@ -202,13 +198,14 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
964 hbox=gtk_hbox_new(FALSE,3);
965
966 label=gtk_label_new(labels[5]);
967- gtk_widget_set_usize(label,len,0);
968+ gtk_widget_set_size_request(label,len,0);
969 gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0);
970 gtk_widget_show(label);
971
972- uinfo->track_artist_edit_entry=gtk_entry_new_with_max_length(256);
973- gtk_signal_connect(GTK_OBJECT(uinfo->track_artist_edit_entry),"changed",
974- GTK_SIGNAL_FUNC(TrackEditChanged),(gpointer)ginfo);
975+ uinfo->track_artist_edit_entry=gtk_entry_new();
976+ gtk_entry_set_max_length(GTK_ENTRY(uinfo->track_artist_edit_entry),256);
977+ g_signal_connect(G_OBJECT(uinfo->track_artist_edit_entry),"changed",
978+ G_CALLBACK(TrackEditChanged),(gpointer)ginfo);
979 gtk_box_pack_start(GTK_BOX(hbox),uinfo->track_artist_edit_entry,
980 TRUE,TRUE,0);
981 gtk_widget_show(uinfo->track_artist_edit_entry);
982@@ -223,23 +220,23 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
983 gtk_widget_show(label);
984
985 button=gtk_button_new_with_label(_("Title/Artist"));
986- gtk_object_set_user_data(GTK_OBJECT(button),(gpointer)0);
987- gtk_signal_connect(GTK_OBJECT(button),"clicked",
988- GTK_SIGNAL_FUNC(SplitTitleArtist),(gpointer)ginfo);
989+ g_object_set_data(G_OBJECT(button),"user_data",(gpointer)0);
990+ g_signal_connect(G_OBJECT(button),"clicked",
991+ G_CALLBACK(SplitTitleArtist),(gpointer)ginfo);
992 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
993 gtk_widget_show(button);
994
995 button=gtk_button_new_with_label(_("Artist/Title"));
996- gtk_object_set_user_data(GTK_OBJECT(button),(gpointer)1);
997- gtk_signal_connect(GTK_OBJECT(button),"clicked",
998- GTK_SIGNAL_FUNC(SplitTitleArtist),(gpointer)ginfo);
999+ g_object_set_data(G_OBJECT(button),"user_data",(gpointer)1);
1000+ g_signal_connect(G_OBJECT(button),"clicked",
1001+ G_CALLBACK(SplitTitleArtist),(gpointer)ginfo);
1002 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
1003 gtk_widget_show(button);
1004
1005 entry=MakeStrEntry(&uinfo->split_chars_entry,ginfo->title_split_chars,
1006 _("Split chars"),5,TRUE);
1007
1008- gtk_widget_set_usize(uinfo->split_chars_entry,
1009+ gtk_widget_set_size_request(uinfo->split_chars_entry,
1010 5*dub_size,0);
1011
1012
1013@@ -260,26 +257,26 @@ GtkWidget *MakeEditBox(GripInfo *ginfo)
1014 check=MakeCheckButton(&uinfo->multi_artist_button,
1015 &(ginfo->ddata.data_multi_artist),
1016 _("Multi-artist"));
1017- gtk_signal_connect(GTK_OBJECT(uinfo->multi_artist_button),"clicked",
1018- GTK_SIGNAL_FUNC(UpdateMultiArtist),(gpointer)ginfo);
1019+ g_signal_connect(G_OBJECT(uinfo->multi_artist_button),"clicked",
1020+ G_CALLBACK(UpdateMultiArtist),(gpointer)ginfo);
1021 gtk_box_pack_start(GTK_BOX(hbox),check,TRUE,TRUE,0);
1022 gtk_widget_show(check);
1023
1024 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->save_image);
1025 gtk_widget_set_style(button,uinfo->style_dark_grey);
1026- gtk_signal_connect(GTK_OBJECT(button),"clicked",
1027- GTK_SIGNAL_FUNC(SaveDiscInfo),(gpointer)ginfo);
1028- gtk_tooltips_set_tip(MakeToolTip(),button,
1029- _("Save disc info"),NULL);
1030+ g_signal_connect(G_OBJECT(button),"clicked",
1031+ G_CALLBACK(SaveDiscInfo),(gpointer)ginfo);
1032+ gtk_widget_set_tooltip_text(button,
1033+ _("Save disc info"));
1034 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
1035 gtk_widget_show(button);
1036
1037 button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->mail_image);
1038 gtk_widget_set_style(button,uinfo->style_dark_grey);
1039- gtk_signal_connect(GTK_OBJECT(button),"clicked",
1040- GTK_SIGNAL_FUNC(SubmitEntryCB),(gpointer)ginfo);
1041- gtk_tooltips_set_tip(MakeToolTip(),button,
1042- _("Submit disc info"),NULL);
1043+ g_signal_connect(G_OBJECT(button),"clicked",
1044+ G_CALLBACK(SubmitEntryCB),(gpointer)ginfo);
1045+ gtk_widget_set_tooltip_text(button,
1046+ _("Submit disc info"));
1047 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
1048 gtk_widget_show(button);
1049
1050@@ -344,10 +341,10 @@ void SetTitle(GripInfo *ginfo,char *title)
1051 TitleEditChanged,(gpointer)ginfo);
1052
1053 gtk_entry_set_text(GTK_ENTRY(ginfo->gui_info.title_edit_entry),title);
1054- gtk_entry_set_position(GTK_ENTRY(ginfo->gui_info.title_edit_entry),0);
1055+ gtk_editable_set_position(GTK_EDITABLE(GTK_ENTRY(ginfo->gui_info.title_edit_entry)),0);
1056
1057 strcpy(ginfo->ddata.data_title,title);
1058- gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_name_label),title);
1059+ gtk_label_set_text(GTK_LABEL(ginfo->gui_info.disc_name_label),title);
1060
1061 g_signal_handlers_unblock_by_func(G_OBJECT(ginfo->gui_info.title_edit_entry),
1062 TitleEditChanged,(gpointer)ginfo);
1063@@ -359,10 +356,10 @@ void SetArtist(GripInfo *ginfo,char *artist)
1064 ArtistEditChanged,(gpointer)ginfo);
1065
1066 gtk_entry_set_text(GTK_ENTRY(ginfo->gui_info.artist_edit_entry),artist);
1067- gtk_entry_set_position(GTK_ENTRY(ginfo->gui_info.artist_edit_entry),0);
1068+ gtk_editable_set_position(GTK_EDITABLE(GTK_ENTRY(ginfo->gui_info.artist_edit_entry)),0);
1069
1070 strcpy(ginfo->ddata.data_artist,artist);
1071- gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_artist_label),artist);
1072+ gtk_label_set_text(GTK_LABEL(ginfo->gui_info.disc_artist_label),artist);
1073
1074 g_signal_handlers_unblock_by_func(G_OBJECT(ginfo->gui_info.artist_edit_entry),
1075 ArtistEditChanged,(gpointer)ginfo);
1076@@ -376,13 +373,7 @@ void SetYear(GripInfo *ginfo,int year)
1077
1078 void SetID3Genre(GripInfo *ginfo,int id3_genre)
1079 {
1080- GtkWidget *item;
1081-
1082- item=
1083- GTK_WIDGET(g_list_nth(ginfo->gui_info.id3_genre_item_list,
1084- ID3GenrePos(id3_genre))->data);
1085- gtk_list_select_child(GTK_LIST(GTK_COMBO(ginfo->gui_info.id3_genre_combo)->
1086- list),item);
1087+ gtk_combo_box_set_active(GTK_COMBO_BOX(ginfo->gui_info.id3_genre_combo), id3_genre);
1088 }
1089
1090 static void SaveDiscInfo(GtkWidget *widget,gpointer data)
1091@@ -410,7 +401,7 @@ static void TitleEditChanged(GtkWidget *widget,gpointer data)
1092 strcpy(ginfo->ddata.data_title,
1093 gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.title_edit_entry)));
1094
1095- gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_name_label),
1096+ gtk_label_set_text(GTK_LABEL(ginfo->gui_info.disc_name_label),
1097 ginfo->ddata.data_title);
1098 }
1099
1100@@ -423,7 +414,7 @@ static void ArtistEditChanged(GtkWidget *widget,gpointer data)
1101 strcpy(ginfo->ddata.data_artist,
1102 gtk_entry_get_text(GTK_ENTRY(ginfo->gui_info.artist_edit_entry)));
1103
1104- gtk_label_set(GTK_LABEL(ginfo->gui_info.disc_artist_label),
1105+ gtk_label_set_text(GTK_LABEL(ginfo->gui_info.disc_artist_label),
1106 ginfo->ddata.data_artist);
1107 }
1108
1109@@ -489,7 +480,7 @@ static void ID3GenreChanged(GtkWidget *widget,gpointer data)
1110
1111 ginfo=(GripInfo *)data;
1112
1113- ginfo->ddata.data_id3genre=GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(widget)));
1114+ ginfo->ddata.data_id3genre=gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
1115 /* ginfo->ddata.data_genre=ID32DiscDB(ginfo->ddata.data_id3genre);*/
1116 }
1117
1118@@ -525,7 +516,7 @@ static void SplitTitleArtist(GtkWidget *widget,gpointer data)
1119 int mode;
1120
1121 ginfo=(GripInfo *)data;
1122- mode=GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(widget)));
1123+ mode=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "user_data"));
1124
1125 for(track=0;track<ginfo->disc.num_tracks;track++) {
1126 if(mode==0)
1127@@ -605,21 +596,22 @@ static void GetDiscDBGenre(GripInfo *ginfo)
1128 GtkWidget *cancel_button;
1129 GtkWidget *hbox;
1130 GtkWidget *genre_combo;
1131- GtkWidget *item;
1132 int genre;
1133
1134 dialog=gtk_dialog_new();
1135 gtk_window_set_title(GTK_WINDOW(dialog),_("Genre selection"));
1136
1137- gtk_container_border_width(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),5);
1138+ gtk_container_set_border_width(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),5);
1139
1140 label=gtk_label_new(_("Submission requires a genre other than 'unknown'\n"
1141 "Please select a DiscDB genre below"));
1142- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),label,TRUE,TRUE,0);
1143+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),label,TRUE,TRUE,0);
1144 gtk_widget_show(label);
1145
1146- genre_combo=gtk_combo_new();
1147- gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(genre_combo)->entry),FALSE);
1148+ genre_combo=gtk_combo_box_text_new();
1149+ // FIXME gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO_BOX(genre_combo)->entry),FALSE);
1150+ g_signal_connect(G_OBJECT(genre_combo), "changed",
1151+ G_CALLBACK(DiscDBGenreChanged),(gpointer)ginfo);
1152
1153 hbox=gtk_hbox_new(FALSE,3);
1154
1155@@ -628,38 +620,32 @@ static void GetDiscDBGenre(GripInfo *ginfo)
1156 gtk_widget_show(label);
1157
1158 for(genre=0;genre<12;genre++) {
1159- item=gtk_list_item_new_with_label(DiscDBGenre(genre));
1160- gtk_object_set_user_data(GTK_OBJECT(item),
1161- GINT_TO_POINTER(genre));
1162- gtk_signal_connect(GTK_OBJECT(item), "select",
1163- GTK_SIGNAL_FUNC(DiscDBGenreChanged),(gpointer)ginfo);
1164- gtk_container_add(GTK_CONTAINER(GTK_COMBO(genre_combo)->list),item);
1165- gtk_widget_show(item);
1166+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(genre_combo), DiscDBGenre(genre));
1167 }
1168
1169 gtk_box_pack_start(GTK_BOX(hbox),genre_combo,TRUE,TRUE,0);
1170 gtk_widget_show(genre_combo);
1171
1172- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),hbox,TRUE,TRUE,0);
1173+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),hbox,TRUE,TRUE,0);
1174 gtk_widget_show(hbox);
1175
1176 submit_button=gtk_button_new_with_label(_("Submit"));
1177
1178- gtk_signal_connect(GTK_OBJECT(submit_button),"clicked",
1179+ g_signal_connect(G_OBJECT(submit_button),"clicked",
1180 (gpointer)SubmitEntryCB,(gpointer)ginfo);
1181- gtk_signal_connect_object(GTK_OBJECT(submit_button),"clicked",
1182- GTK_SIGNAL_FUNC(gtk_widget_destroy),
1183- GTK_OBJECT(dialog));
1184- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),submit_button,
1185+ g_signal_connect_swapped(G_OBJECT(submit_button),"clicked",
1186+ G_CALLBACK(gtk_widget_destroy),
1187+ G_OBJECT(dialog));
1188+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),submit_button,
1189 TRUE,TRUE,0);
1190 gtk_widget_show(submit_button);
1191
1192 cancel_button=gtk_button_new_with_label(_("Cancel"));
1193
1194- gtk_signal_connect_object(GTK_OBJECT(cancel_button),"clicked",
1195- GTK_SIGNAL_FUNC(gtk_widget_destroy),
1196- GTK_OBJECT(dialog));
1197- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area),cancel_button,
1198+ g_signal_connect_swapped(G_OBJECT(cancel_button),"clicked",
1199+ G_CALLBACK(gtk_widget_destroy),
1200+ G_OBJECT(dialog));
1201+ gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))),cancel_button,
1202 TRUE,TRUE,0);
1203 gtk_widget_show(cancel_button);
1204
1205@@ -675,5 +661,5 @@ static void DiscDBGenreChanged(GtkWidget *widget,gpointer data)
1206
1207 ginfo=(GripInfo *)data;
1208
1209- ginfo->ddata.data_genre=GPOINTER_TO_INT(gtk_object_get_user_data(GTK_OBJECT(widget)));
1210+ ginfo->ddata.data_genre=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "user_data"));
1211 }
1212diff --git a/src/grip.c b/src/grip.c
1213index 93083b8..12b7a01 100644
1214--- a/src/grip.c
1215+++ b/src/grip.c
1216@@ -29,7 +29,7 @@
1217 #include <sys/types.h>
1218 #include <sys/wait.h>
1219 #include <time.h>
1220-#include <gdk/gdkx.h> /* GDK_DISPLAY() */
1221+#include <gdk/gdkx.h> /* gdk_display */
1222 #include "grip.h"
1223 #include "discdb.h"
1224 #include "cdplay.h"
1225@@ -190,7 +190,7 @@ GtkWidget *GripNew(char *device,char *scsi_device,
1226
1227 ginfo=g_new0(GripInfo,1);
1228
1229- gtk_object_set_user_data(GTK_OBJECT(app),(gpointer)ginfo);
1230+ g_object_set_data(G_OBJECT(app),"user_data",(gpointer)ginfo);
1231
1232 uinfo=&(ginfo->gui_info);
1233 uinfo->app=app;
1234@@ -227,7 +227,7 @@ GtkWidget *GripNew(char *device,char *scsi_device,
1235
1236 CDStat(&(ginfo->disc),TRUE);
1237
1238- gtk_window_set_policy(GTK_WINDOW(app),FALSE,TRUE,FALSE);
1239+ // FIXME gtk_window_set_policy(GTK_WINDOW(app),FALSE,TRUE,FALSE);
1240 gtk_window_set_wmclass(GTK_WINDOW(app),"grip","Grip");
1241 g_signal_connect(G_OBJECT(app),"delete_event",
1242 G_CALLBACK(GripDie),NULL);
1243@@ -257,7 +257,7 @@ GtkWidget *GripNew(char *device,char *scsi_device,
1244
1245 uinfo->winbox=gtk_vbox_new(FALSE,3);
1246 if(!uinfo->minimized)
1247- gtk_container_border_width(GTK_CONTAINER(uinfo->winbox),3);
1248+ gtk_container_set_border_width(GTK_CONTAINER(uinfo->winbox),3);
1249
1250 uinfo->notebook=gtk_notebook_new();
1251
1252@@ -319,7 +319,7 @@ void GripDie(GtkWidget *widget,gpointer data)
1253 {
1254 GripInfo *ginfo;
1255
1256- ginfo=(GripInfo *)gtk_object_get_user_data(GTK_OBJECT(widget));
1257+ ginfo=(GripInfo *)g_object_get_data(G_OBJECT(widget), "user_data");
1258
1259 if(ginfo->ripping_a_disc || ginfo->encoding)
1260 ReallyDie(ConfirmDialog ((GtkWindow *)ginfo->gui_info.app,
1261@@ -397,11 +397,11 @@ static void MakeHelpPage(GripInfo *ginfo)
1262 help_page=MakeNewPage(ginfo->gui_info.notebook,_("Help"));
1263
1264 vbox=gtk_vbox_new(FALSE,0);
1265- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1266+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1267
1268 button=gtk_button_new_with_label(_("Table Of Contents"));
1269- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1270- GTK_SIGNAL_FUNC(DoHelp), NULL);
1271+ g_signal_connect(G_OBJECT(button), "clicked",
1272+ G_CALLBACK(DoHelp), NULL);
1273 gtk_box_pack_start(GTK_BOX(vbox), button, FALSE, FALSE, 0);
1274 gtk_widget_show(button);
1275
1276@@ -425,9 +425,9 @@ void MakeAboutPage(GripGUI *uinfo)
1277 gtk_widget_set_style(ebox,uinfo->style_wb);
1278
1279 vbox=gtk_vbox_new(TRUE,5);
1280- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1281+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1282
1283- logo=Loadxpm(GTK_WIDGET(uinfo->app),grip_xpm);
1284+ logo=gtk_image_new_from_pixbuf(Loadxpm(GTK_WIDGET(uinfo->app),grip_xpm));
1285
1286 gtk_box_pack_start(GTK_BOX(vbox),logo,FALSE,FALSE,0);
1287 gtk_widget_show(logo);
1288@@ -458,10 +458,10 @@ void MakeAboutPage(GripGUI *uinfo)
1289
1290 button=gtk_button_new_with_label(PACKAGE_BUGREPORT);
1291 gtk_widget_set_style(button,uinfo->style_dark_grey);
1292- gtk_widget_set_style(GTK_BIN(button)->child,
1293+ gtk_widget_set_style(gtk_bin_get_child(GTK_BIN(button)),
1294 uinfo->style_dark_grey);
1295- gtk_signal_connect(GTK_OBJECT(button),"clicked",
1296- GTK_SIGNAL_FUNC(Homepage),uinfo);
1297+ g_signal_connect(G_OBJECT(button),"clicked",
1298+ G_CALLBACK(Homepage),uinfo);
1299 gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
1300 gtk_widget_show(button);
1301
1302@@ -481,20 +481,20 @@ void MakeAboutPage(GripGUI *uinfo)
1303
1304 static void MakeStyles(GripGUI *uinfo)
1305 {
1306- GdkColor gdkblack;
1307- GdkColor gdkwhite;
1308+ GdkColor *gdkblack;
1309+ GdkColor *gdkwhite;
1310 GdkColor *color_LCD;
1311 GdkColor *color_dark_grey;
1312
1313- gdk_color_white(gdk_colormap_get_system(),&gdkwhite);
1314- gdk_color_black(gdk_colormap_get_system(),&gdkblack);
1315+ gdkwhite=MakeColor(65535,65535,65535);
1316+ gdkblack=MakeColor(0,0,0);
1317
1318 color_LCD=MakeColor(33686,38273,29557);
1319 color_dark_grey=MakeColor(0x4444,0x4444,0x4444);
1320
1321- uinfo->style_wb=MakeStyle(&gdkwhite,&gdkblack,FALSE);
1322+ uinfo->style_wb=MakeStyle(gdkwhite,gdkblack,FALSE);
1323 uinfo->style_LCD=MakeStyle(color_LCD,color_LCD,FALSE);
1324- uinfo->style_dark_grey=MakeStyle(&gdkwhite,color_dark_grey,TRUE);
1325+ uinfo->style_dark_grey=MakeStyle(gdkwhite,color_dark_grey,TRUE);
1326 }
1327
1328 static void Homepage(GtkWidget *widget,gpointer data)
1329@@ -512,8 +512,8 @@ static void LoadImages(GripGUI *uinfo)
1330 uinfo->eject_image=Loadxpm(uinfo->app,eject_xpm);
1331 uinfo->cdscan_image=Loadxpm(uinfo->app,cdscan_xpm);
1332 uinfo->ff_image=Loadxpm(uinfo->app,ff_xpm);
1333- uinfo->lowleft_image=Loadxpm(uinfo->app,lowleft_xpm);
1334- uinfo->lowright_image=Loadxpm(uinfo->app,lowright_xpm);
1335+ uinfo->lowleft_image=gtk_image_new_from_pixbuf(Loadxpm(uinfo->app,lowleft_xpm));
1336+ uinfo->lowright_image=gtk_image_new_from_pixbuf(Loadxpm(uinfo->app,lowright_xpm));
1337 uinfo->minmax_image=Loadxpm(uinfo->app,minmax_xpm);
1338 uinfo->nexttrk_image=Loadxpm(uinfo->app,nexttrk_xpm);
1339 uinfo->playpaus_image=Loadxpm(uinfo->app,playpaus_xpm);
1340@@ -526,8 +526,8 @@ static void LoadImages(GripGUI *uinfo)
1341 uinfo->quit_image=Loadxpm(uinfo->app,quit_xpm);
1342 uinfo->rew_image=Loadxpm(uinfo->app,rew_xpm);
1343 uinfo->stop_image=Loadxpm(uinfo->app,stop_xpm);
1344- uinfo->upleft_image=Loadxpm(uinfo->app,upleft_xpm);
1345- uinfo->upright_image=Loadxpm(uinfo->app,upright_xpm);
1346+ uinfo->upleft_image=gtk_image_new_from_pixbuf(Loadxpm(uinfo->app,upleft_xpm));
1347+ uinfo->upright_image=gtk_image_new_from_pixbuf(Loadxpm(uinfo->app,upright_xpm));
1348 uinfo->vol_image=Loadxpm(uinfo->app,vol_xpm);
1349 uinfo->discdbwht_image=Loadxpm(uinfo->app,discdbwht_xpm);
1350 uinfo->rotate_image=Loadxpm(uinfo->app,rotate_xpm);
1351@@ -536,7 +536,7 @@ static void LoadImages(GripGUI *uinfo)
1352 uinfo->mail_image=Loadxpm(uinfo->app,mail_xpm);
1353 uinfo->save_image=Loadxpm(uinfo->app,save_xpm);
1354
1355- uinfo->empty_image=NewBlankPixmap(uinfo->app);
1356+ uinfo->empty_image=NewBlankPixmap(NULL);
1357
1358 uinfo->discdb_pix[0]=Loadxpm(uinfo->app,discdb0_xpm);
1359 uinfo->discdb_pix[1]=Loadxpm(uinfo->app,discdb1_xpm);
1360@@ -570,7 +570,7 @@ void GripUpdate(GtkWidget *app)
1361 GripInfo *ginfo;
1362 time_t secs;
1363
1364- ginfo=(GripInfo *)gtk_object_get_user_data(GTK_OBJECT(app));
1365+ ginfo=(GripInfo *)g_object_get_data(G_OBJECT(app), "user_data");
1366
1367 if(ginfo->ffwding) FastFwd(ginfo);
1368 if(ginfo->rewinding) Rewind(ginfo);
1369@@ -597,14 +597,14 @@ void GripUpdate(GtkWidget *app)
1370
1371 void Busy(GripGUI *uinfo)
1372 {
1373- gdk_window_set_cursor(uinfo->app->window,uinfo->wait_cursor);
1374+ // FIXME gdk_window_set_cursor(GDK_WINDOW(uinfo->app),uinfo->wait_cursor);
1375
1376 UpdateGTK();
1377 }
1378
1379 void UnBusy(GripGUI *uinfo)
1380 {
1381- gdk_window_set_cursor(uinfo->app->window,NULL);
1382+ // FIXME gdk_window_set_cursor(GDK_WINDOW(uinfo->app),NULL);
1383
1384 UpdateGTK();
1385 }
1386@@ -708,8 +708,6 @@ static void DoLoadConfig(GripInfo *ginfo)
1387
1388 strcpy(ginfo->title_split_chars,"/");
1389
1390- ginfo->curr_pipe_fd=-1;
1391-
1392 ginfo->num_cpu=1;
1393 ginfo->ripping=FALSE;
1394 ginfo->ripping_a_disc=FALSE;
1395@@ -900,36 +898,3 @@ void DoSaveConfig(GripInfo *ginfo)
1396 SaveRipperConfig(ginfo,ginfo->selected_ripper);
1397 SaveEncoderConfig(ginfo,ginfo->selected_encoder);
1398 }
1399-
1400-/* Shut down stuff (generally before an exec) */
1401-void CloseStuff(void *user_data)
1402-{
1403- GripInfo *ginfo;
1404- int fd;
1405-
1406- ginfo=(GripInfo *)user_data;
1407-
1408- close(ConnectionNumber(GDK_DISPLAY()));
1409- close(ginfo->disc.cd_desc);
1410-
1411- fd=open("/dev/null",O_RDWR);
1412- dup2(fd,0);
1413-
1414- if(ginfo->do_redirect) {
1415- if(ginfo->curr_pipe_fd>0) {
1416- dup2(ginfo->curr_pipe_fd,1);
1417- dup2(ginfo->curr_pipe_fd,2);
1418-
1419- ginfo->curr_pipe_fd=-1;
1420- }
1421- else {
1422- dup2(fd,1);
1423- dup2(fd,2);
1424- }
1425- }
1426-
1427- /* Close any other filehandles that might be around */
1428- for(fd=3;fd<NOFILE;fd++) {
1429- close(fd);
1430- }
1431-}
1432diff --git a/src/grip.h b/src/grip.h
1433index afc24a5..0f7955d 100644
1434--- a/src/grip.h
1435+++ b/src/grip.h
1436@@ -144,41 +144,41 @@ typedef struct _grip_gui {
1437 GtkWidget *all_encprogbar;
1438
1439 /* Images */
1440- GtkWidget *check_image;
1441- GtkWidget *eject_image;
1442- GtkWidget *cdscan_image;
1443- GtkWidget *ff_image;
1444+ GdkPixbuf *check_image;
1445+ GdkPixbuf *eject_image;
1446+ GdkPixbuf *cdscan_image;
1447+ GdkPixbuf *ff_image;
1448 GtkWidget *lowleft_image;
1449 GtkWidget *lowright_image;
1450- GtkWidget *minmax_image;
1451- GtkWidget *nexttrk_image;
1452- GtkWidget *playpaus_image;
1453- GtkWidget *prevtrk_image;
1454- GtkWidget *loop_image;
1455- GtkWidget *noloop_image;
1456- GtkWidget *random_image;
1457- GtkWidget *playlist_image;
1458- GtkWidget *playnorm_image;
1459- GtkWidget *quit_image;
1460- GtkWidget *rew_image;
1461- GtkWidget *stop_image;
1462+ GdkPixbuf *minmax_image;
1463+ GdkPixbuf *nexttrk_image;
1464+ GdkPixbuf *playpaus_image;
1465+ GdkPixbuf *prevtrk_image;
1466+ GdkPixbuf *loop_image;
1467+ GdkPixbuf *noloop_image;
1468+ GdkPixbuf *random_image;
1469+ GdkPixbuf *playlist_image;
1470+ GdkPixbuf *playnorm_image;
1471+ GdkPixbuf *quit_image;
1472+ GdkPixbuf *rew_image;
1473+ GdkPixbuf *stop_image;
1474 GtkWidget *upleft_image;
1475 GtkWidget *upright_image;
1476- GtkWidget *vol_image;
1477- GtkWidget *discdbwht_image;
1478- GtkWidget *rotate_image;
1479- GtkWidget *edit_image;
1480- GtkWidget *progtrack_image;
1481- GtkWidget *mail_image;
1482- GtkWidget *save_image;
1483- GtkWidget *empty_image;
1484-
1485- GtkWidget *discdb_pix[2];
1486- GtkWidget *rip_pix[4];
1487- GtkWidget *mp3_pix[4];
1488- GtkWidget *smile_pix[8];
1489-
1490- GtkWidget *play_pix[3];
1491+ GdkPixbuf *vol_image;
1492+ GdkPixbuf *discdbwht_image;
1493+ GdkPixbuf *rotate_image;
1494+ GdkPixbuf *edit_image;
1495+ GdkPixbuf *progtrack_image;
1496+ GdkPixbuf *mail_image;
1497+ GdkPixbuf *save_image;
1498+ GdkPixbuf *empty_image;
1499+
1500+ GdkPixbuf *discdb_pix[2];
1501+ GdkPixbuf *rip_pix[4];
1502+ GdkPixbuf *mp3_pix[4];
1503+ GdkPixbuf *smile_pix[8];
1504+
1505+ GdkPixbuf *play_pix[3];
1506
1507 /* notification area widgets */
1508 GtkStatusIcon *tray_icon;
1509@@ -246,8 +246,6 @@ typedef struct _grip_info {
1510
1511 GripGUI gui_info;
1512
1513- int curr_pipe_fd;
1514-
1515 int num_cpu;
1516 gboolean ripping;
1517 gboolean encoding;
1518@@ -360,7 +358,6 @@ void GripUpdate(GtkWidget *app);
1519 GtkWidget *MakeNewPage(GtkWidget *notebook,char *name);
1520 void Busy(GripGUI *uinfo);
1521 void UnBusy(GripGUI *uinfo);
1522-void CloseStuff(void *user_data);
1523
1524 #endif /* ifndef GRIP_H */
1525
1526diff --git a/src/gripcfg.c b/src/gripcfg.c
1527index ca61005..acd013a 100644
1528--- a/src/gripcfg.c
1529+++ b/src/gripcfg.c
1530@@ -84,8 +84,7 @@ void MakeConfigPage(GripInfo *ginfo)
1531 GtkWidget *button;
1532 GtkWidget *hsep;
1533 GtkWidget *hbox;
1534- GtkWidget *menu,*optmenu;
1535- GtkWidget *item;
1536+ GtkWidget *menu;
1537 MP3Encoder *enc;
1538 Ripper *rip;
1539
1540@@ -156,7 +155,7 @@ void MakeConfigPage(GripInfo *ginfo)
1541 page2=gtk_frame_new(NULL);
1542
1543 vbox=gtk_vbox_new(FALSE,4);
1544- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1545+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1546
1547 hbox=gtk_hbox_new(FALSE,3);
1548
1549@@ -164,24 +163,18 @@ void MakeConfigPage(GripInfo *ginfo)
1550 gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0);
1551 gtk_widget_show(label);
1552
1553- menu=gtk_menu_new();
1554+ menu=gtk_combo_box_text_new();
1555+ g_signal_connect(G_OBJECT(menu),"changed",
1556+ G_CALLBACK(RipperSelected),(gpointer)ginfo);
1557
1558 rip=ripper_defaults;
1559
1560 while(*(rip->name)) {
1561- item=gtk_menu_item_new_with_label(rip->name);
1562- gtk_object_set_user_data(GTK_OBJECT(item),(gpointer)rip);
1563- gtk_signal_connect(GTK_OBJECT(item),"activate",
1564- GTK_SIGNAL_FUNC(RipperSelected),(gpointer)ginfo);
1565- gtk_menu_append(GTK_MENU(menu),item);
1566- gtk_widget_show(item);
1567+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(menu), rip->name);
1568
1569 rip++;
1570 }
1571
1572- /* Make sure the selected ripper is active */
1573- gtk_menu_set_active(GTK_MENU(menu),ginfo->selected_ripper);
1574-
1575 #ifdef CDPAR
1576 if(ginfo->selected_ripper==0) ginfo->using_builtin_cdp=TRUE;
1577 else ginfo->using_builtin_cdp=FALSE;
1578@@ -189,11 +182,8 @@ void MakeConfigPage(GripInfo *ginfo)
1579 ginfo->using_builtin_cdp=FALSE;
1580 #endif
1581
1582- optmenu=gtk_option_menu_new();
1583- gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu),menu);
1584+ gtk_box_pack_start(GTK_BOX(hbox),menu,TRUE,TRUE,0);
1585 gtk_widget_show(menu);
1586- gtk_box_pack_start(GTK_BOX(hbox),optmenu,TRUE,TRUE,0);
1587- gtk_widget_show(optmenu);
1588
1589 gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
1590 gtk_widget_show(hbox);
1591@@ -214,6 +204,9 @@ void MakeConfigPage(GripInfo *ginfo)
1592 gtk_box_pack_start(GTK_BOX(uinfo->rip_exe_box),entry,FALSE,FALSE,0);
1593 gtk_widget_show(entry);
1594
1595+ /* Make sure the selected ripper is active */
1596+ gtk_combo_box_set_active(GTK_COMBO_BOX(menu), ginfo->selected_ripper);
1597+
1598 gtk_box_pack_start(GTK_BOX(vbox),uinfo->rip_exe_box,FALSE,FALSE,0);
1599 if(!ginfo->using_builtin_cdp)
1600 gtk_widget_show(uinfo->rip_exe_box);
1601@@ -280,7 +273,7 @@ void MakeConfigPage(GripInfo *ginfo)
1602 page2=gtk_frame_new(NULL);
1603
1604 vbox=gtk_vbox_new(FALSE,2);
1605- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1606+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1607
1608 entry=MakeNumEntry(NULL,&ginfo->ripnice,_("Rip 'nice' value"),3);
1609 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1610@@ -363,7 +356,7 @@ void MakeConfigPage(GripInfo *ginfo)
1611 page2=gtk_frame_new(NULL);
1612
1613 vbox=gtk_vbox_new(FALSE,4);
1614- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1615+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1616
1617 hbox=gtk_hbox_new(FALSE,3);
1618
1619@@ -371,28 +364,20 @@ void MakeConfigPage(GripInfo *ginfo)
1620 gtk_box_pack_start(GTK_BOX(hbox),label,TRUE,TRUE,0);
1621 gtk_widget_show(label);
1622
1623- menu=gtk_menu_new();
1624+ menu=gtk_combo_box_text_new();
1625+ g_signal_connect(G_OBJECT(menu),"changed",
1626+ G_CALLBACK(EncoderSelected),(gpointer)ginfo);
1627
1628 enc=encoder_defaults;
1629
1630 while(*(enc->name)) {
1631- item=gtk_menu_item_new_with_label(enc->name);
1632- gtk_object_set_user_data(GTK_OBJECT(item),(gpointer)enc);
1633- gtk_signal_connect(GTK_OBJECT(item),"activate",
1634- GTK_SIGNAL_FUNC(EncoderSelected),(gpointer)ginfo);
1635- gtk_menu_append(GTK_MENU(menu),item);
1636- gtk_widget_show(item);
1637+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(menu), enc->name);
1638
1639 enc++;
1640 }
1641
1642- gtk_menu_set_active(GTK_MENU(menu),ginfo->selected_encoder);
1643-
1644- optmenu=gtk_option_menu_new();
1645- gtk_option_menu_set_menu(GTK_OPTION_MENU(optmenu),menu);
1646+ gtk_box_pack_start(GTK_BOX(hbox),menu,TRUE,TRUE,0);
1647 gtk_widget_show(menu);
1648- gtk_box_pack_start(GTK_BOX(hbox),optmenu,TRUE,TRUE,0);
1649- gtk_widget_show(optmenu);
1650
1651 gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);
1652 gtk_widget_show(hbox);
1653@@ -417,7 +402,9 @@ void MakeConfigPage(GripInfo *ginfo)
1654 10,TRUE);
1655 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1656 gtk_widget_show(entry);
1657-
1658+
1659+ gtk_combo_box_set_active(GTK_COMBO_BOX(menu), ginfo->selected_encoder);
1660+
1661 entry=MakeStrEntry(NULL,ginfo->mp3fileformat,_("Encoder file format"),
1662 255,TRUE);
1663 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1664@@ -439,7 +426,7 @@ void MakeConfigPage(GripInfo *ginfo)
1665 page2=gtk_frame_new(NULL);
1666
1667 vbox=gtk_vbox_new(FALSE,0);
1668- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1669+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1670
1671 check=MakeCheckButton(NULL,&ginfo->delete_wavs,
1672 _("Delete .wav after encoding"));
1673@@ -504,7 +491,7 @@ void MakeConfigPage(GripInfo *ginfo)
1674 page=gtk_frame_new(NULL);
1675
1676 vbox=gtk_vbox_new(FALSE,2);
1677- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1678+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1679
1680 check=MakeCheckButton(NULL,&ginfo->doid3,_("Add ID3 tags to encoded files"));
1681 gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0);
1682@@ -548,14 +535,14 @@ void MakeConfigPage(GripInfo *ginfo)
1683 page=gtk_frame_new(NULL);
1684
1685 dbvbox=gtk_vbox_new(FALSE,4);
1686- gtk_container_border_width(GTK_CONTAINER(dbvbox),3);
1687+ gtk_container_set_border_width(GTK_CONTAINER(dbvbox),3);
1688
1689 notebook=gtk_notebook_new();
1690
1691 page2=gtk_frame_new(NULL);
1692
1693 vbox=gtk_vbox_new(FALSE,2);
1694- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1695+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1696
1697 entry=MakeStrEntry(NULL,ginfo->dbserver.name,_("DB server"),255,TRUE);
1698 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1699@@ -575,7 +562,7 @@ void MakeConfigPage(GripInfo *ginfo)
1700 page2=gtk_frame_new(NULL);
1701
1702 vbox=gtk_vbox_new(FALSE,2);
1703- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1704+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1705
1706 entry=MakeStrEntry(NULL,ginfo->dbserver2.name,_("DB server"),255,TRUE);
1707 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1708@@ -628,11 +615,11 @@ void MakeConfigPage(GripInfo *ginfo)
1709 page=gtk_frame_new(NULL);
1710
1711 vbox=gtk_vbox_new(FALSE,2);
1712- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1713+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1714
1715 check=MakeCheckButton(&button,&ginfo->use_proxy,_("Use proxy server"));
1716- gtk_signal_connect(GTK_OBJECT(button),"clicked",
1717- GTK_SIGNAL_FUNC(UseProxyChanged),(gpointer)ginfo);
1718+ g_signal_connect(G_OBJECT(button),"clicked",
1719+ G_CALLBACK(UseProxyChanged),(gpointer)ginfo);
1720 gtk_box_pack_start(GTK_BOX(vbox),check,FALSE,FALSE,0);
1721 gtk_widget_show(check);
1722
1723@@ -670,7 +657,7 @@ void MakeConfigPage(GripInfo *ginfo)
1724 page=gtk_frame_new(NULL);
1725
1726 vbox=gtk_vbox_new(FALSE,2);
1727- gtk_container_border_width(GTK_CONTAINER(vbox),3);
1728+ gtk_container_set_border_width(GTK_CONTAINER(vbox),3);
1729
1730 entry=MakeStrEntry(NULL,ginfo->user_email,_("Email address"),255,TRUE);
1731 gtk_box_pack_start(GTK_BOX(vbox),entry,FALSE,FALSE,0);
1732@@ -739,7 +726,7 @@ static void RipperSelected(GtkWidget *widget,gpointer data)
1733
1734 ginfo=(GripInfo *)data;
1735 uinfo=&(ginfo->gui_info);
1736- rip=(Ripper *)gtk_object_get_user_data(GTK_OBJECT(widget));
1737+ rip=&ripper_defaults[gtk_combo_box_get_active(GTK_COMBO_BOX(widget))];
1738
1739 SaveRipperConfig(ginfo,ginfo->selected_ripper);
1740
1741@@ -836,7 +823,7 @@ static void EncoderSelected(GtkWidget *widget,gpointer data)
1742
1743 ginfo=(GripInfo *)data;
1744 uinfo=&(ginfo->gui_info);
1745- enc=(MP3Encoder *)gtk_object_get_user_data(GTK_OBJECT(widget));
1746+ enc=&encoder_defaults[gtk_combo_box_get_active(GTK_COMBO_BOX(widget))];
1747
1748 SaveEncoderConfig(ginfo,ginfo->selected_encoder);
1749
1750diff --git a/src/main.c b/src/main.c
1751index 99a9136..e530153 100644
1752--- a/src/main.c
1753+++ b/src/main.c
1754@@ -145,7 +145,7 @@ int Cmain(int argc, char* argv[])
1755 setvbuf(stdout, 0, _IONBF, 0);
1756
1757 /* setup locale, i18n */
1758- gtk_set_locale();
1759+ setlocale (LC_ALL,"");
1760 bindtextdomain(GETTEXT_PACKAGE,GNOMELOCALEDIR);
1761 textdomain(GETTEXT_PACKAGE);
1762
1763@@ -170,7 +170,7 @@ int Cmain(int argc, char* argv[])
1764
1765 gtk_widget_show(grip_app);
1766
1767- gtk_timeout_add(1000,TimeOut,0);
1768+ g_timeout_add(1000,TimeOut,0);
1769
1770 gtk_main();
1771
1772diff --git a/src/rip.c b/src/rip.c
1773index 87d935a..2e57dea 100644
1774--- a/src/rip.c
1775+++ b/src/rip.c
1776@@ -96,52 +96,51 @@ void MakeRipPage(GripInfo *ginfo)
1777 rippage = MakeNewPage(uinfo->notebook, _("Rip"));
1778
1779 vbox = gtk_vbox_new(FALSE, 2);
1780- gtk_container_border_width(GTK_CONTAINER(vbox), 3);
1781+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 3);
1782
1783 hbox = gtk_hbox_new(FALSE, 5);
1784
1785 vbox2 = gtk_vbox_new(FALSE, 0);
1786
1787 button = gtk_button_new_with_label(_("Rip+Encode"));
1788- gtk_tooltips_set_tip(MakeToolTip(), button,
1789- _("Rip and encode selected tracks"), NULL);
1790- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1791- GTK_SIGNAL_FUNC(DoRipEncode), (gpointer)ginfo);
1792+ gtk_widget_set_tooltip_text(button,
1793+ _("Rip and encode selected tracks"));
1794+ g_signal_connect(G_OBJECT(button), "clicked",
1795+ G_CALLBACK(DoRipEncode), (gpointer)ginfo);
1796 gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
1797 gtk_widget_show(button);
1798
1799 button = gtk_button_new_with_label(_("Rip Only"));
1800- gtk_tooltips_set_tip(MakeToolTip(), button,
1801- _("Rip but do not encode selected tracks"), NULL);
1802- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1803- GTK_SIGNAL_FUNC(DoRip), (gpointer)ginfo);
1804+ gtk_widget_set_tooltip_text(button,
1805+ _("Rip but do not encode selected tracks"));
1806+ g_signal_connect(G_OBJECT(button), "clicked",
1807+ G_CALLBACK(DoRip), (gpointer)ginfo);
1808 gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
1809 gtk_widget_show(button);
1810
1811 button = gtk_button_new_with_label(_("Abort Rip and Encode"));
1812- gtk_tooltips_set_tip(MakeToolTip(), button,
1813- _("Kill all active rip and encode processes"), NULL);
1814- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1815- GTK_SIGNAL_FUNC(KillRip), (gpointer)ginfo);
1816- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1817- GTK_SIGNAL_FUNC(KillEncode), (gpointer)ginfo);
1818+ gtk_widget_set_tooltip_text(button,
1819+ _("Kill all active rip and encode processes"));
1820+ g_signal_connect(G_OBJECT(button), "clicked",
1821+ G_CALLBACK(KillRip), (gpointer)ginfo);
1822+ g_signal_connect(G_OBJECT(button), "clicked",
1823+ G_CALLBACK(KillEncode), (gpointer)ginfo);
1824 gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
1825 gtk_widget_show(button);
1826
1827 button = gtk_button_new_with_label(_("Abort Ripping Only"));
1828- gtk_tooltips_set_tip(MakeToolTip(), button,
1829- _("Kill rip process"), NULL);
1830- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1831- GTK_SIGNAL_FUNC(KillRip), (gpointer)ginfo);
1832+ gtk_widget_set_tooltip_text(button,
1833+ _("Kill rip process"));
1834+ g_signal_connect(G_OBJECT(button), "clicked",
1835+ G_CALLBACK(KillRip), (gpointer)ginfo);
1836 gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
1837 gtk_widget_show(button);
1838
1839 button = gtk_button_new_with_label(_("DDJ Scan"));
1840- gtk_tooltips_set_tip(MakeToolTip(), button,
1841- _("Insert disc information into the DigitalDJ database"),
1842- NULL);
1843- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1844- GTK_SIGNAL_FUNC(DBScan), (gpointer)ginfo);
1845+ gtk_widget_set_tooltip_text(button,
1846+ _("Insert disc information into the DigitalDJ database"));
1847+ g_signal_connect(G_OBJECT(button), "clicked",
1848+ G_CALLBACK(DBScan), (gpointer)ginfo);
1849 gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);
1850 gtk_widget_show(button);
1851
1852@@ -151,11 +150,11 @@ void MakeRipPage(GripInfo *ginfo)
1853 partial_rip_frame = gtk_frame_new(NULL);
1854
1855 vbox2 = gtk_vbox_new(FALSE, 0);
1856- gtk_container_border_width(GTK_CONTAINER(vbox2), 3);
1857+ gtk_container_set_border_width(GTK_CONTAINER(vbox2), 3);
1858
1859 check = MakeCheckButton(NULL, &ginfo->rip_partial, _("Rip partial track"));
1860- gtk_signal_connect(GTK_OBJECT(check), "clicked",
1861- GTK_SIGNAL_FUNC(RipPartialChanged), (gpointer)ginfo);
1862+ g_signal_connect(G_OBJECT(check), "clicked",
1863+ G_CALLBACK(RipPartialChanged), (gpointer)ginfo);
1864 gtk_box_pack_start(GTK_BOX(vbox2), check, FALSE, FALSE, 0);
1865 gtk_widget_show(check);
1866
1867@@ -165,8 +164,8 @@ void MakeRipPage(GripInfo *ginfo)
1868 hbox2 = gtk_hbox_new(FALSE, 5);
1869
1870 button = gtk_button_new_with_label(_("Play"));
1871- gtk_signal_connect(GTK_OBJECT(button), "clicked",
1872- GTK_SIGNAL_FUNC(PlaySegmentCB),
1873+ g_signal_connect(G_OBJECT(button), "clicked",
1874+ G_CALLBACK(PlaySegmentCB),
1875 (gpointer)ginfo);
1876 gtk_box_pack_start(GTK_BOX(hbox2), button, TRUE, TRUE, 0);
1877 gtk_widget_show(button);
1878@@ -217,18 +216,18 @@ void MakeRipPage(GripInfo *ginfo)
1879 g_object_unref(layout);
1880
1881
1882- gtk_widget_set_usize(uinfo->rip_prog_label, label_width, 0);
1883+ gtk_widget_set_size_request(uinfo->rip_prog_label, label_width, 0);
1884 gtk_box_pack_start(GTK_BOX(hbox), uinfo->rip_prog_label, FALSE, FALSE, 0);
1885- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
1886+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
1887 gtk_widget_show(uinfo->rip_prog_label);
1888
1889 uinfo->ripprogbar = gtk_progress_bar_new();
1890 gtk_box_pack_start(GTK_BOX(hbox), uinfo->ripprogbar, FALSE, FALSE, 0);
1891 gtk_widget_show(uinfo->ripprogbar);
1892
1893- uinfo->smile_indicator = NewBlankPixmap(uinfo->app);
1894- gtk_tooltips_set_tip(MakeToolTip(), uinfo->smile_indicator,
1895- _("Rip status"), NULL);
1896+ uinfo->smile_indicator = gtk_image_new_from_pixbuf(uinfo->empty_image);
1897+ gtk_widget_set_tooltip_text(uinfo->smile_indicator,
1898+ _("Rip status"));
1899 gtk_box_pack_start(GTK_BOX(hbox), uinfo->smile_indicator, FALSE, FALSE, 0);
1900 gtk_widget_show(uinfo->smile_indicator);
1901
1902@@ -239,7 +238,7 @@ void MakeRipPage(GripInfo *ginfo)
1903 hbox = gtk_hbox_new(FALSE, 3);
1904
1905 uinfo->mp3_prog_label[mycpu] = gtk_label_new(_("Enc: Idle"));
1906- gtk_widget_set_usize(uinfo->mp3_prog_label[mycpu], label_width, 0);
1907+ gtk_widget_set_size_request(uinfo->mp3_prog_label[mycpu], label_width, 0);
1908
1909 gtk_box_pack_start(GTK_BOX(hbox), uinfo->mp3_prog_label[mycpu],
1910 FALSE, FALSE, 0);
1911@@ -268,7 +267,7 @@ void MakeRipPage(GripInfo *ginfo)
1912
1913 hbox = gtk_hbox_new(FALSE, 2);
1914 uinfo->all_rip_label = gtk_label_new(_("Rip: Idle"));
1915- gtk_widget_set_usize(uinfo->all_rip_label, label_width, 0);
1916+ gtk_widget_set_size_request(uinfo->all_rip_label, label_width, 0);
1917 gtk_box_pack_start(GTK_BOX(hbox), uinfo->all_rip_label, FALSE, FALSE, 0);
1918 gtk_widget_show(uinfo->all_rip_label);
1919
1920@@ -281,7 +280,7 @@ void MakeRipPage(GripInfo *ginfo)
1921
1922 hbox=gtk_hbox_new(FALSE, 2);
1923 uinfo->all_enc_label = gtk_label_new(_("Enc: Idle"));
1924- gtk_widget_set_usize(uinfo->all_enc_label, label_width, 0);
1925+ gtk_widget_set_size_request(uinfo->all_enc_label, label_width, 0);
1926 gtk_box_pack_start(GTK_BOX(hbox), uinfo->all_enc_label, FALSE, FALSE, 0);
1927 gtk_widget_show(uinfo->all_enc_label);
1928
1929@@ -386,7 +385,6 @@ static void AddSQLEntry(GripInfo *ginfo, EncodeTrack *enc_track)
1930 sqlpid = fork();
1931
1932 if(sqlpid == 0) {
1933- CloseStuff(ginfo);
1934
1935 if(*enc_track->song_artist)
1936 execlp("mp3insert", "mp3insert",
1937@@ -866,7 +864,7 @@ void UpdateRipProgress(GripInfo *ginfo)
1938
1939 ginfo->rip_percent = percent;
1940
1941- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->ripprogbar), percent);
1942+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->ripprogbar), percent);
1943
1944 now = time(NULL);
1945 elapsed = (gfloat)(now - ginfo->rip_started);
1946@@ -885,22 +883,19 @@ void UpdateRipProgress(GripInfo *ginfo)
1947
1948 sprintf(buf, _("Rip: Trk %d (%3.1fx)"), ginfo->rip_track + 1, speed);
1949
1950- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), buf);
1951+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), buf);
1952
1953 quarter=(int)(percent * 4.0);
1954
1955 if(quarter < 4)
1956- CopyPixmap(GTK_PIXMAP(uinfo->rip_pix[quarter]),
1957- GTK_PIXMAP(uinfo->rip_indicator));
1958+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->rip_indicator), uinfo->rip_pix[quarter]);
1959
1960 #ifdef CDPAR
1961 if(ginfo->using_builtin_cdp) {
1962 if(uinfo->minimized)
1963- CopyPixmap(GTK_PIXMAP(uinfo->smile_pix[ginfo->rip_smile_level]),
1964- GTK_PIXMAP(uinfo->lcd_smile_indicator));
1965+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->lcd_smile_indicator), uinfo->smile_pix[ginfo->rip_smile_level]);
1966 else
1967- CopyPixmap(GTK_PIXMAP(uinfo->smile_pix[ginfo->rip_smile_level]),
1968- GTK_PIXMAP(uinfo->smile_indicator));
1969+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->smile_indicator), uinfo->smile_pix[ginfo->rip_smile_level]);
1970 }
1971 #endif
1972
1973@@ -917,12 +912,12 @@ void UpdateRipProgress(GripInfo *ginfo)
1974 ginfo->rip_tot_percent = percent;
1975
1976 sprintf(buf, _("Rip: %6.2f%%"), percent * 100.0);
1977- gtk_label_set(GTK_LABEL(uinfo->all_rip_label), buf);
1978- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), percent);
1979+ gtk_label_set_text(GTK_LABEL(uinfo->all_rip_label), buf);
1980+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), percent);
1981 } else if (ginfo->stop_rip) {
1982- gtk_label_set(GTK_LABEL(uinfo->all_rip_label), _("Rip: Idle"));
1983+ gtk_label_set_text(GTK_LABEL(uinfo->all_rip_label), _("Rip: Idle"));
1984
1985- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), 0.0);
1986+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), 0.0);
1987 }
1988
1989 /* Check if a rip finished */
1990@@ -932,10 +927,8 @@ void UpdateRipProgress(GripInfo *ginfo)
1991 if(!ginfo->using_builtin_cdp) {
1992 waitpid(ginfo->rippid, NULL, 0);
1993 } else {
1994- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
1995- GTK_PIXMAP(uinfo->lcd_smile_indicator));
1996- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
1997- GTK_PIXMAP(uinfo->smile_indicator));
1998+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->lcd_smile_indicator), uinfo->empty_image);
1999+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->smile_indicator), uinfo->empty_image);
2000 }
2001
2002 ginfo->all_riplast = 0;
2003@@ -954,9 +947,8 @@ void UpdateRipProgress(GripInfo *ginfo)
2004 if(*ginfo->wav_filter_cmd)
2005 DoWavFilter(ginfo);
2006
2007- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->ripprogbar), 0.0);
2008- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
2009- GTK_PIXMAP(uinfo->rip_indicator));
2010+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->ripprogbar), 0.0);
2011+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->rip_indicator), uinfo->empty_image);
2012
2013 if(!ginfo->stop_rip) {
2014 if(ginfo->doencode) {
2015@@ -977,11 +969,11 @@ void UpdateRipProgress(GripInfo *ginfo)
2016 if(!RipNextTrack(ginfo))
2017 RipIsFinished(ginfo, FALSE);
2018 else {
2019- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2020+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2021 }
2022 }
2023 else {
2024- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2025+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2026 }
2027 }
2028 else {
2029@@ -1009,7 +1001,7 @@ void UpdateRipProgress(GripInfo *ginfo)
2030
2031 ginfo->enc_percent = percent;
2032
2033- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]),
2034+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]),
2035 percent);
2036
2037 now = time(NULL);
2038@@ -1024,13 +1016,12 @@ void UpdateRipProgress(GripInfo *ginfo)
2039 sprintf(buf, _("Enc: Trk %d (%3.1fx)"),
2040 ginfo->mp3_enc_track[mycpu] + 1, speed);
2041
2042- gtk_label_set(GTK_LABEL(uinfo->mp3_prog_label[mycpu]), buf);
2043+ gtk_label_set_text(GTK_LABEL(uinfo->mp3_prog_label[mycpu]), buf);
2044
2045 quarter = (int)(percent * 4.0);
2046
2047 if(quarter < 4)
2048- CopyPixmap(GTK_PIXMAP(uinfo->mp3_pix[quarter]),
2049- GTK_PIXMAP(uinfo->mp3_indicator[mycpu]));
2050+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->mp3_indicator[mycpu]), uinfo->mp3_pix[quarter]);
2051 if (!ginfo->rip_partial && !ginfo->stop_encode &&
2052 now != ginfo->mp3_started[mycpu]) {
2053 ginfo->all_encdone += mystat.st_size-ginfo->all_enclast[mycpu];
2054@@ -1040,8 +1031,8 @@ void UpdateRipProgress(GripInfo *ginfo)
2055 percent = 1.0;
2056 ginfo->enc_tot_percent = percent;
2057 sprintf(buf, _("Enc: %6.2f%%"), percent * 100.0);
2058- gtk_label_set(GTK_LABEL(uinfo->all_enc_label), buf);
2059- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_encprogbar),
2060+ gtk_label_set_text(GTK_LABEL(uinfo->all_enc_label), buf);
2061+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->all_encprogbar),
2062 percent);
2063 }
2064
2065@@ -1050,9 +1041,8 @@ void UpdateRipProgress(GripInfo *ginfo)
2066 ginfo->encoding &= ~(1<<mycpu);
2067
2068 ginfo->all_enclast[mycpu] = 0;
2069- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]), 0.0);
2070- CopyPixmap(GTK_PIXMAP(uinfo->empty_image),
2071- GTK_PIXMAP(uinfo->mp3_indicator[mycpu]));
2072+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->mp3progbar[mycpu]), 0.0);
2073+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->mp3_indicator[mycpu]), uinfo->empty_image);
2074
2075 if(ginfo->doencode)
2076 ginfo->num_wavs--;
2077@@ -1107,7 +1097,7 @@ void UpdateRipProgress(GripInfo *ginfo)
2078 else ginfo->stop_encode = FALSE;
2079
2080 if(!(ginfo->encoding & (1<<mycpu))) {
2081- gtk_label_set(GTK_LABEL(uinfo->mp3_prog_label[mycpu]),
2082+ gtk_label_set_text(GTK_LABEL(uinfo->mp3_prog_label[mycpu]),
2083 _("Enc: Idle"));
2084 }
2085 }
2086@@ -1122,8 +1112,8 @@ void UpdateRipProgress(GripInfo *ginfo)
2087 }
2088 if ((!result || ginfo->stop_encode) &&
2089 !ginfo->encode_list && !ginfo->ripping) {
2090- gtk_label_set(GTK_LABEL(uinfo->all_enc_label), _("Enc: Idle"));
2091- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_encprogbar), 0.0);
2092+ gtk_label_set_text(GTK_LABEL(uinfo->all_enc_label), _("Enc: Idle"));
2093+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->all_encprogbar), 0.0);
2094 }
2095 }
2096
2097@@ -1136,9 +1126,9 @@ static void RipIsFinished(GripInfo *ginfo, gboolean aborted)
2098 ginfo->all_ripdone = 0;
2099 ginfo->all_riplast = 0;
2100
2101- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2102- gtk_label_set(GTK_LABEL(uinfo->all_rip_label), _("Rip: Idle"));
2103- gtk_progress_bar_update(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), 0.0);
2104+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), _("Rip: Idle"));
2105+ gtk_label_set_text(GTK_LABEL(uinfo->all_rip_label), _("Rip: Idle"));
2106+ gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(uinfo->all_ripprogbar), 0.0);
2107
2108 ginfo->stop_rip = FALSE;
2109 ginfo->ripping = FALSE;
2110@@ -1520,7 +1510,7 @@ static gboolean RipNextTrack(GripInfo *ginfo)
2111 gtk_clist_select_row(GTK_CLIST(uinfo->trackclist), ginfo->rip_track, 0);
2112 }*/
2113
2114- CopyPixmap(GTK_PIXMAP(uinfo->rip_pix[0]), GTK_PIXMAP(uinfo->rip_indicator));
2115+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->rip_indicator), uinfo->rip_pix[0]);
2116
2117 if(ginfo->stop_between_tracks)
2118 CDStop(&(ginfo->disc));
2119@@ -1581,7 +1571,7 @@ static gboolean RipNextTrack(GripInfo *ginfo)
2120
2121 ginfo->rip_started = time(NULL);
2122 sprintf(tmp, _("Rip: Trk %d (0.0x)"), ginfo->rip_track+1);
2123- gtk_label_set(GTK_LABEL(uinfo->rip_prog_label), tmp);
2124+ gtk_label_set_text(GTK_LABEL(uinfo->rip_prog_label), tmp);
2125
2126 if(stat(ginfo->ripfile, &mystat) >= 0) {
2127 if(mystat.st_size == ginfo->ripsize) {
2128@@ -1641,7 +1631,6 @@ static gboolean RipNextTrack(GripInfo *ginfo)
2129
2130 if(ginfo->rippid == 0) {
2131 int i;
2132- CloseStuff(ginfo);
2133 errno=0;
2134 i = nice(ginfo->ripnice);
2135 if (errno && i == -1) {
2136@@ -1651,9 +1640,6 @@ static gboolean RipNextTrack(GripInfo *ginfo)
2137
2138 _exit(0);
2139 }
2140- else {
2141- ginfo->curr_pipe_fd = -1;
2142- }
2143
2144 for(arg=0;args[arg];arg++) {
2145 g_string_free(args[arg], TRUE);
2146@@ -1802,8 +1788,7 @@ static gboolean MP3Encode(GripInfo *ginfo)
2147 ginfo->encode_list = g_list_remove(ginfo->encode_list, enc_track);
2148 ginfo->encoded_track[cpu] = enc_track;
2149
2150- CopyPixmap(GTK_PIXMAP(uinfo->mp3_pix[0]),
2151- GTK_PIXMAP(uinfo->mp3_indicator[cpu]));
2152+ gtk_image_set_from_pixbuf (GTK_IMAGE (uinfo->mp3_indicator[cpu]), uinfo->mp3_pix[0]);
2153
2154 ginfo->mp3_started[cpu] = time(NULL);
2155 ginfo->mp3_enc_track[cpu] = encode_track;
2156@@ -1849,7 +1834,7 @@ static gboolean MP3Encode(GripInfo *ginfo)
2157 g_free(conv_str);
2158
2159 sprintf(tmp, _("Enc: Trk %d (0.0x)"), encode_track + 1);
2160- gtk_label_set(GTK_LABEL(uinfo->mp3_prog_label[cpu]), tmp);
2161+ gtk_label_set_text(GTK_LABEL(uinfo->mp3_prog_label[cpu]), tmp);
2162
2163 unlink(ginfo->mp3file[cpu]);
2164
2165@@ -1885,7 +1870,6 @@ static gboolean MP3Encode(GripInfo *ginfo)
2166
2167 if(ginfo->mp3pid[cpu] == 0) {
2168 int i;
2169- CloseStuff(ginfo);
2170 setsid();
2171 i = nice(ginfo->mp3nice);
2172 if (errno && i == -1) {
2173@@ -1894,9 +1878,6 @@ static gboolean MP3Encode(GripInfo *ginfo)
2174 execvp(ginfo->mp3exename, char_args);
2175 _exit(0);
2176 }
2177- else {
2178- ginfo->curr_pipe_fd = -1;
2179- }
2180
2181 for(arg=0;args[arg];arg++) {
2182 g_string_free(args[arg], TRUE);
2183diff --git a/src/tray.c b/src/tray.c
2184index 20cf541..98fb375 100644
2185--- a/src/tray.c
2186+++ b/src/tray.c
2187@@ -112,7 +112,7 @@ void UpdateTray(GripInfo *ginfo)
2188 void TrayMenuShowPlay(GripInfo *ginfo)
2189 {
2190 GripGUI *uinfo = &(ginfo->gui_info);
2191-
2192+ if (!ginfo->tray_icon_made) return;
2193 gtk_widget_hide(GTK_WIDGET(uinfo->tray_menu_pause));
2194 gtk_widget_show(GTK_WIDGET(uinfo->tray_menu_play));
2195 }
2196@@ -120,7 +120,7 @@ void TrayMenuShowPlay(GripInfo *ginfo)
2197 void TrayMenuShowPause(GripInfo *ginfo)
2198 {
2199 GripGUI *uinfo = &(ginfo->gui_info);
2200-
2201+ if (!ginfo->tray_icon_made) return;
2202 gtk_widget_hide(GTK_WIDGET(uinfo->tray_menu_play));
2203 gtk_widget_show(GTK_WIDGET(uinfo->tray_menu_pause));
2204 }
2205diff --git a/src/uihelper.c b/src/uihelper.c
2206index 5b41934..b833785 100644
2207--- a/src/uihelper.c
2208+++ b/src/uihelper.c
2209@@ -22,17 +22,6 @@
2210
2211 #include "common.h"
2212
2213-GtkTooltips *MakeToolTip(void)
2214-{
2215- GtkTooltips *tip;
2216-
2217- tip=gtk_tooltips_new();
2218-
2219- gtk_tooltips_set_delay(tip,1250);
2220-
2221- return tip;
2222-}
2223-
2224 GdkColor *MakeColor(int red,int green,int blue)
2225 {
2226 GdkColor *c;
2227@@ -42,7 +31,7 @@ GdkColor *MakeColor(int red,int green,int blue)
2228 c->green=green;
2229 c->blue=blue;
2230
2231- gdk_color_alloc(gdk_colormap_get_system(),c);
2232+ //gdk_colormap_alloc_color(gdk_colormap_get_system(), c, FALSE, TRUE);
2233
2234 return c;
2235 }
2236@@ -113,53 +102,32 @@ static char * empty_xpm[] = {
2237 " "
2238 };
2239
2240-GtkWidget *NewBlankPixmap(GtkWidget *widget)
2241+GdkPixbuf *NewBlankPixmap(GtkWidget *widget)
2242 {
2243 return Loadxpm(widget,empty_xpm);
2244 }
2245
2246-GtkWidget *ImageButton(GtkWidget *widget,GtkWidget *image)
2247+GtkWidget *ImageButton(GtkWidget *widget,GdkPixbuf *image)
2248 {
2249 GtkWidget *button;
2250+ GtkWidget *pixwid;
2251
2252 button=gtk_button_new();
2253+ pixwid = gtk_image_new_from_pixbuf(image);
2254
2255- gtk_container_add(GTK_CONTAINER(button),image);
2256- gtk_widget_show(image);
2257+ gtk_container_add(GTK_CONTAINER(button),pixwid);
2258+ gtk_widget_show(pixwid);
2259
2260 return button;
2261 }
2262
2263-GtkWidget *Loadxpm(GtkWidget *widget,char **xpm)
2264+GdkPixbuf *Loadxpm(GtkWidget *widget,char **xpm)
2265 {
2266- GdkBitmap *mask;
2267- GtkStyle *style;
2268- GtkWidget *pixmapwid;
2269- GdkPixmap *pixmap;
2270-
2271- style=gtk_widget_get_style(widget);
2272-
2273- pixmap=gdk_pixmap_create_from_xpm_d(widget->window,&mask,
2274- &style->bg[GTK_STATE_NORMAL],
2275- (gchar **)xpm);
2276+ GdkPixbuf *pixbuf;
2277
2278- pixmapwid=gtk_pixmap_new(pixmap,mask);
2279+ pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)xpm);
2280
2281- return pixmapwid;
2282-}
2283-
2284-void CopyPixmap(GtkPixmap *src,GtkPixmap *dest)
2285-{
2286- GdkPixmap *gdkpix;
2287- GdkBitmap *mask;
2288-
2289- gtk_pixmap_get(src,&gdkpix,&mask);
2290- gtk_pixmap_set(dest,gdkpix,mask);
2291-}
2292-
2293-gint SizeInDubs(GdkFont *font,gint numchars)
2294-{
2295- return gdk_string_width(font,"W")*numchars;
2296+ return pixbuf;
2297 }
2298
2299 void UpdateGTK(void)