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