mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00:00
some bug fix
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5920 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d8751b2f38
commit
33d7a129df
@ -5,7 +5,7 @@ int mplMenuItem = -1;
|
||||
int mplOldMenuItem = -1;
|
||||
int mplMenuX,mplMenuY;
|
||||
|
||||
void mplHideMenu( int mx,int my );
|
||||
void mplHideMenu( int mx,int my,int w );
|
||||
|
||||
void mplMenuDraw( wsParamDisplay )
|
||||
{
|
||||
@ -85,7 +85,7 @@ void mplShowMenu( int mx,int my )
|
||||
wsPostRedisplay( &appMPlayer.menuWindow );
|
||||
}
|
||||
|
||||
void mplHideMenu( int mx,int my )
|
||||
void mplHideMenu( int mx,int my,int w )
|
||||
{
|
||||
int x,y,i=mplMenuItem;
|
||||
|
||||
@ -107,7 +107,7 @@ void mplHideMenu( int mx,int my )
|
||||
appMPlayer.MenuItems[i].x+appMPlayer.MenuItems[i].width,
|
||||
appMPlayer.MenuItems[i].y+appMPlayer.MenuItems[i].height ) )
|
||||
{
|
||||
mplEventHandling( appMPlayer.MenuItems[i].msg,0 );
|
||||
mplEventHandling( appMPlayer.MenuItems[i].msg,(float)w );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,7 +166,7 @@ void mplMainDraw( wsParamDisplay )
|
||||
PutImage( &item->Bitmap,item->x,item->y,3,item->pressed );
|
||||
break;
|
||||
case itPotmeter:
|
||||
PutImage( &item->Bitmap,item->x,item->y,item->phases,item->phases * ( item->value / 100.0f ) );
|
||||
PutImage( &item->Bitmap,item->x,item->y,item->phases,( item->phases - 1 ) * ( item->value / 100.0f ) );
|
||||
break;
|
||||
case itHPotmeter:
|
||||
PutImage( &item->Bitmap,item->x,item->y,item->phases,item->phases * ( item->value / 100.0f ) );
|
||||
@ -177,11 +177,10 @@ void mplMainDraw( wsParamDisplay )
|
||||
goto drawrenderedtext;
|
||||
case itDLabel:
|
||||
image=fntRender( item->fontid,mplTimer%item->width,item->width,"%s",Translate( item->label ) );
|
||||
//// image=fntRender( item->fontid,( mplRedrawTimer / 10 )%item->width,item->width,"%s",Translate( item->label ) );
|
||||
drawrenderedtext:
|
||||
PutImage( image,item->x,item->y,1,0 );
|
||||
if ( image )
|
||||
{
|
||||
PutImage( image,item->x,item->y,1,0 );
|
||||
if ( image->Image ) free( image->Image );
|
||||
free( image );
|
||||
}
|
||||
@ -428,7 +427,7 @@ void mplMainMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
itemtype=itPRMButton;
|
||||
break;
|
||||
case wsRRMouseButton:
|
||||
mplHideMenu( RX,RY );
|
||||
mplHideMenu( RX,RY,0 );
|
||||
break;
|
||||
|
||||
case wsPLMouseButton:
|
||||
|
@ -6,6 +6,8 @@ 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.Mapped ||
|
||||
@ -37,7 +39,7 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
msButton=wsPRMouseButton;
|
||||
break;
|
||||
case wsRRMouseButton:
|
||||
mplHideMenu( RX,RY );
|
||||
mplHideMenu( RX,RY,1 );
|
||||
msButton=0;
|
||||
break;
|
||||
// ---
|
||||
@ -67,9 +69,9 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
}
|
||||
break;
|
||||
case wsRLMouseButton:
|
||||
// if ( ( !mplSubMoved )&&( ( SubVisible++%2 ) ) ) wsMoveTopWindow( &appMPlayer.mainWindow );
|
||||
if ( !mplSubMoved )
|
||||
{
|
||||
#if 0
|
||||
if( SubVisible++%2 )
|
||||
{
|
||||
wsMoveTopWindow( &appMPlayer.mainWindow );
|
||||
@ -80,6 +82,18 @@ void mplSubMouseHandle( int Button,int X,int Y,int RX,int RY )
|
||||
wsMoveTopWindow( &appMPlayer.subWindow );
|
||||
fprintf( stderr,"[sw] SUB TOP\n" );
|
||||
}
|
||||
#else
|
||||
if ( appMPlayer.subWindow.Focused == 2 )
|
||||
{
|
||||
wsMoveTopWindow( &appMPlayer.mainWindow );
|
||||
fprintf( stderr,"[sw] MAIN TOP\n" );
|
||||
}
|
||||
else
|
||||
{
|
||||
wsMoveTopWindow( &appMPlayer.subWindow );
|
||||
fprintf( stderr,"[sw] SUB TOP\n" );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
msButton=0;
|
||||
mplSubMoved=0;
|
||||
|
@ -40,6 +40,7 @@ GtkWidget * ErrorPixmap;
|
||||
|
||||
int gtkPopupMenu = 0;
|
||||
int gtkPopupMenuParam = 0;
|
||||
int gtkInited = 0;
|
||||
|
||||
#include "gtk/sb.h"
|
||||
#include "gtk/pl.h"
|
||||
@ -49,25 +50,23 @@ int gtkPopupMenuParam = 0;
|
||||
#include "gtk/opts.h"
|
||||
#include "gtk/menu.h"
|
||||
|
||||
void widgetsCreate( void )
|
||||
{
|
||||
AboutBox=create_About();
|
||||
SkinBrowser=create_SkinBrowser();
|
||||
PlayList=create_PlayList();
|
||||
FileSelect=create_FileSelect();
|
||||
MessageBox=create_MessageBox(0);
|
||||
Options=create_Options();
|
||||
// PopUpMenu=create_PopUpMenu();
|
||||
}
|
||||
|
||||
// --- init & close gtk
|
||||
|
||||
void gtkInit( int argc,char* argv[], char *envp[] )
|
||||
{
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] init gtk ...\n" );
|
||||
gtk_set_locale();
|
||||
gtk_init( &argc,&argv );
|
||||
gdk_set_use_xshm( FALSE );
|
||||
widgetsCreate();
|
||||
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create about box.\n" ); AboutBox=create_About();
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create skin browser.\n" ); SkinBrowser=create_SkinBrowser();
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create playlist.\n" ); PlayList=create_PlayList();
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create file selector.\n" ); FileSelect=create_FileSelect();
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create message box.\n" ); MessageBox=create_MessageBox(0);
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[widget] Create preferences dialog box.\n" ); Options=create_Options();
|
||||
|
||||
gtkInited=1;
|
||||
}
|
||||
|
||||
void gtkDone( void )
|
||||
@ -105,6 +104,7 @@ void gtkEventHandling( void )
|
||||
|
||||
void gtkMessageBox( int type,gchar * str )
|
||||
{
|
||||
if ( !gtkInited ) return;
|
||||
gtk_label_set_text( GTK_LABEL( gtkMessageBoxText ),str );
|
||||
gtk_widget_hide( MessageBox );
|
||||
switch( type)
|
||||
|
@ -165,11 +165,12 @@ txSample * fntRender( int id,int px,int sx,char * fmt,... )
|
||||
|
||||
obuf=(unsigned long *)tmp->Image;
|
||||
ibuf=(unsigned long *)tmp2.Image;
|
||||
oy=0;
|
||||
|
||||
for ( y=0;y < tmp->Height;y++ )
|
||||
{
|
||||
ox=px;
|
||||
oy=y * sx; dx=y * tmp->Width;
|
||||
dx=y * tmp->Width;
|
||||
for ( x=0;x < sx;x++ )
|
||||
{
|
||||
ibuf[oy++]=obuf[dx + ox++];
|
||||
|
206
Gui/wm/ws.c
206
Gui/wm/ws.c
@ -22,6 +22,7 @@
|
||||
#include "ws.h"
|
||||
#include "wsconv.h"
|
||||
#include "../../postproc/rgb2rgb.h"
|
||||
#include "../../mp_msg.h"
|
||||
|
||||
#include <X11/extensions/XShm.h>
|
||||
#ifdef HAVE_XSHAPE
|
||||
@ -51,6 +52,7 @@ Window wsRootWin;
|
||||
XEvent wsEvent;
|
||||
int wsWindowDepth;
|
||||
int wsWMType = 1;
|
||||
int wsIsKDE = 0;
|
||||
GC wsHGC;
|
||||
MotifWmHints wsMotifWmHints;
|
||||
Atom wsTextProperlyAtom = None;
|
||||
@ -152,7 +154,7 @@ if(mDisplay){
|
||||
wsDisplay=XOpenDisplay( DisplayName );
|
||||
if ( !wsDisplay )
|
||||
{
|
||||
fprintf( stderr,"[ws] couldn't open the display !\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] couldn't open the display !\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
}
|
||||
@ -164,19 +166,19 @@ if(mDisplay){
|
||||
localdisp=0;
|
||||
wsUseXShm=0;
|
||||
}
|
||||
fprintf(stderr,"[ws] Display name: %s => %s display.\n",dispname,localdisp?"local":"REMOTE");
|
||||
if (!localdisp) fprintf(stderr,"[ws] Remote display, disabling XMITSHM\n");
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Display name: %s => %s display.\n",dispname,localdisp?"local":"REMOTE");
|
||||
if (!localdisp) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] Remote display, disabling XMITSHM\n");
|
||||
}
|
||||
|
||||
if ( !XShmQueryExtension( wsDisplay ) )
|
||||
{
|
||||
fprintf( stderr,"[ws] sorry, your system is not supported X shared memory extension.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_ERR,"[ws] sorry, your system is not supported X shared memory extension.\n" );
|
||||
wsUseXShm=0;
|
||||
}
|
||||
#ifdef HAVE_XSHAPE
|
||||
if ( !XShapeQueryExtension( wsDisplay,&eventbase,&errorbase ) )
|
||||
{
|
||||
fprintf( stderr,"[ws] sorry, your system is not supported XShape extension.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_ERR,"[ws] sorry, your system is not supported XShape extension.\n" );
|
||||
wsUseXShape=0;
|
||||
}
|
||||
#else
|
||||
@ -194,84 +196,63 @@ if(mDisplay){
|
||||
#ifdef DEBUG
|
||||
{
|
||||
int minor,major,shp;
|
||||
fprintf( stderr,"[ws] Screen depth: %d\n",wsDepthOnScreen );
|
||||
fprintf( stderr,"[ws] size: %dx%d\n",wsMaxX,wsMaxY );
|
||||
fprintf( stderr,"[ws] red mask: 0x%x\n",wsRedMask );
|
||||
fprintf( stderr,"[ws] green mask: 0x%x\n",wsGreenMask );
|
||||
fprintf( stderr,"[ws] blue mask: 0x%x\n",wsBlueMask );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Screen depth: %d\n",wsDepthOnScreen );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] size: %dx%d\n",wsMaxX,wsMaxY );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] red mask: 0x%x\n",wsRedMask );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] green mask: 0x%x\n",wsGreenMask );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] blue mask: 0x%x\n",wsBlueMask );
|
||||
if ( wsUseXShm )
|
||||
{
|
||||
XShmQueryVersion( wsDisplay,&major,&minor,&shp );
|
||||
fprintf( stderr,"[ws] XShm version is %d.%d\n",major,minor );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] XShm version is %d.%d\n",major,minor );
|
||||
}
|
||||
#ifdef HAVE_XSHAPE
|
||||
if ( wsUseXShape )
|
||||
{
|
||||
XShapeQueryVersion( wsDisplay,&major,&minor );
|
||||
fprintf( stderr,"[ws] XShape version is %d.%d\n",major,minor );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[ws] XShape version is %d.%d\n",major,minor );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
initConverter();
|
||||
wsOutMask=wsGetOutMask();
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"[ws] Initialized converter: " );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] Initialized converter: " );
|
||||
switch ( wsOutMask )
|
||||
{
|
||||
case wsRGB32:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to rgb32\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb32\n" );
|
||||
wsConvFunc=BGR8880_to_RGB8880_c;
|
||||
break;
|
||||
case wsBGR32:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to bgr32\n" );
|
||||
#endif
|
||||
// wsConvFunc=BGR8880_to_BGR8880_c;
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr32\n" );
|
||||
wsConvFunc=rgb32tobgr32;
|
||||
break;
|
||||
case wsRGB24:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to rgb24\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb24\n" );
|
||||
wsConvFunc=rgb32to24;
|
||||
break;
|
||||
case wsBGR24:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to bgr24\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr24\n" );
|
||||
wsConvFunc=BGR8880_to_BGR888_c;
|
||||
break;
|
||||
case wsRGB16:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to rgb16\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb16\n" );
|
||||
wsConvFunc=rgb32to16;
|
||||
break;
|
||||
case wsBGR16:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to bgr16\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr16\n" );
|
||||
wsConvFunc=BGR8880_to_BGR565_c;
|
||||
break;
|
||||
case wsRGB15:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to rgb15\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to rgb15\n" );
|
||||
wsConvFunc=rgb32to15;
|
||||
break;
|
||||
case wsBGR15:
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"rgb32 to bgr15\n" );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"rgb32 to bgr15\n" );
|
||||
wsConvFunc=BGR8880_to_BGR555_c;
|
||||
break;
|
||||
}
|
||||
// XSetIOErrorHandler( wsIOErrorHandler );
|
||||
// XSetErrorHandler( wsErrorHandler );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------------------
|
||||
@ -325,7 +306,7 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
XGetWindowAttributes( wsDisplay,wsRootWin,&win->Attribs );
|
||||
if ( win->Attribs.depth < 15 )
|
||||
{
|
||||
fprintf( stderr,"[ws] sorry, this color depth is not enough.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] sorry, this color depth is not enough.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
XMatchVisualInfo( wsDisplay,wsScreen,win->Attribs.depth,TrueColor,&win->VisualInfo );
|
||||
@ -338,33 +319,15 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
win->AtomWMSizeHint=XInternAtom( wsDisplay,"WM_SIZE_HINT",False );
|
||||
win->AtomWMNormalHint=XInternAtom( wsDisplay,"WM_NORMAL_HINT",False );
|
||||
win->AtomProtocols=XInternAtom( wsDisplay,"WM_PROTOCOLS",False );
|
||||
#if 0
|
||||
{
|
||||
char buf[32]; int i;
|
||||
sprintf( buf,"_%s_REMOTE",label );
|
||||
for( i=0;i < (int)strlen( buf );i++ )
|
||||
if ( ( buf[i] >= 'a' )&&( buf[i] <= 'z' ) ) buf[i]=buf[i] - 32;
|
||||
for( i=0;i < (int)strlen( buf );i++ )
|
||||
if ( buf[i] == ' ' ) buf[i]='_';
|
||||
fprintf( stderr,"[ws] atomname: %s\n",buf );
|
||||
win->AtomRemote=XInternAtom( wsDisplay,buf,False );
|
||||
}
|
||||
#endif
|
||||
win->AtomsProtocols[0]=win->AtomDeleteWindow;
|
||||
win->AtomsProtocols[1]=win->AtomTakeFocus;
|
||||
win->AtomsProtocols[2]=win->AtomRolle;
|
||||
// ---
|
||||
|
||||
// win->WindowAttrib.background_pixel=BlackPixel( wsDisplay,wsScreen );
|
||||
// win->WindowAttrib.border_pixel=BlackPixel( wsDisplay,wsScreen );
|
||||
win->WindowAttrib.background_pixel=BlackPixel( wsDisplay,wsScreen );
|
||||
win->WindowAttrib.border_pixel=WhitePixel( wsDisplay,wsScreen );
|
||||
win->WindowAttrib.colormap=XCreateColormap( wsDisplay,wsRootWin,win->VisualInfo.visual,AllocNone );
|
||||
win->WindowAttrib.event_mask=StructureNotifyMask | FocusChangeMask |
|
||||
//SubstructureRedirectMask |
|
||||
//SubstructureNotifyMask |
|
||||
//ResizeRedirectMask |
|
||||
//GCGraphicsExposures |
|
||||
ExposureMask | PropertyChangeMask |
|
||||
EnterWindowMask | LeaveWindowMask |
|
||||
VisibilityChangeMask |
|
||||
@ -375,9 +338,6 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
win->WindowAttrib.override_redirect=False;
|
||||
if ( D & wsOverredirect ) win->WindowAttrib.override_redirect=True;
|
||||
|
||||
// win->WindowAttrib.save_under=True;
|
||||
// win->WindowAttrib.do_not_propagate_mask = True;
|
||||
|
||||
win->WindowMask=CWBackPixel | CWBorderPixel |
|
||||
CWColormap | CWEventMask | CWCursor |
|
||||
CWX | CWY | CWWidth | CWHeight |
|
||||
@ -391,16 +351,12 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
win->VisualInfo.visual,
|
||||
win->WindowMask,&win->WindowAttrib );
|
||||
|
||||
#if 0
|
||||
wsClassHint.res_name=label;
|
||||
#else
|
||||
wsClassHint.res_name="MPlayer";
|
||||
#endif
|
||||
|
||||
wsClassHint.res_class="MPlayer";
|
||||
XSetClassHint( wsDisplay,win->WindowID,&wsClassHint );
|
||||
|
||||
win->SizeHint.flags=PPosition | PSize | PResizeInc | PWinGravity; // | PBaseSize
|
||||
win->SizeHint.flags=PPosition | PSize | PResizeInc | PWinGravity | PBaseSize;
|
||||
win->SizeHint.x=win->X;
|
||||
win->SizeHint.y=win->Y;
|
||||
win->SizeHint.width=win->Width;
|
||||
@ -419,8 +375,8 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
}
|
||||
win->SizeHint.height_inc=1;
|
||||
win->SizeHint.width_inc=1;
|
||||
// win->SizeHint.base_width=win->Width;
|
||||
// win->SizeHint.base_height=win->Height;
|
||||
win->SizeHint.base_width=win->Width;
|
||||
win->SizeHint.base_height=win->Height;
|
||||
win->SizeHint.win_gravity=StaticGravity;
|
||||
XSetWMNormalHints( wsDisplay,win->WindowID,&win->SizeHint );
|
||||
|
||||
@ -445,37 +401,6 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
wsTextProperty.nitems=strlen( label );
|
||||
XSetWMIconName( wsDisplay,win->WindowID,&wsTextProperty );
|
||||
|
||||
#if 0
|
||||
XChangeProperty( wsDisplay,win->WindowID,
|
||||
win->AtomRemote,XA_STRING,
|
||||
8,PropModeReplace,
|
||||
"REALIZED",8 );
|
||||
#endif
|
||||
|
||||
// win->Font=XLoadQueryFont( wsDisplay,"-adobe-helvetica-bold-r-normal--14-140-75-75-p-77-iso8859-1" );
|
||||
// -adobe-times-medium-r-normal--14-140-75-75-p-77-iso8859-1" );
|
||||
// -misc-fixed-bold-r-normal--13-120-75-75-C-80-iso8859-1" );
|
||||
// -misc-fixed-bold-r-normal--15-140-75-75-C-90-iso8859-1" );
|
||||
// -misc-fixed-medium-r-normal--15-140-75-75-C-90-iso8859-1" );
|
||||
// -adobe-times-medium-r-normal--24-240-75-75-p-124-iso8859-1" );
|
||||
// -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1" );
|
||||
// -*-helvetica-bold-o-normal--14-*-*-*-p-*-iso8859-1" );
|
||||
// if ( !win->Font ) win->Font=XLoadQueryFont( wsDisplay,"fixed" );
|
||||
// if ( !win->Font )
|
||||
// {
|
||||
// fprintf( stderr,"[main] could not load font.\n" );
|
||||
// exit( 0 );
|
||||
// }
|
||||
// win->FontHeight=win->Font->ascent + win->Font->descent;
|
||||
//
|
||||
// #ifdef DEBUG
|
||||
// fprintf( stderr,"[ws] font height: %d\n",win->FontHeight );
|
||||
// #endif
|
||||
|
||||
// win->wGCV.font=win->Font->fid;
|
||||
// win->wGCV.foreground=wsBlack;
|
||||
// win->wGCV.background=wsBlack;
|
||||
|
||||
win->wGC=XCreateGC( wsDisplay,win->WindowID,
|
||||
GCForeground | GCBackground,
|
||||
&win->wGCV );
|
||||
@ -499,9 +424,7 @@ void wsCreateWindow( wsTWindow * win,int X,int Y,int wX,int hY,int bW,int cV,uns
|
||||
win->Idle=NULL;
|
||||
win->MouseHandler=NULL;
|
||||
win->KeyHandler=NULL;
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"[ws] window is created. ( %s ).\n",label );
|
||||
#endif
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[ws] window is created. ( %s ).\n",label );
|
||||
}
|
||||
|
||||
void wsDestroyWindow( wsTWindow * win )
|
||||
@ -556,17 +479,14 @@ Bool wsEvents( Display * display,XEvent * Event,XPointer arg )
|
||||
if ( Event->xclient.message_type == wsWindowList[l]->AtomProtocols )
|
||||
{
|
||||
if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomDeleteWindow )
|
||||
{ wsTrue=False; break; }
|
||||
{ i=wsWindowClosed; goto expose; }
|
||||
if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomTakeFocus )
|
||||
{ i=wsWindowFocusIn; wsWindowList[l]->Focused=wsFocused; goto expose; }
|
||||
if ( Event->xclient.data.l[0] == wsWindowList[l]->AtomRolle )
|
||||
{ fprintf( stderr,"[ws] rolled.\n" ); }
|
||||
{ mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] rolled.\n" ); }
|
||||
}
|
||||
break;
|
||||
|
||||
// case CirculateRequest:fprintf( stderr,"[ws,r] win: 0x%x\n",(int)Event->xcirculaterequest.window ); break;
|
||||
// case CirculateNotify: fprintf( stderr,"[ws,c] win: 0x%x\n",(int)Event->xcirculate.window ); break;
|
||||
|
||||
case MapNotify: i=wsWindowMapped; wsWindowList[l]->Mapped=wsMapped; goto expose;
|
||||
case UnmapNotify: i=wsWindowUnmapped; wsWindowList[l]->Mapped=wsNone; goto expose;
|
||||
case FocusIn:
|
||||
@ -602,7 +522,6 @@ expose:
|
||||
{
|
||||
wsWindowList[l]->X=x; wsWindowList[l]->Y=y;
|
||||
wsWindowList[l]->Width=Event->xconfigure.width; wsWindowList[l]->Height=Event->xconfigure.height;
|
||||
// fprintf( stderr,"[ws] resize: %d,%d %dx%d\n",wsWindowList[l]->X,wsWindowList[l]->Y,Event->xconfigure.width,Event->xconfigure.height );
|
||||
if ( wsWindowList[l]->ReSize ) wsWindowList[l]->ReSize( wsWindowList[l]->X,wsWindowList[l]->Y,wsWindowList[l]->Width,wsWindowList[l]->Height );
|
||||
}
|
||||
|
||||
@ -645,12 +564,6 @@ buttonreleased:
|
||||
wsWindowList[l]->MouseHandler( i,Event->xbutton.x,Event->xbutton.y,Event->xmotion.x_root,Event->xmotion.y_root );
|
||||
break;
|
||||
|
||||
// case GravityNotify:
|
||||
// #ifdef DEBUG
|
||||
// fprintf( stderr,"[ws] window ( 0x%x ) gravity: %d,%d\n",wsWindowList[l]->WindowID,Event->xgravity.x,Event->xgravity.y );
|
||||
// #endif
|
||||
// break;
|
||||
|
||||
case PropertyNotify:
|
||||
{
|
||||
char * name = XGetAtomName( wsDisplay,Event->xproperty.atom );
|
||||
@ -659,47 +572,20 @@ buttonreleased:
|
||||
if ( !strncmp( name,"_ICEWM_TRAY",11 ) ||
|
||||
!strncmp( name,"_KDE_",5 ) ||
|
||||
!strncmp( name,"KWM_WIN_DESKTOP",15 ) ) wsWMType=0;
|
||||
|
||||
if ( !strncmp( name,"_KDE_",5 ) ) wsIsKDE=1;
|
||||
|
||||
// fprintf(stderr,"[ws] PropertyNotify %s ( 0x%x )\n",name,Event->xproperty.atom );
|
||||
|
||||
XFree( name );
|
||||
break;
|
||||
}
|
||||
#if 0
|
||||
if ( Event->xproperty.atom == wsWindowList[l]->AtomRemote )
|
||||
{
|
||||
Atom type;
|
||||
int format;
|
||||
unsigned long nitems, bytesafter;
|
||||
unsigned char * args = NULL;
|
||||
|
||||
// fprintf( stderr,"[ws] remote property notify.\n" );
|
||||
XGetWindowProperty( wsDisplay,
|
||||
Event->xproperty.window,
|
||||
Event->xproperty.atom,
|
||||
0,( 65536 / sizeof( long ) ),
|
||||
False,XA_STRING,
|
||||
&type,&format,&nitems,&bytesafter,
|
||||
&args );
|
||||
if ( ( nitems )&&( wsWindowList[l]->RemoteHandler ) )
|
||||
{
|
||||
args[strlen( args ) - 1]=0;
|
||||
wsWindowList[l]->RemoteHandler( args );
|
||||
#ifdef DEBUG
|
||||
fprintf( stderr,"[ws] args: '%s'\n",args );
|
||||
#endif
|
||||
args[strlen( args ) - 1]=1;
|
||||
XFree( args );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
}
|
||||
XFlush( wsDisplay );
|
||||
XSync( wsDisplay,False );
|
||||
return !wsTrue;
|
||||
// return True;
|
||||
}
|
||||
|
||||
Bool wsDummyEvents( Display * display,XEvent * Event,XPointer arg )
|
||||
@ -719,7 +605,7 @@ extern void mplTimerHandler( void );
|
||||
void wsMainLoop( void )
|
||||
{
|
||||
int delay=20;
|
||||
fprintf( stderr,"[ws] init threads: %d\n",XInitThreads() );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_STATUS,"[ws] init threads: %d\n",XInitThreads() );
|
||||
XSynchronize( wsDisplay,False );
|
||||
XLockDisplay( wsDisplay );
|
||||
// XIfEvent( wsDisplay,&wsEvent,wsEvents,NULL );
|
||||
@ -730,7 +616,6 @@ while(wsTrue){
|
||||
// handle pending events
|
||||
while ( XPending(wsDisplay) ){
|
||||
XNextEvent( wsDisplay,&wsEvent );
|
||||
// printf("### X event: %d [%d]\n",wsEvent.type,delay);
|
||||
wsEvents( wsDisplay,&wsEvent,NULL );
|
||||
delay=0;
|
||||
}
|
||||
@ -835,7 +720,6 @@ void wsPutImage( wsTWindow * win )
|
||||
0,0,
|
||||
( win->Width - win->xImage->width ) / 2,( win->Height - win->xImage->height ) / 2,
|
||||
win->xImage->width,win->xImage->height,0 );
|
||||
// win->Width,win->Height,0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -918,7 +802,8 @@ void wsIconify( wsTWindow win )
|
||||
// ----------------------------------------------------------------------------------------------
|
||||
void wsMoveTopWindow( wsTWindow * win )
|
||||
{
|
||||
// XUnmapWindow( wsDisplay,win->WindowID ); XMapWindow( wsDisplay,win->WindowID );
|
||||
if ( wsIsKDE ) return;
|
||||
XMapRaised( wsDisplay,win->WindowID );
|
||||
XRaiseWindow( wsDisplay,win->WindowID );
|
||||
}
|
||||
|
||||
@ -1065,17 +950,14 @@ void wsCreateImage( wsTWindow * win,int Width,int Height )
|
||||
win->Attribs.depth,ZPixmap,NULL,&win->Shminfo,Width,Height );
|
||||
if ( win->xImage == NULL )
|
||||
{
|
||||
fprintf( stderr,"[ws] shared memory extension error.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
// #ifdef DEBUG
|
||||
// fprintf( stderr,"[ws] Screen depth: %d\n",win->xImage->bits_per_pixel );
|
||||
// #endif
|
||||
win->Shminfo.shmid=shmget( IPC_PRIVATE,win->xImage->bytes_per_line * win->xImage->height,IPC_CREAT|0777 );
|
||||
if ( win->Shminfo.shmid < 0 )
|
||||
{
|
||||
XDestroyImage( win->xImage );
|
||||
fprintf( stderr,"[ws] shared memory extension error.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
win->Shminfo.shmaddr=(char *)shmat( win->Shminfo.shmid,0,0 );
|
||||
@ -1084,7 +966,7 @@ void wsCreateImage( wsTWindow * win,int Width,int Height )
|
||||
{
|
||||
XDestroyImage( win->xImage );
|
||||
if ( win->Shminfo.shmaddr != ((char *) -1) ) shmdt( win->Shminfo.shmaddr );
|
||||
fprintf( stderr,"[ws] shared memory extension error.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] shared memory extension error.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
win->xImage->data=win->Shminfo.shmaddr;
|
||||
@ -1100,7 +982,7 @@ void wsCreateImage( wsTWindow * win,int Width,int Height )
|
||||
0 );
|
||||
if ( ( win->xImage->data=malloc( win->xImage->bytes_per_line * win->xImage->height ) ) == NULL )
|
||||
{
|
||||
fprintf( stderr,"[ws] sorry, not enough memory for draw buffer.\n" );
|
||||
mp_msg( MSGT_GPLAYER,MSGL_FATAL,"[ws] sorry, not enough memory for draw buffer.\n" );
|
||||
exit( 0 );
|
||||
}
|
||||
}
|
||||
@ -1142,15 +1024,15 @@ void wsScreenSaverOn( Display *mDisplay )
|
||||
{
|
||||
if ( DPMSQueryExtension( mDisplay,¬hing,¬hing ) )
|
||||
{
|
||||
if ( !DPMSEnable( mDisplay ) ) fprintf( stderr,"DPMS not available ?\n" ); // restoring power saving settings
|
||||
if ( !DPMSEnable( mDisplay ) ) mp_msg( MSGT_GPLAYER,MSGL_ERR,"DPMS not available ?\n" ); // restoring power saving settings
|
||||
else
|
||||
{
|
||||
// DPMS does not seem to be enabled unless we call DPMSInfo
|
||||
BOOL onoff;
|
||||
CARD16 state;
|
||||
DPMSInfo( mDisplay,&state,&onoff );
|
||||
if ( onoff ) fprintf( stderr,"Successfully enabled DPMS.\n" );
|
||||
else fprintf( stderr,"Could not enable DPMS.\n" );
|
||||
if ( onoff ) mp_msg( MSGT_GPLAYER,MSGL_STATUS,"Successfully enabled DPMS.\n" );
|
||||
else mp_msg( MSGT_GPLAYER,MSGL_STATUS,"Could not enable DPMS.\n" );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1176,10 +1058,10 @@ void wsScreenSaverOff( Display * mDisplay )
|
||||
if ( onoff )
|
||||
{
|
||||
Status stat;
|
||||
fprintf( stderr,"Disabling DPMS.\n" );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"Disabling DPMS.\n" );
|
||||
dpms_disabled=1;
|
||||
stat=DPMSDisable( mDisplay ); // monitor powersave off
|
||||
fprintf( stderr,"stat: %d.\n",stat );
|
||||
mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"stat: %d.\n",stat );
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -77,6 +77,7 @@
|
||||
#define wsWindowFocusOut 64
|
||||
#define wsWindowExpose 128
|
||||
#define wsWindowRolled 256
|
||||
#define wsWindowClosed 512
|
||||
|
||||
#define wsNone 0
|
||||
#define wsMapped 1
|
||||
|
@ -498,9 +498,6 @@ int vo_x11_check_events(Display *mydisplay){
|
||||
&vo_dx, &vo_dy, (Window *)&foo);
|
||||
}
|
||||
#endif
|
||||
// if (verbose)
|
||||
printf("X11 Window %dx%d-%dx%d\n", vo_dx, vo_dy, vo_dwidth, vo_dheight);
|
||||
printf("============================================================\n" );
|
||||
ret|=VO_EVENT_RESIZE;
|
||||
break;
|
||||
case KeyPress:
|
||||
@ -549,8 +546,7 @@ int vo_x11_check_events(Display *mydisplay){
|
||||
!strncmp( name,"_KDE_",5 ) ||
|
||||
!strncmp( name,"KWM_WIN_DESKTOP",15 ) ) vo_wm_type=0;
|
||||
|
||||
fprintf(stderr,"[ws] PropertyNotify ( 0x%x ) %s ( 0x%x )\n",
|
||||
vo_window,name,Event.xproperty.atom );
|
||||
// fprintf(stderr,"[ws] PropertyNotify ( 0x%x ) %s ( 0x%x )\n",vo_window,name,Event.xproperty.atom );
|
||||
|
||||
XFree( name );
|
||||
}
|
||||
@ -578,6 +574,7 @@ void vo_x11_sizehint( int x, int y, int width, int height, int max )
|
||||
void vo_x11_fullscreen( void )
|
||||
{
|
||||
if ( vo_wm_type ) XUnmapWindow( mDisplay,vo_window );
|
||||
|
||||
if ( !vo_fs )
|
||||
{
|
||||
vo_fs=VO_TRUE;
|
||||
|
8
mp_msg.c
8
mp_msg.c
@ -47,7 +47,7 @@ void mp_msg_c( int x, const char *format, ... ){
|
||||
vsnprintf(tmp, 2048, mp_gettext(format), va);
|
||||
tmp[2047] = 0;
|
||||
|
||||
#if defined(HAVE_NEW_GUI) && !defined(HAVE_MENCODER) && 0
|
||||
#if defined(HAVE_NEW_GUI) && !defined(HAVE_MENCODER)
|
||||
if(use_gui)
|
||||
{
|
||||
switch(x & 255)
|
||||
@ -58,9 +58,9 @@ void mp_msg_c( int x, const char *format, ... ){
|
||||
case MSGL_ERR:
|
||||
gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, tmp);
|
||||
break;
|
||||
case MSGL_WARN:
|
||||
gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp);
|
||||
break;
|
||||
// case MSGL_WARN:
|
||||
// gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, tmp);
|
||||
// break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user