forked from mia/Aegisub
Clean up VideoBox a little
This commit is contained in:
parent
c8033c2ef7
commit
73c2e92655
|
@ -27,26 +27,14 @@
|
||||||
//
|
//
|
||||||
// Aegisub Project http://www.aegisub.org/
|
// Aegisub Project http://www.aegisub.org/
|
||||||
|
|
||||||
/// @file video_box.cpp
|
|
||||||
/// @brief The video area in the main window, including surrounding tool bars
|
|
||||||
/// @ingroup main_ui video
|
|
||||||
///
|
|
||||||
|
|
||||||
#include <wx/combobox.h>
|
|
||||||
#include <wx/sizer.h>
|
|
||||||
#include <wx/statline.h>
|
|
||||||
#include <wx/textctrl.h>
|
|
||||||
#include <wx/toolbar.h>
|
|
||||||
|
|
||||||
#include "video_box.h"
|
#include "video_box.h"
|
||||||
|
|
||||||
#include "include/aegisub/context.h"
|
|
||||||
#include "include/aegisub/toolbar.h"
|
|
||||||
|
|
||||||
#include "ass_dialogue.h"
|
#include "ass_dialogue.h"
|
||||||
#include "ass_file.h"
|
#include "ass_file.h"
|
||||||
#include "command/command.h"
|
#include "command/command.h"
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
#include "include/aegisub/context.h"
|
||||||
|
#include "include/aegisub/toolbar.h"
|
||||||
#include "libresrc/libresrc.h"
|
#include "libresrc/libresrc.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "selection_controller.h"
|
#include "selection_controller.h"
|
||||||
|
@ -54,35 +42,34 @@
|
||||||
#include "video_display.h"
|
#include "video_display.h"
|
||||||
#include "video_slider.h"
|
#include "video_slider.h"
|
||||||
|
|
||||||
|
#include <boost/range/algorithm/binary_search.hpp>
|
||||||
|
#include <wx/combobox.h>
|
||||||
|
#include <wx/sizer.h>
|
||||||
|
#include <wx/statline.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
|
#include <wx/toolbar.h>
|
||||||
|
|
||||||
VideoBox::VideoBox(wxWindow *parent, bool isDetached, agi::Context *context)
|
VideoBox::VideoBox(wxWindow *parent, bool isDetached, agi::Context *context)
|
||||||
: wxPanel(parent,-1)
|
: wxPanel(parent, -1)
|
||||||
, context(context)
|
, context(context)
|
||||||
{
|
{
|
||||||
// Seek
|
|
||||||
auto videoSlider = new VideoSlider(this, context);
|
auto videoSlider = new VideoSlider(this, context);
|
||||||
videoSlider->SetToolTip(_("Seek video"));
|
videoSlider->SetToolTip(_("Seek video"));
|
||||||
|
|
||||||
// Buttons
|
|
||||||
wxToolBar *mainToolbar = toolbar::GetToolbar(this, "video", context, "Video", false);
|
wxToolBar *mainToolbar = toolbar::GetToolbar(this, "video", context, "Video", false);
|
||||||
|
|
||||||
// Position
|
VideoPosition = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxSize(110, 20), wxTE_READONLY);
|
||||||
VideoPosition = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(110,20),wxTE_READONLY);
|
|
||||||
VideoPosition->SetToolTip(_("Current frame time and number"));
|
VideoPosition->SetToolTip(_("Current frame time and number"));
|
||||||
|
|
||||||
// Times of sub relative to video
|
VideoSubsPos = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxSize(110, 20), wxTE_READONLY);
|
||||||
VideoSubsPos = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(110,20),wxTE_READONLY);
|
|
||||||
VideoSubsPos->SetToolTip(_("Time of this frame relative to start and end of current subs"));
|
VideoSubsPos->SetToolTip(_("Time of this frame relative to start and end of current subs"));
|
||||||
|
|
||||||
// Zoom box
|
|
||||||
wxArrayString choices;
|
wxArrayString choices;
|
||||||
for (int i = 1 ; i <= 24; ++i)
|
for (int i = 1; i <= 24; ++i)
|
||||||
choices.Add(wxString::Format("%g%%", i * 12.5));
|
choices.Add(wxString::Format("%g%%", i * 12.5));
|
||||||
wxComboBox *zoomBox = new wxComboBox(this, -1, "75%", wxDefaultPosition, wxDefaultSize, choices, wxCB_DROPDOWN | wxTE_PROCESS_ENTER);
|
wxComboBox *zoomBox = new wxComboBox(this, -1, "75%", wxDefaultPosition, wxDefaultSize, choices, wxCB_DROPDOWN | wxTE_PROCESS_ENTER);
|
||||||
|
|
||||||
// Typesetting buttons
|
|
||||||
wxToolBar *visualToolBar = toolbar::GetToolbar(this, "visual_tools", context, "Video", true);
|
wxToolBar *visualToolBar = toolbar::GetToolbar(this, "visual_tools", context, "Video", true);
|
||||||
|
|
||||||
// Visual controls sub-toolbar
|
|
||||||
wxToolBar *visualSubToolBar = new wxToolBar(this, -1, wxDefaultPosition, wxDefaultSize, wxTB_VERTICAL | wxTB_BOTTOM | wxTB_FLAT);
|
wxToolBar *visualSubToolBar = new wxToolBar(this, -1, wxDefaultPosition, wxDefaultSize, wxTB_VERTICAL | wxTB_BOTTOM | wxTB_FLAT);
|
||||||
|
|
||||||
auto videoDisplay = new VideoDisplay(visualSubToolBar, isDetached, zoomBox, this, context);
|
auto videoDisplay = new VideoDisplay(visualSubToolBar, isDetached, zoomBox, this, context);
|
||||||
|
@ -92,15 +79,10 @@ VideoBox::VideoBox(wxWindow *parent, bool isDetached, agi::Context *context)
|
||||||
toolbarSizer->Add(visualToolBar, wxSizerFlags(1));
|
toolbarSizer->Add(visualToolBar, wxSizerFlags(1));
|
||||||
toolbarSizer->Add(visualSubToolBar, wxSizerFlags());
|
toolbarSizer->Add(visualSubToolBar, wxSizerFlags());
|
||||||
|
|
||||||
// Top sizer
|
|
||||||
wxSizer *topSizer = new wxBoxSizer(wxHORIZONTAL);
|
wxSizer *topSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
topSizer->Add(toolbarSizer, 0, wxEXPAND);
|
topSizer->Add(toolbarSizer, 0, wxEXPAND);
|
||||||
topSizer->Add(videoDisplay, isDetached, isDetached ? wxEXPAND : 0);
|
topSizer->Add(videoDisplay, isDetached, isDetached ? wxEXPAND : 0);
|
||||||
|
|
||||||
// Sizers
|
|
||||||
wxSizer *videoSliderSizer = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
videoSliderSizer->Add(videoSlider, wxSizerFlags(1).Expand());
|
|
||||||
|
|
||||||
wxSizer *videoBottomSizer = new wxBoxSizer(wxHORIZONTAL);
|
wxSizer *videoBottomSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
videoBottomSizer->Add(mainToolbar, wxSizerFlags(0).Center());
|
videoBottomSizer->Add(mainToolbar, wxSizerFlags(0).Center());
|
||||||
videoBottomSizer->Add(VideoPosition, wxSizerFlags(1).Center().Border(wxLEFT));
|
videoBottomSizer->Add(VideoPosition, wxSizerFlags(1).Center().Border(wxLEFT));
|
||||||
|
@ -110,8 +92,8 @@ VideoBox::VideoBox(wxWindow *parent, bool isDetached, agi::Context *context)
|
||||||
wxSizer *VideoSizer = new wxBoxSizer(wxVERTICAL);
|
wxSizer *VideoSizer = new wxBoxSizer(wxVERTICAL);
|
||||||
VideoSizer->Add(topSizer, 1, wxEXPAND, 0);
|
VideoSizer->Add(topSizer, 1, wxEXPAND, 0);
|
||||||
VideoSizer->Add(new wxStaticLine(this), 0, wxEXPAND, 0);
|
VideoSizer->Add(new wxStaticLine(this), 0, wxEXPAND, 0);
|
||||||
VideoSizer->Add(videoSliderSizer,0,wxEXPAND,0);
|
VideoSizer->Add(videoSlider, 0, wxEXPAND, 0);
|
||||||
VideoSizer->Add(videoBottomSizer,0,wxEXPAND | wxBOTTOM,5);
|
VideoSizer->Add(videoBottomSizer, 0, wxEXPAND | wxBOTTOM, 5);
|
||||||
SetSizer(VideoSizer);
|
SetSizer(VideoSizer);
|
||||||
|
|
||||||
UpdateTimeBoxes();
|
UpdateTimeBoxes();
|
||||||
|
@ -132,7 +114,7 @@ void VideoBox::UpdateTimeBoxes() {
|
||||||
|
|
||||||
// Set the text box for frame number and time
|
// Set the text box for frame number and time
|
||||||
VideoPosition->SetValue(wxString::Format("%s - %d", AssTime(time).GetAssFormated(true), frame));
|
VideoPosition->SetValue(wxString::Format("%s - %d", AssTime(time).GetAssFormated(true), frame));
|
||||||
if (binary_search(context->videoController->GetKeyFrames().begin(), context->videoController->GetKeyFrames().end(), frame)) {
|
if (boost::binary_search(context->videoController->GetKeyFrames(), frame)) {
|
||||||
// Set the background color to indicate this is a keyframe
|
// Set the background color to indicate this is a keyframe
|
||||||
VideoPosition->SetBackgroundColour(to_wx(OPT_GET("Colour/Subtitle Grid/Background/Selection")->GetColor()));
|
VideoPosition->SetBackgroundColour(to_wx(OPT_GET("Colour/Subtitle Grid/Background/Selection")->GetColor()));
|
||||||
VideoPosition->SetForegroundColour(to_wx(OPT_GET("Colour/Subtitle Grid/Selection")->GetColor()));
|
VideoPosition->SetForegroundColour(to_wx(OPT_GET("Colour/Subtitle Grid/Selection")->GetColor()));
|
||||||
|
|
|
@ -27,20 +27,12 @@
|
||||||
//
|
//
|
||||||
// Aegisub Project http://www.aegisub.org/
|
// Aegisub Project http://www.aegisub.org/
|
||||||
|
|
||||||
/// @file video_box.h
|
|
||||||
/// @see video_box.cpp
|
|
||||||
/// @ingroup main_ui video
|
|
||||||
///
|
|
||||||
|
|
||||||
#include <deque>
|
|
||||||
|
|
||||||
#include <wx/panel.h>
|
|
||||||
|
|
||||||
#include <libaegisub/signal.h>
|
#include <libaegisub/signal.h>
|
||||||
|
|
||||||
|
#include <deque>
|
||||||
|
#include <wx/panel.h>
|
||||||
|
|
||||||
namespace agi { struct Context; }
|
namespace agi { struct Context; }
|
||||||
class AssDialogue;
|
|
||||||
class wxComboBox;
|
|
||||||
class wxTextCtrl;
|
class wxTextCtrl;
|
||||||
|
|
||||||
/// @class VideoBox
|
/// @class VideoBox
|
||||||
|
|
Loading…
Reference in a new issue