// static void LLSpinCtrl::onUpBtn( void *userdata ) { LLSpinCtrl* self = (LLSpinCtrl*) userdata; if( self->getEnabled() ) { // use getValue()/setValue() to force reload from/to control F32 val = (F32)self->getValue().asReal() + get_increment(self->mIncrement, self->mPrecision); val = clamp_precision(val, self->mPrecision); val = llmin( val, self->mMaxValue ); F32 saved_val = (F32)self->getValue().asReal(); self->setValue(val); if( (self->mValidateCallback && !self->mValidateCallback( self, self->mCallbackUserData ) ) || (self->mValidateSignal && !(*(self->mValidateSignal))( self, val ) )) { self->setValue( saved_val ); self->reportInvalidData(); self->updateEditor(); return; } self->updateEditor(); self->onCommit(); } }
// static void LLSpinCtrl::onDownBtn( void *userdata ) { LLSpinCtrl* self = (LLSpinCtrl*) userdata; if( self->getEnabled() ) { F32 val = (F32)self->getValue().asReal() - get_increment(self->mIncrement, self->mPrecision); val = clamp_precision(val, self->mPrecision); val = llmax( val, self->mMinValue ); if (val < self->mMinValue) val = self->mMinValue; if (val > self->mMaxValue) val = self->mMaxValue; F32 saved_val = (F32)self->getValue().asReal(); self->setValue(val); if( (self->mValidateCallback && !self->mValidateCallback( self, self->mCallbackUserData ) ) || (self->mValidateSignal && !(*(self->mValidateSignal))( self, val ) )) { self->setValue( saved_val ); self->reportInvalidData(); self->updateEditor(); return; } self->updateEditor(); self->onCommit(); } }
int main(void) { int table_size; int first; int increment; /* loop until sentinel is reached */ table_size = get_table_size(); while (table_size != 0) { first = get_first(); increment = get_increment(); show_table(table_size, first, increment); table_size = get_table_size(); } return 0; }