void participle::_part(list<part_attr *> &cur, const char *str, long &pos) { if (str[pos] == 0) { long value = _envalue(cur); list<pair<long,list<part_attr*>>>::iterator i = m_parting.begin(); while (i != m_parting.end() && (*i).first > value) { ++i; } if (i != m_parting.begin()) { --i; } m_parting.insert(i, pair<long, list<part_attr*>>(value, cur)); } else { list<part_attr*> ps = g_part_knowledge->match(str + pos); if (ps.empty()) { ++pos; _part(cur, str, pos); } else { for (part_attr* pa : ps) { cur.push_back(pa); pos += pa->str().length(); _part(cur, str, pos); pos -= pa->str().length(); cur.pop_back(); } } } }
bool DefaultSaveable::Show(IWorkbenchPage::Pointer page) { IWorkbenchPart::Pointer _part(part); IWorkbenchPartReference::Pointer reference = page->GetReference(_part); if (reference != 0) { page->Activate(_part); return true; } if (_part.Cast<IViewPart> () != 0) { IViewPart::Pointer viewPart = _part.Cast<IViewPart> (); try { page->ShowView(viewPart->GetViewSite()->GetId(), viewPart->GetViewSite()->GetSecondaryId(), IWorkbenchPage::VIEW_ACTIVATE); } catch (const PartInitException& /*e*/) { return false; } return true; } return false; }
participle::participle(const string& text) { m_text = text; m_next_get_pos = 0; long pos = 0; list<part_attr*> holder; _part(holder, text.c_str(), pos); }
void DefaultSaveable::DoSave(/*IProgressMonitor monitor*/) { IWorkbenchPart::Pointer _part(part); if (_part.Cast<ISaveablePart> () != 0) { _part.Cast<ISaveablePart> ()->DoSave(/*monitor*/); } }
bool DefaultSaveable::IsDirty() const { IWorkbenchPart::Pointer _part(part); if (_part.Cast<ISaveablePart> () != 0) { return _part.Cast<ISaveablePart> ()->IsDirty(); } return false; }