From 63bb06beff98a249c882df2a2046d2a54010e47e Mon Sep 17 00:00:00 2001 From: niksedk Date: Thu, 2 Jun 2011 08:37:42 +0000 Subject: [PATCH] Undocked video windows: Better title text + updates title when changing video file + uses SE main icon + works better with VLC git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@436 99eadd0c-20b8-1223-b5c4-2a2b2df33de2 --- src/Forms/Main.Designer.cs | 2 +- src/Forms/Main.cs | 51 +++++++++++++-------- src/Forms/Main.resx | 5 +- src/Forms/VideoControlsUndocked.Designer.cs | 1 - src/Forms/VideoControlsUndocked.cs | 4 +- src/Forms/VideoPlayerUnDocked.cs | 5 +- src/Forms/WaveFormUnDocked.cs | 4 +- src/Logic/Language.cs | 3 ++ src/Logic/LanguageStructure.cs | 3 ++ src/Logic/VideoPlayers/LibVlcDynamic.cs | 10 ++++ 10 files changed, 59 insertions(+), 29 deletions(-) diff --git a/src/Forms/Main.Designer.cs b/src/Forms/Main.Designer.cs index efbae3922..0be7314f1 100644 --- a/src/Forms/Main.Designer.cs +++ b/src/Forms/Main.Designer.cs @@ -1575,7 +1575,7 @@ this.fixCommonErrorsInSelectedLinesToolStripMenuItem, this.changeCasingForSelectedLinesToolStripMenuItem}); this.contextMenuStripListview.Name = "contextMenuStripListview"; - this.contextMenuStripListview.Size = new System.Drawing.Size(285, 628); + this.contextMenuStripListview.Size = new System.Drawing.Size(285, 606); this.contextMenuStripListview.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStripListviewOpening); // // toolStripMenuItemDelete diff --git a/src/Forms/Main.cs b/src/Forms/Main.cs index d63a090b6..f5f818890 100644 --- a/src/Forms/Main.cs +++ b/src/Forms/Main.cs @@ -1378,14 +1378,7 @@ namespace Nikse.SubtitleEdit.Forms _change = false; _converted = false; - if (_videoControlsUnDocked != null && !_videoControlsUnDocked.IsDisposed) - _videoControlsUnDocked.Text = fileName; - - if (_videoPlayerUnDocked != null && !_videoPlayerUnDocked.IsDisposed) - _videoPlayerUnDocked.Text = fileName; - - if (_waveFormUnDocked != null && !_waveFormUnDocked.IsDisposed) - _waveFormUnDocked.Text = fileName; + SetUndockedWindowsTitle(); if (justConverted) { @@ -1449,6 +1442,28 @@ namespace Nikse.SubtitleEdit.Forms } } + private void SetUndockedWindowsTitle() + { + string title = Configuration.Settings.Language.General.NoVideoLoaded; + if (!string.IsNullOrEmpty(_videoFileName)) + title = Path.GetFileNameWithoutExtension(_videoFileName); + + try //TODO: Remove in 3.2 final + { + if (_videoControlsUnDocked != null && !_videoControlsUnDocked.IsDisposed) + _videoControlsUnDocked.Text = string.Format(Configuration.Settings.Language.General.ControlsWindowTitle, title); + + if (_videoPlayerUnDocked != null && !_videoPlayerUnDocked.IsDisposed) + _videoPlayerUnDocked.Text = string.Format(Configuration.Settings.Language.General.VideoWindowTitle, title); + + if (_waveFormUnDocked != null && !_waveFormUnDocked.IsDisposed) + _waveFormUnDocked.Text = string.Format(Configuration.Settings.Language.General.AudioWindowTitle, title); + } + catch + { + } + } + private void ImportAndOcrBdnXml(string fileName, BdnXml bdnXml, List list) { Subtitle bdnSubtitle = new Subtitle(); @@ -1841,15 +1856,7 @@ namespace Nikse.SubtitleEdit.Forms _change = false; _converted = false; - - if (_videoControlsUnDocked != null && !_videoControlsUnDocked.IsDisposed) - _videoControlsUnDocked.Text = string.Empty; - - if (_videoPlayerUnDocked != null && !_videoPlayerUnDocked.IsDisposed) - _videoPlayerUnDocked.Text = string.Empty; - - if (_waveFormUnDocked != null && !_waveFormUnDocked.IsDisposed) - _waveFormUnDocked.Text = string.Empty; + SetUndockedWindowsTitle(); } private void FileNew() @@ -6955,6 +6962,8 @@ namespace Nikse.SubtitleEdit.Forms timerWaveForm.Start(); } Cursor = Cursors.Default; + + SetUndockedWindowsTitle(); } } @@ -9314,7 +9323,7 @@ namespace Nikse.SubtitleEdit.Forms private void UnDockVideoPlayer() { - _videoPlayerUnDocked = new VideoPlayerUnDocked(this, labelVideoInfo.Text, _formPositionsAndSizes, mediaPlayer); + _videoPlayerUnDocked = new VideoPlayerUnDocked(this, _formPositionsAndSizes, mediaPlayer); _formPositionsAndSizes.SetPositionAndSize(_videoPlayerUnDocked); Control control = null; @@ -9345,7 +9354,7 @@ namespace Nikse.SubtitleEdit.Forms private void UnDockWaveForm() { - _waveFormUnDocked = new WaveFormUnDocked(this, labelVideoInfo.Text, _formPositionsAndSizes); + _waveFormUnDocked = new WaveFormUnDocked(this, _formPositionsAndSizes); _formPositionsAndSizes.SetPositionAndSize(_waveFormUnDocked); var control = AudioWaveForm; @@ -9385,7 +9394,7 @@ namespace Nikse.SubtitleEdit.Forms private void UnDockVideoButtons() { - _videoControlsUnDocked = new VideoControlsUndocked(this, labelVideoInfo.Text, _formPositionsAndSizes); + _videoControlsUnDocked = new VideoControlsUndocked(this, _formPositionsAndSizes); _formPositionsAndSizes.SetPositionAndSize(_videoControlsUnDocked); var control = tabControlButtons; groupBoxVideo.Controls.Remove(control); @@ -9429,11 +9438,13 @@ namespace Nikse.SubtitleEdit.Forms _videoControlsUnDocked.Show(this); _isVideoControlsUnDocked = true; + SetUndockedWindowsTitle(); undockVideoControlsToolStripMenuItem.Visible = false; redockVideoControlsToolStripMenuItem.Visible = true; tabControl1_SelectedIndexChanged(null, null); + } private void redockVideoControlsToolStripMenuItem_Click(object sender, EventArgs e) diff --git a/src/Forms/Main.resx b/src/Forms/Main.resx index 707af7362..7252a8b3c 100644 --- a/src/Forms/Main.resx +++ b/src/Forms/Main.resx @@ -577,6 +577,9 @@ 208, 56 + + 208, 56 + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -684,7 +687,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 - CAAAAk1TRnQBSQFMAgEBAgEAAZgBBQGYAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAagBBQGoAQUBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA diff --git a/src/Forms/VideoControlsUndocked.Designer.cs b/src/Forms/VideoControlsUndocked.Designer.cs index f60c29706..39cebb8b4 100644 --- a/src/Forms/VideoControlsUndocked.Designer.cs +++ b/src/Forms/VideoControlsUndocked.Designer.cs @@ -46,7 +46,6 @@ this.ClientSize = new System.Drawing.Size(458, 311); this.Controls.Add(this.panelContainer); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; - this.MaximizeBox = false; this.Name = "VideoControlsUndocked"; this.Text = "VideoControlsUndocked"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.VideoControlsUndocked_FormClosing); diff --git a/src/Forms/VideoControlsUndocked.cs b/src/Forms/VideoControlsUndocked.cs index 5bb4e44bb..d8a3115ad 100644 --- a/src/Forms/VideoControlsUndocked.cs +++ b/src/Forms/VideoControlsUndocked.cs @@ -22,12 +22,12 @@ namespace Nikse.SubtitleEdit.Forms } } - public VideoControlsUndocked(Main mainForm, string title, PositionsAndSizes positionsAndSizes) + public VideoControlsUndocked(Main mainForm, PositionsAndSizes positionsAndSizes) { InitializeComponent(); _mainForm = mainForm; + this.Icon = (Icon)mainForm.Icon.Clone(); _positionsAndSizes = positionsAndSizes; - Text = title; } public VideoControlsUndocked() diff --git a/src/Forms/VideoPlayerUnDocked.cs b/src/Forms/VideoPlayerUnDocked.cs index cc09ef4ab..2708269da 100644 --- a/src/Forms/VideoPlayerUnDocked.cs +++ b/src/Forms/VideoPlayerUnDocked.cs @@ -1,5 +1,6 @@ using System.Windows.Forms; using Nikse.SubtitleEdit.Logic; +using System.Drawing; namespace Nikse.SubtitleEdit.Forms { @@ -17,13 +18,13 @@ namespace Nikse.SubtitleEdit.Forms } } - public VideoPlayerUnDocked(Main main, string title, PositionsAndSizes positionsAndSizes, Controls.VideoPlayerContainer videoPlayerContainer) + public VideoPlayerUnDocked(Main main, PositionsAndSizes positionsAndSizes, Controls.VideoPlayerContainer videoPlayerContainer) { InitializeComponent(); _mainForm = main; + this.Icon = (Icon)_mainForm.Icon.Clone(); _positionsAndSizes = positionsAndSizes; _videoPlayerContainer = videoPlayerContainer; - Text = title; } public VideoPlayerUnDocked() diff --git a/src/Forms/WaveFormUnDocked.cs b/src/Forms/WaveFormUnDocked.cs index b28e582ca..86d4c6ca3 100644 --- a/src/Forms/WaveFormUnDocked.cs +++ b/src/Forms/WaveFormUnDocked.cs @@ -22,12 +22,12 @@ namespace Nikse.SubtitleEdit.Forms } } - public WaveFormUnDocked(Main mainForm, string title, PositionsAndSizes positionsAndSizes) + public WaveFormUnDocked(Main mainForm, PositionsAndSizes positionsAndSizes) { InitializeComponent(); _mainForm = mainForm; + this.Icon = (Icon)mainForm.Icon.Clone(); _positionsAndSizes = positionsAndSizes; - Text = title; } public WaveFormUnDocked() diff --git a/src/Logic/Language.cs b/src/Logic/Language.cs index e8c01899d..f51597edc 100644 --- a/src/Logic/Language.cs +++ b/src/Logic/Language.cs @@ -127,6 +127,9 @@ namespace Nikse.SubtitleEdit.Logic UserNameAlreadyInUse = "Username already in use", WebServiceUrl = "Webservice url", IP = "IP", + VideoWindowTitle = "Video - {0}", + AudioWindowTitle = "Audio - {0}", + ControlsWindowTitle = "Controls - {0}", }; About = new LanguageStructure.About diff --git a/src/Logic/LanguageStructure.cs b/src/Logic/LanguageStructure.cs index e6d09898f..70dd7fba4 100644 --- a/src/Logic/LanguageStructure.cs +++ b/src/Logic/LanguageStructure.cs @@ -61,6 +61,9 @@ public string UserNameAlreadyInUse { get; set; } public string WebServiceUrl { get; set; } public string IP { get; set; } + public string VideoWindowTitle { get; set; } + public string AudioWindowTitle { get; set; } + public string ControlsWindowTitle { get; set; } } public class About diff --git a/src/Logic/VideoPlayers/LibVlcDynamic.cs b/src/Logic/VideoPlayers/LibVlcDynamic.cs index 0b9d8ed64..6e575c476 100644 --- a/src/Logic/VideoPlayers/LibVlcDynamic.cs +++ b/src/Logic/VideoPlayers/LibVlcDynamic.cs @@ -485,9 +485,19 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers _mediaPlayer = _libvlc_media_player_new_from_media(media); _libvlc_media_release(media); + // Linux: libvlc_media_player_set_xdrawable (_mediaPlayer, xdrawable); // Mac: libvlc_media_player_set_nsobject (_mediaPlayer, view); + _libvlc_media_player_set_hwnd(_mediaPlayer, ownerControl.Handle); // windows + + //hack: sometimes vlc opens in it's own windows - this code seems to prevent this + for (int j = 0; j < 50; j++) + { + System.Threading.Thread.Sleep(10); + System.Windows.Forms.Application.DoEvents(); + } + _libvlc_media_player_set_hwnd(_mediaPlayer, ownerControl.Handle); // windows if (onVideoEnded != null) {