/** * \ru * \brief Конвертор суммы в пропись. Публичный интерфейс. * Возвращает значение хранимой суммы прописью с учетом валюты. * Например, "Сто долларов США 20 центов" * \_ru */ QString AMoney::toText(){ uint integerKopeiki; qulonglong integerRubli; integerRubli = QVariant( this->amount).toULongLong(); double decimal = this->amount-integerRubli; #ifdef Q_OS_UNIX integerKopeiki = round( decimal*100.0 ); #else integerKopeiki = decimal * 100.0; #endif QString rubliText; if ( integerRubli > 0 ) { rubliText = valueToText( integerRubli ); } else { rubliText = "Ноль"; } QString kopeikiText; if ( integerKopeiki > 0 ) { kopeikiText = decimalValueToText( integerKopeiki ); } else { kopeikiText = "ноль"; } return this->firstUp( rubliText + " " + this->integerCurrencyName( rubliText ) + " " + QString::number( integerKopeiki ) + " " + this->decimalCurrencyName( kopeikiText ) ); }
void Slider::update(TCOD_key_t k) { float oldValue=value; TextBox::update(k); textToValue(); if ( mouse.cx >= x+w-2 && mouse.cx < x+w && mouse.cy == y ) onArrows=true; else onArrows=false; if ( drag ) { if ( dragy == -1 ) { dragx = mouse.x; dragy = mouse.y; } else { float mdx = (float)((mouse.x-dragx)*sensitivity) / (con->getWidth()*8); float mdy = (float)((mouse.y-dragy)*sensitivity) / (con->getHeight()*8); float oldValue=value; if ( fabs(mdy) > fabs(mdx) ) mdx=-mdy; value = dragValue+(max-min)*mdx; value=CLAMP(min,max,value); if ( value != oldValue ) { valueToText(); textToValue(); } } } if ( value != oldValue && cbk ) { cbk(this,value,data); } }
/** * \ru * \brief Вспомогательная функция для копеек, центов.... * * Используется для перевода цифры в пропись для дробной части суммы. * Эта функция необходима, так как дробная часть может имерь род отличный от целой части суммы. * Например, рубль - муж.род, копейка - жен.род. * * \_ru */ QString AMoney::decimalValueToText( qulonglong value ){ QString currencyId = this->currency->getId(); this->currency->setId( "d"+ currencyId); QString result = valueToText( value ); this->currency->setId( currencyId ); return result; }
void FlatList::setValue(const char * v) { const char **ptr=list; while (*ptr) { if ( strcmp(v,*ptr) == 0 ) { value = ptr; valueToText(); break; } ptr++; } }
void QRoundProgressBar::drawText(QPainter &p, const QRectF &innerRect, double innerRadius, double value) { if (m_format.isEmpty()) return; QFont f(font()); f.setPixelSize(innerRadius * qMax(0.05, (0.35 - (double) m_decimals * 0.08)) - 30); p.setFont(f); QRectF textRect(innerRect); p.setPen(palette().text().color()); p.drawText(textRect, Qt::AlignCenter, valueToText(value)); }
void FlatList::onButtonClick() { const char **oldValue=value; if ( onLeftArrow ) { if ( value == list ) { while (*value) { value++; } } value--; } else if ( onRightArrow ) { value++; if ( *value == NULL ) value=list; } if ( value != oldValue && cbk ) { valueToText(); cbk(this,*value,data); } }
void Slider::setFormat(const char *fmt) { if ( this->fmt ) free(this->fmt); if ( fmt ) this->fmt = TCOD_strdup(fmt); else fmt=NULL; valueToText(); }
Slider::Slider(int x,int y,int w, float min, float max, const char *label, const char *tip) : TextBox(x,y,w,10,label,NULL,tip),min(min),max(max),value((min+max)*0.5f),sensitivity(1.0f), onArrows(false),drag(false),fmt(NULL),cbk(NULL),data(NULL) { valueToText(); this->w+=2; }
void Slider::setValue(float value) { this->value=CLAMP(min,max,value); valueToText(); }
void FlatList::setList(const char **l) { value=list=l; valueToText(); }
FlatList::FlatList(int x,int y,int w, const char **list, const char *label, const char *tip) : TextBox(x,y,w,10,label,NULL,tip),value(list),list(list), onLeftArrow(false),onRightArrow(false),cbk(NULL),data(NULL) { valueToText(); this->w+=2; }