Commit 85581372 authored by Emmanuel Puig's avatar Emmanuel Puig

* Fixing a refresh bug when opening an open file dialog box
parent 65a3fa6d
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* button.cpp: Button control * button.cpp: Button control
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: button.cpp,v 1.3 2003/03/19 17:14:50 karibu Exp $ * $Id: button.cpp,v 1.4 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -37,8 +37,6 @@ ...@@ -37,8 +37,6 @@
#include "window.h" #include "window.h"
#include "skin_common.h" #include "skin_common.h"
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Control Button // Control Button
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -184,7 +182,9 @@ bool ControlButton::MouseMove( int x, int y, int button ) ...@@ -184,7 +182,9 @@ bool ControlButton::MouseMove( int x, int y, int button )
} }
if( MouseOverActionName != "none" ) if( MouseOverActionName != "none" )
{
MouseOverAction->SendEvent(); MouseOverAction->SendEvent();
}
CursorIn = true; CursorIn = true;
return true; return true;
...@@ -199,7 +199,9 @@ bool ControlButton::MouseMove( int x, int y, int button ) ...@@ -199,7 +199,9 @@ bool ControlButton::MouseMove( int x, int y, int button )
} }
if( MouseOutActionName != "none" ) if( MouseOutActionName != "none" )
{
MouseOutAction->SendEvent(); MouseOutAction->SendEvent();
}
CursorIn = false; CursorIn = false;
return true; return true;
......
/* A lexical scanner generated by flex */ /* A lexical scanner generated by flex */
/* Scanner skeleton version: /* Scanner skeleton version:
* $Header: /root/vlc-cvs/modules/gui/skins/parser/flex.c,v 1.3 2003/03/19 17:14:50 karibu Exp $ * $Header: /root/vlc-cvs/modules/gui/skins/parser/flex.c,v 1.4 2003/03/20 09:29:07 karibu Exp $
*/ */
#define FLEX_SCANNER #define FLEX_SCANNER
...@@ -3041,8 +3041,8 @@ static char *yy_last_accepting_cpos; ...@@ -3041,8 +3041,8 @@ static char *yy_last_accepting_cpos;
#define YY_RESTORE_YY_MORE_OFFSET #define YY_RESTORE_YY_MORE_OFFSET
char *yytext; char *yytext;
#define INITIAL 0 #define INITIAL 0
/* Validating XML processor for skin.dtd (Id: skin.dtd,v 1.2 2003/03/19 02:09:56 videolan Exp). /* Validating XML processor for skin.dtd (Id: skin.dtd,v 1.3 2003/03/19 17:14:50 karibu Exp).
* Generated 2003/03/19 18:16:00. * Generated 2003/03/20 10:30:38.
* *
* This program was generated with the FleXML XML processor generator, * This program was generated with the FleXML XML processor generator,
* (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp). * (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp).
...@@ -3070,7 +3070,7 @@ const char rcs_flexml_skeleton[] = ...@@ -3070,7 +3070,7 @@ const char rcs_flexml_skeleton[] =
const char rcs_flexml[] = const char rcs_flexml[] =
"$" "Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp $"; "$" "Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp $";
const char rcs_skin_dtd[] = const char rcs_skin_dtd[] =
"$" "Id: skin.dtd,v 1.2 2003/03/19 02:09:56 videolan Exp $"; "$" "Id: skin.dtd,v 1.3 2003/03/19 17:14:50 karibu Exp $";
/* ANSI headers. */ /* ANSI headers. */
#include <unistd.h> #include <unistd.h>
...@@ -3830,7 +3830,7 @@ FAIL("EOF in prolog."); ...@@ -3830,7 +3830,7 @@ FAIL("EOF in prolog.");
* * skin.dtd: DTD for the VLC skins * * skin.dtd: DTD for the VLC skins
* ***************************************************************************** * *****************************************************************************
* * Copyright (C) 2003 VideoLAN * * Copyright (C) 2003 VideoLAN
* * $Id: flex.c,v 1.3 2003/03/19 17:14:50 karibu Exp $ * * $Id: flex.c,v 1.4 2003/03/20 09:29:07 karibu Exp $
* * * *
* * Authors: Olivier Teulière <ipkiss@via.ecp.fr> * * Authors: Olivier Teulière <ipkiss@via.ecp.fr>
* * Emmanuel Puig <karibu@via.ecp.fr> * * Emmanuel Puig <karibu@via.ecp.fr>
......
/* XML application for skin.dtd (Id: skin.dtd,v 1.2 2003/03/19 02:09:56 videolan Exp). /* XML application for skin.dtd (Id: skin.dtd,v 1.3 2003/03/19 17:14:50 karibu Exp).
* Includes actions from skin.act. * Includes actions from skin.act.
* Generated 2003/03/19 18:16:00. * Generated 2003/03/20 10:30:38.
* *
* This program was generated with the FleXML XML processor generator, * This program was generated with the FleXML XML processor generator,
* (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp). * (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp).
......
/* XML processor/application API for skin.dtd (Id: skin.dtd,v 1.2 2003/03/19 02:09:56 videolan Exp). /* XML processor/application API for skin.dtd (Id: skin.dtd,v 1.3 2003/03/19 17:14:50 karibu Exp).
* Generated 2003/03/19 18:16:00. * Generated 2003/03/20 10:30:38.
* *
* This program was generated with the FleXML XML processor generator, * This program was generated with the FleXML XML processor generator,
* (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp). * (Id: flexml.pl,v 1.24 1999/12/13 16:18:30 krisrose Exp).
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dialog.cpp: Classes for some dialog boxes * dialog.cpp: Classes for some dialog boxes
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: dialog.cpp,v 1.1 2003/03/18 02:21:47 ipkiss Exp $ * $Id: dialog.cpp,v 1.2 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -35,8 +35,10 @@ ...@@ -35,8 +35,10 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Open file dialog box // Open file dialog box
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
OpenFileDialog::OpenFileDialog( string title, bool multiselect ) OpenFileDialog::OpenFileDialog( intf_thread_t *_p_intf, string title,
bool multiselect )
{ {
p_intf = _p_intf;
MultiSelect = multiselect; MultiSelect = multiselect;
Title = title; Title = title;
Filter = new char[200]; Filter = new char[200];
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* dialog.h: Classes for some dialog boxes * dialog.h: Classes for some dialog boxes
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: dialog.h,v 1.1 2003/03/18 02:21:47 ipkiss Exp $ * $Id: dialog.h,v 1.2 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -47,9 +47,12 @@ class OpenFileDialog ...@@ -47,9 +47,12 @@ class OpenFileDialog
string Title; string Title;
bool MultiSelect; bool MultiSelect;
intf_thread_t *p_intf;
public: public:
// Constructors // Constructors
OpenFileDialog( string title, bool multiselect ); OpenFileDialog( intf_thread_t *_p_intf, string title,
bool multiselect );
// Destructors // Destructors
virtual ~OpenFileDialog(); virtual ~OpenFileDialog();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* event.h: Event class * event.h: Event class
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: event.h,v 1.1 2003/03/18 02:21:47 ipkiss Exp $ * $Id: event.h,v 1.2 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -94,6 +94,8 @@ using namespace std; ...@@ -94,6 +94,8 @@ using namespace std;
#define WINDOW_SHOW (VLC_WINDOW + 4) #define WINDOW_SHOW (VLC_WINDOW + 4)
#define WINDOW_HIDE (VLC_WINDOW + 5) #define WINDOW_HIDE (VLC_WINDOW + 5)
#define WINDOW_FADE (VLC_WINDOW + 6) #define WINDOW_FADE (VLC_WINDOW + 6)
#define WINDOW_LEAVE (VLC_WINDOW + 7)
#define WINDOW_REFRESH (VLC_WINDOW + 8)
// Control event // Control event
#define CTRL_ENABLED (VLC_CONTROL + 1) #define CTRL_ENABLED (VLC_CONTROL + 1)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* skin-main.cpp: skins plugin for VLC * skin-main.cpp: skins plugin for VLC
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: skin_main.cpp,v 1.2 2003/03/19 03:11:14 karibu Exp $ * $Id: skin_main.cpp,v 1.3 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -158,8 +158,8 @@ static void Run( intf_thread_t *p_intf ) ...@@ -158,8 +158,8 @@ static void Run( intf_thread_t *p_intf )
// Initialize file structure // Initialize file structure
OpenFileDialog *OpenFile; OpenFileDialog *OpenFile;
OpenFile = (OpenFileDialog *)new OSOpenFileDialog( _("Open skin"), OpenFile = (OpenFileDialog *)new OSOpenFileDialog( NULL,
false ); _("Open skin"), false );
OpenFile->AddFilter( _("Skin files"), "*.vlt" ); OpenFile->AddFilter( _("Skin files"), "*.vlt" );
OpenFile->AddFilter( _("Skin files"), "*.xml" ); OpenFile->AddFilter( _("Skin files"), "*.xml" );
OpenFile->AddFilter( _("All files"), "*.*" ); OpenFile->AddFilter( _("All files"), "*.*" );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* vlcproc.cpp: VlcProc class * vlcproc.cpp: VlcProc class
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: vlcproc.cpp,v 1.2 2003/03/19 18:14:48 karibu Exp $ * $Id: vlcproc.cpp,v 1.3 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -313,7 +313,7 @@ void VlcProc::LoadSkin() ...@@ -313,7 +313,7 @@ void VlcProc::LoadSkin()
{ {
// Initialize file structure // Initialize file structure
OpenFileDialog *OpenFile; OpenFileDialog *OpenFile;
OpenFile = (OpenFileDialog *)new OSOpenFileDialog( OpenFile = (OpenFileDialog *)new OSOpenFileDialog( p_intf,
_("Change skin - Open new file"), false ); _("Change skin - Open new file"), false );
OpenFile->AddFilter( _("Skin files"), "*.vlt" ); OpenFile->AddFilter( _("Skin files"), "*.vlt" );
OpenFile->AddFilter( _("Skin files"), "*.xml" ); OpenFile->AddFilter( _("Skin files"), "*.xml" );
...@@ -379,13 +379,13 @@ void VlcProc::OpenFile( bool play ) ...@@ -379,13 +379,13 @@ void VlcProc::OpenFile( bool play )
OpenFileDialog *OpenFile; OpenFileDialog *OpenFile;
if( play ) if( play )
{ {
OpenFile = (OpenFileDialog *)new OSOpenFileDialog( _("Open file"), OpenFile = (OpenFileDialog *)new OSOpenFileDialog( p_intf,
false ); _("Open file"), false );
} }
else else
{ {
OpenFile = (OpenFileDialog *)new OSOpenFileDialog( _("Add file"), OpenFile = (OpenFileDialog *)new OSOpenFileDialog( p_intf,
true ); _("Add file"), true );
} }
OpenFile->AddFilter( _("All files"), "*.*" ); OpenFile->AddFilter( _("All files"), "*.*" );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* window.cpp: Window class * window.cpp: Window class
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: window.cpp,v 1.3 2003/03/19 18:14:48 karibu Exp $ * $Id: window.cpp,v 1.4 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -228,6 +228,14 @@ bool Window::ProcessEvent( Event *evt ) ...@@ -228,6 +228,14 @@ bool Window::ProcessEvent( Event *evt )
Hide(); Hide();
return true; return true;
case WINDOW_LEAVE:
MouseMove( -1, -1, 0 );
return true;
case WINDOW_REFRESH:
RefreshAll();
return true;
default: default:
// OS specific messages processing // OS specific messages processing
return ProcessOSEvent( evt ); return ProcessOSEvent( evt );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* win32_dialog.cpp: Win32 implementation of some dialog boxes * win32_dialog.cpp: Win32 implementation of some dialog boxes
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: win32_dialog.cpp,v 1.1 2003/03/18 02:21:47 ipkiss Exp $ * $Id: win32_dialog.cpp,v 1.2 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
//--- VLC ------------------------------------------------------------------- //--- VLC -------------------------------------------------------------------
#include <vlc/intf.h> #include <vlc/intf.h>
extern intf_thread_t *g_pIntf;
//--- WIN32 ----------------------------------------------------------------- //--- WIN32 -----------------------------------------------------------------
#define _WIN32_IE 0x0400 // Yes, i think it's a fucking kludge ! #define _WIN32_IE 0x0400 // Yes, i think it's a fucking kludge !
...@@ -39,6 +40,8 @@ ...@@ -39,6 +40,8 @@
#include "dialog.h" #include "dialog.h"
#include "os_dialog.h" #include "os_dialog.h"
#include "skin_common.h" #include "skin_common.h"
#include "window.h"
#include "os_window.h"
#include "theme.h" #include "theme.h"
#include "os_theme.h" #include "os_theme.h"
#include "event.h" #include "event.h"
...@@ -48,8 +51,8 @@ ...@@ -48,8 +51,8 @@
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// Open file dialog box // Open file dialog box
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
Win32OpenFileDialog::Win32OpenFileDialog( string title, bool multiselect ) : Win32OpenFileDialog::Win32OpenFileDialog( intf_thread_t *_p_intf, string title,
OpenFileDialog( title, multiselect ) bool multiselect ) : OpenFileDialog( _p_intf, title, multiselect )
{ {
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -103,9 +106,33 @@ bool Win32OpenFileDialog::Open() ...@@ -103,9 +106,33 @@ bool Win32OpenFileDialog::Open()
OpenFile.lpstrTitle = Title.c_str(); OpenFile.lpstrTitle = Title.c_str();
OpenFile.lpstrFilter = Filter; OpenFile.lpstrFilter = Filter;
// Remove mouse tracking event to avoid non process due to modal open box
if( p_intf != NULL && p_intf->p_sys->p_theme != NULL )
{
TRACKMOUSEEVENT TrackEvent;
TrackEvent.cbSize = sizeof( TRACKMOUSEEVENT );
TrackEvent.dwFlags = TME_LEAVE|TME_CANCEL;
TrackEvent.dwHoverTime = 1;
list<Window *>::const_iterator win;
for( win = g_pIntf->p_sys->p_theme->WindowList.begin();
win != g_pIntf->p_sys->p_theme->WindowList.end(); win++ )
{
TrackEvent.hwndTrack = ( (Win32Window *)(*win) )->GetHandle();
TrackMouseEvent( &TrackEvent );
}
}
// Show dialog box // Show dialog box
if( !GetOpenFileName( &OpenFile ) ) if( !GetOpenFileName( &OpenFile ) )
{
OSAPI_PostMessage( NULL, WINDOW_LEAVE, 0, 0 );
return false; return false;
}
// Tell windows that mouse cursor has left window because it has been
// unactivated
OSAPI_PostMessage( NULL, WINDOW_LEAVE, 0, 0 );
// Find files in string result // Find files in string result
char * File = OpenFile.lpstrFile; char * File = OpenFile.lpstrFile;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* win32_dialog.h: Win32 implementation of some dialog boxes * win32_dialog.h: Win32 implementation of some dialog boxes
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: win32_dialog.h,v 1.1 2003/03/18 02:21:47 ipkiss Exp $ * $Id: win32_dialog.h,v 1.2 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -42,7 +42,8 @@ class Win32OpenFileDialog : OpenFileDialog ...@@ -42,7 +42,8 @@ class Win32OpenFileDialog : OpenFileDialog
public: public:
// Constructors // Constructors
Win32OpenFileDialog( string title, bool multiselect ); Win32OpenFileDialog( intf_thread_t *_p_intf, string title,
bool multiselect );
// Destructors // Destructors
virtual ~Win32OpenFileDialog(); virtual ~Win32OpenFileDialog();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* win32_run.cpp: * win32_run.cpp:
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: win32_run.cpp,v 1.2 2003/03/19 17:14:50 karibu Exp $ * $Id: win32_run.cpp,v 1.3 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -83,6 +83,7 @@ void OSRun( intf_thread_t *p_intf ) ...@@ -83,6 +83,7 @@ void OSRun( intf_thread_t *p_intf )
// Compute windows message list // Compute windows message list
while( GetMessage( &msg, NULL, 0, 0 ) ) while( GetMessage( &msg, NULL, 0, 0 ) )
{ {
// Translate keys // Translate keys
TranslateMessage( &msg ); TranslateMessage( &msg );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* win32_window.cpp: Win32 implementation of the Window class * win32_window.cpp: Win32 implementation of the Window class
***************************************************************************** *****************************************************************************
* Copyright (C) 2003 VideoLAN * Copyright (C) 2003 VideoLAN
* $Id: win32_window.cpp,v 1.2 2003/03/19 02:09:56 videolan Exp $ * $Id: win32_window.cpp,v 1.3 2003/03/20 09:29:07 karibu Exp $
* *
* Authors: Olivier Teulire <ipkiss@via.ecp.fr> * Authors: Olivier Teulire <ipkiss@via.ecp.fr>
* Emmanuel Puig <karibu@via.ecp.fr> * Emmanuel Puig <karibu@via.ecp.fr>
...@@ -197,7 +197,7 @@ bool Win32Window::ProcessOSEvent( Event *evt ) ...@@ -197,7 +197,7 @@ bool Win32Window::ProcessOSEvent( Event *evt )
return true; return true;
case WM_MOUSELEAVE: case WM_MOUSELEAVE:
MouseMove( -1, -1, 0 ); OSAPI_PostMessage( this, WINDOW_LEAVE, 0, 0 );
return true; return true;
default: default:
......
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