forked from mia/Aegisub
Add an Edit button next to the style list dropdown. Closes #1746.
This commit is contained in:
parent
57f6e9a869
commit
3983719e3f
2 changed files with 17 additions and 1 deletions
|
@ -39,6 +39,7 @@
|
||||||
#include "base_grid.h"
|
#include "base_grid.h"
|
||||||
#include "command/command.h"
|
#include "command/command.h"
|
||||||
#include "compat.h"
|
#include "compat.h"
|
||||||
|
#include "dialog_style_editor.h"
|
||||||
#include "include/aegisub/context.h"
|
#include "include/aegisub/context.h"
|
||||||
#include "include/aegisub/hotkey.h"
|
#include "include/aegisub/hotkey.h"
|
||||||
#include "initial_line_state.h"
|
#include "initial_line_state.h"
|
||||||
|
@ -62,7 +63,7 @@
|
||||||
#include <wx/bmpbuttn.h>
|
#include <wx/bmpbuttn.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/hashset.h>
|
#include <wx/fontenum.h>
|
||||||
#include <wx/radiobut.h>
|
#include <wx/radiobut.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
|
@ -117,6 +118,16 @@ SubsEditBox::SubsEditBox(wxWindow *parent, agi::Context *context)
|
||||||
|
|
||||||
style_box = MakeComboBox("Default", wxCB_READONLY, &SubsEditBox::OnStyleChange, _("Style for this line"));
|
style_box = MakeComboBox("Default", wxCB_READONLY, &SubsEditBox::OnStyleChange, _("Style for this line"));
|
||||||
|
|
||||||
|
style_edit_button = new wxButton(this, -1, _("Edit"), wxDefaultPosition, wxSize(50, -1));
|
||||||
|
style_edit_button->Bind(wxEVT_BUTTON, [=](wxCommandEvent&) {
|
||||||
|
if (active_style) {
|
||||||
|
wxArrayString font_list = wxFontEnumerator::GetFacenames();
|
||||||
|
font_list.Sort();
|
||||||
|
DialogStyleEditor(this, active_style, c, nullptr, "", font_list).ShowModal();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
top_sizer->Add(style_edit_button, wxSizerFlags().Center().Border(wxRIGHT));
|
||||||
|
|
||||||
actor_box = new Placeholder<wxComboBox>(this, _("Actor"), wxSize(110, -1), wxCB_DROPDOWN | wxTE_PROCESS_ENTER, _("Actor name for this speech. This is only for reference, and is mainly useless."));
|
actor_box = new Placeholder<wxComboBox>(this, _("Actor"), wxSize(110, -1), wxCB_DROPDOWN | wxTE_PROCESS_ENTER, _("Actor name for this speech. This is only for reference, and is mainly useless."));
|
||||||
Bind(wxEVT_TEXT, &SubsEditBox::OnActorChange, this, actor_box->GetId());
|
Bind(wxEVT_TEXT, &SubsEditBox::OnActorChange, this, actor_box->GetId());
|
||||||
Bind(wxEVT_COMBOBOX, &SubsEditBox::OnActorChange, this, actor_box->GetId());
|
Bind(wxEVT_COMBOBOX, &SubsEditBox::OnActorChange, this, actor_box->GetId());
|
||||||
|
@ -334,6 +345,8 @@ void SubsEditBox::UpdateFields(int type, bool repopulate_lists) {
|
||||||
change_value(margin[i], std::to_wstring(line->Margin[i]));
|
change_value(margin[i], std::to_wstring(line->Margin[i]));
|
||||||
comment_box->SetValue(line->Comment);
|
comment_box->SetValue(line->Comment);
|
||||||
style_box->Select(style_box->FindString(to_wx(line->Style)));
|
style_box->Select(style_box->FindString(to_wx(line->Style)));
|
||||||
|
active_style = c->ass->GetStyle(line->Style);
|
||||||
|
style_edit_button->Enable(active_style != nullptr);
|
||||||
|
|
||||||
if (repopulate_lists) PopulateList(effect_box, &AssDialogue::Effect);
|
if (repopulate_lists) PopulateList(effect_box, &AssDialogue::Effect);
|
||||||
effect_box->ChangeValue(to_wx(line->Effect));
|
effect_box->ChangeValue(to_wx(line->Effect));
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
namespace agi { namespace vfr { class Framerate; } }
|
namespace agi { namespace vfr { class Framerate; } }
|
||||||
namespace agi { struct Context; }
|
namespace agi { struct Context; }
|
||||||
class AssDialogue;
|
class AssDialogue;
|
||||||
|
class AssStyle;
|
||||||
class AssTime;
|
class AssTime;
|
||||||
class SubsTextEditCtrl;
|
class SubsTextEditCtrl;
|
||||||
class TimeEdit;
|
class TimeEdit;
|
||||||
|
@ -77,6 +78,7 @@ class SubsEditBox final : public wxPanel {
|
||||||
|
|
||||||
/// Currently active dialogue line
|
/// Currently active dialogue line
|
||||||
AssDialogue *line = nullptr;
|
AssDialogue *line = nullptr;
|
||||||
|
AssStyle *active_style = nullptr;
|
||||||
|
|
||||||
/// Are the buttons currently split into two lines?
|
/// Are the buttons currently split into two lines?
|
||||||
bool button_bar_split = true;
|
bool button_bar_split = true;
|
||||||
|
@ -90,6 +92,7 @@ class SubsEditBox final : public wxPanel {
|
||||||
// Box controls
|
// Box controls
|
||||||
wxCheckBox *comment_box;
|
wxCheckBox *comment_box;
|
||||||
wxComboBox *style_box;
|
wxComboBox *style_box;
|
||||||
|
wxButton *style_edit_button;
|
||||||
Placeholder<wxComboBox> *actor_box;
|
Placeholder<wxComboBox> *actor_box;
|
||||||
TimeEdit *start_time;
|
TimeEdit *start_time;
|
||||||
TimeEdit *end_time;
|
TimeEdit *end_time;
|
||||||
|
|
Loading…
Reference in a new issue