mirror of https://github.com/odrling/Aegisub
Fix compilation with C++ 11/libc++
This commit is contained in:
parent
ebd56f2163
commit
1848aad5c1
|
@ -58,8 +58,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EOS() {
|
bool EOS() {
|
||||||
m_iStr.peek(); // apparently eof flag isn't set until a character read is attempted. whatever.
|
// libc++ doesn't set eof when a peek fails
|
||||||
return m_iStr.eof();
|
return m_iStr.peek() == EOF || m_iStr.eof();
|
||||||
}
|
}
|
||||||
|
|
||||||
Location const& GetLocation() const { return m_Location; }
|
Location const& GetLocation() const { return m_Location; }
|
||||||
|
|
|
@ -61,9 +61,9 @@ namespace {
|
||||||
template<class T>
|
template<class T>
|
||||||
void put_array(json::Object &obj, const std::string &path, const char *element_key, std::vector<T> const& value) {
|
void put_array(json::Object &obj, const std::string &path, const char *element_key, std::vector<T> const& value) {
|
||||||
json::Array array;
|
json::Array array;
|
||||||
for (typename std::vector<T>::const_iterator it = value.begin(); it != value.end(); ++it) {
|
for (T const& elem : value) {
|
||||||
array.push_back(json::Object());
|
array.push_back(json::Object());
|
||||||
static_cast<json::Object&>(array.back())[element_key] = (json::UnknownElement)*it;
|
static_cast<json::Object&>(array.back())[element_key] = (json::UnknownElement)elem;
|
||||||
}
|
}
|
||||||
|
|
||||||
put_option(obj, path, array);
|
put_option(obj, path, array);
|
||||||
|
|
|
@ -272,7 +272,7 @@ void BaseGrid::UpdateMaps(bool preserve_selected_rows) {
|
||||||
if (preserve_selected_rows) {
|
if (preserve_selected_rows) {
|
||||||
sel_rows.reserve(selection.size());
|
sel_rows.reserve(selection.size());
|
||||||
transform(selection.begin(), selection.end(), back_inserter(sel_rows),
|
transform(selection.begin(), selection.end(), back_inserter(sel_rows),
|
||||||
std::bind(&BaseGrid::GetDialogueIndex, this));
|
[this](AssDialogue *diag) { return GetDialogueIndex(diag); });
|
||||||
}
|
}
|
||||||
|
|
||||||
index_line_map.clear();
|
index_line_map.clear();
|
||||||
|
|
|
@ -140,8 +140,8 @@ void DialogAutomation::RebuildList()
|
||||||
script_info.clear();
|
script_info.clear();
|
||||||
list->DeleteAllItems();
|
list->DeleteAllItems();
|
||||||
|
|
||||||
for_each(local_manager->GetScripts(), bind(&DialogAutomation::AddScript, this, _1, false));
|
for_each(local_manager->GetScripts(), std::bind(&DialogAutomation::AddScript, this, _1, false));
|
||||||
for_each(global_manager->GetScripts(), bind(&DialogAutomation::AddScript, this, _1, true));
|
for_each(global_manager->GetScripts(), std::bind(&DialogAutomation::AddScript, this, _1, true));
|
||||||
|
|
||||||
UpdateDisplay();
|
UpdateDisplay();
|
||||||
}
|
}
|
||||||
|
@ -182,7 +182,7 @@ template<class Container>
|
||||||
static bool has_file(Container const& c, wxFileName const& fn)
|
static bool has_file(Container const& c, wxFileName const& fn)
|
||||||
{
|
{
|
||||||
return find_if(c.begin(), c.end(),
|
return find_if(c.begin(), c.end(),
|
||||||
bind(&wxFileName::SameAs, fn, bind(&Automation4::Script::GetFilename, _1), wxPATH_NATIVE)) != c.end();
|
std::bind(&wxFileName::SameAs, fn, std::bind(&Automation4::Script::GetFilename, _1), wxPATH_NATIVE)) != c.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogAutomation::OnAdd(wxCommandEvent &)
|
void DialogAutomation::OnAdd(wxCommandEvent &)
|
||||||
|
@ -276,7 +276,7 @@ void DialogAutomation::OnInfo(wxCommandEvent &)
|
||||||
ei->script->GetFilename(),
|
ei->script->GetFilename(),
|
||||||
ei->script->GetLoadedState() ? _("Correctly loaded") : _("Failed to load")));
|
ei->script->GetLoadedState() ? _("Correctly loaded") : _("Failed to load")));
|
||||||
|
|
||||||
transform(ei->script->GetMacros(), append_info, bind(cmd_to_str, _1, context));
|
transform(ei->script->GetMacros(), append_info, std::bind(cmd_to_str, _1, context));
|
||||||
transform(ei->script->GetFilters(), append_info, filt_to_str);
|
transform(ei->script->GetFilters(), append_info, filt_to_str);
|
||||||
transform(ei->script->GetFormats(), append_info, form_to_str);
|
transform(ei->script->GetFormats(), append_info, form_to_str);
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ class FontsCollectorThread : public wxThread {
|
||||||
void Collect() {
|
void Collect() {
|
||||||
using namespace std::placeholders;
|
using namespace std::placeholders;
|
||||||
|
|
||||||
FontCollectorStatusCallback callback(bind(&FontsCollectorThread::AppendText, this, _1, _2));
|
FontCollectorStatusCallback callback(std::bind(&FontsCollectorThread::AppendText, this, _1, _2));
|
||||||
|
|
||||||
#ifdef WITH_FONTCONFIG
|
#ifdef WITH_FONTCONFIG
|
||||||
FontConfigFontFileLister lister(callback);
|
FontConfigFontFileLister lister(callback);
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
: text_ctrl(t)
|
: text_ctrl(t)
|
||||||
{
|
{
|
||||||
const agi::log::Sink *sink = agi::log::log->GetSink();
|
const agi::log::Sink *sink = agi::log::log->GetSink();
|
||||||
for_each(sink->begin(), sink->end(), bind(&EmitLog::log, this, std::placeholders::_1));
|
for_each(sink->begin(), sink->end(), std::bind(&EmitLog::log, this, std::placeholders::_1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void log(agi::log::SinkMessage *sm) {
|
void log(agi::log::SinkMessage *sm) {
|
||||||
|
|
|
@ -248,7 +248,7 @@ void ResampleResolution(AssFile *ass, ResampleSettings const& settings) {
|
||||||
if (settings.change_ar)
|
if (settings.change_ar)
|
||||||
state.ar = state.rx / state.ry;
|
state.ar = state.rx / state.ry;
|
||||||
|
|
||||||
for_each(ass->Line.begin(), ass->Line.end(), bind(resample_line, &state, std::placeholders::_1));
|
for_each(ass->Line.begin(), ass->Line.end(), std::bind(resample_line, &state, std::placeholders::_1));
|
||||||
|
|
||||||
ass->SetScriptInfo("PlayResX", wxString::Format("%d", settings.script_x));
|
ass->SetScriptInfo("PlayResX", wxString::Format("%d", settings.script_x));
|
||||||
ass->SetScriptInfo("PlayResY", wxString::Format("%d", settings.script_y));
|
ass->SetScriptInfo("PlayResY", wxString::Format("%d", settings.script_y));
|
||||||
|
|
|
@ -82,17 +82,17 @@ std::function<bool (wxString)> get_predicate(int mode, wxRegEx *re, bool match_c
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case MODE_REGEXP:
|
case MODE_REGEXP:
|
||||||
return bind(static_cast<bool (wxRegEx::*)(wxString const&,int) const>(&wxRegEx::Matches), re, _1, 0);
|
return [=](wxString str) { return re->Matches(str); };
|
||||||
case MODE_EXACT:
|
case MODE_EXACT:
|
||||||
if (match_case)
|
if (match_case)
|
||||||
return bind(std::equal_to<wxString>(), match_text, _1);
|
return std::bind(std::equal_to<wxString>(), match_text, _1);
|
||||||
else
|
else
|
||||||
return bind(std::equal_to<wxString>(), match_text.Lower(), bind(&wxString::Lower, _1));
|
return bind(std::equal_to<wxString>(), match_text.Lower(), std::bind(&wxString::Lower, _1));
|
||||||
case MODE_CONTAINS:
|
case MODE_CONTAINS:
|
||||||
if (match_case)
|
if (match_case)
|
||||||
return bind(&wxString::Contains, _1, match_text);
|
return std::bind(&wxString::Contains, _1, match_text);
|
||||||
else
|
else
|
||||||
return bind(&wxString::Contains, bind(&wxString::Lower, _1), match_text.Lower());
|
return bind(&wxString::Contains, std::bind(&wxString::Lower, _1), match_text.Lower());
|
||||||
break;
|
break;
|
||||||
default: throw agi::InternalError("Bad mode", 0);
|
default: throw agi::InternalError("Bad mode", 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -405,7 +405,7 @@ DialogStyleEditor::DialogStyleEditor(wxWindow *parent, AssStyle *style, agi::Con
|
||||||
Bind(wxEVT_COMMAND_BUTTON_CLICKED, std::bind(&HelpButton::OpenPage, "Style Editor"), wxID_HELP);
|
Bind(wxEVT_COMMAND_BUTTON_CLICKED, std::bind(&HelpButton::OpenPage, "Style Editor"), wxID_HELP);
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i)
|
for (int i = 0; i < 4; ++i)
|
||||||
colorButton[i]->Bind(wxEVT_COMMAND_BUTTON_CLICKED, bind(&DialogStyleEditor::OnSetColor, this, i + 1, std::placeholders::_1));
|
colorButton[i]->Bind(wxEVT_COMMAND_BUTTON_CLICKED, std::bind(&DialogStyleEditor::OnSetColor, this, i + 1, std::placeholders::_1));
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogStyleEditor::~DialogStyleEditor() {
|
DialogStyleEditor::~DialogStyleEditor() {
|
||||||
|
|
|
@ -476,16 +476,16 @@ void DialogStyleManager::CopyToClipboard(wxListBox *list, T const& v) {
|
||||||
|
|
||||||
void DialogStyleManager::PasteToCurrent() {
|
void DialogStyleManager::PasteToCurrent() {
|
||||||
add_styles(
|
add_styles(
|
||||||
bind(&AssFile::GetStyle, c->ass, _1),
|
std::bind(&AssFile::GetStyle, c->ass, _1),
|
||||||
bind(&AssFile::InsertStyle, c->ass, _1));
|
std::bind(&AssFile::InsertStyle, c->ass, _1));
|
||||||
|
|
||||||
c->ass->Commit(_("style paste"), AssFile::COMMIT_STYLES);
|
c->ass->Commit(_("style paste"), AssFile::COMMIT_STYLES);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogStyleManager::PasteToStorage() {
|
void DialogStyleManager::PasteToStorage() {
|
||||||
add_styles(
|
add_styles(
|
||||||
bind(&AssStyleStorage::GetStyle, &Store, _1),
|
std::bind(&AssStyleStorage::GetStyle, &Store, _1),
|
||||||
bind(&AssStyleStorage::push_back, &Store, _1));
|
std::bind(&AssStyleStorage::push_back, &Store, _1));
|
||||||
|
|
||||||
UpdateStorage();
|
UpdateStorage();
|
||||||
StorageList->SetStringSelection(Store.back()->name);
|
StorageList->SetStringSelection(Store.back()->name);
|
||||||
|
@ -516,7 +516,7 @@ void DialogStyleManager::OnStorageCopy() {
|
||||||
if (sel == -1) return;
|
if (sel == -1) return;
|
||||||
|
|
||||||
ShowStorageEditor(Store[sel],
|
ShowStorageEditor(Store[sel],
|
||||||
unique_name(bind(&AssStyleStorage::GetStyle, &Store, _1), Store[sel]->name));
|
unique_name(std::bind(&AssStyleStorage::GetStyle, &Store, _1), Store[sel]->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogStyleManager::OnStorageDelete() {
|
void DialogStyleManager::OnStorageDelete() {
|
||||||
|
@ -554,7 +554,7 @@ void DialogStyleManager::OnCurrentCopy() {
|
||||||
if (sel == -1) return;
|
if (sel == -1) return;
|
||||||
|
|
||||||
ShowCurrentEditor(styleMap[sel],
|
ShowCurrentEditor(styleMap[sel],
|
||||||
unique_name(bind(&AssFile::GetStyle, c->ass, _1), styleMap[sel]->name));
|
unique_name(std::bind(&AssFile::GetStyle, c->ass, _1), styleMap[sel]->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DialogStyleManager::OnCurrentDelete() {
|
void DialogStyleManager::OnCurrentDelete() {
|
||||||
|
|
|
@ -90,12 +90,6 @@ static int FFMS_CC UpdateIndexingProgress(int64_t Current, int64_t Total, void *
|
||||||
return ps->IsCancelled();
|
return ps->IsCancelled();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A wrapper around FFMS_DoIndexing to make the signature void -> void
|
|
||||||
static void DoIndexingWrapper(FFMS_Index **Ret, FFMS_Indexer *Indexer, int IndexMask, int ErrorHandling, void *ICPrivate, FFMS_ErrorInfo *ErrorInfo) {
|
|
||||||
*Ret = FFMS_DoIndexing(Indexer, IndexMask, FFMS_TRACKMASK_NONE, NULL, NULL, ErrorHandling,
|
|
||||||
UpdateIndexingProgress, ICPrivate, ErrorInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @brief Does indexing of a source file
|
/// @brief Does indexing of a source file
|
||||||
/// @param Indexer A pointer to the indexer object representing the file to be indexed
|
/// @param Indexer A pointer to the indexer object representing the file to be indexed
|
||||||
/// @param CacheName The filename of the output index file
|
/// @param CacheName The filename of the output index file
|
||||||
|
@ -117,7 +111,9 @@ FFMS_Index *FFmpegSourceProvider::DoIndexing(FFMS_Indexer *Indexer, const wxStri
|
||||||
|
|
||||||
// index all audio tracks
|
// index all audio tracks
|
||||||
FFMS_Index *Index;
|
FFMS_Index *Index;
|
||||||
Progress.Run(std::bind(DoIndexingWrapper, &Index, Indexer, Trackmask, IndexEH, std::placeholders::_1, &ErrInfo));
|
Progress.Run([&](agi::ProgressSink *ps) {
|
||||||
|
Index = FFMS_DoIndexing(Indexer, Trackmask, FFMS_TRACKMASK_NONE, nullptr, nullptr, IndexEH, UpdateIndexingProgress, ps, &ErrInfo);
|
||||||
|
});
|
||||||
|
|
||||||
if (Index == NULL) {
|
if (Index == NULL) {
|
||||||
MsgString.Append("Failed to index: ").Append(wxString(ErrInfo.Buffer, wxConvUTF8));
|
MsgString.Append("Failed to index: ").Append(wxString(ErrInfo.Buffer, wxConvUTF8));
|
||||||
|
|
|
@ -220,7 +220,7 @@ void MatroskaWrapper::GetSubtitles(wxString const& filename, AssFile *target) {
|
||||||
// Progress bar
|
// Progress bar
|
||||||
double totalTime = double(segInfo->Duration) / timecodeScale;
|
double totalTime = double(segInfo->Duration) / timecodeScale;
|
||||||
DialogProgress progress(NULL, _("Parsing Matroska"), _("Reading subtitles from Matroska file."));
|
DialogProgress progress(NULL, _("Parsing Matroska"), _("Reading subtitles from Matroska file."));
|
||||||
progress.Run(bind(read_subtitles, std::placeholders::_1, file, &input, srt, totalTime, &parser));
|
progress.Run(std::bind(read_subtitles, std::placeholders::_1, file, &input, srt, totalTime, &parser));
|
||||||
}
|
}
|
||||||
catch (...) {
|
catch (...) {
|
||||||
mkv_Close(file);
|
mkv_Close(file);
|
||||||
|
|
|
@ -86,7 +86,7 @@ void HunspellSpellChecker::AddWord(std::string const& word) {
|
||||||
++agi::line_iterator<std::string>(*stream),
|
++agi::line_iterator<std::string>(*stream),
|
||||||
agi::line_iterator<std::string>(),
|
agi::line_iterator<std::string>(),
|
||||||
inserter(words, words.end()),
|
inserter(words, words.end()),
|
||||||
mem_fun_ref(&std::string::empty));
|
[](std::string const& str) { return str.empty(); });
|
||||||
}
|
}
|
||||||
catch (agi::FileNotFoundError&) {
|
catch (agi::FileNotFoundError&) {
|
||||||
LOG_I("dictionary/hunspell/add") << "User dictionary not found; creating it";
|
LOG_I("dictionary/hunspell/add") << "User dictionary not found; creating it";
|
||||||
|
|
|
@ -197,7 +197,7 @@ SubsTextEditCtrl::SubsTextEditCtrl(wxWindow* parent, wxSize wsize, long style, a
|
||||||
|
|
||||||
OPT_SUB("Subtitle/Highlight/Syntax", &SubsTextEditCtrl::UpdateStyle, this);
|
OPT_SUB("Subtitle/Highlight/Syntax", &SubsTextEditCtrl::UpdateStyle, this);
|
||||||
static wxStyledTextEvent evt;
|
static wxStyledTextEvent evt;
|
||||||
OPT_SUB("App/Call Tips", &SubsTextEditCtrl::UpdateCallTip, this, ref(evt));
|
OPT_SUB("App/Call Tips", &SubsTextEditCtrl::UpdateCallTip, this, std::ref(evt));
|
||||||
}
|
}
|
||||||
|
|
||||||
SubsTextEditCtrl::~SubsTextEditCtrl() {
|
SubsTextEditCtrl::~SubsTextEditCtrl() {
|
||||||
|
@ -269,7 +269,7 @@ void SubsTextEditCtrl::SetStyles() {
|
||||||
void SubsTextEditCtrl::UpdateStyle() {
|
void SubsTextEditCtrl::UpdateStyle() {
|
||||||
StartStyling(0,255);
|
StartStyling(0,255);
|
||||||
|
|
||||||
std::string text = GetTextRaw();
|
std::string text = GetTextRaw().data();
|
||||||
|
|
||||||
if (!OPT_GET("Subtitle/Highlight/Syntax")->GetBool()) {
|
if (!OPT_GET("Subtitle/Highlight/Syntax")->GetBool()) {
|
||||||
SetStyling(text.size(), 0);
|
SetStyling(text.size(), 0);
|
||||||
|
|
|
@ -244,7 +244,7 @@ void SubtitleFormat::RecombineOverlaps(AssFile &file) {
|
||||||
newdlg->End = curdlg->Start;
|
newdlg->End = curdlg->Start;
|
||||||
newdlg->Text = prevdlg->Text;
|
newdlg->Text = prevdlg->Text;
|
||||||
|
|
||||||
file.Line.insert(find_if(next, file.Line.end(), bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
file.Line.insert(find_if(next, file.Line.end(), std::bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Overlapping A+B part
|
// Overlapping A+B part
|
||||||
|
@ -255,7 +255,7 @@ void SubtitleFormat::RecombineOverlaps(AssFile &file) {
|
||||||
// Put an ASS format hard linewrap between lines
|
// Put an ASS format hard linewrap between lines
|
||||||
newdlg->Text = curdlg->Text + "\\N" + prevdlg->Text;
|
newdlg->Text = curdlg->Text + "\\N" + prevdlg->Text;
|
||||||
|
|
||||||
file.Line.insert(find_if(next, file.Line.end(), bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
file.Line.insert(find_if(next, file.Line.end(), std::bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is there an A part after the overlap?
|
// Is there an A part after the overlap?
|
||||||
|
@ -266,7 +266,7 @@ void SubtitleFormat::RecombineOverlaps(AssFile &file) {
|
||||||
newdlg->End = prevdlg->End;
|
newdlg->End = prevdlg->End;
|
||||||
newdlg->Text = prevdlg->Text;
|
newdlg->Text = prevdlg->Text;
|
||||||
|
|
||||||
file.Line.insert(find_if(next, file.Line.end(), bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
file.Line.insert(find_if(next, file.Line.end(), std::bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is there a B part after the overlap?
|
// Is there a B part after the overlap?
|
||||||
|
@ -277,7 +277,7 @@ void SubtitleFormat::RecombineOverlaps(AssFile &file) {
|
||||||
newdlg->End = curdlg->End;
|
newdlg->End = curdlg->End;
|
||||||
newdlg->Text = curdlg->Text;
|
newdlg->Text = curdlg->Text;
|
||||||
|
|
||||||
file.Line.insert(find_if(next, file.Line.end(), bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
file.Line.insert(find_if(next, file.Line.end(), std::bind(dialog_start_lt, _1, newdlg)), *newdlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
next--;
|
next--;
|
||||||
|
@ -335,12 +335,12 @@ SubtitleFormat *find_or_throw(Cont &container, Pred pred) {
|
||||||
|
|
||||||
const SubtitleFormat *SubtitleFormat::GetReader(wxString const& filename) {
|
const SubtitleFormat *SubtitleFormat::GetReader(wxString const& filename) {
|
||||||
LoadFormats();
|
LoadFormats();
|
||||||
return find_or_throw(formats, bind(&SubtitleFormat::CanReadFile, _1, filename));
|
return find_or_throw(formats, std::bind(&SubtitleFormat::CanReadFile, _1, filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
const SubtitleFormat *SubtitleFormat::GetWriter(wxString const& filename) {
|
const SubtitleFormat *SubtitleFormat::GetWriter(wxString const& filename) {
|
||||||
LoadFormats();
|
LoadFormats();
|
||||||
return find_or_throw(formats, bind(&SubtitleFormat::CanWriteFile, _1, filename));
|
return find_or_throw(formats, std::bind(&SubtitleFormat::CanWriteFile, _1, filename));
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString SubtitleFormat::GetWildcards(int mode) {
|
wxString SubtitleFormat::GetWildcards(int mode) {
|
||||||
|
@ -355,7 +355,7 @@ wxString SubtitleFormat::GetWildcards(int mode) {
|
||||||
wxArrayString cur = mode == 0 ? format->GetReadWildcards() : format->GetWriteWildcards();
|
wxArrayString cur = mode == 0 ? format->GetReadWildcards() : format->GetWriteWildcards();
|
||||||
if (cur.empty()) continue;
|
if (cur.empty()) continue;
|
||||||
|
|
||||||
for_each(cur.begin(), cur.end(), bind(&wxString::Prepend, _1, "*."));
|
for_each(cur.begin(), cur.end(), std::bind(&wxString::Prepend, _1, "*."));
|
||||||
copy(cur.begin(), cur.end(), std::back_inserter(all));
|
copy(cur.begin(), cur.end(), std::back_inserter(all));
|
||||||
final += "|" + format->GetName() + " (" + wxJoin(cur, ',') + ")|" + wxJoin(cur, ';');
|
final += "|" + format->GetName() + " (" + wxJoin(cur, ',') + ")|" + wxJoin(cur, ';');
|
||||||
}
|
}
|
||||||
|
|
|
@ -218,9 +218,9 @@ void VisualTool<FeatureType>::OnMouseEvent(wxMouseEvent &event) {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
// continue drag
|
// continue drag
|
||||||
if (event.LeftIsDown()) {
|
if (event.LeftIsDown()) {
|
||||||
for_each(sel_features, bind(&FeatureType::UpdateDrag, _1,
|
for_each(sel_features, std::bind(&FeatureType::UpdateDrag, _1,
|
||||||
mouse_pos - drag_start, shift_down));
|
mouse_pos - drag_start, shift_down));
|
||||||
for_each(sel_features, bind(&VisualTool<FeatureType>::UpdateDrag, this, _1));
|
for_each(sel_features, std::bind(&VisualTool<FeatureType>::UpdateDrag, this, _1));
|
||||||
Commit();
|
Commit();
|
||||||
need_render = true;
|
need_render = true;
|
||||||
}
|
}
|
||||||
|
@ -273,7 +273,7 @@ void VisualTool<FeatureType>::OnMouseEvent(wxMouseEvent &event) {
|
||||||
c->selectionController->SetActiveLine(active_feature->line);
|
c->selectionController->SetActiveLine(active_feature->line);
|
||||||
|
|
||||||
if (InitializeDrag(active_feature)) {
|
if (InitializeDrag(active_feature)) {
|
||||||
for_each(sel_features, bind(&VisualDraggableFeature::StartDrag, _1));
|
for_each(sel_features, std::bind(&VisualDraggableFeature::StartDrag, _1));
|
||||||
dragging = true;
|
dragging = true;
|
||||||
parent->CaptureMouse();
|
parent->CaptureMouse();
|
||||||
}
|
}
|
||||||
|
@ -553,7 +553,7 @@ wxString VisualToolBase::GetLineVectorClip(AssDialogue *diag, int &scale, bool &
|
||||||
|
|
||||||
void VisualToolBase::SetSelectedOverride(wxString const& tag, wxString const& value) {
|
void VisualToolBase::SetSelectedOverride(wxString const& tag, wxString const& value) {
|
||||||
for_each(c->selectionController->GetSelectedSet(),
|
for_each(c->selectionController->GetSelectedSet(),
|
||||||
bind(&VisualToolBase::SetOverride, this, _1, tag, value));
|
std::bind(&VisualToolBase::SetOverride, this, _1, tag, value));
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualToolBase::SetOverride(AssDialogue* line, wxString const& tag, wxString const& value) {
|
void VisualToolBase::SetOverride(AssDialogue* line, wxString const& tag, wxString const& value) {
|
||||||
|
|
Loading…
Reference in New Issue