annotate gui/ui/widgets.c @ 34697:ac6b38cd0d45

Rename sub window video window. It was a bad idea to name the video window "sub window" at the time the GUI was written. The term "sub window" does make sense from the programmer's point of view, but it doesn't make any sense at all from the user's point of view, because the sub window simply is the window where the video will be displayed. Moreover, since the term "sub" is generally short for "subtitles", the renaming makes the code much easier to understand.
author ib
date Sat, 03 Mar 2012 16:45:15 +0000
parents b03481253518
children 70d16eb7899e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26458
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
1 /*
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
2 * This file is part of MPlayer.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
3 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
5 * it under the terms of the GNU General Public License as published by
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
7 * (at your option) any later version.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
8 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
12 * GNU General Public License for more details.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
13 *
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
14 * You should have received a copy of the GNU General Public License along
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
b0a7b35b78d2 Add standard GPL header to individual files.
diego
parents: 26382
diff changeset
17 */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
18
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
19 #include <stdlib.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
20 #include <stdio.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
21
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
22 #include <sys/types.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
23 #include <sys/stat.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
24 #include <sys/wait.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
25 #include <unistd.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
26 #include <string.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
27 #include <signal.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
28
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
29 #include <gdk/gdkprivate.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
30 #include <gdk/gdkkeysyms.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
31 #include <gdk/gdkx.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
32 #include <gdk/gdk.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
33 #include <gtk/gtk.h>
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
34
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
35 #include "config.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
36 #include "help_mp.h"
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
37 #include "mp_msg.h"
33542
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
38 #include "libavutil/intreadwrite.h"
33465
b0430e293333 Take notice of MPlayer option '-display'.
ib
parents: 33314
diff changeset
39 #include "libvo/x11_common.h"
26382
b2f4abcf20ed Make include paths consistent; do not use ../ in them.
diego
parents: 26365
diff changeset
40
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
41 #include "widgets.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
42 #include "gui/app.h"
33466
45d8bfbd27bc Define "gmplayer" as symbolic constant.
ib
parents: 33465
diff changeset
43 #include "gui/interface.h"
26365
10dfbc523184 Add gui/ prefix to some #include paths so that compilation from the
diego
parents: 26203
diff changeset
44 #include "gui/wm/ws.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
45
33556
520fb0f7544c Rename GUI directory 'mplayer' and some files in it.
ib
parents: 33555
diff changeset
46 #include "actions.h"
33572
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
47 #include "gtk/fileselect.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
48
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
49 GtkWidget *PopUpMenu = NULL;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
50
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
51 GtkWidget *WarningPixmap;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
52 GtkWidget *ErrorPixmap;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
53
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
54 int gtkPopupMenu = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
55 int gtkPopupMenuParam = 0;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
56 int gtkInitialized = 0;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
57
33572
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
58 #include "gtk/skinbrowser.h"
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
59 #include "gtk/playlist.h"
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
60 #include "gtk/msgbox.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
61 #include "gtk/about.h"
33572
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
62 #include "gtk/preferences.h"
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
63 #include "gtk/menu.h"
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
64 #include "gtk/url.h"
d9b805602aa1 Rename some gtk files.
ib
parents: 33556
diff changeset
65 #include "gtk/equalizer.h"
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
66
34596
04feb00f91be Prefer static const char arrays for string constants to #defines.
ib
parents: 34481
diff changeset
67 static const char gui_icon_name[] = "mplayer";
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
68
33542
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
69 #define THRESHOLD 128 // transparency values equal to or above this will become
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
70 // opaque, all values below this will become transparent
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
71
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34596
diff changeset
72 /* init & close gtk */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
73
33529
276eef06fb3d Store icon data in a struct variable.
ib
parents: 33528
diff changeset
74 guiIcon_t guiIcon;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
75
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
76 static void gtkLoadIcon(GtkIconTheme *theme, gint size, GdkPixmap **gdkIcon, GdkBitmap **gdkIconMask)
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
77 {
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
78 GdkPixbuf *pixbuf;
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
79 guchar *data;
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
80 int csize, i;
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
81
34596
04feb00f91be Prefer static const char arrays for string constants to #defines.
ib
parents: 34481
diff changeset
82 pixbuf = gtk_icon_theme_load_icon(theme, gui_icon_name, size, 0, NULL);
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
83
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
84 if (pixbuf)
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
85 gdk_pixbuf_render_pixmap_and_mask_for_colormap(pixbuf, gdk_colormap_get_system(), gdkIcon, gdkIconMask, THRESHOLD);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
86
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
87 if (pixbuf &&
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
88 gdk_pixbuf_get_colorspace(pixbuf) == GDK_COLORSPACE_RGB &&
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
89 gdk_pixbuf_get_n_channels(pixbuf) == 4 &&
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
90 gdk_pixbuf_get_bits_per_sample(pixbuf) == 8) {
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
91 csize = guiIcon.collection_size;
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
92 guiIcon.collection_size += 2 + gdk_pixbuf_get_width(pixbuf) * gdk_pixbuf_get_height(pixbuf);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
93
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
94 guiIcon.collection = realloc(guiIcon.collection, guiIcon.collection_size * sizeof(*guiIcon.collection));
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
95
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
96 if (guiIcon.collection) {
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
97 guiIcon.collection[csize++] = gdk_pixbuf_get_width(pixbuf);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
98 guiIcon.collection[csize++] = gdk_pixbuf_get_height(pixbuf);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
99
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
100 data = gdk_pixbuf_get_pixels(pixbuf);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
101
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
102 for (i = csize; i < guiIcon.collection_size; data += 4, i++)
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
103 guiIcon.collection[i] = (data[3] << 24) | AV_RB24(data); // RGBA -> ARGB
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
104 }
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
105
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
106 g_object_unref(pixbuf);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
107 } else
34596
04feb00f91be Prefer static const char arrays for string constants to #defines.
ib
parents: 34481
diff changeset
108 mp_msg(MSGT_GPLAYER, MSGL_WARN, MSGTR_ICONERROR, gui_icon_name, size);
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
109
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34596
diff changeset
110 /* start up GTK which realizes the pixmaps */
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
111 gtk_main_iteration_do(FALSE);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
112 }
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
113
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
114 void gtkInit(void)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
115 {
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
116 int argc = 0;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
117 char *arg[3], **argv = arg;
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
118 GtkIconTheme *theme;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
119 GdkPixmap *gdkIcon;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
120 GdkBitmap *gdkIconMask;
33465
b0430e293333 Take notice of MPlayer option '-display'.
ib
parents: 33314
diff changeset
121
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
122 mp_msg(MSGT_GPLAYER, MSGL_V, "GTK init.\n");
33528
6f20f2a42b76 Do some gtkInit() cleanup.
ib
parents: 33527
diff changeset
123
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
124 arg[argc++] = GMPlayer;
33465
b0430e293333 Take notice of MPlayer option '-display'.
ib
parents: 33314
diff changeset
125
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
126 if (mDisplayName) { // MPlayer option '-display' was given
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
127 arg[argc++] = "--display"; // Pass corresponding command line arguments to GTK,
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
128 arg[argc++] = mDisplayName; // to open the requested display for the GUI, too.
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
129 }
33465
b0430e293333 Take notice of MPlayer option '-display'.
ib
parents: 33314
diff changeset
130
27343
5fe6a8adf569 Rename two GUI-related preprocessor directives:
diego
parents: 26458
diff changeset
131 #ifdef CONFIG_GTK2
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
132 gtk_disable_setlocale();
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
133 #endif
33528
6f20f2a42b76 Do some gtkInit() cleanup.
ib
parents: 33527
diff changeset
134
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
135 gtk_init(&argc, &argv);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
136
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
137 theme = gtk_icon_theme_get_default();
33542
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
138
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
139 gtkLoadIcon(theme, 16, &gdkIcon, &gdkIconMask);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
140 guiIcon.small = GDK_PIXMAP_XID(gdkIcon);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
141 guiIcon.small_mask = GDK_PIXMAP_XID(gdkIconMask);
33542
107084241b00 Add support for _NET_WM_ICON
ib
parents: 33538
diff changeset
142
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
143 gtkLoadIcon(theme, 32, &gdkIcon, &gdkIconMask);
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
144 guiIcon.normal = GDK_PIXMAP_XID(gdkIcon);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
145 guiIcon.normal_mask = GDK_PIXMAP_XID(gdkIconMask);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
146
34480
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
147 gtkLoadIcon(theme, 48, &gdkIcon, &gdkIconMask);
6c6fb701fa8e Add differently sized, new icons for the GUI.
ib
parents: 34333
diff changeset
148
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
149 gtkInitialized = 1;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
150 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
151
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
152 void gtkAddIcon(GtkWidget *window)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
153 {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
154 wsSetIcon(gdk_display, GDK_WINDOW_XWINDOW(window->window), &guiIcon);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
155 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
156
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
157 void gtkClearList(GtkWidget *list)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
158 {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
159 gtk_clist_clear(GTK_CLIST(list));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
160 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
161
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
162 int gtkFindCList(GtkWidget *list, char *item)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
163 {
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
164 gint j;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
165 gchar *tmpstr;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
166
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
167 for (j = 0; j < GTK_CLIST(list)->rows; j++) {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
168 gtk_clist_get_text(GTK_CLIST(list), j, 0, &tmpstr);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
169
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
170 if (!strcmp(tmpstr, item))
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
171 return j;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
172 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
173
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
174 return -1;
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
175 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
176
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
177 void gtkSetDefaultToCList(GtkWidget *list, char *item)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
178 {
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
179 gint i;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
180
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
181 if ((i = gtkFindCList(list, item)) > -1)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
182 gtk_clist_select_row(GTK_CLIST(list), i, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
183 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
184
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
185 void gtkEventHandling(void)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
186 {
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
187 int i;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
188
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
189 for (i = 0; i < 25; i++)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
190 gtk_main_iteration_do(0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
191 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
192
34684
b03481253518 Cosmetic: Prefer C style for single line comments.
ib
parents: 34596
diff changeset
193 /* funcs */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
194
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
195 void gtkMessageBox(int type, const gchar *str)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
196 {
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
197 if (!gtkInitialized)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
198 return;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
199
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
200 ShowMessageBox(str);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
201 gtk_label_set_text(GTK_LABEL(gtkMessageBoxText), str);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
202
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
203 /* enable linewrapping by alex */
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
204 // GTK_LABEL(gtkMessageBoxText)->max_width = 80;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
205 if (strlen(str) > 80)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
206 gtk_label_set_line_wrap(GTK_LABEL(gtkMessageBoxText), TRUE);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
207 else
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
208 gtk_label_set_line_wrap(GTK_LABEL(gtkMessageBoxText), FALSE);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
209
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
210 switch (type) {
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
211 case GTK_MB_FATAL:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
212 gtk_window_set_title(GTK_WINDOW(MessageBox), MSGTR_MSGBOX_LABEL_FatalError);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
213 gtk_widget_hide(WarningPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
214 gtk_widget_show(ErrorPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
215 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
216
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
217 case GTK_MB_ERROR:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
218 gtk_window_set_title(GTK_WINDOW(MessageBox), MSGTR_MSGBOX_LABEL_Error);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
219 gtk_widget_hide(WarningPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
220 gtk_widget_show(ErrorPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
221 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
222
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
223 case GTK_MB_WARNING:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
224 gtk_window_set_title(GTK_WINDOW(MessageBox), MSGTR_MSGBOX_LABEL_Warning);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
225 gtk_widget_show(WarningPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
226 gtk_widget_hide(ErrorPixmap);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
227 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
228 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
229
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
230 gtk_widget_show(MessageBox);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
231 gtkSetLayer(MessageBox);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
232
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
233 if (type == GTK_MB_FATAL)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
234 while (MessageBox)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
235 gtk_main_iteration_do(0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
236 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
237
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
238 void gtkSetLayer(GtkWidget *wdg)
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 27343
diff changeset
239 {
34697
ac6b38cd0d45 Rename sub window video window.
ib
parents: 34684
diff changeset
240 wsSetLayer(gdk_display, GDK_WINDOW_XWINDOW(wdg->window), guiApp.videoWindow.isFullScreen);
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
241 gtkActive(wdg);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
242 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
243
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
244 void gtkActive(GtkWidget *wdg)
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
245 {
33990
3a93b9227b01 Cosmetic: Rename wsMoveTopWindow() wsRaiseWindowTop().
ib
parents: 33572
diff changeset
246 wsRaiseWindowTop(gdk_display, GDK_WINDOW_XWINDOW(wdg->window));
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
247 }
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
248
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
249 void gtkShow(int type, char *param)
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
250 {
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
251 switch (type) {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
252 case evEqualizer:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
253 ShowEqualizer();
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
254 gtkSetLayer(Equalizer);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
255 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
256
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
257 case evSkinBrowser:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
258 ShowSkinBrowser();
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
259
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
260 // gtkClearList( SkinList );
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
261 if (gtkFillSkinList(sbMPlayerPrefixDir) &&
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
262 gtkFillSkinList(sbMPlayerDirInHome)) {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
263 gtkSetDefaultToCList(SkinList, param);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
264 gtk_clist_sort(GTK_CLIST(SkinList));
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
265 gtk_widget_show(SkinBrowser);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
266 gtkSetLayer(SkinBrowser);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
267 } else {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
268 gtk_widget_destroy(SkinBrowser);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
269 gtkMessageBox(GTK_MB_ERROR, "Skin dirs not found ... Please install skins.");
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
270 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
271
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
272 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
273
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
274 case evPreferences:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
275 ShowPreferences();
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
276 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
277
34321
daebf766dea6 Cosmetic: Synchronize evPlaylist event and message names.
ib
parents: 33990
diff changeset
278 case evPlaylist:
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
279 ShowPlayList();
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
280 gtkSetLayer(PlayList);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
281 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
282
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
283 case evLoad:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
284 ShowFileSelect(fsVideoSelector, 0);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
285 gtkSetLayer(fsFileSelect);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
286 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
287
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
288 case evLoadSubtitle:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
289 ShowFileSelect(fsSubtitleSelector, 0);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
290 gtkSetLayer(fsFileSelect);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
291 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
292
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
293 case evLoadAudioFile:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
294 ShowFileSelect(fsAudioSelector, 0);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
295 gtkSetLayer(fsFileSelect);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
296 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
297
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
298 case evAbout:
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
299 ShowAboutBox();
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
300 gtkSetLayer(About);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
301 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
302
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34331
diff changeset
303 case ivShowPopUpMenu:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
304 gtkPopupMenu = evNone;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
305 gtkPopupMenuParam = 0;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
306
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
307 if (PopUpMenu) {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
308 gtk_widget_hide(PopUpMenu);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
309 gtk_widget_destroy(PopUpMenu);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
310 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
311
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
312 PopUpMenu = create_PopUpMenu();
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
313 gtk_menu_popup(GTK_MENU(PopUpMenu), NULL, NULL, NULL, NULL, 0, 0);
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
314 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
315
34333
e8e4e6f9b7ac Change prefix for internal events from ev to iv.
ib
parents: 34331
diff changeset
316 case ivHidePopUpMenu:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
317
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
318 if (PopUpMenu) {
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
319 gtk_widget_hide(PopUpMenu);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
320 gtk_widget_destroy(PopUpMenu);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
321 PopUpMenu = NULL;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
322 }
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
323
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
324 break;
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
325
34329
d7c8a3cee15e Replace evPlayNetwork by evLoadURL.
ib
parents: 34321
diff changeset
326 case evLoadURL:
33538
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
327 ShowURLDialogBox();
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
328 gtkSetLayer(URL);
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
329 break;
64e43eb13ebf Cosmetic: Format to MPlayer coding style.
ib
parents: 33530
diff changeset
330 }
23077
17bf4f4b0715 Gui --> gui
diego
parents:
diff changeset
331 }