annotate src/audacious/ui_legacy.c @ 4790:7d2882c8a37a

You have to include an XPM if you want to use it. Do you guys even test what you commit? Or even try to build it? This is one that didn't even build, you to at least try to build it before comitting!
author Jonathan Schleifer <js-audacious@webkeks.org>
date Thu, 02 Oct 2008 23:25:25 +0200
parents 6584bba8de63
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
1 /* Audacious - Cross-platform multimedia player
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
2 * Copyright (C) 2005-2007 Audacious development team.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
3 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
4 * Based on BMP:
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
5 * Copyright (C) 2003-2004 BMP development team.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
6 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
7 * Based on XMMS:
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
8 * Copyright (C) 1998-2003 XMMS development team.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
9 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
12 * the Free Software Foundation; under version 3 of the License.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
13 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
17 * GNU General Public License for more details.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
18 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
20 * along with this program. If not, see <http://www.gnu.org/licenses>.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
21 *
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
22 * The Audacious team does not consider modular code linking to
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
23 * Audacious or using our public API to be a derived work.
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
24 */
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
25
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
26 #ifdef HAVE_CONFIG_H
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
27 # include "config.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
28 #endif
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
29
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
30 #include "main.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
31
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
32 #include <glib.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
33 #include <glib/gi18n.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
34 #include <glib/gprintf.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
35 #include <gdk/gdk.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
36 #include <stdlib.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
37 #include <string.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
38 #include <getopt.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
39 #include <ctype.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
40 #include <time.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
41
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
42 #include <unistd.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
43 #include <errno.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
44 #include <sys/types.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
45 #include <sys/stat.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
46 #include <signal.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
47
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
48 #ifdef USE_SAMPLERATE
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
49 # include <samplerate.h>
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
50 #endif
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
51
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
52 #include "platform/smartinclude.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
53
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
54 #include "configdb.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
55 #include "vfs.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
56
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
57 #include "auddrct.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
58 #include "build_stamp.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
59 #include "dnd.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
60 #include "input.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
61 #include "logger.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
62 #include "output.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
63 #include "playback.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
64 #include "playlist.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
65 #include "pluginenum.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
66 #include "signals.h"
4700
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
67 #include "legacy/ui_skin.h"
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
68 #include "legacy/ui_equalizer.h"
4712
6584bba8de63 I don't think those files belong to legacy ui...
Tomasz Mon <desowin@gmail.com>
parents: 4700
diff changeset
69 #include "ui_fileinfo.h"
4700
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
70 #include "legacy/ui_hints.h"
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
71 #include "legacy/ui_main.h"
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
72 #include "legacy/ui_manager.h"
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
73 #include "legacy/ui_playlist.h"
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
74 #include "ui_preferences.h"
4700
3a56d2786063 move all files belonging to the legacy UI to legacy/
mf0102 <0102@gmx.at>
parents: 4679
diff changeset
75 #include "legacy/ui_skinselector.h"
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
76 #include "util.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
77
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
78 #include "libSAD.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
79 #ifdef USE_EGGSM
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
80 #include "eggsmclient.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
81 #include "eggdesktopfile.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
82 #endif
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
83
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
84 #include "icons-stock.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
85
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
86 #include "ui_new.h"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
87
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
88 static void
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
89 resume_playback_on_startup(void)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
90 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
91 gint i;
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
92
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
93 if (!cfg.resume_playback_on_startup ||
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
94 cfg.resume_playback_on_startup_time == -1 ||
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
95 playlist_get_length(playlist_get_active()) <= 0)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
96 return;
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
97
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
98 while (gtk_events_pending()) gtk_main_iteration();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
99
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
100 playback_initiate();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
101
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
102 /* Busy wait; loop is fairly tight to minimize duration of
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
103 * "frozen" GUI. Feel free to tune. --chainsaw */
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
104 for (i = 0; i < 20; i++)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
105 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
106 g_usleep(1000);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
107 if (!ip_data.playing)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
108 break;
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
109 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
110 playback_seek(cfg.resume_playback_on_startup_time / 1000);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
111 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
112
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
113 static void
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
114 run_load_skin_error_dialog(const gchar * skin_path)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
115 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
116 const gchar *markup =
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
117 N_("<b><big>Unable to load skin.</big></b>\n"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
118 "\n"
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
119 "Check that skin at '%s' is usable and default skin is properly "
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
120 "installed at '%s'\n");
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
121
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
122 GtkWidget *dialog =
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
123 gtk_message_dialog_new_with_markup(NULL,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
124 GTK_DIALOG_MODAL,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
125 GTK_MESSAGE_ERROR,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
126 GTK_BUTTONS_CLOSE,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
127 _(markup),
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
128 skin_path,
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
129 BMP_DEFAULT_SKIN_PATH);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
130 gtk_dialog_run(GTK_DIALOG(dialog));
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
131 gtk_widget_destroy(dialog);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
132 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
133
4671
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
134 #ifdef GDK_WINDOWING_QUARTZ
4790
7d2882c8a37a You have to include an XPM if you want to use it.
Jonathan Schleifer <js-audacious@webkeks.org>
parents: 4712
diff changeset
135 #include "images/audacious_player.xpm"
7d2882c8a37a You have to include an XPM if you want to use it.
Jonathan Schleifer <js-audacious@webkeks.org>
parents: 4712
diff changeset
136
4671
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
137 static void
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
138 set_dock_icon(void)
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
139 {
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
140 GdkPixbuf *icon, *pixbuf;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
141 CGColorSpaceRef colorspace;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
142 CGDataProviderRef data_provider;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
143 CGImageRef image;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
144 gpointer data;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
145 gint rowstride, pixbuf_width, pixbuf_height;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
146 gboolean has_alpha;
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
147
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
148 icon = gdk_pixbuf_new_from_xpm_data((const gchar **) audacious_player_xpm);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
149 pixbuf = gdk_pixbuf_scale_simple(icon, 128, 128, GDK_INTERP_BILINEAR);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
150
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
151 data = gdk_pixbuf_get_pixels(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
152 pixbuf_width = gdk_pixbuf_get_width(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
153 pixbuf_height = gdk_pixbuf_get_height(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
154 rowstride = gdk_pixbuf_get_rowstride(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
155 has_alpha = gdk_pixbuf_get_has_alpha(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
156
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
157 /* create the colourspace for the CGImage. */
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
158 colorspace = CGColorSpaceCreateDeviceRGB();
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
159 data_provider = CGDataProviderCreateWithData(NULL, data,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
160 pixbuf_height * rowstride,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
161 NULL);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
162 image = CGImageCreate(pixbuf_width, pixbuf_height, 8,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
163 has_alpha ? 32 : 24, rowstride, colorspace,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
164 has_alpha ? kCGImageAlphaLast : 0,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
165 data_provider, NULL, FALSE,
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
166 kCGRenderingIntentDefault);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
167
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
168 /* release the colourspace and data provider, we have what we want. */
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
169 CGDataProviderRelease(data_provider);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
170 CGColorSpaceRelease(colorspace);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
171
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
172 /* set the dock tile images */
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
173 SetApplicationDockTileImage(image);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
174
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
175 #if 0
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
176 /* and release */
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
177 CGImageRelease(image);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
178 g_object_unref(icon);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
179 g_object_unref(pixbuf);
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
180 #endif
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
181 }
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
182 #endif
414966b3a933 clean up some parts that have been made obsolete by nenolod's great work:
mf0102 <0102@gmx.at>
parents: 4668
diff changeset
183
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
184 gboolean
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
185 _ui_initialize(void)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
186 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
187 g_message("GUI and skin setup");
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
188 #ifdef GDK_WINDOWING_QUARTZ
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
189 set_dock_icon();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
190 #endif
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
191
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
192 gtk_accel_map_load(aud_paths[BMP_PATH_ACCEL_FILE]);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
193
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
194 if (!init_skins(cfg.skin)) {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
195 run_load_skin_error_dialog(cfg.skin);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
196 exit(EXIT_FAILURE);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
197 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
198
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
199 GDK_THREADS_ENTER();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
200
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
201 /* this needs to be called after all 3 windows are created and
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
202 * input plugins are setup'ed
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
203 * but not if we're running headless --nenolod
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
204 */
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
205 mainwin_setup_menus();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
206
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
207 gint h_vol[2];
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
208 input_get_volume(&h_vol[0], &h_vol[1]);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
209 hook_call("volume set", h_vol);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
210
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
211 /* FIXME: delayed, because it deals directly with the plugin
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
212 * interface to set menu items */
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
213 create_prefs_window();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
214
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
215 if (cfg.player_visible)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
216 mainwin_show(TRUE);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
217 else if (!cfg.playlist_visible && !cfg.equalizer_visible)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
218 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
219 /* all of the windows are hidden... warn user about this */
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
220 mainwin_show_visibility_warning();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
221 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
222
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
223 if (cfg.equalizer_visible)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
224 equalizerwin_show(TRUE);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
225
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
226 if (cfg.playlist_visible)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
227 playlistwin_show();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
228
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
229 hint_set_always(cfg.always_on_top);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
230
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
231 resume_playback_on_startup();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
232
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
233 g_message("Entering Gtk+ main loop!");
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
234 gtk_main();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
235
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
236 GDK_THREADS_LEAVE();
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
237
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
238 return TRUE;
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
239 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
240
4675
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
241 static gboolean
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
242 _ui_finalize()
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
243 {
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
244 gtk_widget_hide(equalizerwin);
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
245 gtk_widget_hide(playlistwin);
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
246 gtk_widget_hide(mainwin);
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
247
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
248 gtk_accel_map_save(aud_paths[BMP_PATH_ACCEL_FILE]);
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
249 gtk_main_quit();
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
250
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
251 cleanup_skins();
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
252
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
253 return TRUE;
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
254 }
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
255
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
256 static Interface legacy_interface = {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
257 .id = "legacy",
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
258 .desc = N_("Legacy Interface"),
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
259 .init = _ui_initialize,
4675
48cdebc174ef enabled interface destruction
mf0102 <0102@gmx.at>
parents: 4671
diff changeset
260 .fini = _ui_finalize
4668
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
261 };
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
262
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
263 void
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
264 ui_populate_legacy_interface(void)
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
265 {
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
266 interface_register(&legacy_interface);
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
267 }
fdcbbfdd428e Split out a lot of stuff in main.c to ui_legacy.c.
William Pitcock <nenolod@atheme.org>
parents:
diff changeset
268