Clean up VideoBox a little

This commit is contained in:
Thomas Goyne 2014-04-16 09:54:22 -07:00
parent c8033c2ef7
commit 73c2e92655
2 changed files with 19 additions and 45 deletions

View file

@ -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()));

View file

@ -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