Beispiel #1
0
 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();
             }
         }
     }
 }
Beispiel #2
0
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;
}
Beispiel #3
0
 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);
 }
Beispiel #4
0
void DefaultSaveable::DoSave(/*IProgressMonitor monitor*/)
{
  IWorkbenchPart::Pointer _part(part);
  if (_part.Cast<ISaveablePart> () != 0)
  {
    _part.Cast<ISaveablePart> ()->DoSave(/*monitor*/);
  }
}
Beispiel #5
0
bool DefaultSaveable::IsDirty() const
{
  IWorkbenchPart::Pointer _part(part);
  if (_part.Cast<ISaveablePart> () != 0)
  {
    return _part.Cast<ISaveablePart> ()->IsDirty();
  }
  return false;
}