annotate audacious/mainwin.c @ 358:70075730e187 trunk

[svn] Checking path for NULL wont work in the for() loop, so we have to check elsewhere. It'd be nice if file managers would all obey the same standard.
author nenolod
date Fri, 30 Dec 2005 14:17:35 -0800
parents ac6389064cf9
children 2454f2ab6770
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1 /* BMP - Cross-platform multimedia player
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2 * Copyright (C) 2003-2004 BMP development team.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
4 * Based on XMMS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
5 * Copyright (C) 1998-2003 XMMS development team.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
6 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
10 * (at your option) any later version.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
11 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
15 * GNU General Public License for more details.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
16 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
20 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
21
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
22 #ifdef HAVE_CONFIG_H
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
23 # include "config.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
24 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
25
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
26
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
27 #include <glib.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
28 #include <glib/gi18n.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
29 #include <glib/gprintf.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
30 #include <gtk/gtk.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
31 #include <gdk/gdkx.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
32 #include <gdk/gdkkeysyms.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
33
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
34 #include <math.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
35 #include <stdlib.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
36 #include <string.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
37
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
38 #include <X11/Xlib.h>
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
39
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
40 #include "textbox.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
41 #include "mainwin.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
42 #include "pixmaps.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
43
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
44 #include "main.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
45
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
46 #include "controlsocket.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
47 #include "pluginenum.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
48
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
49 #include "about.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
50 #include "dnd.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
51 #include "dock.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
52 #include "equalizer.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
53 #include "hints.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
54 #include "input.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
55 #include "playlistwin.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
56 #include "prefswin.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
57 #include "skinwin.h"
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
58 #include "genevent.h"
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
59 #include "hslider.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
60 #include "menurow.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
61 #include "monostereo.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
62 #include "pbutton.h"
284
763afa52f416 [svn] Update header locations.
nenolod
parents: 274
diff changeset
63 #include "libaudcore/playback.h"
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
64 #include "playlist.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
65 #include "playlist_list.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
66 #include "playstatus.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
67 #include "sbutton.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
68 #include "svis.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
69 #include "textbox.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
70 #include "urldecode.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
71 #include "util.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
72 #include "vis.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
73 #include "visualization.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
74 #include "libaudacious/configdb.h"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
75
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
76
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
77 #define ITEM_SEPARATOR {"/-", NULL, NULL, 0, "<Separator>"}
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
78
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
79 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
80 * If you change the menu above change these defines also
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
81 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
82
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
83 #define MAINWIN_VIS_MENU_VIS_MODE 1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
84 #define MAINWIN_VIS_MENU_NUM_VIS_MODE 3
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
85 #define MAINWIN_VIS_MENU_ANALYZER_MODE 5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
86 #define MAINWIN_VIS_MENU_NUM_ANALYZER_MODE 3
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
87 #define MAINWIN_VIS_MENU_ANALYZER_TYPE 9
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
88 #define MAINWIN_VIS_MENU_NUM_ANALYZER_TYPE 2
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
89 #define MAINWIN_VIS_MENU_ANALYZER_PEAKS 12
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
90 #define MAINWIN_VIS_MENU_SCOPE_MODE 14
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
91 #define MAINWIN_VIS_MENU_NUM_SCOPE_MODE 3
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
92 #define MAINWIN_VIS_MENU_WSHADEVU_MODE 18
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
93 #define MAINWIN_VIS_MENU_NUM_WSHADEVU_MODE 2
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
94 #define MAINWIN_VIS_MENU_REFRESH_RATE 21
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
95 #define MAINWIN_VIS_MENU_NUM_REFRESH_RATE 4
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
96 #define MAINWIN_VIS_MENU_AFALLOFF 26
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
97 #define MAINWIN_VIS_MENU_NUM_AFALLOFF 5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
98 #define MAINWIN_VIS_MENU_PFALLOFF 32
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
99 #define MAINWIN_VIS_MENU_NUM_PFALLOFF 5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
100
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
101 #define VOLSET_DISP_TIMES 5
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
102
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
103
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
104 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
105 MAINWIN_SONGNAME_FILEINFO,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
106 MAINWIN_SONGNAME_JTF,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
107 MAINWIN_SONGNAME_JTT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
108 MAINWIN_SONGNAME_SCROLL
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
109 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
110
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
111 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
112 MAINWIN_OPT_SKIN, MAINWIN_OPT_RELOADSKIN,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
113 MAINWIN_OPT_REPEAT, MAINWIN_OPT_SHUFFLE, MAINWIN_OPT_NPA,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
114 MAINWIN_OPT_TELAPSED, MAINWIN_OPT_TREMAINING,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
115 MAINWIN_OPT_ALWAYS,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
116 MAINWIN_OPT_STICKY,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
117 MAINWIN_OPT_WS,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
118 MAINWIN_OPT_PWS,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
119 MAINWIN_OPT_EQWS
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
120 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
121
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
122 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
123 MAINWIN_VIS_ANALYZER, MAINWIN_VIS_SCOPE, MAINWIN_VIS_OFF,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
124 MAINWIN_VIS_ANALYZER_NORMAL, MAINWIN_VIS_ANALYZER_FIRE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
125 MAINWIN_VIS_ANALYZER_VLINES,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
126 MAINWIN_VIS_ANALYZER_LINES, MAINWIN_VIS_ANALYZER_BARS,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
127 MAINWIN_VIS_ANALYZER_PEAKS,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
128 MAINWIN_VIS_SCOPE_DOT, MAINWIN_VIS_SCOPE_LINE, MAINWIN_VIS_SCOPE_SOLID,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
129 MAINWIN_VIS_VU_NORMAL, MAINWIN_VIS_VU_SMOOTH,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
130 MAINWIN_VIS_REFRESH_FULL, MAINWIN_VIS_REFRESH_HALF,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
131 MAINWIN_VIS_REFRESH_QUARTER, MAINWIN_VIS_REFRESH_EIGHTH,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
132 MAINWIN_VIS_AFALLOFF_SLOWEST, MAINWIN_VIS_AFALLOFF_SLOW,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
133 MAINWIN_VIS_AFALLOFF_MEDIUM, MAINWIN_VIS_AFALLOFF_FAST,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
134 MAINWIN_VIS_AFALLOFF_FASTEST,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
135 MAINWIN_VIS_PFALLOFF_SLOWEST, MAINWIN_VIS_PFALLOFF_SLOW,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
136 MAINWIN_VIS_PFALLOFF_MEDIUM, MAINWIN_VIS_PFALLOFF_FAST,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
137 MAINWIN_VIS_PFALLOFF_FASTEST,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
138 MAINWIN_VIS_PLUGINS
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
139 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
140
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
141 enum {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
142 MAINWIN_VIS_ACTIVE_MAINWIN, MAINWIN_VIS_ACTIVE_PLAYLISTWIN
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
143 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
144
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
145
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
146 typedef struct _PlaybackInfo PlaybackInfo;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
147
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
148 struct _PlaybackInfo {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
149 gchar *title;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
150 gint bitrate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
151 gint frequency;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
152 gint n_channels;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
153 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
154
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
155
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
156 GtkWidget *mainwin = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
157
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
158 static GdkBitmap *nullmask;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
159 static gint balance;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
160
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
161 GtkWidget *mainwin_jtf = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
162 static GtkWidget *mainwin_jtt = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
163
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
164 GtkItemFactory *mainwin_songname_menu, *mainwin_vis_menu;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
165 GtkItemFactory *mainwin_general_menu, *mainwin_play_menu, *mainwin_add_menu;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
166 GtkItemFactory *mainwin_view_menu;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
167
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
168
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
169 GdkGC *mainwin_gc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
170 static GdkPixmap *mainwin_bg = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
171
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
172 GtkAccelGroup *mainwin_accel = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
173
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
174 static PButton *mainwin_menubtn;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
175 static PButton *mainwin_minimize, *mainwin_shade, *mainwin_close;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
176
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
177 static PButton *mainwin_rew, *mainwin_fwd;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
178 static PButton *mainwin_eject;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
179 static PButton *mainwin_play, *mainwin_pause, *mainwin_stop;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
180
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
181 TButton *mainwin_shuffle, *mainwin_repeat, *mainwin_eq, *mainwin_pl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
182 TextBox *mainwin_info;
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
183 TextBox *mainwin_stime_min, *mainwin_stime_sec;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
184
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
185 static TextBox *mainwin_rate_text, *mainwin_freq_text;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
186
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
187 PlayStatus *mainwin_playstatus;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
188
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
189 Number *mainwin_minus_num, *mainwin_10min_num, *mainwin_min_num;
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
190 Number *mainwin_10sec_num, *mainwin_sec_num;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
191
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
192 static gboolean setting_volume = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
193
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
194 Vis *active_vis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
195 Vis *mainwin_vis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
196 SVis *mainwin_svis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
197
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
198 HSlider *mainwin_sposition = NULL;
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
199
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
200 static MenuRow *mainwin_menurow;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
201 static HSlider *mainwin_volume, *mainwin_balance, *mainwin_position;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
202 static MonoStereo *mainwin_monostereo;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
203 static SButton *mainwin_srew, *mainwin_splay, *mainwin_spause;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
204 static SButton *mainwin_sstop, *mainwin_sfwd, *mainwin_seject, *mainwin_about;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
205
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
206 static GList *mainwin_wlist = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
207
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
208 static gint mainwin_timeout_id;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
209
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
210 G_LOCK_DEFINE_STATIC(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
211
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
212 static gboolean mainwin_force_redraw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
213 static gchar *mainwin_title_text = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
214 static gboolean mainwin_info_text_locked = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
215
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
216
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
217 static void mainwin_songname_menu_callback(gpointer user_data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
218 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
219 GtkWidget * widget);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
220
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
221 static void mainwin_vis_menu_callback(gpointer user_data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
222 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
223 GtkWidget * widget);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
224
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
225 static void mainwin_view_menu_callback(gpointer user_data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
226 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
227 GtkWidget * widget);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
228
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
229 static void mainwin_play_menu_callback(gpointer user_data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
230 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
231 GtkWidget * widget);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
232
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
233 /* Song name area menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
234
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
235 GtkItemFactoryEntry mainwin_songname_menu_entries[] = {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
236 {N_("/View Track Details"), "<alt>i", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
237 MAINWIN_GENERAL_FILEINFO, "<ImageItem>", my_pixbuf},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
238 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
239 {N_("/Autoscroll Songname"), NULL, mainwin_songname_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
240 MAINWIN_SONGNAME_SCROLL, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
241 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
242
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
243 static gint mainwin_songname_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
244 G_N_ELEMENTS(mainwin_songname_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
245
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
246 /* Mini-visualizer area menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
247
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
248 GtkItemFactoryEntry mainwin_vis_menu_entries[] = {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
249 {N_("/Visualization Mode"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
250 {N_("/Visualization Mode/Analyzer"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
251 MAINWIN_VIS_ANALYZER, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
252 {N_("/Visualization Mode/Scope"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
253 MAINWIN_VIS_SCOPE, "/Visualization Mode/Analyzer"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
254 {N_("/Visualization Mode/Off"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
255 MAINWIN_VIS_OFF, "/Visualization Mode/Analyzer"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
256 {N_("/Analyzer Mode"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
257 {N_("/Analyzer Mode/Normal"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
258 MAINWIN_VIS_ANALYZER_NORMAL, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
259 {N_("/Analyzer Mode/Fire"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
260 MAINWIN_VIS_ANALYZER_FIRE, "/Analyzer Mode/Normal"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
261 {N_("/Analyzer Mode/Vertical Lines"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
262 MAINWIN_VIS_ANALYZER_VLINES, "/Analyzer Mode/Normal"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
263 {"/Analyzer Mode/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
264 {N_("/Analyzer Mode/Lines"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
265 MAINWIN_VIS_ANALYZER_LINES, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
266 {N_("/Analyzer Mode/Bars"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
267 MAINWIN_VIS_ANALYZER_BARS, "/Analyzer Mode/Lines"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
268 {"/Analyzer Mode/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
269 {N_("/Analyzer Mode/Peaks"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
270 MAINWIN_VIS_ANALYZER_PEAKS, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
271 {N_("/Scope Mode"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
272 {N_("/Scope Mode/Dot Scope"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
273 MAINWIN_VIS_SCOPE_DOT, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
274 {N_("/Scope Mode/Line Scope"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
275 MAINWIN_VIS_SCOPE_LINE, "/Scope Mode/Dot Scope"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
276 {N_("/Scope Mode/Solid Scope"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
277 MAINWIN_VIS_SCOPE_SOLID, "/Scope Mode/Dot Scope"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
278 {N_("/WindowShade VU Mode"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
279 {N_("/WindowShade VU Mode/Normal"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
280 MAINWIN_VIS_VU_NORMAL, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
281 {N_("/WindowShade VU Mode/Smooth"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
282 MAINWIN_VIS_VU_SMOOTH, "/WindowShade VU Mode/Normal"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
283 {N_("/Refresh Rate"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
284 {N_("/Refresh Rate/Full (~50 fps)"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
285 MAINWIN_VIS_REFRESH_FULL, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
286 {N_("/Refresh Rate/Half (~25 fps)"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
287 MAINWIN_VIS_REFRESH_HALF, "/Refresh Rate/Full (~50 fps)"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
288 {N_("/Refresh Rate/Quarter (~13 fps)"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
289 MAINWIN_VIS_REFRESH_QUARTER, "/Refresh Rate/Full (~50 fps)"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
290 {N_("/Refresh Rate/Eighth (~6 fps)"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
291 MAINWIN_VIS_REFRESH_EIGHTH, "/Refresh Rate/Full (~50 fps)"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
292 {N_("/Analyzer Falloff"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
293 {N_("/Analyzer Falloff/Slowest"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
294 MAINWIN_VIS_AFALLOFF_SLOWEST, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
295 {N_("/Analyzer Falloff/Slow"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
296 MAINWIN_VIS_AFALLOFF_SLOW, "/Analyzer Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
297 {N_("/Analyzer Falloff/Medium"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
298 MAINWIN_VIS_AFALLOFF_MEDIUM, "/Analyzer Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
299 {N_("/Analyzer Falloff/Fast"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
300 MAINWIN_VIS_AFALLOFF_FAST, "/Analyzer Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
301 {N_("/Analyzer Falloff/Fastest"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
302 MAINWIN_VIS_AFALLOFF_FASTEST, "/Analyzer Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
303 {N_("/Peaks Falloff"), NULL, NULL, 0, "<Branch>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
304 {N_("/Peaks Falloff/Slowest"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
305 MAINWIN_VIS_PFALLOFF_SLOWEST, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
306 {N_("/Peaks Falloff/Slow"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
307 MAINWIN_VIS_PFALLOFF_SLOW, "/Peaks Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
308 {N_("/Peaks Falloff/Medium"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
309 MAINWIN_VIS_PFALLOFF_MEDIUM, "/Peaks Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
310 {N_("/Peaks Falloff/Fast"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
311 MAINWIN_VIS_PFALLOFF_FAST, "/Peaks Falloff/Slowest"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
312 {N_("/Peaks Falloff/Fastest"), NULL, mainwin_vis_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
313 MAINWIN_VIS_PFALLOFF_FASTEST, "/Peaks Falloff/Slowest"}
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
314 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
315
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
316 static const gint mainwin_vis_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
317 G_N_ELEMENTS(mainwin_vis_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
318
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
319 /* Playback menu (now used only for accelerators) */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
320
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
321 GtkItemFactoryEntry mainwin_playback_menu_entries[] = {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
322 {N_("/Play CD"), "<alt>C", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
323 MAINWIN_GENERAL_PLAYCD, "<StockItem>", GTK_STOCK_CDROM},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
324 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
325 {N_("/Repeat"), "R", mainwin_play_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
326 MAINWIN_OPT_REPEAT, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
327 {N_("/Shuffle"), "S", mainwin_play_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
328 MAINWIN_OPT_SHUFFLE, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
329 {N_("/No Playlist Advance"), "<control>N", mainwin_play_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
330 MAINWIN_OPT_NPA, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
331 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
332 {N_("/Play"), "x", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
333 MAINWIN_GENERAL_PLAY, "<Item>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
334 {N_("/Pause"), "c", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
335 MAINWIN_GENERAL_PAUSE, "<Item>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
336 {N_("/Stop"), "v", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
337 MAINWIN_GENERAL_STOP, "<StockItem>", GTK_STOCK_STOP},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
338 {N_("/Previous"), "z", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
339 MAINWIN_GENERAL_PREV, "<StockItem>", GTK_STOCK_GO_BACK},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
340 {N_("/Next"), "b", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
341 MAINWIN_GENERAL_NEXT, "<StockItem>", GTK_STOCK_GO_FORWARD},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
342 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
343 {N_("/Jump to Playlist Start"), "<control>Z", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
344 MAINWIN_GENERAL_START, "<StockItem>", GTK_STOCK_GOTO_TOP},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
345 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
346 {N_("/Jump to File"), "J", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
347 MAINWIN_GENERAL_JTF, "<StockItem>", GTK_STOCK_JUMP_TO},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
348 {N_("/Jump to Time"), "<control>J", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
349 MAINWIN_GENERAL_JTT, "<StockItem>", GTK_STOCK_JUMP_TO},
88
db2d1d193e56 [svn] Fix the missing separator in the playback menu. (oops)
nenolod
parents: 87
diff changeset
350 {"/-", NULL, NULL, 0, "<Separator>"},
87
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
351 {N_("/View Track Details"), "<alt>I", mainwin_general_menu_callback,
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
352 MAINWIN_GENERAL_FILEINFO, "<ImageItem>", my_pixbuf}
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
353 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
354
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
355 static const gint mainwin_playback_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
356 G_N_ELEMENTS(mainwin_playback_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
357
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
358 /* Main menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
359
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
360 GtkItemFactoryEntry mainwin_general_menu_entries[] = {
86
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
361 {N_("/About Audacious"), NULL, mainwin_general_menu_callback,
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
362 MAINWIN_GENERAL_ABOUT, "<StockItem>", GTK_STOCK_DIALOG_INFO},
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
363 {"/-", NULL, NULL, 0, "<Separator>"},
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
364 {N_("/Play File"), "L", mainwin_general_menu_callback,
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
365 MAINWIN_GENERAL_PLAYFILE, "<StockItem>", GTK_STOCK_OPEN},
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
366 {N_("/Play Location"), "<control>L", mainwin_general_menu_callback,
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
367 MAINWIN_GENERAL_PLAYLOCATION, "<StockItem>", GTK_STOCK_NETWORK},
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
368 {"/-", NULL, NULL, 0, "<Separator>"},
87
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
369 {N_("/V_isualization"), NULL, NULL, 0, "<Item>"},
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
370 {N_("/_Playback"), NULL, NULL, 0, "<Item>"},
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
371 {N_("/_View"), NULL, NULL, 0, "<Item>"},
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
372 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
373 {N_("/Preferences"), "<control>P", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
374 MAINWIN_GENERAL_PREFS, "<StockItem>", GTK_STOCK_PREFERENCES},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
375 {N_("/_Quit"), NULL, mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
376 MAINWIN_GENERAL_EXIT, "<StockItem>", GTK_STOCK_QUIT}
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
377 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
378
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
379 static const gint mainwin_general_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
380 G_N_ELEMENTS(mainwin_general_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
381
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
382 /* Add submenu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
383
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
384 GtkItemFactoryEntry mainwin_add_menu_entries[] = {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
385 {N_("/Files..."), "f", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
386 MAINWIN_GENERAL_PLAYFILE, "<StockItem>", GTK_STOCK_OPEN},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
387 {N_("/Internet location..."), "<control>h", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
388 MAINWIN_GENERAL_PLAYLOCATION, "<StockItem>", GTK_STOCK_NETWORK},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
389 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
390
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
391 static const gint mainwin_add_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
392 G_N_ELEMENTS(mainwin_add_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
393
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
394
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
395 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
396 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
397
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
398 /* View submenu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
399
85
8c8a20f72ace [svn] s/static GTKItemFactoryEntry/GTKItemFactoryEntry/g.
nenolod
parents: 0
diff changeset
400 GtkItemFactoryEntry mainwin_view_menu_entries[] = {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
401 {N_("/Show Playlist Editor"), "<alt>E", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
402 MAINWIN_GENERAL_SHOWPLWIN, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
403 {N_("/Show Equalizer"), "<alt>G", mainwin_general_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
404 MAINWIN_GENERAL_SHOWEQWIN, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
405 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
406 {N_("/Time Elapsed"), "<control>E", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
407 MAINWIN_OPT_TELAPSED, "<RadioItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
408 {N_("/Time Remaining"), "<control>R", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
409 MAINWIN_OPT_TREMAINING, "/Time Elapsed"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
410 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
411 {N_("/Always On Top"), "<control>o", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
412 MAINWIN_OPT_ALWAYS, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
413 {N_("/Put on All Workspaces"), "<control>S",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
414 mainwin_view_menu_callback, MAINWIN_OPT_STICKY, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
415 {"/-", NULL, NULL, 0, "<Separator>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
416 {N_("/Roll up Player"), "<control>W", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
417 MAINWIN_OPT_WS, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
418 {N_("/Roll up Playlist Editor"), "<control><shift>W", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
419 MAINWIN_OPT_PWS, "<ToggleItem>"},
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
420 {N_("/Roll up Equalizer"), "<control><alt>W", mainwin_view_menu_callback,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
421 MAINWIN_OPT_EQWS, "<ToggleItem>"}
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
422 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
423
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
424 static const gint mainwin_view_menu_entries_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
425 G_N_ELEMENTS(mainwin_view_menu_entries);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
426
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
427
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
428 static PlaybackInfo playback_info = { NULL, 0, 0, 0 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
429
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
430
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
431 static gint mainwin_idle_func(gpointer data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
432
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
433 static void set_timer_mode_menu_cb(TimerMode mode);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
434 static void set_timer_mode(TimerMode mode);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
435
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
436
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
437 /* FIXME: placed here for now */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
438 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
439 playback_get_sample_params(gint * bitrate,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
440 gint * frequency,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
441 gint * n_channels)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
442 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
443 if (bitrate)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
444 *bitrate = playback_info.bitrate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
445
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
446 if (frequency)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
447 *frequency = playback_info.frequency;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
448
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
449 if (n_channels)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
450 *n_channels = playback_info.n_channels;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
451 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
452
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
453 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
454 playback_set_sample_params(gint bitrate,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
455 gint frequency,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
456 gint n_channels)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
457 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
458 if (bitrate >= 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
459 playback_info.bitrate = bitrate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
460
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
461 if (frequency >= 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
462 playback_info.frequency = frequency;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
463
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
464 if (n_channels >= 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
465 playback_info.n_channels = n_channels;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
466 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
467
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
468 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
469 mainwin_set_title_scroll(gboolean scroll)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
470 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
471 cfg.autoscroll = scroll;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
472 textbox_set_scroll(mainwin_info, cfg.autoscroll);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
473 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
474
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
475
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
476 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
477 mainwin_set_always_on_top(gboolean always)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
478 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
479 GtkWidget *widget = gtk_item_factory_get_widget(mainwin_view_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
480 "/Always On Top");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
481 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
482 mainwin_menurow->mr_always_selected);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
483 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
484
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
485 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
486 mainwin_set_shape_mask(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
487 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
488 GdkBitmap *mask;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
489
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
490 if (!cfg.player_visible)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
491 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
492
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
493 mask = skin_get_mask(bmp_active_skin, SKIN_MASK_MAIN + cfg.player_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
494 gtk_widget_shape_combine_mask(mainwin, mask, 0, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
495 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
496
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
497 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
498 mainwin_set_shade(gboolean shaded)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
499 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
500 GtkWidget *widget;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
501 widget = gtk_item_factory_get_widget(mainwin_view_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
502 "/Roll up Player");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
503 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
504 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
505
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
506 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
507 mainwin_set_shade_menu_cb(gboolean shaded)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
508 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
509 cfg.player_shaded = shaded;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
510
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
511 mainwin_set_shape_mask();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
512
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
513 if (shaded) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
514 dock_shade(dock_window_list, GTK_WINDOW(mainwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
515 MAINWIN_SHADED_HEIGHT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
516
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
517 widget_show(WIDGET(mainwin_svis));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
518 vis_clear_data(mainwin_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
519
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
520 widget_show(WIDGET(mainwin_srew));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
521 widget_show(WIDGET(mainwin_splay));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
522 widget_show(WIDGET(mainwin_spause));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
523 widget_show(WIDGET(mainwin_sstop));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
524 widget_show(WIDGET(mainwin_sfwd));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
525 widget_show(WIDGET(mainwin_seject));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
526
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
527 widget_show(WIDGET(mainwin_stime_min));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
528 widget_show(WIDGET(mainwin_stime_sec));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
529
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
530 textbox_set_scroll(mainwin_info, FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
531 if (bmp_playback_get_playing()
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
532 && playlist_get_current_length() != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
533 widget_show(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
534
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
535 mainwin_shade->pb_ny = mainwin_shade->pb_py = 27;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
536 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
537 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
538 dock_shade(dock_window_list, GTK_WINDOW(mainwin), MAINWIN_HEIGHT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
539
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
540 widget_hide(WIDGET(mainwin_svis));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
541 svis_clear_data(mainwin_svis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
542
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
543 widget_hide(WIDGET(mainwin_srew));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
544 widget_hide(WIDGET(mainwin_splay));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
545 widget_hide(WIDGET(mainwin_spause));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
546 widget_hide(WIDGET(mainwin_sstop));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
547 widget_hide(WIDGET(mainwin_sfwd));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
548 widget_hide(WIDGET(mainwin_seject));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
549
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
550 widget_hide(WIDGET(mainwin_stime_min));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
551 widget_hide(WIDGET(mainwin_stime_sec));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
552 widget_hide(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
553
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
554 textbox_set_scroll(mainwin_info, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
555 mainwin_shade->pb_ny = mainwin_shade->pb_py = 18;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
556 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
557
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
558 draw_main_window(TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
559 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
560
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
561 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
562 mainwin_vis_set_active_vis(gint new_vis)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
563 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
564 switch (new_vis) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
565 case MAINWIN_VIS_ACTIVE_MAINWIN:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
566 playlistwin_vis_disable();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
567 active_vis = mainwin_vis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
568 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
569 case MAINWIN_VIS_ACTIVE_PLAYLISTWIN:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
570 playlistwin_vis_enable();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
571 active_vis = playlistwin_vis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
572 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
573 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
574 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
575
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
576 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
577 mainwin_vis_set_refresh(RefreshRate rate)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
578 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
579 cfg.vis_refresh = rate;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
580 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
581
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
582 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
583 mainwin_vis_set_afalloff(FalloffSpeed speed)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
584 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
585 cfg.analyzer_falloff = speed;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
586 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
587
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
588 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
589 mainwin_vis_set_pfalloff(FalloffSpeed speed)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
590 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
591 cfg.peaks_falloff = speed;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
592 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
593
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
594 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
595 mainwin_vis_set_analyzer_mode(AnalyzerMode mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
596 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
597 cfg.analyzer_mode = mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
598 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
599
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
600 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
601 mainwin_vis_set_analyzer_type(AnalyzerType mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
602 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
603 cfg.analyzer_type = mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
604 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
605
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
606 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
607 mainwin_vis_set_type(VisType mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
608 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
609 gchar *path =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
610 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_VIS_MODE + mode].path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
611 GtkWidget *widget = gtk_item_factory_get_widget(mainwin_vis_menu, path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
612 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget), TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
613 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
614
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
615 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
616 mainwin_vis_set_type_menu_cb(VisType mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
617 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
618 cfg.vis_type = mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
619
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
620 if (mode == VIS_OFF) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
621 if (cfg.player_shaded && cfg.player_visible)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
622 svis_clear(mainwin_svis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
623 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
624 vis_clear(active_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
625 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
626 if (mode == VIS_ANALYZER) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
627 vis_clear_data(active_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
628 svis_clear_data(mainwin_svis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
629 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
630 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
631
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
632 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
633 mainwin_menubtn_cb(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
634 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
635 gint x, y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
636 gtk_window_get_position(GTK_WINDOW(mainwin), &x, &y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
637 util_item_factory_popup(mainwin_general_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
638 x + 6,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
639 y + MAINWIN_SHADED_HEIGHT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
640 1, GDK_CURRENT_TIME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
641 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
642
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
643 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
644 mainwin_minimize_cb(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
645 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
646 if (!mainwin)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
647 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
648
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
649 gtk_window_iconify(GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
650 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
651
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
652 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
653 mainwin_shade_toggle(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
654 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
655 mainwin_set_shade(!cfg.player_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
656 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
657
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
658 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
659 mainwin_quit_cb(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
660 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
661 gtk_widget_hide(equalizerwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
662 gtk_widget_hide(playlistwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
663 gtk_widget_hide(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
664 gdk_flush();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
665
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
666 g_source_remove(mainwin_timeout_id);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
667
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
668 util_set_cursor(NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
669
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
670 bmp_config_save();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
671 gtk_accel_map_save(bmp_paths[BMP_PATH_ACCEL_FILE]);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
672
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
673 ctrlsocket_cleanup();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
674
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
675 playlist_stop_get_info_thread();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
676 playlist_clear();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
677
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
678 plugin_system_cleanup();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
679
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
680 gtk_main_quit();
196
b3b2fc5c8fe9 [svn] - Fix playback-stop RPC call crash.
nenolod
parents: 192
diff changeset
681
b3b2fc5c8fe9 [svn] - Fix playback-stop RPC call crash.
nenolod
parents: 192
diff changeset
682 exit(EXIT_SUCCESS);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
683 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
684
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
685 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
686 mainwin_destroy(GtkWidget * widget, gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
687 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
688 mainwin_quit_cb();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
689 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
690
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
691 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
692 mainwin_draw_titlebar(gboolean focus)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
693 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
694 skin_draw_mainwin_titlebar(bmp_active_skin, mainwin_bg, mainwin_gc,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
695 cfg.player_shaded, focus || !cfg.dim_titlebar);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
696 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
697
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
698 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
699 draw_main_window(gboolean force)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
700 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
701 GList *wl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
702 Widget *w;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
703 gboolean redraw;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
704
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
705 if (!cfg.player_visible)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
706 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
707
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
708 widget_list_lock(mainwin_wlist);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
709
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
710 if (force) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
711 if (!cfg.player_shaded)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
712 skin_draw_pixmap(bmp_active_skin, mainwin_bg, mainwin_gc,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
713 SKIN_MAIN, 0, 0, 0, 0, MAINWIN_WIDTH,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
714 MAINWIN_HEIGHT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
715 mainwin_draw_titlebar(gtk_window_has_toplevel_focus
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
716 (GTK_WINDOW(mainwin)));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
717 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
718
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
719 widget_list_draw(mainwin_wlist, &redraw, force);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
720
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
721 if (redraw || force) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
722 if (force) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
723 gdk_window_clear(mainwin->window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
724 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
725 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
726 for (wl = mainwin_wlist; wl; wl = g_list_next(wl)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
727 w = WIDGET(wl->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
728
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
729 if (!w->redraw || !w->visible)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
730 continue;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
731
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
732 gdk_window_clear_area(mainwin->window, w->x, w->y,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
733 w->width, w->height);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
734 w->redraw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
735 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
736 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
737
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
738 gdk_flush();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
739 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
740
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
741 widget_list_unlock(mainwin_wlist);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
742 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
743
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
744
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
745 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
746 mainwin_set_info_text(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
747 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
748 gchar *text;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
749
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
750 if (mainwin_info_text_locked)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
751 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
752
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
753 if ((text = input_get_info_text()) != NULL) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
754 textbox_set_text(mainwin_info, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
755 g_free(text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
756 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
757 else if ((text = playlist_get_info_text()) != NULL) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
758 textbox_set_text(mainwin_info, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
759 g_free(text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
760 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
761 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
762
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
763 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
764 mainwin_lock_info_text(const gchar * text)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
765 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
766 mainwin_info_text_locked = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
767 textbox_set_text(mainwin_info, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
768 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
769
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
770 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
771 mainwin_release_info_text(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
772 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
773 mainwin_info_text_locked = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
774 mainwin_set_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
775 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
776
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
777
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
778 static gchar *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
779 make_mainwin_title(const gchar * title)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
780 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
781 if (title)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
782 return g_strdup_printf(_("%s - Audacious"), title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
783 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
784 return g_strdup(_("Audacious"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
785 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
786
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
787 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
788 mainwin_set_song_title(const gchar * title)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
789 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
790 G_LOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
791 g_free(mainwin_title_text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
792 mainwin_title_text = make_mainwin_title(title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
793 G_UNLOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
794 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
795
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
796 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
797 mainwin_set_song_info(gint bitrate,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
798 gint frequency,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
799 gint n_channels)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
800 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
801 gchar text[10];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
802 gchar *title;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
803
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
804 playback_set_sample_params(bitrate, frequency, n_channels);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
805
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
806 if (bitrate != -1) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
807 bitrate /= 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
808
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
809 if (bitrate < 1000) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
810 /* Show bitrate in 1000s */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
811 g_snprintf(text, sizeof(text), "%3d", bitrate);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
812 textbox_set_text(mainwin_rate_text, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
813 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
814 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
815 /* Show bitrate in 100,000s */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
816 bitrate /= 100;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
817 g_snprintf(text, sizeof(text), "%2dH", bitrate);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
818 textbox_set_text(mainwin_rate_text, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
819 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
820 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
821 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
822 textbox_set_text(mainwin_rate_text, _("VBR"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
823
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
824 /* Show sampling frequency in kHz */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
825 g_snprintf(text, sizeof(text), "%2d", frequency / 1000);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
826 textbox_set_text(mainwin_freq_text, text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
827
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
828 monostereo_set_num_channels(mainwin_monostereo, n_channels);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
829
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
830 widget_show(WIDGET(mainwin_minus_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
831 widget_show(WIDGET(mainwin_10min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
832 widget_show(WIDGET(mainwin_min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
833 widget_show(WIDGET(mainwin_10sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
834 widget_show(WIDGET(mainwin_sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
835
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
836 if (!bmp_playback_get_paused())
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
837 playstatus_set_status(mainwin_playstatus, STATUS_PLAY);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
838
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
839 if (playlist_get_current_length() != -1) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
840 if (cfg.player_shaded)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
841 widget_show(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
842 widget_show(WIDGET(mainwin_position));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
843 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
844 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
845 widget_hide(WIDGET(mainwin_position));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
846 widget_hide(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
847 mainwin_force_redraw = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
848 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
849
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
850 title = playlist_get_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
851 mainwin_set_song_title(title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
852 g_free(title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
853 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
854
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
855 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
856 mainwin_clear_song_info(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
857 {
196
b3b2fc5c8fe9 [svn] - Fix playback-stop RPC call crash.
nenolod
parents: 192
diff changeset
858 if (!mainwin)
b3b2fc5c8fe9 [svn] - Fix playback-stop RPC call crash.
nenolod
parents: 192
diff changeset
859 return;
b3b2fc5c8fe9 [svn] - Fix playback-stop RPC call crash.
nenolod
parents: 192
diff changeset
860
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
861 /* clear title */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
862 G_LOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
863 g_free(mainwin_title_text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
864 mainwin_title_text = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
865 G_UNLOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
866
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
867 /* clear sampling parameters */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
868 playback_set_sample_params(0, 0, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
869
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
870 mainwin_position->hs_pressed = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
871 mainwin_sposition->hs_pressed = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
872
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
873 /* clear sampling parameter displays */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
874 textbox_set_text(mainwin_rate_text, " ");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
875 textbox_set_text(mainwin_freq_text, " ");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
876 monostereo_set_num_channels(mainwin_monostereo, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
877
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
878 playstatus_set_status(mainwin_playstatus, STATUS_STOP);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
879
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
880 /* hide playback time */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
881 widget_hide(WIDGET(mainwin_minus_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
882 widget_hide(WIDGET(mainwin_10min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
883 widget_hide(WIDGET(mainwin_min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
884 widget_hide(WIDGET(mainwin_10sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
885 widget_hide(WIDGET(mainwin_sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
886
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
887 textbox_set_text(mainwin_stime_min, " ");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
888 textbox_set_text(mainwin_stime_sec, " ");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
889
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
890 widget_hide(WIDGET(mainwin_position));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
891 widget_hide(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
892
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
893 playlistwin_hide_timer();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
894 draw_main_window(TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
895
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
896 vis_clear(active_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
897 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
898
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
899 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
900 mainwin_disable_seekbar(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
901 {
192
0ee0b9b6db7e [svn] headless now working, use --headless if you wish to experiment.
nenolod
parents: 123
diff changeset
902 if (!mainwin)
0ee0b9b6db7e [svn] headless now working, use --headless if you wish to experiment.
nenolod
parents: 123
diff changeset
903 return;
0ee0b9b6db7e [svn] headless now working, use --headless if you wish to experiment.
nenolod
parents: 123
diff changeset
904
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
905 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
906 * We dont call draw_main_window() here so this will not
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
907 * remove them visually. It will only prevent us from sending
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
908 * any seek calls to the input plugin before the input plugin
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
909 * calls ->set_info().
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
910 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
911 widget_hide(WIDGET(mainwin_position));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
912 widget_hide(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
913 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
914
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
915 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
916 mainwin_mouse_button_release(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
917 GdkEventButton * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
918 gpointer callback_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
919 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
920 gdk_pointer_ungrab(GDK_CURRENT_TIME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
921
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
922 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
923 * The gdk_flush() is just for making sure that the pointer really
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
924 * gets ungrabbed before calling any button callbacks
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
925 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
926 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
927
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
928 gdk_flush();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
929
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
930 if (dock_is_moving(GTK_WINDOW(mainwin))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
931 dock_move_release(GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
932 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
933
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
934 if (mainwin_menurow->mr_doublesize_selected) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
935 event->x /= 2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
936 event->y /= 2;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
937 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
938
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
939 handle_release_cb(mainwin_wlist, widget, event);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
940
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
941 draw_main_window(FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
942
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
943 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
944 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
945
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
946 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
947 mainwin_motion(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
948 GdkEventMotion * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
949 gpointer callback_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
950 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
951 XEvent ev;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
952 gint i = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
953
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
954 XSync(GDK_DISPLAY(), False);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
955
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
956 while (XCheckTypedEvent(GDK_DISPLAY(), MotionNotify, &ev)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
957 event->x = ev.xmotion.x;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
958 event->y = ev.xmotion.y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
959 i++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
960 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
961
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
962 if (dock_is_moving(GTK_WINDOW(mainwin))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
963 dock_move_motion(GTK_WINDOW(mainwin), event);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
964 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
965 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
966 handle_motion_cb(mainwin_wlist, widget, event);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
967 draw_main_window(FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
968 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
969 gdk_flush();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
970
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
971 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
972 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
973
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
974 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
975 inside_sensitive_widgets(gint x, gint y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
976 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
977 return (widget_contains(WIDGET(mainwin_menubtn), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
978 || widget_contains(WIDGET(mainwin_minimize), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
979 || widget_contains(WIDGET(mainwin_shade), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
980 || widget_contains(WIDGET(mainwin_close), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
981 || widget_contains(WIDGET(mainwin_rew), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
982 || widget_contains(WIDGET(mainwin_play), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
983 || widget_contains(WIDGET(mainwin_pause), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
984 || widget_contains(WIDGET(mainwin_stop), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
985 || widget_contains(WIDGET(mainwin_fwd), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
986 || widget_contains(WIDGET(mainwin_eject), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
987 || widget_contains(WIDGET(mainwin_shuffle), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
988 || widget_contains(WIDGET(mainwin_repeat), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
989 || widget_contains(WIDGET(mainwin_pl), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
990 || widget_contains(WIDGET(mainwin_eq), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
991 || widget_contains(WIDGET(mainwin_info), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
992 || widget_contains(WIDGET(mainwin_menurow), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
993 || widget_contains(WIDGET(mainwin_volume), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
994 || widget_contains(WIDGET(mainwin_balance), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
995 || (widget_contains(WIDGET(mainwin_position), x, y) &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
996 widget_is_visible(WIDGET(mainwin_position)))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
997 || widget_contains(WIDGET(mainwin_minus_num), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
998 || widget_contains(WIDGET(mainwin_10min_num), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
999 || widget_contains(WIDGET(mainwin_min_num), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1000 || widget_contains(WIDGET(mainwin_10sec_num), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1001 || widget_contains(WIDGET(mainwin_sec_num), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1002 || widget_contains(WIDGET(mainwin_vis), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1003 || widget_contains(WIDGET(mainwin_minimize), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1004 || widget_contains(WIDGET(mainwin_shade), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1005 || widget_contains(WIDGET(mainwin_close), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1006 || widget_contains(WIDGET(mainwin_menubtn), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1007 || widget_contains(WIDGET(mainwin_sposition), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1008 || widget_contains(WIDGET(mainwin_stime_min), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1009 || widget_contains(WIDGET(mainwin_stime_sec), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1010 || widget_contains(WIDGET(mainwin_srew), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1011 || widget_contains(WIDGET(mainwin_splay), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1012 || widget_contains(WIDGET(mainwin_spause), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1013 || widget_contains(WIDGET(mainwin_sstop), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1014 || widget_contains(WIDGET(mainwin_sfwd), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1015 || widget_contains(WIDGET(mainwin_seject), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1016 || widget_contains(WIDGET(mainwin_svis), x, y)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1017 || widget_contains(WIDGET(mainwin_about), x, y));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1018 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1019
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1020 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1021 mainwin_scrolled(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1022 GdkEventScroll * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1023 gpointer callback_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1024 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1025 gint d = cfg.mouse_change;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1026 if (event->direction == GDK_SCROLL_DOWN)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1027 d *= -1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1028 mainwin_set_volume_diff(d);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1029 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1030
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1031
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1032 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1033 mainwin_mouse_button_press(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1034 GdkEventButton * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1035 gpointer callback_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1036 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1037
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1038 gboolean grab = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1039
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1040 if (event->button == 1 && event->type == GDK_BUTTON_PRESS &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1041 !inside_sensitive_widgets(event->x, event->y) && event->y < 14) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1042 if (0 && hint_move_resize_available()) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1043 hint_move_resize(mainwin, event->x_root, event->y_root, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1044 grab = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1045 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1046 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1047 gtk_window_present(GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1048 dock_move_press(dock_window_list, GTK_WINDOW(mainwin), event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1049 TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1050 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1051 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1052 else if (event->button == 1 && event->type == GDK_2BUTTON_PRESS &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1053 event->y < 14 && !inside_sensitive_widgets(event->x, event->y)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1054 mainwin_set_shade(!cfg.player_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1055 if (dock_is_moving(GTK_WINDOW(mainwin)))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1056 dock_move_release(GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1057 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1058 else if (event->button == 1 && event->type == GDK_2BUTTON_PRESS &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1059 widget_contains(WIDGET(mainwin_info), event->x, event->y)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1060 playlist_fileinfo_current();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1061 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1062 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1063 handle_press_cb(mainwin_wlist, widget, event);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1064 draw_main_window(FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1065 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1066
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1067 if ((event->button == 1) && event->type != GDK_2BUTTON_PRESS &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1068 (widget_contains(WIDGET(mainwin_vis), event->x, event->y) ||
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1069 widget_contains(WIDGET(mainwin_svis), event->x, event->y))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1070
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1071 cfg.vis_type++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1072
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1073 if (cfg.vis_type > VIS_OFF)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1074 cfg.vis_type = VIS_ANALYZER;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1075
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1076 mainwin_vis_set_type(cfg.vis_type);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1077 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1078
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1079 if (event->button == 3) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1080 if (widget_contains(WIDGET(mainwin_info), event->x, event->y)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1081 util_item_factory_popup(mainwin_songname_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1082 event->x_root, event->y_root,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1083 3, event->time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1084 grab = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1085 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1086 else if (widget_contains(WIDGET(mainwin_vis), event->x, event->y) ||
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1087 widget_contains(WIDGET(mainwin_svis), event->x, event->y)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1088 util_item_factory_popup(mainwin_vis_menu, event->x_root,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1089 event->y_root, 3, event->time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1090 grab = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1091 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1092 else if ( (event->y > 70) && (event->x < 128) )
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1093 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1094
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1095 util_item_factory_popup(mainwin_play_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1096 event->x_root,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1097 event->y_root, 3, event->time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1098 grab = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1099 } else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1100 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1101 * Pop up the main menu a few pixels down.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1102 * This will avoid that anything is selected
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1103 * if one right-clicks to focus the window
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1104 * without raising it.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1105 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1106 ***MD I think the above is stupid, people don't expect this
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1107 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1108 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1109 util_item_factory_popup(mainwin_general_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1110 event->x_root,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1111 event->y_root, 3, event->time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1112 grab = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1113 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1114 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1115 if (event->button == 1) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1116 if ((event->x > 35 && event->x < 100 &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1117 event->y > 25 && event->y < 40) ||
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1118 widget_contains(WIDGET(mainwin_stime_min), event->x, event->y) ||
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1119 widget_contains(WIDGET(mainwin_stime_sec), event->x, event->y)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1120
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1121 if (cfg.timer_mode == TIMER_ELAPSED)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1122 set_timer_mode(TIMER_REMAINING);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1123 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1124 set_timer_mode(TIMER_ELAPSED);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1125 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1126
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1127 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1128
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1129 if (grab)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1130 gdk_pointer_grab(mainwin->window, FALSE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1131 GDK_BUTTON_MOTION_MASK |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1132 GDK_BUTTON_RELEASE_MASK,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1133 GDK_WINDOW(GDK_NONE), NULL, GDK_CURRENT_TIME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1134
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1135 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1136 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1137
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1138 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1139 mainwin_focus_in(GtkWidget * window,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1140 GdkEventFocus * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1141 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1142 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1143 mainwin_menubtn->pb_allow_draw = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1144 mainwin_minimize->pb_allow_draw = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1145 mainwin_shade->pb_allow_draw = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1146 mainwin_close->pb_allow_draw = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1147 draw_main_window(TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1148
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1149 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1150 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1151
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1152
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1153 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1154 mainwin_focus_out(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1155 GdkEventFocus * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1156 gpointer callback_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1157 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1158 mainwin_menubtn->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1159 mainwin_minimize->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1160 mainwin_shade->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1161 mainwin_close->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1162 draw_main_window(TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1163
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1164 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1165 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1166
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1167 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1168 mainwin_keypress(GtkWidget * grab_widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1169 GdkEventKey * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1170 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1171 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1172
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1173 switch (event->keyval) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1174
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1175 case GDK_Up:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1176 case GDK_KP_Up:
225
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1177 case GDK_KP_8:
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1178 mainwin_set_volume_diff(2);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1179 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1180 case GDK_Down:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1181 case GDK_KP_Down:
225
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1182 case GDK_KP_2:
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1183 mainwin_set_volume_diff(-2);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1184 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1185 case GDK_Left:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1186 case GDK_KP_Left:
225
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1187 case GDK_KP_7:
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1188 if (playlist_get_current_length() != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1189 bmp_playback_seek(CLAMP
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1190 (bmp_playback_get_time() - 5000, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1191 playlist_get_current_length()) / 1000);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1192 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1193 case GDK_Right:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1194 case GDK_KP_Right:
225
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1195 case GDK_KP_9:
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1196 if (playlist_get_current_length() != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1197 bmp_playback_seek(CLAMP
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1198 (bmp_playback_get_time() + 5000, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1199 playlist_get_current_length()) / 1000);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1200 break;
225
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1201 case GDK_KP_4:
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1202 playlist_prev();
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1203 break;
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1204 case GDK_KP_6:
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1205 playlist_next();
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1206 break;
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1207 case GDK_KP_Insert:
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1208 mainwin_jump_to_file();
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1209 break;
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1210 case GDK_KP_5:
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1211 mainwin_play_pushed();
bfee3129143e [svn] Add Winamp-style numeric keypad shortcut key support.
nenolod
parents: 197
diff changeset
1212 break;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1213 case GDK_Escape:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1214 mainwin_minimize_cb();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1215 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1216 default:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1217 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1218 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1219
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1220 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1221 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1222
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1223 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1224 mainwin_jump_to_time_cb(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1225 GtkWidget * entry)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1226 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1227 guint min = 0, sec = 0, params, time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1228
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1229 params = sscanf(gtk_entry_get_text(GTK_ENTRY(entry)), "%u:%u",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1230 &min, &sec);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1231 if (params == 2)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1232 time = (min * 60) + sec;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1233 else if (params == 1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1234 time = min;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1235 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1236 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1237
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1238 if (playlist_get_current_length() > -1 &&
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1239 time <= (playlist_get_current_length() / 1000)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1240 bmp_playback_seek(time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1241 gtk_widget_destroy(mainwin_jtt);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1242 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1243 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1244
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1245
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1246 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1247 mainwin_jump_to_time(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1248 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1249 GtkWidget *vbox, *hbox_new, *hbox_total;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1250 GtkWidget *time_entry, *label, *bbox, *jump, *cancel;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1251 guint tindex;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1252 gchar time_str[10];
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1253
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1254 if (!bmp_playback_get_playing()) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1255 /* FIXME: pop an error dialog and/or disable menu option to
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1256 indicate JTT can't be launched when no track is being
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1257 played */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1258 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1259 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1260
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1261 if (mainwin_jtt) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1262 gtk_window_present(GTK_WINDOW(mainwin_jtt));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1263 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1264 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1265
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1266 mainwin_jtt = gtk_window_new(GTK_WINDOW_TOPLEVEL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1267 gtk_window_set_type_hint(GTK_WINDOW(mainwin_jtt),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1268 GDK_WINDOW_TYPE_HINT_DIALOG);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1269
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1270 gtk_window_set_title(GTK_WINDOW(mainwin_jtt), _("Jump to Time"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1271 gtk_window_set_position(GTK_WINDOW(mainwin_jtt), GTK_WIN_POS_CENTER);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1272 gtk_window_set_transient_for(GTK_WINDOW(mainwin_jtt),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1273 GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1274
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1275 g_signal_connect(mainwin_jtt, "destroy",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1276 G_CALLBACK(gtk_widget_destroyed), &mainwin_jtt);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1277 gtk_container_border_width(GTK_CONTAINER(mainwin_jtt), 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1278
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1279 vbox = gtk_vbox_new(FALSE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1280 gtk_container_add(GTK_CONTAINER(mainwin_jtt), vbox);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1281
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1282 hbox_new = gtk_hbox_new(FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1283 gtk_box_pack_start(GTK_BOX(vbox), hbox_new, TRUE, TRUE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1284
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1285 time_entry = gtk_entry_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1286 gtk_box_pack_start(GTK_BOX(hbox_new), time_entry, FALSE, FALSE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1287 g_signal_connect(time_entry, "activate",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1288 G_CALLBACK(mainwin_jump_to_time_cb), time_entry);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1289
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1290 gtk_widget_set_size_request(time_entry, 70, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1291 label = gtk_label_new(_("minutes:seconds"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1292 gtk_box_pack_start(GTK_BOX(hbox_new), label, FALSE, FALSE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1293
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1294 hbox_total = gtk_hbox_new(FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1295 gtk_box_pack_start(GTK_BOX(vbox), hbox_total, TRUE, TRUE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1296 gtk_widget_show(hbox_total);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1297
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1298 /* FIXME: Disable display of current track length. It's not
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1299 updated when track changes */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1300 #if 0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1301 label = gtk_label_new(_("Track length:"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1302 gtk_box_pack_start(GTK_BOX(hbox_total), label, FALSE, FALSE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1303
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1304 len = playlist_get_current_length() / 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1305 g_snprintf(time_str, sizeof(time_str), "%u:%2.2u", len / 60, len % 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1306 label = gtk_label_new(time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1307
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1308 gtk_box_pack_start(GTK_BOX(hbox_total), label, FALSE, FALSE, 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1309 #endif
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1310
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1311 bbox = gtk_hbutton_box_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1312 gtk_box_pack_start(GTK_BOX(vbox), bbox, TRUE, TRUE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1313 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1314 gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1315
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1316 cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1317 GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1318 gtk_container_add(GTK_CONTAINER(bbox), cancel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1319 g_signal_connect_swapped(cancel, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1320 G_CALLBACK(gtk_widget_destroy), mainwin_jtt);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1321
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1322 jump = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1323 GTK_WIDGET_SET_FLAGS(jump, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1324 gtk_container_add(GTK_CONTAINER(bbox), jump);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1325 g_signal_connect(jump, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1326 G_CALLBACK(mainwin_jump_to_time_cb), time_entry);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1327
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1328 tindex = bmp_playback_get_time() / 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1329 g_snprintf(time_str, sizeof(time_str), "%u:%2.2u", tindex / 60,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1330 tindex % 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1331 gtk_entry_set_text(GTK_ENTRY(time_entry), time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1332
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1333 gtk_entry_select_region(GTK_ENTRY(time_entry), 0, strlen(time_str));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1334
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1335 gtk_widget_show_all(mainwin_jtt);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1336
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1337 gtk_widget_grab_focus(time_entry);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1338 gtk_widget_grab_default(jump);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1339 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1340
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1341 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1342 change_song(guint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1343 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1344 if (bmp_playback_get_playing())
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1345 bmp_playback_stop();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1346
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1347 playlist_set_position(pos);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1348 bmp_playback_initiate();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1349 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1350
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1351 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1352 mainwin_jump_to_file_jump(GtkTreeView * treeview)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1353 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1354 GtkTreeModel *model;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1355 GtkTreeSelection *selection;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1356 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1357 gchar *pos_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1358 guint pos;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1359
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1360 model = gtk_tree_view_get_model(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1361 selection = gtk_tree_view_get_selection(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1362
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1363 if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1364 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1365
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1366 gtk_tree_model_get(model, &iter, 0, &pos_str, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1367 pos = g_ascii_strtoull(pos_str, NULL, 10) - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1368
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1369 change_song(pos);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1370
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1371 /* FIXME: should only hide window */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1372 gtk_widget_destroy(mainwin_jtf);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1373 mainwin_jtf = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1374 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1375
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1376 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1377 mainwin_jump_to_file_jump_cb(GtkTreeView * treeview,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1378 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1379 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1380 mainwin_jump_to_file_jump(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1381 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1382
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1383 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1384 mainwin_jump_to_file_set_queue_button_label(GtkButton * button,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1385 guint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1386 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1387 if (playlist_is_position_queued(pos))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1388 gtk_button_set_label(button, _("Un_queue"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1389 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1390 gtk_button_set_label(button, _("_Queue"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1391 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1392
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1393 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1394 mainwin_jump_to_file_queue_cb(GtkButton * button,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1395 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1396 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1397 GtkTreeView *treeview;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1398 GtkTreeModel *model;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1399 GtkTreeSelection *selection;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1400 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1401 gchar *pos_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1402 guint pos;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1403
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1404 treeview = GTK_TREE_VIEW(data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1405 model = gtk_tree_view_get_model(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1406 selection = gtk_tree_view_get_selection(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1407
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1408 if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1409 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1410
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1411 gtk_tree_model_get(model, &iter, 0, &pos_str, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1412 pos = g_ascii_strtoull(pos_str, NULL, 10) - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1413
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1414 playlist_queue_position(pos);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1415
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1416 mainwin_jump_to_file_set_queue_button_label(button, pos);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1417 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1418
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1419 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1420 mainwin_jump_to_file_selection_changed_cb(GtkTreeSelection *treesel,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1421 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1422 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1423 GtkTreeView *treeview;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1424 GtkTreeModel *model;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1425 GtkTreeSelection *selection;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1426 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1427 gchar *pos_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1428 guint pos;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1429
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1430 treeview = gtk_tree_selection_get_tree_view(treesel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1431 model = gtk_tree_view_get_model(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1432 selection = gtk_tree_view_get_selection(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1433
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1434 if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1435 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1436
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1437 gtk_tree_model_get(model, &iter, 0, &pos_str, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1438 pos = g_ascii_strtoull(pos_str, NULL, 10) - 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1439
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1440 mainwin_jump_to_file_set_queue_button_label(GTK_BUTTON(data), pos);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1441 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1442
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1443 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1444 mainwin_jump_to_file_keypress_cb(GtkWidget * object,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1445 GdkEventKey * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1446 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1447 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1448 switch (event->keyval) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1449 case GDK_Escape:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1450 /* FIXME: show only hide window */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1451 gtk_widget_destroy(mainwin_jtf);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1452 mainwin_jtf = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1453 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1454 case GDK_Return:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1455 mainwin_jump_to_file_jump(GTK_TREE_VIEW(data));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1456 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1457 default:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1458 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1459 };
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1460 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1461
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1462 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1463 mainwin_jump_to_file_match(const gchar * song, gchar ** keys)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1464 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1465 gint i = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1466 gchar *key;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1467 gchar *song_lc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1468
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1469 song_lc = g_ascii_strdown(song, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1470
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1471 while (keys[i]) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1472 key = g_ascii_strdown(keys[i], -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1473 if (!g_strrstr(song_lc, key)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1474 g_free(key);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1475 g_free(song_lc);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1476 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1477 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1478
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1479 g_free(key);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1480 i++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1481 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1482
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1483 g_free(song_lc);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1484
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1485 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1486 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1487
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1488 /* FIXME: Clear the entry when the list gets updated */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1489 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1490 mainwin_update_jtf(GtkWidget * widget, gpointer user_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1491 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1492 /* FIXME: Is not in sync with playlist due to delayed extinfo
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1493 * reading */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1494 gint row;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1495 GList *playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1496 gchar *desc_buf;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1497 gchar *row_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1498 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1499 GtkTreeSelection *selection;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1500
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1501 GtkTreeModel *store;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1502
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1503 if (!mainwin_jtf)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1504 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1505
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1506 store = gtk_tree_view_get_model(GTK_TREE_VIEW(user_data));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1507 gtk_list_store_clear(GTK_LIST_STORE(store));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1508
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1509 row = 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1510 for (playlist = playlist_get(); playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1511 playlist = g_list_next(playlist)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1512 PlaylistEntry *entry = PLAYLIST_ENTRY(playlist->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1513
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1514 if (entry->title)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1515 desc_buf = entry->title;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1516 else if (strchr(entry->filename, '/'))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1517 desc_buf = strrchr(entry->filename, '/') + 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1518 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1519 desc_buf = entry->filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1520
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1521 row_str = g_strdup_printf("%d", row++);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1522
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1523 gtk_list_store_append(GTK_LIST_STORE(store), &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1524 gtk_list_store_set(GTK_LIST_STORE(store), &iter,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1525 0, row_str, 1, desc_buf, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1526
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1527 g_free(row_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1528 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1529
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1530 gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1531 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(user_data));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1532 gtk_tree_selection_select_iter(selection, &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1533 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1534
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1535 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1536 mainwin_jump_to_file_edit_cb(GtkEntry * entry, gpointer user_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1537 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1538 GtkTreeView *treeview = GTK_TREE_VIEW(user_data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1539 GtkTreeSelection *selection;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1540 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1541
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1542 GtkListStore *store;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1543
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1544 gint song_index = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1545 gchar **words;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1546 GList *playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1547
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1548 gboolean match = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1549
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1550 /* Chop the key string into ' '-separated key words */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1551 words = g_strsplit(gtk_entry_get_text(entry), " ", 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1552
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1553 /* FIXME: Remove the connected signals before clearing
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1554 * (row-selected will still eventually arrive once) */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1555 store = GTK_LIST_STORE(gtk_tree_view_get_model(treeview));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1556 gtk_list_store_clear(store);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1557
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1558 PLAYLIST_LOCK();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1559
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1560 for (playlist = playlist_get(); playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1561 playlist = g_list_next(playlist)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1562
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1563 PlaylistEntry *entry = PLAYLIST_ENTRY(playlist->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1564 const gchar *title, *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1565
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1566 title = entry->title;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1567 if (!title) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1568 filename = entry->filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1569
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1570 if (strchr(filename, '/'))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1571 title = strrchr(filename, '/') + 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1572 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1573 title = filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1574 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1575
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1576 /* Compare the key words to the string - if all the words
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1577 match, add to the ListStore */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1578
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1579 /*
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1580 * FIXME: The search string should be adapted to the
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1581 * current display setting, e.g. if the user has set it to
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1582 * "%p - %t" then build the match string like that too, or
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1583 * even better, search for each of the tags seperatly.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1584 *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1585 * In any case the string to match should _never_ contain
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1586 * something the user can't actually see in the playlist.
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1587 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1588 if (words[0])
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1589 match = mainwin_jump_to_file_match(title, words);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1590 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1591 match = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1592
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1593 if (match) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1594 gchar *song_index_str = g_strdup_printf("%d", song_index + 1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1595 gtk_list_store_append(store, &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1596 gtk_list_store_set(store, &iter, 0, song_index_str, 1, title, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1597 g_free(song_index_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1598 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1599
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1600 song_index++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1601 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1602
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1603 PLAYLIST_UNLOCK();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1604
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1605 g_strfreev(words);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1606
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1607 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1608 selection = gtk_tree_view_get_selection(treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1609 gtk_tree_selection_select_iter(selection, &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1610 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1611 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1612
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1613 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1614 mainwin_jump_to_file(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1615 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1616 GtkWidget *scrollwin;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1617 GtkWidget *vbox, *bbox, *sep;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1618 GtkWidget *jump, *queue, *cancel;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1619 GtkWidget *rescan, *edit;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1620 GtkWidget *search_label, *hbox;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1621 GList *playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1622 gchar *desc_buf;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1623 gchar *row_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1624 gint row;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1625
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1626 GtkWidget *treeview;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1627 GtkListStore *jtf_store;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1628
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1629 GtkTreeIter iter;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1630 GtkCellRenderer *renderer;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1631 GtkTreeViewColumn *column;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1632
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1633 if (mainwin_jtf) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1634 gtk_window_present(GTK_WINDOW(mainwin_jtf));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1635 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1636 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1637
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1638 mainwin_jtf = gtk_window_new(GTK_WINDOW_TOPLEVEL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1639 gtk_window_set_type_hint(GTK_WINDOW(mainwin_jtf),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1640 GDK_WINDOW_TYPE_HINT_DIALOG);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1641
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1642 gtk_window_set_title(GTK_WINDOW(mainwin_jtf), _("Jump to Track"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1643
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1644 gtk_window_set_position(GTK_WINDOW(mainwin_jtf), GTK_WIN_POS_CENTER);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1645 g_signal_connect(mainwin_jtf, "destroy",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1646 G_CALLBACK(gtk_widget_destroyed), &mainwin_jtf);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1647
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1648 gtk_container_border_width(GTK_CONTAINER(mainwin_jtf), 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1649 gtk_window_set_default_size(GTK_WINDOW(mainwin_jtf), 550, 350);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1650
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1651 vbox = gtk_vbox_new(FALSE, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1652 gtk_container_add(GTK_CONTAINER(mainwin_jtf), vbox);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1653
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1654 jtf_store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1655 treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(jtf_store));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1656 g_object_unref(jtf_store);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1657
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1658 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1659
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1660 column = gtk_tree_view_column_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1661 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1662 gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1663
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1664 renderer = gtk_cell_renderer_text_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1665 gtk_tree_view_column_pack_start(column, renderer, FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1666 gtk_tree_view_column_set_attributes(column, renderer, "text", 0, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1667 gtk_tree_view_column_set_spacing(column, 4);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1668
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1669 renderer = gtk_cell_renderer_text_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1670 gtk_tree_view_column_pack_start(column, renderer, FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1671 gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1672 gtk_tree_view_column_set_spacing(column, 4);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1673 gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1674
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1675 g_signal_connect(treeview, "row-activated",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1676 G_CALLBACK(mainwin_jump_to_file_jump), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1677
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1678 hbox = gtk_hbox_new(FALSE, 3);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1679 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1680
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1681 search_label = gtk_label_new(_("Filter: "));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1682 gtk_label_set_markup_with_mnemonic(GTK_LABEL(search_label), "_Filter:");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1683 gtk_box_pack_start(GTK_BOX(hbox), search_label, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1684
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1685 edit = gtk_entry_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1686 gtk_entry_set_editable(GTK_ENTRY(edit), TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1687 gtk_label_set_mnemonic_widget(GTK_LABEL(search_label), edit);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1688 g_signal_connect(edit, "changed",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1689 G_CALLBACK(mainwin_jump_to_file_edit_cb), treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1690
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1691 g_signal_connect(mainwin_jtf, "key_press_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1692 G_CALLBACK(mainwin_jump_to_file_keypress_cb), treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1693
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1694 gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 3);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1695
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1696 scrollwin = gtk_scrolled_window_new(NULL, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1697 gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1698 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1699 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1700 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1701 GTK_SHADOW_IN);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1702 gtk_box_pack_start(GTK_BOX(vbox), scrollwin, TRUE, TRUE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1703
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1704 sep = gtk_hseparator_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1705 gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1706
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1707 bbox = gtk_hbutton_box_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1708 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1709 gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1710 gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1711
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1712 queue = gtk_button_new_with_mnemonic(_("_Queue"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1713 gtk_box_pack_start(GTK_BOX(bbox), queue, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1714 GTK_WIDGET_SET_FLAGS(queue, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1715 g_signal_connect(queue, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1716 G_CALLBACK(mainwin_jump_to_file_queue_cb),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1717 treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1718 g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1719 G_CALLBACK(mainwin_jump_to_file_selection_changed_cb),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1720 queue);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1721
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1722 rescan = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1723 gtk_box_pack_start(GTK_BOX(bbox), rescan, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1724 g_signal_connect(rescan, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1725 G_CALLBACK(mainwin_update_jtf), treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1726 GTK_WIDGET_SET_FLAGS(rescan, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1727 gtk_widget_grab_default(rescan);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1728
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1729 jump = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1730 gtk_box_pack_start(GTK_BOX(bbox), jump, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1731
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1732 g_signal_connect_swapped(jump, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1733 G_CALLBACK(mainwin_jump_to_file_jump_cb),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1734 treeview);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1735
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1736 GTK_WIDGET_SET_FLAGS(jump, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1737 gtk_widget_grab_default(jump);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1738
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1739 cancel = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1740 gtk_box_pack_start(GTK_BOX(bbox), cancel, FALSE, FALSE, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1741 g_signal_connect_swapped(cancel, "clicked",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1742 G_CALLBACK(gtk_widget_destroy),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1743 mainwin_jtf);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1744 GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1745
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1746 gtk_list_store_clear(jtf_store);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1747
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1748 row = 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1749
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1750 PLAYLIST_LOCK();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1751
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1752 for (playlist = playlist_get(); playlist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1753 playlist = g_list_next(playlist)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1754
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1755 PlaylistEntry *entry = PLAYLIST_ENTRY(playlist->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1756
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1757 if (entry->title)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1758 desc_buf = entry->title;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1759 else if (strchr(entry->filename, '/'))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1760 desc_buf = strrchr(entry->filename, '/') + 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1761 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1762 desc_buf = entry->filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1763
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1764 row_str = g_strdup_printf("%d", row++);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1765
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1766 gtk_list_store_append(GTK_LIST_STORE(jtf_store), &iter);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1767 gtk_list_store_set(GTK_LIST_STORE(jtf_store), &iter,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1768 0, row_str, 1, desc_buf, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1769
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1770 g_free(row_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1771 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1772
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1773 PLAYLIST_UNLOCK();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1774
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1775 gtk_widget_show_all(mainwin_jtf);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1776 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1777
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1778 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1779 mainwin_configure(GtkWidget * window,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1780 GdkEventConfigure * event,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1781 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1782 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1783 if (!GTK_WIDGET_VISIBLE(window))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1784 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1785
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1786 if (cfg.show_wm_decorations)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1787 gdk_window_get_root_origin(window->window,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1788 &cfg.player_x, &cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1789 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1790 gdk_window_get_deskrelative_origin(window->window,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1791 &cfg.player_x, &cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1792 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1793 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1794
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1795 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1796 mainwin_set_back_pixmap(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1797 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1798 gdk_window_set_back_pixmap(mainwin->window, mainwin_bg, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1799 gdk_window_clear(mainwin->window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1800 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1801
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1802 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1803 mainwin_drag_data_received(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1804 GdkDragContext * context,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1805 gint x,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1806 gint y,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1807 GtkSelectionData * selection_data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1808 guint info,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1809 guint time,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1810 gpointer user_data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1811 {
289
8eab873f20a8 [svn] possible DND fix for konqueror. (cleaned up version of fixed version of my cleanups...
nenolod
parents: 284
diff changeset
1812 gchar **iter, **sourcelist, *path;
274
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1813 gchar *decoded;
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1814 gboolean not_font = FALSE;
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1815
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1816 if (!selection_data->data)
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1817 {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1818 g_warning("DND data string is NULL");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1819 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1820 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1821
289
8eab873f20a8 [svn] possible DND fix for konqueror. (cleaned up version of fixed version of my cleanups...
nenolod
parents: 284
diff changeset
1822 iter = sourcelist = g_strsplit((gchar *)(selection_data->data),"\r\n",-1);
8eab873f20a8 [svn] possible DND fix for konqueror. (cleaned up version of fixed version of my cleanups...
nenolod
parents: 284
diff changeset
1823
358
70075730e187 [svn] Checking path for NULL wont work in the for() loop, so we have to check elsewhere.
nenolod
parents: 331
diff changeset
1824 for (path = *sourcelist; *path; path = *(++sourcelist))
274
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1825 {
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1826 if (str_has_prefix_nocase(path, "fonts:///"))
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1827 {
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1828 path += 8;
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1829
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1830 /* plain, since we already stripped the first URI part */
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1831 decoded = xmms_urldecode_plain(path);
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1832
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1833 /* Get the old font's size, and add it to the dropped
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1834 * font's name
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1835 */
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1836 cfg.playlist_font = g_strconcat(decoded + 1,
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1837 strrchr(cfg.playlist_font, ' '),
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1838 NULL);
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1839 playlist_list_set_font(cfg.playlist_font);
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1840 playlistwin_update_list();
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1841
274
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1842 g_free(decoded);
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1843 return;
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1844 }
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1845
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1846 if (str_has_prefix_nocase(path,"file:///"))
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1847 {
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1848 if (not_font == FALSE)
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1849 {
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1850 playlist_clear();
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1851 not_font = TRUE;
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1852 }
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1853 playlist_add_url(path);
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1854 }
358
70075730e187 [svn] Checking path for NULL wont work in the for() loop, so we have to check elsewhere.
nenolod
parents: 331
diff changeset
1855
70075730e187 [svn] Checking path for NULL wont work in the for() loop, so we have to check elsewhere.
nenolod
parents: 331
diff changeset
1856 if (path == NULL) /* damn konqueror */
70075730e187 [svn] Checking path for NULL wont work in the for() loop, so we have to check elsewhere.
nenolod
parents: 331
diff changeset
1857 break;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1858 }
274
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1859
289
8eab873f20a8 [svn] possible DND fix for konqueror. (cleaned up version of fixed version of my cleanups...
nenolod
parents: 284
diff changeset
1860 g_strfreev(iter);
274
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1861
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1862 if (not_font)
f6edd411a320 [svn] Merge a cleaned up version of the patch included with #383. Audacious
nenolod
parents: 234
diff changeset
1863 bmp_playback_initiate();
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1864 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1865
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1866 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1867 dirbrowser_add_dir(const gchar * dir)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1868 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1869 g_free(cfg.filesel_path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1870 cfg.filesel_path = g_strdup(dir);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1871 playlist_add_dir(dir);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1872 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1873
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1874 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1875 dirbrowser_on_response(GtkFileChooserDialog * dialog,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1876 gint result,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1877 gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1878 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1879
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1880 gchar *pathname;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1881
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1882 // gtk_widget_hide(GTK_WIDGET(dialog));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1883
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1884 switch (result) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1885 case GTK_RESPONSE_ACCEPT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1886 pathname = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1887 dirbrowser_add_dir(pathname);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1888 g_free(pathname);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1889 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1890
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1891 case GTK_RESPONSE_CLOSE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1892 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1893 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1894
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1895 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1896
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1897
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1898 static GtkWidget *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1899 dirbrowser_new(const gchar * path)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1900 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1901 GtkWidget *dialog;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1902
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1903 dialog = gtk_file_chooser_dialog_new(_("Add Folders"),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1904 GTK_WINDOW(mainwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1905 GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1906 GTK_STOCK_ADD, GTK_RESPONSE_OK,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1907 GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1908 NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1909 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1910
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1911 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1912 path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1913 g_signal_connect(dialog, "response",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1914 G_CALLBACK(dirbrowser_on_response),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1915 NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1916
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1917 return dialog;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1918 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1919
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1920 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1921 on_add_url_add_clicked(GtkWidget * widget,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1922 GtkWidget * entry)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1923 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1924 const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1925 if (text && *text)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1926 playlist_add_url(text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1927 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1928
86
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1929 static void
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1930 on_add_url_ok_clicked(GtkWidget * widget,
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1931 GtkWidget * entry)
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1932 {
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1933 const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1934 if (text && *text)
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1935 {
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1936 playlist_clear();
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1937 playlist_add_url(text);
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1938 bmp_playback_initiate();
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1939 }
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1940 }
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1941
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1942 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1943 mainwin_show_add_url_window(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1944 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1945 static GtkWidget *url_window = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1946
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1947 if (!url_window) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1948 url_window =
86
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1949 util_add_url_dialog_new(_("Enter location to play:"),
2d8234ea45e8 [svn] - Add a few things to the main menu.
nenolod
parents: 85
diff changeset
1950 G_CALLBACK(on_add_url_ok_clicked),
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1951 G_CALLBACK(on_add_url_add_clicked));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1952 gtk_window_set_transient_for(GTK_WINDOW(url_window),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1953 GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1954 g_signal_connect(url_window, "destroy",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1955 G_CALLBACK(gtk_widget_destroyed),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1956 &url_window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1957 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1958
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1959 gtk_window_present(GTK_WINDOW(url_window));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1960 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1961
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1962 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1963 check_set(GtkItemFactory * factory,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1964 const gchar * path,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1965 gboolean active)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1966 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1967 GtkWidget *item = gtk_item_factory_get_widget(factory, path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1968 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), active);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1969 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1970
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1971 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1972 mainwin_eject_pushed(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1973 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1974 util_run_filebrowser(PLAY_BUTTON);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1975 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1976
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1977 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1978 mainwin_play_pushed(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1979 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1980 if (bmp_playback_get_paused()) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1981 bmp_playback_pause();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1982 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1983 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1984
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1985 if (playlist_get_length())
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1986 bmp_playback_initiate();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1987 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1988 mainwin_eject_pushed();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1989 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1990
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1991 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1992 mainwin_stop_pushed(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1993 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1994 mainwin_clear_song_info();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1995 bmp_playback_stop();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1996 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1997
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1998 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
1999 mainwin_shuffle_pushed(gboolean toggled)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2000 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2001 check_set(mainwin_play_menu, "/Shuffle", toggled);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2002 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2003
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2004 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2005 mainwin_repeat_pushed(gboolean toggled)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2006 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2007 check_set(mainwin_play_menu, "/Repeat", toggled);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2008 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2009
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2010 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2011 mainwin_pl_pushed(gboolean toggled)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2012 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2013 if (toggled)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2014 playlistwin_show();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2015 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2016 playlistwin_hide();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2017 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2018
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2019 gint
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2020 mainwin_spos_frame_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2021 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2022 if (mainwin_sposition) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2023 if (pos < 6)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2024 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2025 17;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2026 else if (pos < 9)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2027 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2028 20;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2029 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2030 mainwin_sposition->hs_knob_nx = mainwin_sposition->hs_knob_px =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2031 23;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2032 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2033 return 1;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2034 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2035
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2036 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2037 mainwin_spos_motion_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2038 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2039 gint time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2040 gchar *time_msg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2041
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2042 pos--;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2043
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2044 time = ((playlist_get_current_length() / 1000) * pos) / 12;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2045
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2046 if (cfg.timer_mode == TIMER_REMAINING) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2047 time = (playlist_get_current_length() / 1000) - time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2048 time_msg = g_strdup_printf("-%2.2d", time / 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2049 textbox_set_text(mainwin_stime_min, time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2050 g_free(time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2051 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2052 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2053 time_msg = g_strdup_printf(" %2.2d", time / 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2054 textbox_set_text(mainwin_stime_min, time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2055 g_free(time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2056 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2057
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2058 time_msg = g_strdup_printf("%2.2d", time % 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2059 textbox_set_text(mainwin_stime_sec, time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2060 g_free(time_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2061 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2062
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2063 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2064 mainwin_spos_release_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2065 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2066 bmp_playback_seek(((playlist_get_current_length() / 1000) *
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2067 (pos - 1)) / 12);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2068 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2069
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2070 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2071 mainwin_position_motion_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2072 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2073 gint length, time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2074 gchar *seek_msg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2075
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2076 length = playlist_get_current_length() / 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2077 time = (length * pos) / 219;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2078 seek_msg = g_strdup_printf(_("SEEK TO: %d:%-2.2d/%d:%-2.2d (%d%%)"),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2079 time / 60, time % 60,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2080 length / 60, length % 60,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2081 (length != 0) ? (time * 100) / length : 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2082 mainwin_lock_info_text(seek_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2083 g_free(seek_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2084 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2085
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2086 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2087 mainwin_position_release_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2088 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2089 gint length, time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2090
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2091 length = playlist_get_current_length() / 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2092 time = (length * pos) / 219;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2093 bmp_playback_seek(time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2094 mainwin_release_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2095 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2096
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2097 gint
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2098 mainwin_volume_frame_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2099 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2100 return (gint) rint((pos / 52.0) * 28);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2101 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2102
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2103 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2104 mainwin_adjust_volume_motion(gint v)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2105 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2106 gchar *volume_msg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2107
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2108 setting_volume = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2109
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2110 volume_msg = g_strdup_printf(_("VOLUME: %d%%"), v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2111 mainwin_lock_info_text(volume_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2112 g_free(volume_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2113
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2114 if (balance < 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2115 input_set_volume(v, (v * (100 - abs(balance))) / 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2116 else if (balance > 0)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2117 input_set_volume((v * (100 - abs(balance))) / 100, v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2118 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2119 input_set_volume(v, v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2120 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2121
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2122 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2123 mainwin_adjust_volume_release(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2124 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2125 mainwin_release_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2126 setting_volume = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2127 read_volume(VOLUME_ADJUSTED);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2128 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2129
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2130 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2131 mainwin_adjust_balance_motion(gint b)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2132 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2133 gchar *balance_msg;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2134 gint v, pvl, pvr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2135
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2136 setting_volume = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2137 balance = b;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2138 input_get_volume(&pvl, &pvr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2139 v = MAX(pvl, pvr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2140 if (b < 0) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2141 balance_msg = g_strdup_printf(_("BALANCE: %d%% LEFT"), -b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2142 input_set_volume(v, (gint) rint(((100 + b) / 100.0) * v));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2143 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2144 else if (b == 0) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2145 balance_msg = g_strdup_printf(_("BALANCE: CENTER"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2146 input_set_volume(v, v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2147 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2148 else { /* b > 0 */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2149 balance_msg = g_strdup_printf(_("BALANCE: %d%% RIGHT"), b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2150 input_set_volume((gint) rint(((100 - b) / 100.0) * v), v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2151 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2152 mainwin_lock_info_text(balance_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2153 g_free(balance_msg);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2154 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2155
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2156 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2157 mainwin_adjust_balance_release(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2158 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2159 mainwin_release_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2160 setting_volume = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2161 read_volume(VOLUME_ADJUSTED);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2162 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2163
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2164 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2165 mainwin_set_volume_slider(gint percent)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2166 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2167 hslider_set_position(mainwin_volume, (gint) rint((percent * 51) / 100.0));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2168 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2169
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2170 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2171 mainwin_set_balance_slider(gint percent)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2172 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2173 hslider_set_position(mainwin_balance,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2174 (gint) rint(((percent * 12) / 100.0) + 12));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2175 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2176
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2177 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2178 mainwin_volume_motion_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2179 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2180 gint vol = (pos * 100) / 51;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2181 mainwin_adjust_volume_motion(vol);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2182 equalizerwin_set_volume_slider(vol);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2183 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2184
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2185 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2186 mainwin_volume_release_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2187 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2188 mainwin_adjust_volume_release();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2189 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2190
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2191 gint
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2192 mainwin_balance_frame_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2193 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2194 return ((abs(pos - 12) * 28) / 13);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2195 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2196
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2197 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2198 mainwin_balance_motion_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2199 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2200 gint bal = ((pos - 12) * 100) / 12;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2201 mainwin_adjust_balance_motion(bal);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2202 equalizerwin_set_balance_slider(bal);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2203 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2204
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2205 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2206 mainwin_balance_release_cb(gint pos)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2207 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2208 mainwin_adjust_volume_release();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2209 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2210
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2211 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2212 mainwin_set_volume_diff(gint diff)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2213 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2214 gint vl, vr, vol;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2215
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2216 input_get_volume(&vl, &vr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2217 vol = MAX(vl, vr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2218 vol = CLAMP(vol + diff, 0, 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2219
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2220 mainwin_adjust_volume_motion(vol);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2221 setting_volume = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2222 mainwin_set_volume_slider(vol);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2223 equalizerwin_set_volume_slider(vol);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2224 read_volume(VOLUME_SET);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2225 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2226
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2227 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2228 mainwin_set_balance_diff(gint diff)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2229 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2230 gint b;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2231 b = CLAMP(balance + diff, -100, 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2232 mainwin_adjust_balance_motion(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2233 setting_volume = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2234 mainwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2235 equalizerwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2236 read_volume(VOLUME_SET);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2237 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2238
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2239 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2240 mainwin_show(gboolean show)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2241 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2242 if (show)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2243 mainwin_real_show();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2244 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2245 mainwin_real_hide();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2246 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2247
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2248 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2249 mainwin_real_show(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2250 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2251 cfg.player_visible = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2252
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2253 if (cfg.player_shaded)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2254 vis_clear_data(active_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2255
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2256 mainwin_vis_set_active_vis(MAINWIN_VIS_ACTIVE_MAINWIN);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2257 mainwin_set_shape_mask();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2258
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2259 if (cfg.show_wm_decorations) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2260 if (!pposition_broken && cfg.player_x != -1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2261 && cfg.save_window_position)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2262 gtk_window_move(GTK_WINDOW(mainwin), cfg.player_x, cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2263
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2264 gtk_widget_show(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2265
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2266 if (pposition_broken && cfg.player_x != -1
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2267 && cfg.save_window_position)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2268 gtk_window_move(GTK_WINDOW(mainwin), cfg.player_x, cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2269
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2270 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2271 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2272
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2273 gtk_widget_show_all(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2274
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2275 if (!nullmask)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2276 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2277
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2278 g_object_unref(nullmask);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2279 nullmask = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2280
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2281 gdk_window_set_hints(mainwin->window, 0, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2282 PLAYER_WIDTH, PLAYER_HEIGHT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2283 PLAYER_WIDTH, PLAYER_HEIGHT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2284 GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2285 gtk_window_resize(GTK_WINDOW(mainwin), PLAYER_WIDTH, PLAYER_HEIGHT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2286
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2287 if (cfg.player_x != -1 && cfg.player_y != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2288 gtk_window_move(GTK_WINDOW(mainwin), cfg.player_x, cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2289
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2290 draw_main_window(TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2291
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2292 gtk_window_present(GTK_WINDOW(mainwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2293 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2294
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2295 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2296 mainwin_real_hide(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2297 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2298 GdkGC *gc;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2299 GdkColor pattern;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2300
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2301 if (cfg.player_shaded) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2302 svis_clear_data(mainwin_svis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2303 vis_clear_data(playlistwin_vis);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2304 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2305
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2306 if (!cfg.show_wm_decorations) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2307 nullmask = gdk_pixmap_new(mainwin->window, 20, 20, 1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2308 gc = gdk_gc_new(nullmask);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2309 pattern.pixel = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2310 gdk_gc_set_foreground(gc, &pattern);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2311 gdk_draw_rectangle(nullmask, gc, TRUE, 0, 0, 20, 20);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2312 gdk_gc_destroy(gc);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2313 gtk_widget_shape_combine_mask(mainwin, nullmask, 0, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2314
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2315 gdk_window_set_hints(mainwin->window, 0, 0, 0, 0, 0, 0,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2316 GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2317 gdk_window_resize(mainwin->window, 0, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2318 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2319
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2320 gtk_widget_hide(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2321
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2322 mainwin_vis_set_active_vis(MAINWIN_VIS_ACTIVE_PLAYLISTWIN);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2323 cfg.player_visible = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2324 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2325
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2326 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2327 mainwin_songname_menu_callback(gpointer data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2328 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2329 GtkWidget * item)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2330 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2331 GtkCheckMenuItem *check;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2332
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2333 switch (action) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2334 case MAINWIN_SONGNAME_FILEINFO:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2335 playlist_fileinfo_current();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2336 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2337 case MAINWIN_SONGNAME_JTF:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2338 mainwin_jump_to_file();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2339 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2340 case MAINWIN_SONGNAME_JTT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2341 mainwin_jump_to_time();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2342 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2343 case MAINWIN_SONGNAME_SCROLL:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2344 check = GTK_CHECK_MENU_ITEM(item);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2345 mainwin_set_title_scroll(gtk_check_menu_item_get_active(check));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2346 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2347 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2348 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2349
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2350 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2351 mainwin_play_menu_callback(gpointer data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2352 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2353 GtkWidget * item)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2354 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2355 GtkCheckMenuItem *check;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2356
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2357 switch (action) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2358 case MAINWIN_OPT_SHUFFLE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2359 check = GTK_CHECK_MENU_ITEM(item);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2360 cfg.shuffle = gtk_check_menu_item_get_active(check);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2361 playlist_set_shuffle(cfg.shuffle);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2362 tbutton_set_toggled(mainwin_shuffle, cfg.shuffle);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2363 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2364 case MAINWIN_OPT_REPEAT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2365 check = GTK_CHECK_MENU_ITEM(item);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2366 cfg.repeat = gtk_check_menu_item_get_active(check);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2367 tbutton_set_toggled(mainwin_repeat, cfg.repeat);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2368 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2369 case MAINWIN_OPT_NPA:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2370 check = GTK_CHECK_MENU_ITEM(item);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2371 cfg.no_playlist_advance = gtk_check_menu_item_get_active(check);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2372 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2373 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2374 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2375
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2376
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2377 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2378 mainwin_view_menu_callback(gpointer data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2379 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2380 GtkWidget * item)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2381 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2382 switch (action) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2383 case MAINWIN_OPT_TELAPSED:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2384 set_timer_mode_menu_cb(TIMER_ELAPSED);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2385 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2386 case MAINWIN_OPT_TREMAINING:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2387 set_timer_mode_menu_cb(TIMER_REMAINING);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2388 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2389 case MAINWIN_OPT_ALWAYS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2390 mainwin_menurow->mr_always_selected = GTK_CHECK_MENU_ITEM(item)->active;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2391 cfg.always_on_top = mainwin_menurow->mr_always_selected;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2392 widget_draw(WIDGET(mainwin_menurow));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2393 hint_set_always(cfg.always_on_top);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2394 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2395 case MAINWIN_OPT_STICKY:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2396 cfg.sticky = GTK_CHECK_MENU_ITEM(item)->active;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2397 hint_set_sticky(cfg.sticky);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2398 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2399 case MAINWIN_OPT_WS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2400 mainwin_set_shade_menu_cb(GTK_CHECK_MENU_ITEM(item)->active);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2401 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2402 case MAINWIN_OPT_PWS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2403 playlistwin_set_shade(GTK_CHECK_MENU_ITEM(item)->active);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2404 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2405 case MAINWIN_OPT_EQWS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2406 equalizerwin_set_shade_menu_cb(GTK_CHECK_MENU_ITEM(item)->active);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2407 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2408 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2409 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2410
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2411 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2412 mainwin_vis_menu_callback(gpointer data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2413 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2414 GtkWidget * item)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2415 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2416 switch (action) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2417 case MAINWIN_VIS_ANALYZER:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2418 case MAINWIN_VIS_SCOPE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2419 case MAINWIN_VIS_OFF:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2420 mainwin_vis_set_type_menu_cb(action - MAINWIN_VIS_ANALYZER);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2421 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2422 case MAINWIN_VIS_ANALYZER_NORMAL:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2423 case MAINWIN_VIS_ANALYZER_FIRE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2424 case MAINWIN_VIS_ANALYZER_VLINES:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2425 mainwin_vis_set_analyzer_mode(action - MAINWIN_VIS_ANALYZER_NORMAL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2426 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2427 case MAINWIN_VIS_ANALYZER_LINES:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2428 case MAINWIN_VIS_ANALYZER_BARS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2429 mainwin_vis_set_analyzer_type(action - MAINWIN_VIS_ANALYZER_LINES);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2430 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2431 case MAINWIN_VIS_ANALYZER_PEAKS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2432 cfg.analyzer_peaks = GTK_CHECK_MENU_ITEM(item)->active;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2433 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2434 case MAINWIN_VIS_SCOPE_DOT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2435 case MAINWIN_VIS_SCOPE_LINE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2436 case MAINWIN_VIS_SCOPE_SOLID:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2437 cfg.scope_mode = action - MAINWIN_VIS_SCOPE_DOT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2438 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2439 case MAINWIN_VIS_VU_NORMAL:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2440 case MAINWIN_VIS_VU_SMOOTH:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2441 cfg.vu_mode = action - MAINWIN_VIS_VU_NORMAL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2442 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2443 case MAINWIN_VIS_REFRESH_FULL:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2444 case MAINWIN_VIS_REFRESH_HALF:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2445 case MAINWIN_VIS_REFRESH_QUARTER:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2446 case MAINWIN_VIS_REFRESH_EIGHTH:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2447 mainwin_vis_set_refresh(action - MAINWIN_VIS_REFRESH_FULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2448 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2449 case MAINWIN_VIS_AFALLOFF_SLOWEST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2450 case MAINWIN_VIS_AFALLOFF_SLOW:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2451 case MAINWIN_VIS_AFALLOFF_MEDIUM:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2452 case MAINWIN_VIS_AFALLOFF_FAST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2453 case MAINWIN_VIS_AFALLOFF_FASTEST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2454 mainwin_vis_set_afalloff(action - MAINWIN_VIS_AFALLOFF_SLOWEST);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2455 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2456 case MAINWIN_VIS_PFALLOFF_SLOWEST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2457 case MAINWIN_VIS_PFALLOFF_SLOW:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2458 case MAINWIN_VIS_PFALLOFF_MEDIUM:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2459 case MAINWIN_VIS_PFALLOFF_FAST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2460 case MAINWIN_VIS_PFALLOFF_FASTEST:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2461 mainwin_vis_set_pfalloff(action - MAINWIN_VIS_PFALLOFF_SLOWEST);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2462 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2463 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2464 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2465
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2466 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2467 mainwin_general_menu_callback(gpointer data,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2468 guint action,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2469 GtkWidget * item)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2470 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2471 switch (action) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2472 case MAINWIN_GENERAL_PREFS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2473 show_prefs_window();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2474 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2475 case MAINWIN_GENERAL_ABOUT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2476 show_about_window();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2477 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2478 case MAINWIN_GENERAL_PLAYFILE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2479 util_run_filebrowser(NO_PLAY_BUTTON);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2480 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2481 case MAINWIN_GENERAL_PLAYCD:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2482 play_medium();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2483 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2484 case MAINWIN_GENERAL_ADDCD:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2485 add_medium();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2486 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2487 case MAINWIN_GENERAL_PLAYLOCATION:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2488 mainwin_show_add_url_window();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2489 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2490 case MAINWIN_GENERAL_FILEINFO:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2491 playlist_fileinfo_current();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2492 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2493 case MAINWIN_GENERAL_FOCUSPLWIN:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2494 gtk_window_present(GTK_WINDOW(playlistwin));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2495 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2496 case MAINWIN_GENERAL_SHOWPLWIN:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2497 if (GTK_CHECK_MENU_ITEM(item)->active)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2498 playlistwin_show();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2499 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2500 playlistwin_hide();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2501 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2502 case MAINWIN_GENERAL_SHOWEQWIN:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2503 if (GTK_CHECK_MENU_ITEM(item)->active)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2504 equalizerwin_real_show();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2505 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2506 equalizerwin_real_hide();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2507 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2508 case MAINWIN_GENERAL_PREV:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2509 playlist_prev();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2510 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2511 case MAINWIN_GENERAL_PLAY:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2512 mainwin_play_pushed();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2513 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2514 case MAINWIN_GENERAL_PAUSE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2515 bmp_playback_pause();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2516 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2517 case MAINWIN_GENERAL_STOP:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2518 mainwin_stop_pushed();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2519 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2520 case MAINWIN_GENERAL_NEXT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2521 playlist_next();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2522 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2523 case MAINWIN_GENERAL_BACK5SEC:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2524 if (bmp_playback_get_playing()
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2525 && playlist_get_current_length() != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2526 bmp_playback_seek_relative(-5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2527 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2528 case MAINWIN_GENERAL_FWD5SEC:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2529 if (bmp_playback_get_playing()
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2530 && playlist_get_current_length() != -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2531 bmp_playback_seek_relative(5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2532 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2533 case MAINWIN_GENERAL_START:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2534 playlist_set_position(0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2535 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2536 case MAINWIN_GENERAL_JTT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2537 mainwin_jump_to_time();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2538 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2539 case MAINWIN_GENERAL_JTF:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2540 mainwin_jump_to_file();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2541 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2542 case MAINWIN_GENERAL_EXIT:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2543 mainwin_quit_cb();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2544 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2545 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2546 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2547
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2548 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2549 mainwin_mr_change(MenuRowItem i)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2550 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2551 switch (i) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2552 case MENUROW_NONE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2553 mainwin_set_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2554 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2555 case MENUROW_OPTIONS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2556 mainwin_lock_info_text(_("OPTIONS MENU"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2557 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2558 case MENUROW_ALWAYS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2559 if (!hint_always_on_top_available()) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2560 if (mainwin_menurow->mr_always_selected)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2561 mainwin_lock_info_text(_("DISABLE ALWAYS ON TOP (N/A)"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2562 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2563 mainwin_lock_info_text(_("ENABLE ALWAYS ON TOP (N/A)"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2564 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2565 else if (mainwin_menurow->mr_doublesize_selected)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2566 mainwin_lock_info_text(_("DISABLE ALWAYS ON TOP"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2567 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2568 mainwin_lock_info_text(_("ENABLE ALWAYS ON TOP"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2569 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2570 case MENUROW_FILEINFOBOX:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2571 mainwin_lock_info_text(_("FILE INFO BOX"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2572 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2573 case MENUROW_DOUBLESIZE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2574 mainwin_lock_info_text(_("** DOUBLESIZE HAS BEEN REMOVED **"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2575 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2576 case MENUROW_VISUALIZATION:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2577 mainwin_lock_info_text(_("VISUALIZATION MENU"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2578 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2579 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2580 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2581
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2582 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2583 mainwin_mr_release(MenuRowItem i)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2584 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2585 GdkModifierType modmask;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2586 GtkWidget *widget;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2587 gint x, y;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2588
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2589 switch (i) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2590 case MENUROW_OPTIONS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2591 gdk_window_get_pointer(NULL, &x, &y, &modmask);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2592 util_item_factory_popup(mainwin_view_menu, x, y, 1,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2593 GDK_CURRENT_TIME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2594 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2595 case MENUROW_ALWAYS:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2596 widget =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2597 gtk_item_factory_get_widget(mainwin_view_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2598 "/Always On Top");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2599 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widget),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2600 mainwin_menurow->mr_always_selected);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2601 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2602 case MENUROW_FILEINFOBOX:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2603 playlist_fileinfo_current();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2604 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2605 case MENUROW_DOUBLESIZE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2606 /* double size removed, do nothing */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2607 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2608 case MENUROW_VISUALIZATION:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2609 gdk_window_get_pointer(NULL, &x, &y, &modmask);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2610 util_item_factory_popup(mainwin_vis_menu, x, y, 1, GDK_CURRENT_TIME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2611 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2612 case MENUROW_NONE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2613 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2614 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2615 mainwin_release_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2616 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2617
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2618 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2619 run_no_audiocd_dialog(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2620 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2621 const gchar *markup =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2622 N_("<b><big>No playable CD found.</big></b>\n\n"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2623 "No CD inserted, or inserted CD is not an audio CD.\n");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2624
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2625 GtkWidget *dialog =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2626 gtk_message_dialog_new_with_markup(GTK_WINDOW(mainwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2627 GTK_DIALOG_DESTROY_WITH_PARENT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2628 GTK_MESSAGE_ERROR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2629 GTK_BUTTONS_OK,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2630 _(markup));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2631 gtk_dialog_run(GTK_DIALOG(dialog));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2632 gtk_widget_destroy(dialog);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2633 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2634
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2635 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2636 run_no_output_device_dialog(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2637 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2638 const gchar *markup =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2639 N_("<b><big>Couldn't open audio.</big></b>\n\n"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2640 "Please check that:\n"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2641 "1. You have the correct output plugin selected.\n"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2642 "2. No other programs is blocking the soundcard.\n"
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2643 "3. Your soundcard is configured properly.\n");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2644
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2645 GtkWidget *dialog =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2646 gtk_message_dialog_new_with_markup(GTK_WINDOW(mainwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2647 GTK_DIALOG_DESTROY_WITH_PARENT,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2648 GTK_MESSAGE_ERROR,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2649 GTK_BUTTONS_OK,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2650 _(markup));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2651 gtk_dialog_run(GTK_DIALOG(dialog));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2652 gtk_widget_destroy(dialog);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2653 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2654
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2655
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2656 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2657 add_medium(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2658 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2659 GList *list, *node;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2660 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2661 gchar *path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2662 ConfigDb *db;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2663
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2664 db = bmp_cfg_db_open();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2665
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2666 bmp_cfg_db_get_string(db, "CDDA", "directory", &path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2667 bmp_cfg_db_close(db);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2668
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2669 if (!(list = input_scan_dir(path))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2670 run_no_audiocd_dialog();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2671 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2672 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2673
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2674 for (node = list; node; node = g_list_next(node)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2675 filename = g_build_filename(path, node->data, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2676 playlist_add(filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2677 g_free(filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2678 g_free(node->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2679 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2680
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2681 g_free(path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2682 g_list_free(list);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2683
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2684 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2685
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2686 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2687 play_medium(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2688 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2689 GList *list, *node;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2690 gchar *filename;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2691 gchar *path;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2692 ConfigDb *db;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2693
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2694 db = bmp_cfg_db_open();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2695 bmp_cfg_db_get_string(db, "CDDA", "directory", &path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2696 bmp_cfg_db_close(db);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2697
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2698 if (!(list = input_scan_dir(path))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2699 run_no_audiocd_dialog();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2700 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2701 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2702
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2703 playlist_clear();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2704
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2705 for (node = list; node; node = g_list_next(node)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2706 filename = g_build_filename(path, node->data, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2707 playlist_add(filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2708 g_free(filename);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2709 g_free(node->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2710 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2711
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2712 g_free(path);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2713 g_list_free(list);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2714
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2715 playlist_set_position(0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2716 bmp_playback_initiate();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2717 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2718
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2719 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2720 read_volume(gint when)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2721 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2722 static gint pvl = 0, pvr = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2723 static gint times = VOLSET_DISP_TIMES;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2724 static gboolean changing = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2725
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2726 gint vl, vr, b, v;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2727
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2728 input_get_volume(&vl, &vr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2729
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2730 switch (when) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2731 case VOLSET_STARTUP:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2732 vl = CLAMP(vl, 0, 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2733 vr = CLAMP(vr, 0, 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2734 pvl = vl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2735 pvr = vr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2736 v = MAX(vl, vr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2737 if (vl > vr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2738 b = (gint) rint(((gdouble) vr / vl) * 100) - 100;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2739 else if (vl < vr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2740 b = 100 - (gint) rint(((gdouble) vl / vr) * 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2741 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2742 b = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2743
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2744 balance = b;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2745 mainwin_set_volume_slider(v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2746 equalizerwin_set_volume_slider(v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2747 mainwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2748 equalizerwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2749 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2750
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2751 case VOLSET_UPDATE:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2752 if (vl == -1 || vr == -1)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2753 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2754
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2755 if (setting_volume) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2756 pvl = vl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2757 pvr = vr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2758 return;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2759 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2760
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2761 if (pvr == vr && pvl == vl && changing) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2762 if (times < VOLSET_DISP_TIMES)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2763 times++;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2764 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2765 mainwin_release_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2766 changing = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2767 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2768 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2769 else if (pvr != vr || pvl != vl) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2770 gchar *tmp;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2771
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2772 v = MAX(vl, vr);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2773 if (vl > vr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2774 b = (gint) rint(((gdouble) vr / vl) * 100) - 100;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2775 else if (vl < vr)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2776 b = 100 - (gint) rint(((gdouble) vl / vr) * 100);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2777 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2778 b = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2779
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2780 if (MAX(vl, vr) != MAX(pvl, pvr))
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2781 tmp = g_strdup_printf(_("VOLUME: %d%%"), v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2782 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2783 if (vl > vr) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2784 tmp = g_strdup_printf(_("BALANCE: %d%% LEFT"), -b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2785 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2786 else if (vr == vl)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2787 tmp = g_strdup_printf(_("BALANCE: CENTER"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2788 else { /* (vl < vr) */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2789 tmp = g_strdup_printf(_("BALANCE: %d%% RIGHT"), b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2790 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2791 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2792 mainwin_lock_info_text(tmp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2793 g_free(tmp);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2794
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2795 pvr = vr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2796 pvl = vl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2797 times = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2798 changing = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2799 mainwin_set_volume_slider(v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2800 equalizerwin_set_volume_slider(v);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2801
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2802 /* Don't change the balance slider if the volume has been
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2803 * set to zero. The balance can be anything, and our best
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2804 * guess is what is was before. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2805 if (v > 0) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2806 balance = b;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2807 mainwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2808 equalizerwin_set_balance_slider(b);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2809 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2810 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2811 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2812
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2813 case VOLUME_ADJUSTED:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2814 pvl = vl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2815 pvr = vr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2816 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2817
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2818 case VOLUME_SET:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2819 times = 0;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2820 changing = TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2821 pvl = vl;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2822 pvr = vr;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2823 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2824 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2825 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2826
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2827
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2828 /* TODO: HAL! */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2829 gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2830 can_play_cd(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2831 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2832 GList *ilist;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2833
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2834 for (ilist = get_input_list(); ilist; ilist = g_list_next(ilist)) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2835 InputPlugin *ip = INPUT_PLUGIN(ilist->data);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2836
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2837 if (!g_ascii_strcasecmp(g_basename(ip->filename),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2838 PLUGIN_FILENAME("cdaudio"))) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2839 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2840 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2841 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2842
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2843 return FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2844 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2845
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2846
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2847 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2848 set_timer_mode(TimerMode mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2849 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2850 if (mode == TIMER_ELAPSED)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2851 check_set(mainwin_view_menu, "/Time Elapsed", TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2852 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2853 check_set(mainwin_view_menu, "/Time Remaining", TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2854 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2855
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2856 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2857 set_timer_mode_menu_cb(TimerMode mode)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2858 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2859 cfg.timer_mode = mode;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2860 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2861
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2862
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2863 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2864 mainwin_setup_menus(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2865 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2866 set_timer_mode(cfg.timer_mode);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2867
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2868 /* View menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2869
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2870 check_set(mainwin_view_menu, "/Always On Top", cfg.always_on_top);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2871 check_set(mainwin_view_menu, "/Put on All Workspaces", cfg.sticky);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2872 check_set(mainwin_view_menu, "/Roll up Player", cfg.player_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2873 check_set(mainwin_view_menu, "/Roll up Playlist Editor", cfg.playlist_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2874 check_set(mainwin_view_menu, "/Roll up Equalizer", cfg.equalizer_shaded);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2875
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2876 /* Songname menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2877
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2878 check_set(mainwin_songname_menu, "/Autoscroll Songname", cfg.autoscroll);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2879
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2880 /* Playback menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2881
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2882 check_set(mainwin_play_menu, "/Repeat", cfg.repeat);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2883 check_set(mainwin_play_menu, "/Shuffle", cfg.shuffle);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2884
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2885 /* Visualization menu */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2886
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2887 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2888 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_VIS_MODE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2889 cfg.vis_type].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2890 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2891 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_ANALYZER_MODE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2892 cfg.analyzer_mode].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2893 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2894 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_ANALYZER_TYPE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2895 cfg.analyzer_type].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2896 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2897 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_ANALYZER_PEAKS].
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2898 path, cfg.analyzer_peaks);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2899 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2900 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_SCOPE_MODE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2901 cfg.scope_mode].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2902 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2903 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_WSHADEVU_MODE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2904 cfg.vu_mode].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2905 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2906 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_REFRESH_RATE +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2907 cfg.vis_refresh].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2908 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2909 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_AFALLOFF +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2910 cfg.analyzer_falloff].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2911 check_set(mainwin_vis_menu,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2912 mainwin_vis_menu_entries[MAINWIN_VIS_MENU_PFALLOFF +
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2913 cfg.peaks_falloff].path, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2914 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2915
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2916 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2917 mainwin_create_widgets(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2918 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2919 mainwin_menubtn =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2920 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 6, 3, 9, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2921 0, 0, 0, 9, mainwin_menubtn_cb, SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2922 mainwin_menubtn->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2923 mainwin_minimize =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2924 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 244, 3, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2925 9, 9, 0, 9, 9, mainwin_minimize_cb, SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2926 mainwin_minimize->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2927 mainwin_shade =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2928 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 254, 3, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2929 9, 0, cfg.player_shaded ? 27 : 18, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2930 cfg.player_shaded ? 27 : 18, mainwin_shade_toggle,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2931 SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2932 mainwin_shade->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2933 mainwin_close =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2934 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 264, 3, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2935 9, 18, 0, 18, 9, mainwin_quit_cb, SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2936 mainwin_close->pb_allow_draw = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2937
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2938 mainwin_rew =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2939 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 16, 88, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2940 18, 0, 0, 0, 18, playlist_prev, SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2941 mainwin_play =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2942 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 39, 88, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2943 18, 23, 0, 23, 18, mainwin_play_pushed, SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2944 mainwin_pause =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2945 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 62, 88, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2946 18, 46, 0, 46, 18, bmp_playback_pause, SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2947 mainwin_stop =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2948 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 85, 88, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2949 18, 69, 0, 69, 18, mainwin_stop_pushed, SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2950 mainwin_fwd =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2951 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 108, 88, 22,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2952 18, 92, 0, 92, 18, playlist_next, SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2953 mainwin_eject =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2954 create_pbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 136, 89, 22,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2955 16, 114, 0, 114, 16, mainwin_eject_pushed,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2956 SKIN_CBUTTONS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2957
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2958 mainwin_srew =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2959 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 169, 4, 8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2960 7, playlist_prev);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2961 mainwin_splay =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2962 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 177, 4, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2963 7, mainwin_play_pushed);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2964 mainwin_spause =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2965 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 187, 4, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2966 7, bmp_playback_pause);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2967 mainwin_sstop =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2968 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 197, 4, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2969 7, mainwin_stop_pushed);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2970 mainwin_sfwd =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2971 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 206, 4, 8,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2972 7, playlist_next);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2973 mainwin_seject =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2974 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 216, 4, 9,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2975 7, mainwin_eject_pushed);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2976
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2977 mainwin_shuffle =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2978 create_tbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 164, 89, 46,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2979 15, 28, 0, 28, 15, 28, 30, 28, 45,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2980 mainwin_shuffle_pushed, SKIN_SHUFREP);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2981
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2982 mainwin_repeat =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2983 create_tbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 210, 89, 28,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2984 15, 0, 0, 0, 15, 0, 30, 0, 45,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2985 mainwin_repeat_pushed, SKIN_SHUFREP);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2986
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2987 mainwin_eq =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2988 create_tbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 219, 58, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2989 12, 0, 61, 46, 61, 0, 73, 46, 73, equalizerwin_show,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2990 SKIN_SHUFREP);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2991 tbutton_set_toggled(mainwin_eq, cfg.equalizer_visible);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2992 mainwin_pl =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2993 create_tbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 242, 58, 23,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2994 12, 23, 61, 69, 61, 23, 73, 69, 73,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2995 mainwin_pl_pushed, SKIN_SHUFREP);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2996 tbutton_set_toggled(mainwin_pl, cfg.playlist_visible);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2997
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2998 mainwin_info =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
2999 create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 112, 27,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3000 153, 1, SKIN_TEXT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3001 textbox_set_scroll(mainwin_info, cfg.autoscroll);
123
022d9717476f [svn] Bring back support for winamp-style bitmap fonts. :)
nenolod
parents: 88
diff changeset
3002 textbox_set_xfont(mainwin_info, cfg.mainwin_use_xfont, cfg.mainwin_font);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3003 mainwin_rate_text =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3004 create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 111, 43, 15,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3005 0, SKIN_TEXT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3006 mainwin_freq_text =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3007 create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 156, 43, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3008 0, SKIN_TEXT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3009
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3010 mainwin_menurow =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3011 create_menurow(&mainwin_wlist, mainwin_bg, mainwin_gc, 10, 22, 304,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3012 0, 304, 44, mainwin_mr_change, mainwin_mr_release,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3013 SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3014 mainwin_menurow->mr_doublesize_selected = FALSE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3015 mainwin_menurow->mr_always_selected = cfg.always_on_top;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3016
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3017 mainwin_volume =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3018 create_hslider(&mainwin_wlist, mainwin_bg, mainwin_gc, 107, 57, 68,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3019 13, 15, 422, 0, 422, 14, 11, 15, 0, 0, 51,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3020 mainwin_volume_frame_cb, mainwin_volume_motion_cb,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3021 mainwin_volume_release_cb, SKIN_VOLUME);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3022 mainwin_balance =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3023 create_hslider(&mainwin_wlist, mainwin_bg, mainwin_gc, 177, 57, 38,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3024 13, 15, 422, 0, 422, 14, 11, 15, 9, 0, 24,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3025 mainwin_balance_frame_cb, mainwin_balance_motion_cb,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3026 mainwin_balance_release_cb, SKIN_BALANCE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3027
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3028 mainwin_monostereo =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3029 create_monostereo(&mainwin_wlist, mainwin_bg, mainwin_gc, 212, 41,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3030 SKIN_MONOSTEREO);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3031
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3032 mainwin_playstatus =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3033 create_playstatus(&mainwin_wlist, mainwin_bg, mainwin_gc, 24, 28);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3034
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3035 mainwin_minus_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3036 create_number(&mainwin_wlist, mainwin_bg, mainwin_gc, 36, 26,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3037 SKIN_NUMBERS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3038 widget_hide(WIDGET(mainwin_minus_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3039 mainwin_10min_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3040 create_number(&mainwin_wlist, mainwin_bg, mainwin_gc, 48, 26,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3041 SKIN_NUMBERS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3042 widget_hide(WIDGET(mainwin_10min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3043
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3044 mainwin_min_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3045 create_number(&mainwin_wlist, mainwin_bg, mainwin_gc, 60, 26,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3046 SKIN_NUMBERS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3047 widget_hide(WIDGET(mainwin_min_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3048
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3049 mainwin_10sec_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3050 create_number(&mainwin_wlist, mainwin_bg, mainwin_gc, 78, 26,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3051 SKIN_NUMBERS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3052 widget_hide(WIDGET(mainwin_10sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3053
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3054 mainwin_sec_num =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3055 create_number(&mainwin_wlist, mainwin_bg, mainwin_gc, 90, 26,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3056 SKIN_NUMBERS);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3057 widget_hide(WIDGET(mainwin_sec_num));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3058
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3059 mainwin_about =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3060 create_sbutton(&mainwin_wlist, mainwin_bg, mainwin_gc, 247, 83, 20,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3061 25, show_about_window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3062
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3063 mainwin_vis =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3064 create_vis(&mainwin_wlist, mainwin_bg, mainwin->window, mainwin_gc,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3065 24, 43, 76);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3066 mainwin_svis = create_svis(&mainwin_wlist, mainwin_bg, mainwin_gc, 79, 5);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3067 active_vis = mainwin_vis;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3068
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3069 mainwin_position =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3070 create_hslider(&mainwin_wlist, mainwin_bg, mainwin_gc, 16, 72, 248,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3071 10, 248, 0, 278, 0, 29, 10, 10, 0, 0, 219, NULL,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3072 mainwin_position_motion_cb,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3073 mainwin_position_release_cb, SKIN_POSBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3074 widget_hide(WIDGET(mainwin_position));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3075
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3076 mainwin_sposition =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3077 create_hslider(&mainwin_wlist, mainwin_bg, mainwin_gc, 226, 4, 17,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3078 7, 17, 36, 17, 36, 3, 7, 36, 0, 1, 13,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3079 mainwin_spos_frame_cb, mainwin_spos_motion_cb,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3080 mainwin_spos_release_cb, SKIN_TITLEBAR);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3081 widget_hide(WIDGET(mainwin_sposition));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3082
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3083 mainwin_stime_min =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3084 create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 130, 4, 15,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3085 FALSE, SKIN_TEXT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3086 mainwin_stime_sec =
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3087 create_textbox(&mainwin_wlist, mainwin_bg, mainwin_gc, 147, 4, 10,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3088 FALSE, SKIN_TEXT);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3089
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3090 if (!cfg.player_shaded) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3091 widget_hide(WIDGET(mainwin_svis));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3092 widget_hide(WIDGET(mainwin_srew));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3093 widget_hide(WIDGET(mainwin_splay));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3094 widget_hide(WIDGET(mainwin_spause));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3095 widget_hide(WIDGET(mainwin_sstop));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3096 widget_hide(WIDGET(mainwin_sfwd));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3097 widget_hide(WIDGET(mainwin_seject));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3098 widget_hide(WIDGET(mainwin_stime_min));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3099 widget_hide(WIDGET(mainwin_stime_sec));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3100 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3101
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3102 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3103
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3104 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3105 mainwin_create_window(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3106 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3107 gint width, height;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3108
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3109 mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3110 gtk_window_set_title(GTK_WINDOW(mainwin), _("Audacious"));
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3111 gtk_window_set_role(GTK_WINDOW(mainwin), "player");
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3112 gtk_window_set_resizable(GTK_WINDOW(mainwin), FALSE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3113
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3114 width = MAINWIN_WIDTH;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3115 height = cfg.player_shaded ? MAINWIN_SHADED_HEIGHT : MAINWIN_HEIGHT;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3116
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3117 gtk_widget_set_size_request(mainwin, width, height);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3118 gtk_widget_set_app_paintable(mainwin, TRUE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3119
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3120 dock_window_list = dock_window_set_decorated(dock_window_list,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3121 GTK_WINDOW(mainwin),
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3122 cfg.show_wm_decorations);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3123
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3124 if (cfg.player_x != -1 && cfg.save_window_position)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3125 gtk_window_move(GTK_WINDOW(mainwin), cfg.player_x, cfg.player_y);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3126
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3127 gtk_widget_add_events(mainwin,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3128 GDK_FOCUS_CHANGE_MASK | GDK_BUTTON_MOTION_MASK |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3129 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3130 GDK_SCROLL_MASK | GDK_KEY_PRESS_MASK |
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3131 GDK_VISIBILITY_NOTIFY_MASK);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3132 gtk_widget_realize(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3133
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3134 util_set_cursor(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3135
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3136 g_signal_connect(mainwin, "destroy", G_CALLBACK(mainwin_destroy), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3137 g_signal_connect(mainwin, "button_press_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3138 G_CALLBACK(mainwin_mouse_button_press), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3139 g_signal_connect(mainwin, "scroll_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3140 G_CALLBACK(mainwin_scrolled), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3141 g_signal_connect(mainwin, "button_release_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3142 G_CALLBACK(mainwin_mouse_button_release), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3143 g_signal_connect(mainwin, "motion_notify_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3144 G_CALLBACK(mainwin_motion), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3145 g_signal_connect_after(mainwin, "focus_in_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3146 G_CALLBACK(mainwin_focus_in), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3147 g_signal_connect_after(mainwin, "focus_out_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3148 G_CALLBACK(mainwin_focus_out), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3149 g_signal_connect(mainwin, "configure_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3150 G_CALLBACK(mainwin_configure), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3151 g_signal_connect(mainwin, "style_set",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3152 G_CALLBACK(mainwin_set_back_pixmap), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3153
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3154 bmp_drag_dest_set(mainwin);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3155
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3156 g_signal_connect(mainwin, "key_press_event",
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3157 G_CALLBACK(mainwin_keypress), NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3158 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3159
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3160 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3161 mainwin_create_menus(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3162 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3163 mainwin_general_menu = create_menu(mainwin_general_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3164 mainwin_general_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3165 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3166
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3167 mainwin_play_menu = create_menu(mainwin_playback_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3168 mainwin_playback_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3169 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3170
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3171 mainwin_view_menu = create_menu(mainwin_view_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3172 mainwin_view_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3173 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3174
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3175 mainwin_songname_menu = create_menu(mainwin_songname_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3176 mainwin_songname_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3177 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3178
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3179 mainwin_add_menu = create_menu(mainwin_add_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3180 mainwin_add_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3181 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3182
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3183 mainwin_vis_menu = create_menu(mainwin_vis_menu_entries,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3184 mainwin_vis_menu_entries_num,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3185 mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3186
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3187 make_submenu(mainwin_general_menu, "/View", mainwin_view_menu);
87
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
3188 make_submenu(mainwin_general_menu, "/Playback", mainwin_play_menu);
8b1b817e0848 [svn] More work on the main menu...
nenolod
parents: 86
diff changeset
3189 make_submenu(mainwin_general_menu, "/Visualization", mainwin_vis_menu);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3190
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3191 gtk_window_add_accel_group(GTK_WINDOW(mainwin), mainwin_accel);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3192 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3193
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3194 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3195 mainwin_create(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3196 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3197 mainwin_create_window();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3198
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3199 mainwin_accel = gtk_accel_group_new();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3200 mainwin_create_menus();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3201
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3202 mainwin_gc = gdk_gc_new(mainwin->window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3203 mainwin_bg = gdk_pixmap_new(mainwin->window,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3204 MAINWIN_WIDTH, MAINWIN_HEIGHT, -1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3205 mainwin_set_back_pixmap();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3206 mainwin_create_widgets();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3207
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3208 vis_set_window(mainwin_vis, mainwin->window);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3209 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3210
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3211 void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3212 mainwin_attach_idle_func(void)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3213 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3214 mainwin_timeout_id = g_timeout_add(MAINWIN_UPDATE_INTERVAL,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3215 mainwin_idle_func, NULL);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3216 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3217
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3218 static void
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3219 idle_func_update_song_info(gint time)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3220 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3221 gint length, t;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3222 gchar stime_prefix;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3223
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3224 length = playlist_get_current_length();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3225 playlistwin_set_time(time, length, cfg.timer_mode);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3226 input_update_vis(time);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3227
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3228 if (cfg.timer_mode == TIMER_REMAINING) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3229 if (length != -1) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3230 number_set_number(mainwin_minus_num, 11);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3231 t = length - time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3232 stime_prefix = '-';
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3233 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3234 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3235 number_set_number(mainwin_minus_num, 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3236 t = time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3237 stime_prefix = ' ';
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3238 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3239 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3240 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3241 number_set_number(mainwin_minus_num, 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3242 t = time;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3243 stime_prefix = ' ';
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3244 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3245 t /= 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3246
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3247 /* Show the time in the format HH:MM when we have more than 100
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3248 * minutes. */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3249 if (t >= 100 * 60)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3250 t /= 60;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3251 number_set_number(mainwin_10min_num, t / 600);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3252 number_set_number(mainwin_min_num, (t / 60) % 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3253 number_set_number(mainwin_10sec_num, (t / 10) % 6);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3254 number_set_number(mainwin_sec_num, t % 10);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3255
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3256 if (!mainwin_sposition->hs_pressed) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3257 gchar *time_str;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3258
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3259 time_str = g_strdup_printf("%c%2.2d", stime_prefix, t / 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3260 textbox_set_text(mainwin_stime_min, time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3261 g_free(time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3262
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3263 time_str = g_strdup_printf("%2.2d", t % 60);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3264 textbox_set_text(mainwin_stime_sec, time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3265 g_free(time_str);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3266 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3267
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3268 time /= 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3269 length /= 1000;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3270 if (length > 0) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3271 if (time > length) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3272 hslider_set_position(mainwin_position, 219);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3273 hslider_set_position(mainwin_sposition, 13);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3274 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3275 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3276 hslider_set_position(mainwin_position, (time * 219) / length);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3277 hslider_set_position(mainwin_sposition,
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3278 ((time * 12) / length) + 1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3279 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3280 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3281 else {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3282 hslider_set_position(mainwin_position, 0);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3283 hslider_set_position(mainwin_sposition, 1);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3284 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3285 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3286
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3287 static gboolean
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3288 mainwin_idle_func(gpointer data)
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3289 {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3290 static gint count = 0;
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3291 gint time = 0;
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3292
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3293 /* run audcore events, then run our own. --nenolod */
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3294 switch((time = audcore_generic_events()))
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3295 {
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3296 case -2:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3297 /* no usable output device */
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3298 GDK_THREADS_ENTER();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3299 run_no_output_device_dialog();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3300 mainwin_stop_pushed();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3301 GDK_THREADS_LEAVE();
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3302 ev_waiting = FALSE;
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3303 break;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3304
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3305 default:
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3306 idle_func_update_song_info(time);
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3307 /* nothing at this time */
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3308 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3309
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3310 GDK_THREADS_ENTER();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3311
197
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3312 if (bmp_playback_get_playing())
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3313 vis_playback_start();
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3314 else
ccd034857702 [svn] Split up generic events into audcore_generic_events(), and client-specific stuff remains in mainwin_idle_func().
nenolod
parents: 196
diff changeset
3315 vis_playback_stop();
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3316
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3317 draw_main_window(mainwin_force_redraw);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3318
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3319 if (!count) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3320 read_volume(VOLSET_UPDATE);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3321 count = 10;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3322 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3323 else
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3324 count--;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3325
234
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3326 draw_playlist_window(mainwin_force_redraw);
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3327 draw_equalizer_window(mainwin_force_redraw);
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3328
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3329 /* what is this for? see below. --nenolod */
233
bc265f3727f4 [svn] Force redraw of audacious playlist window.
nenolod
parents: 229
diff changeset
3330 mainwin_force_redraw = FALSE;
229
108cd7e58d5e [svn] Always update the playlist information, regardless of whether it is shaded or not. To ensure this happens, I've attached playlistwin_update_list() to the GUI event loop,
nenolod
parents: 225
diff changeset
3331
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3332 if (mainwin_title_text) {
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3333 G_LOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3334 gtk_window_set_title(GTK_WINDOW(mainwin), mainwin_title_text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3335 g_free(mainwin_title_text);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3336 mainwin_title_text = NULL;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3337 G_UNLOCK(mainwin_title);
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3338
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3339 mainwin_set_info_text();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3340 playlistwin_update_list();
234
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3341
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3342 /* set mainwin_force_redraw so that the windows are redrawn
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3343 * when the title_text has changed. (new song), this should
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3344 * enforce updates of the playlist window. --nenolod
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3345 */
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3346 mainwin_force_redraw = TRUE;
9118a2e2d192 [svn] Closer, but doesn't do it properly.
nenolod
parents: 233
diff changeset
3347 draw_playlist_window(mainwin_force_redraw);
0
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3348 }
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3349
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3350 GDK_THREADS_LEAVE();
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3351
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3352 return TRUE;
cb178e5ad177 [svn] Import audacious source.
nenolod
parents:
diff changeset
3353 }