#include "ide.h" bool IsCb(String t) { int q = t.Find('<'); if(q >= 0) t.Trim(q); if(t.StartsWith("Upp::")) t = t.Mid(5); return t == "Event<> " || t == "Event<" || t == "Event<> 2" || t == "Event<> 3" || t == "Gate" || t == "Gate1" || t == "Gate"; } struct ThisbacksDlg : WithThisbacksLayout { struct CbInfo { String scope; String type; String name; }; Index nname; Array cb; void GatherCallbacks(const String& pfx, Index& done, const String& scope, int access); void CbEdit(One& ctrl); void Generate(String& ins, String& clip, const String& scope); typedef ThisbacksDlg CLASSNAME; ThisbacksDlg(const String& scope); }; int FilterId(int c) { return iscid(c) ? c : 0; } void ThisbacksDlg::CbEdit(One& ctrl) { ctrl.Create().SetFilter(FilterId); } ThisbacksDlg::ThisbacksDlg(const String& scope) { CodeBaseLock __; CtrlLayoutOKCancel(*this, "Events"); list.AddColumn("Defined in"); list.AddColumn("Type"); list.AddColumn("Event<> "); list.AddColumn("Insert").Ctrls