aboutsummaryrefslogtreecommitdiffhomepage
path: root/gui/mplayer/sw.c
diff options
context:
space:
mode:
Diffstat (limited to 'gui/mplayer/sw.c')
-rw-r--r--gui/mplayer/sw.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/gui/mplayer/sw.c b/gui/mplayer/sw.c
new file mode 100644
index 0000000000..20b6807cac
--- /dev/null
+++ b/gui/mplayer/sw.c
@@ -0,0 +1,92 @@
+
+// sub window
+
+#include <inttypes.h>
+
+#include "../config.h"
+#include "../libvo/x11_common.h"
+#include "../libvo/fastmemcpy.h"
+
+#include "app.h"
+#include "interface.h"
+#include "../help_mp.h"
+#include "widgets.h"
+
+int mplSubRender = 0;
+int SubVisible = 0;
+
+extern int boxMoved;
+extern int sx,sy;
+extern int i,pot;
+
+void mplSubDraw( void )
+{
+ if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit );
+
+ if ( appMPlayer.subWindow.State == wsWindowFocusIn ) SubVisible++;
+ if ( appMPlayer.subWindow.State == wsWindowFocusOut && metacity_hack != 3 ) SubVisible--;
+
+ if ( !appMPlayer.subWindow.Mapped ||
+ appMPlayer.subWindow.Visible == wsWindowNotVisible ) return;
+
+ if ( guiIntfStruct.Playing ) mplSubRender=0;
+
+ if ( mplSubRender && appMPlayer.subWindow.State == wsWindowExpose )
+ {
+ if ( appMPlayer.sub.Bitmap.Image ) wsPutImage( &appMPlayer.subWindow );
+ }
+ appMPlayer.subWindow.State=0;
+}
+
+void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
+{
+ static int mplSubMoved = 0;
+ static int msButton = 0;
+
+ mplPBShow( X,Y );
+
+ switch( Button )
+ {
+ case wsRRMouseButton:
+ gtkShow( evShowPopUpMenu,NULL );
+ break;
+ case wsPMMouseButton:
+ gtkShow( evHidePopUpMenu,NULL );
+ mplShowMenu( RX,RY );
+ msButton=wsPMMouseButton;
+ break;
+ case wsRMMouseButton:
+ mplHideMenu( RX,RY,1 );
+ msButton=0;
+ break;
+// ---
+ case wsPLMouseButton:
+ gtkShow( evHidePopUpMenu,NULL );
+ sx=X; sy=Y;
+ msButton=wsPLMouseButton;
+ mplSubMoved=0;
+ break;
+ case wsMoveMouse:
+ switch ( msButton )
+ {
+ case wsPLMouseButton:
+ mplSubMoved=1;
+ if ( !appMPlayer.subWindow.isFullScreen ) wsMoveWindow( &appMPlayer.subWindow,False,RX - sx,RY - sy );
+ break;
+ case wsPMMouseButton:
+ mplMenuMouseHandle( X,Y,RX,RY );
+ break;
+ default: mplPBShow( X,Y ); break;
+ }
+ break;
+ case wsRLMouseButton:
+ if ( ( !mplSubMoved )&&( appMPlayer.subWindow.isFullScreen ) )
+ {
+ if( SubVisible++%2 ) wsMoveTopWindow( wsDisplay,appMPlayer.mainWindow.WindowID );
+ else wsMoveTopWindow( wsDisplay,appMPlayer.subWindow.WindowID );
+ }
+ msButton=0;
+ mplSubMoved=0;
+ break;
+ }
+}