diff options
Diffstat (limited to 'Gui/mplayer/sw.c')
-rw-r--r-- | Gui/mplayer/sw.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Gui/mplayer/sw.c b/Gui/mplayer/sw.c new file mode 100644 index 0000000000..7a404d09ca --- /dev/null +++ b/Gui/mplayer/sw.c @@ -0,0 +1,74 @@ + +// sub window + +int mplSubRender = 0; +int SubVisible = 0; + +void mplSubDraw( wsParamDisplay ) +{ + if ( appMPlayer.subWindow.State == wsWindowClosed ) exit_player( MSGTR_Exit_quit ); + + if ( appMPlayer.subWindow.State == wsWindowFocusIn ) SubVisible++; + if ( appMPlayer.subWindow.State == wsWindowFocusOut && wsWMType != wsWMKDE && wsWMType != wsWMIceWM ) 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; + + switch( Button ) + { + case wsPRMouseButton: + 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; + } + break; + case wsRLMouseButton: + if ( ( !mplSubMoved )&&( appMPlayer.subWindow.isFullScreen ) ) + { + if( SubVisible++%2 ) wsMoveTopWindow( wsDisplay,appMPlayer.mainWindow.WindowID ); + else if ( wsWMType != wsWMNetWM && wsWMType != wsWMKDE ) wsMoveTopWindow( wsDisplay,appMPlayer.subWindow.WindowID ); + } + msButton=0; + mplSubMoved=0; + break; + } +} |