Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-1.1
Commits
f0208594
Commit
f0208594
authored
May 19, 2003
by
Cyril Deguet
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* a lot of cleaning in X11 skins, but some problems remain with
event handling :(
parent
52783dae
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
97 additions
and
94 deletions
+97
-94
modules/gui/skins/x11/x11_api.cpp
modules/gui/skins/x11/x11_api.cpp
+27
-19
modules/gui/skins/x11/x11_bitmap.cpp
modules/gui/skins/x11/x11_bitmap.cpp
+1
-2
modules/gui/skins/x11/x11_event.cpp
modules/gui/skins/x11/x11_event.cpp
+16
-16
modules/gui/skins/x11/x11_font.cpp
modules/gui/skins/x11/x11_font.cpp
+3
-3
modules/gui/skins/x11/x11_run.cpp
modules/gui/skins/x11/x11_run.cpp
+21
-24
modules/gui/skins/x11/x11_theme.cpp
modules/gui/skins/x11/x11_theme.cpp
+4
-3
modules/gui/skins/x11/x11_window.cpp
modules/gui/skins/x11/x11_window.cpp
+25
-27
No files found.
modules/gui/skins/x11/x11_api.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_api.cpp: Various x11-specific functions
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_api.cpp,v 1.
1 2003/04/28 14:32:57
asmax Exp $
* $Id: x11_api.cpp,v 1.
2 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
*
...
...
@@ -28,12 +28,14 @@
#include <X11/Xlib.h>
//--- SKIN ------------------------------------------------------------------
#include <vlc/intf.h>
#include "../src/skin_common.h"
#include "../src/window.h"
#include "../os_window.h"
#include "../os_api.h"
#include "../src/event.h" // for MAX_PARAM_SIZE
#include <stdio.h>
extern
intf_thread_t
*
g_pIntf
;
// ugly, but it's not my fault ;)
//---------------------------------------------------------------------------
// Event API
...
...
@@ -51,24 +53,21 @@ void OSAPI_SendMessage( SkinWindow *win, unsigned int message, unsigned int para
void
OSAPI_PostMessage
(
SkinWindow
*
win
,
unsigned
int
message
,
unsigned
int
param1
,
long
param2
)
{
XEvent
event
;
/* GdkEventClient *event = new GdkEventClient;
event->type = GDK_CLIENT_EVENT;
event
.
type
=
ClientMessage
;
event
.
xclient
.
display
=
g_pIntf
->
p_sys
->
display
;
if
(
win
==
NULL
)
event
->
window = NULL;
event
.
xclient
.
window
=
NULL
;
else
event->window = (( Window )win)->GetHandle();
event->send_event = 0;
event->message_type = NULL;
event->data_format = 32;
event->data.l[0] = message;
event->data.l[1] = param1;
event->data.l[2] = param2;
gdk_event_put( (GdkEvent *)event );
delete event;*/
event
.
xclient
.
window
=
((
X11Window
*
)
win
)
->
GetHandle
();
event
.
xclient
.
send_event
=
0
;
event
.
xclient
.
message_type
=
NULL
;
event
.
xclient
.
format
=
32
;
event
.
xclient
.
data
.
l
[
0
]
=
message
;
event
.
xclient
.
data
.
l
[
1
]
=
param1
;
event
.
xclient
.
data
.
l
[
2
]
=
param2
;
XSendEvent
(
g_pIntf
->
p_sys
->
display
,
event
.
xclient
.
window
,
False
,
0
,
&
event
);
}
//---------------------------------------------------------------------------
...
...
@@ -117,12 +116,21 @@ void OSAPI_GetScreenSize( int &w, int &h )
//---------------------------------------------------------------------------
void
OSAPI_GetMousePos
(
int
&
x
,
int
&
y
)
{
/* gdk_window_get_pointer( gdk_get_default_root_window(), &x, &y, NULL );*/
Window
rootReturn
,
childReturn
;
int
rootx
,
rooty
;
int
winx
,
winy
;
unsigned
int
xmask
;
Window
root
=
DefaultRootWindow
(
g_pIntf
->
p_sys
->
display
);
XQueryPointer
(
g_pIntf
->
p_sys
->
display
,
root
,
&
rootReturn
,
&
childReturn
,
&
rootx
,
&
rooty
,
&
winx
,
&
winy
,
&
xmask
);
x
=
rootx
;
y
=
rooty
;
}
//---------------------------------------------------------------------------
string
OSAPI_GetWindowTitle
(
SkinWindow
*
win
)
{
/* return ( (GTK2Window *)win )->GetName();*/
return
(
(
X11Window
*
)
win
)
->
GetName
();
}
//---------------------------------------------------------------------------
bool
OSAPI_RmDir
(
string
path
)
...
...
modules/gui/skins/x11/x11_bitmap.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_bitmap.cpp: X11 implementation of the Bitmap class
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_bitmap.cpp,v 1.
4 2003/05/18 17:48:05
asmax Exp $
* $Id: x11_bitmap.cpp,v 1.
5 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
* Emmanuel Puig <karibu@via.ecp.fr>
...
...
@@ -206,7 +206,6 @@ char *X11Bitmap::LoadFromFile( string fileName, int depth, int AColor,
dataSize
=
U32
(
headers
+
34
);
nColors
=
U32
(
headers
+
50
);
fprintf
(
stderr
,
"image %s %x
\n
"
,
fileName
.
c_str
(),
AColor
);
switch
(
bpp
)
{
case
24
:
...
...
modules/gui/skins/x11/x11_event.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_event.cpp: x11 implementation of the Event class
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_event.cpp,v 1.
1 2003/04/28 14:32:57
asmax Exp $
* $Id: x11_event.cpp,v 1.
2 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
* Emmanuel Puig <karibu@via.ecp.fr>
...
...
@@ -61,7 +61,7 @@ X11Event::X11Event( intf_thread_t *p_intf, Window wnd, unsigned int msg,
X11Event
::
X11Event
(
intf_thread_t
*
p_intf
,
SkinWindow
*
win
,
unsigned
int
msg
,
unsigned
int
par1
,
long
par2
)
:
Event
(
p_intf
,
msg
,
par1
,
par2
)
{
// g
Wnd = ( (X11Window *)win )->GetHandle();
Wnd
=
(
(
X11Window
*
)
win
)
->
GetHandle
();
}
//---------------------------------------------------------------------------
X11Event
::~
X11Event
()
...
...
@@ -70,15 +70,15 @@ X11Event::~X11Event()
//---------------------------------------------------------------------------
bool
X11Event
::
SendEvent
()
{
/*
if( Message != VLC_NOTHING )
if
(
Message
!=
VLC_NOTHING
)
{
// Find window matching with
gw
nd
// Find window matching with
W
nd
list
<
SkinWindow
*>::
const_iterator
win
;
for
(
win
=
p_intf
->
p_sys
->
p_theme
->
WindowList
.
begin
();
win
!=
p_intf
->
p_sys
->
p_theme
->
WindowList
.
end
();
win
++
)
{
// If it is the correct window
if(
g
Wnd == ( (X11Window *)(*win) )->GetHandle() )
if
(
Wnd
==
(
(
X11Window
*
)(
*
win
)
)
->
GetHandle
()
)
{
OSAPI_PostMessage
(
*
win
,
Message
,
Param1
,
Param2
);
PostSynchroMessage
();
...
...
@@ -88,40 +88,40 @@ bool X11Event::SendEvent()
OSAPI_PostMessage
(
NULL
,
Message
,
Param1
,
Param2
);
return
true
;
}
*/
return
false
;
}
//---------------------------------------------------------------------------
bool
X11Event
::
IsEqual
(
Event
*
evt
)
{
/* X11Event *GTK
Evt = (X11Event *)evt;
return(
GTKEvt->GetWindow() == gWnd && GTK
Evt->GetMessage() == Message &&
GTKEvt->GetParam1() == Param1 && GTKEvt->GetParam2() == Param2 );*/
X11Event
*
X
Evt
=
(
X11Event
*
)
evt
;
return
(
XEvt
->
GetWindow
()
==
Wnd
&&
X
Evt
->
GetMessage
()
==
Message
&&
XEvt
->
GetParam1
()
==
Param1
&&
XEvt
->
GetParam2
()
==
Param2
);
}
//---------------------------------------------------------------------------
void
X11Event
::
CreateOSEvent
(
string
para1
,
string
para2
,
string
para3
)
{
// Find Parameters
/*
switch( Message )
switch
(
Message
)
{
case
WINDOW_MOVE
:
g
Wnd = GetWindowFromName( para1 );
Wnd
=
GetWindowFromName
(
para1
);
break
;
case
WINDOW_CLOSE
:
g
Wnd = GetWindowFromName( para1 );
Wnd
=
GetWindowFromName
(
para1
);
break
;
case
WINDOW_OPEN
:
g
Wnd = GetWindowFromName( para1 );
Wnd
=
GetWindowFromName
(
para1
);
break
;
}
*/
}
}
//---------------------------------------------------------------------------
Window
X11Event
::
GetWindowFromName
(
string
name
)
{
/*
X11Window *win = (X11Window *)
X11Window
*
win
=
(
X11Window
*
)
p_intf
->
p_sys
->
p_theme
->
GetWindow
(
name
);
if
(
win
==
NULL
)
...
...
@@ -131,7 +131,7 @@ Window X11Event::GetWindowFromName( string name )
else
{
return
win
->
GetHandle
();
}
*/
}
}
//---------------------------------------------------------------------------
...
...
modules/gui/skins/x11/x11_font.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_font.cpp: X11 implementation of the Font class
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_font.cpp,v 1.
2 2003/05/18 17:48:05
asmax Exp $
* $Id: x11_font.cpp,v 1.
3 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
* Emmanuel Puig <karibu@via.ecp.fr>
...
...
@@ -91,8 +91,8 @@ void X11Font::AssignFont( Graphics *dest )
//---------------------------------------------------------------------------
void
X11Font
::
GetSize
(
string
text
,
int
&
w
,
int
&
h
)
{
w
=
0
;
h
=
0
;
w
=
42
;
h
=
12
;
/* pango_layout_set_text( Layout, text.c_str(), text.length() );
pango_layout_get_pixel_size( Layout, &w, &h );*/
}
...
...
modules/gui/skins/x11/x11_run.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_run.cpp:
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_run.cpp,v 1.
5 2003/05/18 17:48:05
asmax Exp $
* $Id: x11_run.cpp,v 1.
6 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
*
...
...
@@ -53,6 +53,8 @@
// include the icon graphic
#include "share/vlc32x32.xpm"
#include <unistd.h>
//---------------------------------------------------------------------------
// Specific method
...
...
@@ -191,17 +193,6 @@ private:
}*/
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// REFRESH TIMER CALLBACK
//---------------------------------------------------------------------------
/*gboolean RefreshTimer( gpointer data )
{
intf_thread_t *p_intf = (intf_thread_t *)data;
SkinManage( p_intf );
return true;
}*/
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Implementation of Instance class
...
...
@@ -257,12 +248,11 @@ void ProcessEvent( intf_thread_t *p_intf, VlcProc *proc, XEvent *event )
// Skin event
if
(
event
->
type
==
ClientMessage
)
{
/* msg = ( (GdkEventCli
ent *)event )->data.l[0];
msg
=
(
(
XClientMessageEv
ent
*
)
event
)
->
data
.
l
[
0
];
evt
=
(
Event
*
)
new
OSEvent
(
p_intf
,
((GdkEventAny *)event)->window,
msg,
( (GdkEventClient *)event )->data.l[1],
( (GdkEventClient *)event )->data.l[2] );*/
((
XAnyEvent
*
)
event
)
->
window
,
msg
,
(
(
XClientMessageEvent
*
)
event
)
->
data
.
l
[
1
],
(
(
XClientMessageEvent
*
)
event
)
->
data
.
l
[
2
]
);
}
// System event
else
...
...
@@ -357,18 +347,25 @@ void OSRun( intf_thread_t *p_intf )
/* wxTheApp = new Instance( p_intf, callbackobj );
wxEntry( 1, p_args );*/
Display
*
display
=
((
OSTheme
*
)
p_intf
->
p_sys
->
p_theme
)
->
GetDisplay
();
// Main event loop
int
count
=
0
;
while
(
1
)
{
XEvent
*
event
;
XNextEvent
(
display
,
event
);
ProcessEvent
(
p_intf
,
proc
,
event
);
// kludge: add timer
// SkinManage( p_intf );
XEvent
event
;
while
(
XPending
(
display
)
>
0
)
{
XNextEvent
(
display
,
&
event
);
ProcessEvent
(
p_intf
,
proc
,
&
event
);
}
usleep
(
1000
);
if
(
++
count
==
100
)
{
count
=
0
;
SkinManage
(
p_intf
);
// Call every 100 ms
}
}
}
...
...
modules/gui/skins/x11/x11_theme.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_theme.cpp: X11 implementation of the Theme class
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_theme.cpp,v 1.
2 2003/05/18 17:48:05
asmax Exp $
* $Id: x11_theme.cpp,v 1.
3 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
*
...
...
@@ -169,8 +169,9 @@ void X11Theme::AddWindow( string name, int x, int y, bool visible,
Window
root
=
DefaultRootWindow
(
display
);
Window
wnd
=
XCreateSimpleWindow
(
display
,
root
,
0
,
0
,
1
,
1
,
0
,
0
,
0
);
XSelectInput
(
display
,
wnd
,
ExposureMask
|
KeyPressMask
|
KeyReleaseMask
|
ButtonPressMask
|
PointerMotionMask
|
PointerMotionHintMask
|
EnterWindowMask
|
LeaveWindowMask
);
KeyPressMask
|
KeyReleaseMask
|
ButtonPressMask
|
ButtonReleaseMask
|
PointerMotionMask
|
PointerMotionHintMask
|
EnterWindowMask
|
LeaveWindowMask
);
// Changing decorations
struct
{
...
...
modules/gui/skins/x11/x11_window.cpp
View file @
f0208594
...
...
@@ -2,7 +2,7 @@
* x11_window.cpp: X11 implementation of the Window class
*****************************************************************************
* Copyright (C) 2003 VideoLAN
* $Id: x11_window.cpp,v 1.
4 2003/05/18 17:48:05
asmax Exp $
* $Id: x11_window.cpp,v 1.
5 2003/05/19 21:39:34
asmax Exp $
*
* Authors: Cyril Deguet <asmax@videolan.org>
*
...
...
@@ -148,6 +148,7 @@ void X11Window::OSShow( bool show )
{
/* gdk_window_show( gWnd );
gdk_window_move( gWnd, Left, Top );*/
XMoveWindow
(
display
,
Wnd
,
Left
,
Top
);
}
else
{
...
...
@@ -168,69 +169,68 @@ bool X11Window::ProcessOSEvent( Event *evt )
return
true
;
case
MotionNotify
:
/*
if( LButtonDown )
MouseMove( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 1 );
if
(
LButtonDown
)
MouseMove
(
(
int
)(
(
XMotionEvent
*
)
p2
)
->
x
,
(
int
)(
(
XMotionEvent
*
)
p2
)
->
y
,
1
);
else
if
(
RButtonDown
)
MouseMove( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 2 );
MouseMove
(
(
int
)(
(
XMotionEvent
*
)
p2
)
->
x
,
(
int
)(
(
XMotionEvent
*
)
p2
)
->
y
,
2
);
else
MouseMove( (int)( (GdkEventButton *)p2 )->x,
(int)( (GdkEventButton *)p2 )->y, 0 );
gdk_window_get_pointer( gWnd, 0, 0, 0 );*/
MouseMove
(
(
int
)(
(
XMotionEvent
*
)
p2
)
->
x
,
(
int
)(
(
XMotionEvent
*
)
p2
)
->
y
,
0
);
return
true
;
case
ButtonPress
:
// Raise all the windows
/*
for( list<SkinWindow *>::const_iterator win =
for
(
list
<
SkinWindow
*>::
const_iterator
win
=
p_intf
->
p_sys
->
p_theme
->
WindowList
.
begin
();
win
!=
p_intf
->
p_sys
->
p_theme
->
WindowList
.
end
();
win
++
)
{
gdk_window_raise(
( (X11Window *)(*win) )->GetHandle() );
XRaiseWindow
(
display
,
(
(
X11Window
*
)(
*
win
)
)
->
GetHandle
()
);
}
switch( ( (
GdkEventButton
*)p2 )->button )
switch
(
(
(
XButtonEvent
*
)
p2
)
->
button
)
{
case
1
:
// Left button
LButtonDown
=
true
;
MouseDown( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 1 );
MouseDown
(
(
int
)(
(
XButtonEvent
*
)
p2
)
->
x
,
(
int
)(
(
XButtonEvent
*
)
p2
)
->
y
,
1
);
break
;
case
3
:
// Right button
RButtonDown
=
true
;
MouseDown( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 2 );
MouseDown
(
(
int
)(
(
XButtonEvent
*
)
p2
)
->
x
,
(
int
)(
(
XButtonEvent
*
)
p2
)
->
y
,
2
);
break
;
default:
break
;
}
*/
}
return
true
;
case
ButtonRelease
:
/* switch( ( (GdkEventButton
*)p2 )->button )
switch
(
(
(
XButtonEvent
*
)
p2
)
->
button
)
{
case
1
:
// Left button
LButtonDown
=
false
;
MouseUp( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 1 );
MouseUp
(
(
int
)(
(
XButtonEvent
*
)
p2
)
->
x
,
(
int
)(
(
XButtonEvent
*
)
p2
)
->
y
,
1
);
break
;
case
3
:
// Right button
RButtonDown
=
false
;
MouseUp( (int)( (
GdkEventButton
*)p2 )->x,
(int)( (
GdkEventButton
*)p2 )->y, 2 );
MouseUp
(
(
int
)(
(
XButtonEvent
*
)
p2
)
->
x
,
(
int
)(
(
XButtonEvent
*
)
p2
)
->
y
,
2
);
break
;
default:
break
;
}
*/
}
return
true
;
case
LeaveNotify
:
...
...
@@ -332,8 +332,7 @@ void X11Window::WindowManualMove()
//---------------------------------------------------------------------------
void
X11Window
::
WindowManualMoveInit
()
{
/* gdk_window_get_pointer( gdk_get_default_root_window(), &CursorX, &CursorY,
NULL );*/
OSAPI_GetMousePos
(
CursorX
,
CursorY
);
WindowX
=
Left
;
WindowY
=
Top
;
}
...
...
@@ -343,7 +342,6 @@ void X11Window::Move( int left, int top )
Left
=
left
;
Top
=
top
;
XMoveWindow
(
display
,
Wnd
,
left
,
top
);
}
//---------------------------------------------------------------------------
void
X11Window
::
Size
(
int
width
,
int
height
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment