Beispiel #1
0
wxString FracCell::ToString(bool all)
{
  wxString s;
  if (!m_isBroken)
  {
    if (m_fracStyle == FC_NORMAL)
    {
      if (m_num->IsCompound())
        s += wxT("(") + m_num->ToString(true) + wxT(")/");
      else
        s += m_num->ToString(true) + wxT("/");
      if (m_denom->IsCompound())
        s += wxT("(") + m_denom->ToString(true) + wxT(")");
      else
        s += m_denom->ToString(true);
    }
    else if (m_fracStyle == FC_CHOOSE)
    {
      s = wxT("binomial(") + m_num->ToString(true) + wxT(",") +
          m_denom->ToString(true) + wxT(")");
    }
    else
    {
      MathCell* tmp = m_denom;
      while (tmp != NULL)
      {
        tmp = tmp->m_next;   // Skip the d
        if (tmp == NULL)
          break;
        tmp = tmp->m_next;   // Skip the *
        if (tmp == NULL)
          break;
        s += tmp->GetDiffPart();
        tmp = tmp->m_next;   // Skip the *
        if (tmp == NULL)
          break;
        tmp = tmp->m_next;
      }
    }
  }
  if (m_fracStyle == FC_NORMAL)
    s += MathCell::ToString(all);
  return s;
}