Mercurial > mplayer.hg
annotate Gui/mplayer/widgets.c @ 6651:8f49c75a2824
- add icon (nice, but very ugly hakk:)
- move all window to one group
- better multilanguage support
- some small bug fixed
- some warning fixed
- swap the two menu
- fix small network playing bug ( evPlay instead of evPlayNetwork :)
- add channel name selection for equalizer support
author | pontscho |
---|---|
date | Fri, 05 Jul 2002 23:47:00 +0000 |
parents | fd3ac41ee1a1 |
children | cc917a581b6e |
rev | line source |
---|---|
1693 | 1 |
2 #include <stdlib.h> | |
3 #include <stdio.h> | |
4 | |
5 #include <sys/types.h> | |
6 #include <sys/stat.h> | |
1700 | 7 #include <sys/wait.h> |
1693 | 8 #include <unistd.h> |
9 #include <string.h> | |
10 #include <signal.h> | |
11 | |
4176
116abdd0aed1
small gtk bug fix (-display bug, baze gabu, miattad fogok elkarhozni:), and remove gui dependencie in mencoder
pontscho
parents:
3586
diff
changeset
|
12 #include <gdk/gdkprivate.h> |
1693 | 13 #include <gdk/gdkkeysyms.h> |
6651 | 14 #include <gdk/gdkx.h> |
4176
116abdd0aed1
small gtk bug fix (-display bug, baze gabu, miattad fogok elkarhozni:), and remove gui dependencie in mencoder
pontscho
parents:
3586
diff
changeset
|
15 #include <gdk/gdk.h> |
1693 | 16 #include <gtk/gtk.h> |
17 | |
18 #include "widgets.h" | |
19 | |
20 #include "./mplayer.h" | |
21 #include "../events.h" | |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
22 #include "../app.h" |
6651 | 23 #include "../wm/ws.h" |
24 | |
1693 | 25 |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
26 #include "gtk/menu.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
27 #include "play.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
28 #include "gtk/fs.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
29 |
1693 | 30 #include "../../config.h" |
1884 | 31 #include "../../help_mp.h" |
1693 | 32 |
33 GtkWidget * PlayList; | |
34 GtkWidget * Options; | |
4950 | 35 GtkWidget * PopUpMenu = NULL; |
1693 | 36 |
1925 | 37 GtkWidget * WarningPixmap; |
38 GtkWidget * ErrorPixmap; | |
39 | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
40 int gtkPopupMenu = 0; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
41 int gtkPopupMenuParam = 0; |
5919 | 42 int gtkInited = 0; |
1693 | 43 |
44 #include "gtk/sb.h" | |
45 #include "gtk/pl.h" | |
46 #include "gtk/fs.h" | |
47 #include "gtk/mb.h" | |
48 #include "gtk/about.h" | |
49 #include "gtk/opts.h" | |
2901 | 50 #include "gtk/menu.h" |
6298 | 51 #include "gtk/url.h" |
6627 | 52 #include "gtk/eq.h" |
1693 | 53 |
6651 | 54 #include "pixmaps/MPlayer_mini.xpm" |
55 | |
1693 | 56 // --- init & close gtk |
57 | |
6651 | 58 GdkPixmap * gtkIcon = NULL; |
59 GdkBitmap * gtkIconMask = NULL; | |
60 Pixmap guiIcon; | |
61 Pixmap guiIconMask; | |
62 | |
6218 | 63 void gtkInit( void ) |
1693 | 64 { |
5919 | 65 mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] init gtk ...\n" ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
66 gtk_set_locale(); |
6218 | 67 // gtk_init( &argc,&argv ); |
68 gtk_init( 0,NULL ); | |
6146 | 69 // gdk_set_use_xshm( TRUE ); |
6651 | 70 |
71 { | |
72 GtkWidget * win; | |
73 win=gtk_window_new( GTK_WINDOW_TOPLEVEL ); | |
74 | |
75 if ( !gtkIcon ) | |
76 gtkIcon=gdk_pixmap_colormap_create_from_xpm_d( win->window,gdk_colormap_get_system(),>kIconMask,&win->style->bg[GTK_STATE_NORMAL],MPlayer_mini_xpm ); | |
77 | |
78 guiIcon=GDK_WINDOW_XWINDOW( gtkIcon ); | |
79 guiIconMask=GDK_WINDOW_XWINDOW( gtkIconMask ); | |
80 | |
81 gtk_widget_destroy( win ); | |
82 } | |
83 | |
5919 | 84 gtkInited=1; |
1693 | 85 } |
86 | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
87 void gtkDone( void ) |
1693 | 88 { |
89 } | |
90 | |
6651 | 91 void gtkAddIcon( GtkWidget * window ) |
92 { | |
93 GdkWindowPrivate * win = (GdkWindowPrivate *)window->window; | |
94 wsSetIcon( gdk_display,win->xwindow,guiIcon,guiIconMask ); | |
95 } | |
96 | |
1693 | 97 void gtkClearList( GtkWidget * list ) |
98 { gtk_clist_clear( GTK_CLIST( list ) ); } | |
99 | |
100 int gtkFindCList( GtkWidget * list,char * item ) | |
101 { | |
102 gint j,t; | |
103 gchar * tmpstr; | |
104 for( t=0,j=0;j<GTK_CLIST( list )->rows;j++ ) | |
105 { | |
106 gtk_clist_get_text( GTK_CLIST( list ),j,0,&tmpstr ); | |
107 if ( !strcmp( tmpstr,item ) ) return j; | |
108 } | |
109 return -1; | |
110 } | |
111 | |
112 void gtkSetDefaultToCList( GtkWidget * list,char * item ) | |
113 { | |
114 gint i; | |
115 if ( ( i=gtkFindCList( list,item ) ) > -1 ) gtk_clist_select_row( GTK_CLIST( list ),i,0 ); | |
116 } | |
117 | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
118 void gtkEventHandling( void ) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
119 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
120 int i; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
121 for( i=0;i < 25;i++ ) gtk_main_iteration_do( 0 ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
122 } |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
123 |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
124 // --- funcs |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
125 |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
126 void gtkMessageBox( int type,gchar * str ) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
127 { |
5919 | 128 if ( !gtkInited ) return; |
6146 | 129 ShowMessageBox( str ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
130 gtk_label_set_text( GTK_LABEL( gtkMessageBoxText ),str ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
131 switch( type) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
132 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
133 case GTK_MB_FATAL: |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
134 gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_FatalError ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
135 gtk_widget_hide( WarningPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
136 gtk_widget_show( ErrorPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
137 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
138 case GTK_MB_ERROR: |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
139 gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Error ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
140 gtk_widget_hide( WarningPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
141 gtk_widget_show( ErrorPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
142 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
143 case GTK_MB_WARNING: |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
144 gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MSGBOX_LABEL_Warning ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
145 gtk_widget_show( WarningPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
146 gtk_widget_hide( ErrorPixmap ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
147 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
148 } |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
149 gtk_widget_show( MessageBox ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
150 } |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
151 |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
152 void gtkSetLayer( GtkWidget * wdg ) |
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
153 { |
6651 | 154 GdkWindowPrivate * win = (GdkWindowPrivate *)wdg->window; |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
155 wsSetLayer( gdk_display,win->xwindow,appMPlayer.subWindow.isFullScreen ); |
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
156 } |
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
157 |
6146 | 158 void gtkActive( GtkWidget * wdg ) |
159 { | |
6651 | 160 GdkWindowPrivate * win = (GdkWindowPrivate *)wdg->window; |
6146 | 161 wsMoveTopWindow( gdk_display,win->xwindow ); |
162 } | |
163 | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
164 void gtkShow( int type,char * param ) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
165 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
166 switch( type ) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
167 { |
6627 | 168 case evEqualizer: |
169 ShowEqualizer(); | |
170 gtkSetLayer( Equalizer ); | |
171 break; | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
172 case evSkinBrowser: |
6146 | 173 ShowSkinBrowser(); |
6044 | 174 // gtkClearList( SkinList ); |
175 if ( gtkFillSkinList( sbMPlayerPrefixDir ) && gtkFillSkinList( sbMPlayerDirInHome ) ) | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
176 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
177 gtkSetDefaultToCList( SkinList,param ); |
6651 | 178 gtk_clist_sort( GTK_CLIST( SkinList ) ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
179 gtk_widget_show( SkinBrowser ); |
6044 | 180 gtkSetLayer( SkinBrowser ); |
6222 | 181 } |
182 else | |
183 { | |
184 gtk_widget_destroy( SkinBrowser ); | |
185 gtkMessageBox( GTK_MB_ERROR,"Skin dirs not found ... Please install skins." ); | |
186 } | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
187 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
188 case evPreferences: |
6146 | 189 gtkMessageBox( GTK_MB_WARNING,"Sorry, this feature is under development ..." ); |
190 // Options=create_Options(); | |
191 // gtk_widget_show( Options ); | |
192 // gtkSetLayer( Options ); | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
193 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
194 case evPlayList: |
6146 | 195 gtkMessageBox( GTK_MB_WARNING,"Sorry, this feature is under development ..." ); |
196 // PlayList=create_PlayList(); | |
197 // gtk_widget_show( PlayList ); | |
198 // gtkSetLayer( PlayList ); | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
199 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
200 case evLoad: |
6622
da08877b9512
fix window hiding bug with some wms (kde, gnome, icewm, mwm, wmaker)
pontscho
parents:
6298
diff
changeset
|
201 ShowFileSelect( fsVideoSelector,0 ); |
6146 | 202 gtkSetLayer( fsFileSelect ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
203 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
204 case evFirstLoad: |
6622
da08877b9512
fix window hiding bug with some wms (kde, gnome, icewm, mwm, wmaker)
pontscho
parents:
6298
diff
changeset
|
205 ShowFileSelect( fsVideoSelector,0 ); |
6146 | 206 gtkSetLayer( fsFileSelect ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
207 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
208 case evLoadSubtitle: |
6622
da08877b9512
fix window hiding bug with some wms (kde, gnome, icewm, mwm, wmaker)
pontscho
parents:
6298
diff
changeset
|
209 ShowFileSelect( fsSubtitleSelector,0 ); |
6146 | 210 gtkSetLayer( fsFileSelect ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
211 break; |
6623 | 212 case evLoadAudioFile: |
213 ShowFileSelect( fsAudioSelector,0 ); | |
214 gtkSetLayer( fsFileSelect ); | |
215 break; | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
216 case evAbout: |
6146 | 217 ShowAboutBox(); |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
218 gtkSetLayer( AboutBox ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
219 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
220 case evShowPopUpMenu: |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
221 gtkPopupMenu=evNone; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
222 gtkPopupMenuParam=0; |
4950 | 223 if ( PopUpMenu ) gtk_widget_hide_on_delete( PopUpMenu ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
224 PopUpMenu=create_PopUpMenu(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
225 gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
226 break; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
227 case evHidePopUpMenu: |
4950 | 228 if ( PopUpMenu ) gtk_widget_hide_on_delete( PopUpMenu ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
229 break; |
6298 | 230 case evPlayNetwork: |
231 ShowURLDialogBox(); | |
232 break; | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
233 } |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4176
diff
changeset
|
234 } |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
235 |
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5919
diff
changeset
|
236 |