- Text edit boxes in the subtitle editing area will now revert to unmodified if you restore the original text. (AMZ)

- Re-arranged the controls in the subtitle editing area. (AMZ)

Originally committed to SVN as r428.
This commit is contained in:
Rodrigo Braz Monteiro 2006-06-27 04:13:34 +00:00
parent 48bd386fb0
commit 582500e9e6
5 changed files with 70 additions and 21 deletions

View file

@ -80,6 +80,9 @@ Please visit http://aegisub.net to download latest version
- Style editor now uses a dropdown for the encoding field. (AMZ)
- Added 2.35 and custom aspect ratio support for video display. (AMZ)
- The manual has been extensively re-written and extended to include documentation about a lot of new (and some not so new) features. It's reasonably complete... for the moment. (TheFluff, Motoko-chan, AMZ, others)
- Text edit boxes in the subtitle editing area will now revert to unmodified if you restore the original text. (AMZ)
- Re-arranged the controls in the subtitle editing area. (AMZ)
= 1.09 beta - 2006.01.16 ===========================

View file

@ -47,6 +47,7 @@ wxTextCtrl(parent,id,value,pos,size,style,validator,name)
{
UpdateLocked = false;
isModified = false;
orig = GetValue();
Connect(wxEVT_COMMAND_TEXT_UPDATED,wxCommandEventHandler(HiliModTextCtrl::OnModified));
}
@ -65,6 +66,7 @@ void HiliModTextCtrl::OnModified(wxCommandEvent &event) {
// Commited event
void HiliModTextCtrl::Commited() {
if (isModified) {
orig = GetValue();
SetBackgroundColour(wxNullColour);
Refresh(false);
isModified = false;
@ -76,6 +78,7 @@ void HiliModTextCtrl::Commited() {
// Set value
void HiliModTextCtrl::SetValue(const wxString& value) {
UpdateLocked = true;
orig = value;
wxTextCtrl::SetValue(value);
Commited();
UpdateLocked = false;
@ -85,9 +88,19 @@ void HiliModTextCtrl::SetValue(const wxString& value) {
////////////////
// Was modified
void HiliModTextCtrl::Modified() {
if (!isModified) {
bool match = GetValue() == orig;
// Different from original
if (!isModified && !match) {
isModified = true;
SetBackgroundColour(Options.AsColour(_T("Edit Box Need Enter Background")));
Refresh(false);
}
// Same as original
if (isModified && match) {
SetBackgroundColour(wxNullColour);
Refresh(false);
isModified = false;
}
}

View file

@ -50,6 +50,8 @@ private:
bool UpdateLocked;
bool isModified;
wxString orig;
void OnModified(wxCommandEvent &event);
void OnKey(wxKeyEvent &event);

View file

@ -109,25 +109,6 @@ SubsEditBox::SubsEditBox (wxWindow *parent,SubtitlesGrid *gridp) : wxPanel(paren
//SyntaxHighlight->SetToolTip(_("Enable syntax highlighting"));
//SyntaxHighlight->SetValue(Options.AsBool(_T("Syntax Highlight Enabled")));
// Top sizer
wxSizer *TopSizer = new wxBoxSizer(wxHORIZONTAL);
TopSizer->Add(CommentBox,0,wxRIGHT | wxALIGN_CENTER,5);
TopSizer->Add(StyleBox,0,wxRIGHT,5);
TopSizer->Add(ActorBox,0,wxRIGHT,5);
TopSizer->Add(MarginL,0,0,0);
TopSizer->Add(MarginR,0,0,0);
TopSizer->Add(MarginV,0,0,0);
// Middle sizer
wxSizer *MiddleSizer = new wxBoxSizer(wxHORIZONTAL);
MiddleSizer->Add(Layer,0,wxRIGHT,5);
MiddleSizer->Add(StartTime,0,wxRIGHT,0);
MiddleSizer->Add(EndTime,0,wxRIGHT,5);
MiddleSizer->Add(Duration,0,wxRIGHT,5);
MiddleSizer->Add(ByTime,0,wxRIGHT | wxALIGN_CENTER,5);
MiddleSizer->Add(ByFrame,0,wxRIGHT | wxALIGN_CENTER,5);
//MiddleSizer->Add(SyntaxHighlight,0,wxRIGHT | wxALIGN_CENTER,5);
// Middle-bottom controls
Bold = new wxBitmapButton(this,BUTTON_BOLD,wxBITMAP(button_bold),wxDefaultPosition,wxSize(20,20));
Bold->SetToolTip(_("Bold"));
@ -147,6 +128,26 @@ SubsEditBox::SubsEditBox (wxWindow *parent,SubtitlesGrid *gridp) : wxPanel(paren
Color3->SetToolTip(_("Outline color"));
Color4 = new wxBitmapButton(this,BUTTON_COLOR4,wxBITMAP(button_color4),wxDefaultPosition,wxSize(30,20));
Color4->SetToolTip(_("Shadow color"));
Effect = new HiliModTextCtrl(this,EFFECT_BOX,_T(""),wxDefaultPosition,wxSize(120,20),0);
Effect->SetToolTip(_("Effect for this line. This can be used to store extra information for karaoke scripts, or for the effects supported by the renderer."));
// Top sizer
wxSizer *TopSizer = new wxBoxSizer(wxHORIZONTAL);
TopSizer->Add(CommentBox,0,wxRIGHT | wxALIGN_CENTER,5);
TopSizer->Add(StyleBox,0,wxRIGHT,5);
TopSizer->Add(ActorBox,0,wxRIGHT,5);
TopSizer->Add(Effect,0,0,0);
// Middle sizer
wxSizer *MiddleSizer = new wxBoxSizer(wxHORIZONTAL);
MiddleSizer->Add(Layer,0,wxRIGHT,5);
MiddleSizer->Add(StartTime,0,wxRIGHT,0);
MiddleSizer->Add(EndTime,0,wxRIGHT,5);
MiddleSizer->Add(Duration,0,wxRIGHT,5);
MiddleSizer->Add(MarginL,0,0,0);
MiddleSizer->Add(MarginR,0,0,0);
MiddleSizer->Add(MarginV,0,0,0);
//MiddleSizer->Add(SyntaxHighlight,0,wxRIGHT | wxALIGN_CENTER,5);
// Middle-bottom sizer
wxSizer *MiddleBotSizer = new wxBoxSizer(wxHORIZONTAL);
@ -159,7 +160,9 @@ SubsEditBox::SubsEditBox (wxWindow *parent,SubtitlesGrid *gridp) : wxPanel(paren
MiddleBotSizer->Add(Color1);
MiddleBotSizer->Add(Color2);
MiddleBotSizer->Add(Color3);
MiddleBotSizer->Add(Color4);
MiddleBotSizer->Add(Color4,0,wxRIGHT,10);
MiddleBotSizer->Add(ByTime,0,wxRIGHT | wxALIGN_CENTER,5);
MiddleBotSizer->Add(ByFrame,0,wxRIGHT | wxALIGN_CENTER,5);
// Text editor
TextEdit = new SubsTextEditCtrl(this,EDIT_BOX,_T(""),wxDefaultPosition,wxSize(300,50),wxTE_MULTILINE | wxTE_RICH2 | wxTE_NOHIDESEL);
@ -205,6 +208,7 @@ void SubsEditBox::Update (bool timeOnly) {
MarginL->SetValue(curdiag->GetMarginString(1));
MarginR->SetValue(curdiag->GetMarginString(2));
MarginV->SetValue(curdiag->GetMarginString(3));
Effect->SetValue(curdiag->Effect);
CommentBox->SetValue(curdiag->Comment);
StyleBox->Select(StyleBox->FindString(curdiag->Style));
ActorBox->SetValue(curdiag->Actor);
@ -434,6 +438,7 @@ BEGIN_EVENT_TABLE(SubsEditBox, wxPanel)
EVT_TEXT_ENTER(MARGINL_BOX, SubsEditBox::OnMarginLChange)
EVT_TEXT_ENTER(MARGINR_BOX, SubsEditBox::OnMarginRChange)
EVT_TEXT_ENTER(MARGINV_BOX, SubsEditBox::OnMarginVChange)
EVT_TEXT_ENTER(EFFECT_BOX, SubsEditBox::OnEffectChange)
EVT_CHECKBOX(COMMENT_CHECKBOX, SubsEditBox::OnCommentChange)
EVT_MENU(EDIT_MENU_SPLIT_PRESERVE,SubsEditBox::OnSplitLinePreserve)
@ -526,6 +531,7 @@ void SubsEditBox::SetControlsState (bool state) {
MarginL->Enable(state);
MarginR->Enable(state);
MarginV->Enable(state);
Effect->Enable(state);
CommentBox->Enable(state);
StyleBox->Enable(state);
ActorBox->Enable(state);
@ -552,6 +558,7 @@ void SubsEditBox::SetControlsState (bool state) {
MarginL->SetValue(_T(""));
MarginR->SetValue(_T(""));
MarginV->SetValue(_T(""));
Effect->SetValue(_T(""));
CommentBox->SetValue(false);
}
}
@ -782,6 +789,27 @@ void SubsEditBox::OnMarginVChange(wxCommandEvent &event) {
}
//////////////////
// Effect changed
void SubsEditBox::OnEffectChange(wxCommandEvent &event) {
Effect->Commited();
grid->BeginBatch();
wxArrayInt sel = grid->GetSelection();
int n = sel.Count();
AssDialogue *cur;
for (int i=0;i<n;i++) {
cur = grid->GetDialogue(sel[i]);
if (cur) {
cur->Effect = Effect->GetValue();
cur->UpdateData();
}
}
grid->ass->FlagAsModified();
grid->CommitChanges();
grid->EndBatch();
}
/////////////////////////
// Comment state changed
void SubsEditBox::OnCommentChange(wxCommandEvent &event) {

View file

@ -87,6 +87,7 @@ private:
HiliModTextCtrl *MarginL;
HiliModTextCtrl *MarginR;
HiliModTextCtrl *MarginV;
HiliModTextCtrl *Effect;
wxRadioButton *ByTime;
wxRadioButton *ByFrame;
wxCheckBox *SyntaxHighlight;
@ -131,6 +132,7 @@ private:
void OnMarginRChange(wxCommandEvent &event);
void OnMarginVChange(wxCommandEvent &event);
void OnCommentChange(wxCommandEvent &event);
void OnEffectChange(wxCommandEvent &event);
void OnSplitLinePreserve(wxCommandEvent &event);
void OnSplitLineEstimate(wxCommandEvent &event);
@ -192,6 +194,7 @@ enum {
MARGINL_BOX,
MARGINR_BOX,
MARGINV_BOX,
EFFECT_BOX,
COMMENT_CHECKBOX,
EDIT_MENU_SPLIT_PRESERVE,
EDIT_MENU_SPLIT_ESTIMATE,