Commit d147daa2 authored by Erwan Tulou's avatar Erwan Tulou
Browse files

skins2(Windows): add a black windows for fullscreen and manage z-order

parent b92e6014
......@@ -129,7 +129,7 @@ bool Win32Factory::init()
skinWindowClass.cbClsExtra = 0;
skinWindowClass.cbWndExtra = 0;
skinWindowClass.hbrBackground = NULL;
skinWindowClass.hCursor = LoadCursor( NULL , IDC_ARROW );
skinWindowClass.hCursor = LoadCursor( NULL, IDC_ARROW );
skinWindowClass.hIcon = LoadIcon( m_hInst, _T("VLC_ICON") );
skinWindowClass.hInstance = m_hInst;
......@@ -147,6 +147,34 @@ bool Win32Factory::init()
}
}
// Create window class for window of VoutWindow type
WNDCLASS voutWindowClass;
voutWindowClass.style = CS_OWNDC|CS_DBLCLKS;
voutWindowClass.lpfnWndProc = (WNDPROC) Win32Proc;
voutWindowClass.lpszClassName = _T("VoutWindowClass");
voutWindowClass.lpszMenuName = NULL;
voutWindowClass.cbClsExtra = 0;
voutWindowClass.cbWndExtra = 0;
voutWindowClass.hbrBackground = (HBRUSH__*) GetStockObject( BLACK_BRUSH);
voutWindowClass.hCursor = LoadCursor( NULL , IDC_ARROW );
voutWindowClass.hIcon = LoadIcon( m_hInst, _T("VLC_ICON") );
voutWindowClass.hInstance = m_hInst;
// Register class and check it
if( !RegisterClass( &voutWindowClass ) )
{
WNDCLASS wndclass;
// Check why it failed. If it's because the class already exists
// then fine, otherwise return with an error.
if( !GetClassInfo( m_hInst, _T("VoutWindowClass"), &wndclass ) )
{
msg_Err( getIntf(), "cannot register voutWindow window class" );
return false;
}
}
// Create Window
m_hParentWindow = CreateWindowEx( WS_EX_TOOLWINDOW, _T("SkinWindowClass"),
_T("VLC media player"), WS_SYSMENU|WS_POPUP,
......
......@@ -31,6 +31,7 @@
#include <windows.h>
#include <shellapi.h>
// #include <wingdi.h>
#include "../src/os_factory.hpp"
#include "../src/generic_window.hpp"
......
......@@ -52,19 +52,30 @@ Win32Window::Win32Window( intf_thread_t *pIntf, GenericWindow &rWindow,
m_pParent( pParentWindow ), m_type ( type )
{
// Create the window
if( pParentWindow )
if( type == GenericWindow::VoutWindow )
{
// Child window (for vout)
m_hWnd_parent = pParentWindow->getHandle();
m_hWnd = CreateWindowEx( WS_EX_TOOLWINDOW | WS_EX_NOPARENTNOTIFY,
"SkinWindowClass", "default name", WS_CHILD,
"VoutWindowClass", "default name",
WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
m_hWnd_parent, 0, hInst, NULL );
}
else if( type == GenericWindow::FullscreenWindow )
{
// Normal window
m_hWnd_parent = NULL;
m_hWnd = CreateWindowEx( WS_EX_APPWINDOW, "SkinWindowClass",
"default name", WS_POPUP | WS_CLIPCHILDREN,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, m_hWnd_parent, 0, hInst, NULL );
}
else
{
// Normal window
m_hWnd_parent = hParentWindow;
m_hWnd_parent = NULL;
m_hWnd = CreateWindowEx( WS_EX_TOOLWINDOW, "SkinWindowClass",
"default name", WS_POPUP | WS_CLIPCHILDREN,
CW_USEDEFAULT, CW_USEDEFAULT,
......@@ -121,7 +132,12 @@ void Win32Window::reparent( void* OSHandle, int x, int y, int w, int h )
void Win32Window::show() const
{
ShowWindow( m_hWnd, SW_SHOW );
if( m_type == GenericWindow::VoutWindow )
SetWindowPos( m_hWnd, HWND_BOTTOM, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE );
ShowWindow( m_hWnd, SW_SHOW );
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment