static void spinbn_set_value(GuiSpinBtn *spin, efloat value) { GuiEntry *entry = GUI_ENTRY_DATA(spin->entry); echar buf[200], *p; eint len; e_sprintf(buf, _("%f"), spin->value); p = e_strchr(buf, '.'); if (spin->digits > 0) p[spin->digits + 1] = 0; else p[spin->digits] = 0; len = e_strlen(buf); if (value == spin->value && len == entry->nchar && !e_strncmp(buf, entry->chars, len)) return; if (value < spin->min) spin->value = spin->max; else if (value > spin->max) spin->value = spin->min; else spin->value = value; e_sprintf(buf, _("%f"), spin->value); p = e_strchr(buf, '.'); if (spin->digits > 0) p[spin->digits + 1] = 0; else p[spin->digits] = 0; egui_set_strings(spin->entry, buf); }
static void spinbn_right_value(GuiSpinBtn *spin) { GuiEntry *entry = GUI_ENTRY_DATA(spin->entry); echar buf[entry->nchar + 1]; e_memcpy(buf, entry->chars, entry->nchar); buf[entry->nchar] = 0; spinbn_set_value(spin, e_atof(buf)); }
static void spinbn_right_value(GuiSpinBtn *spin) { GuiEntry *entry = GUI_ENTRY_DATA(spin->entry); #ifdef linux echar buf[entry->nchar + 1]; #else echar buf[1024]; #endif e_memcpy(buf, entry->chars, entry->nchar); buf[entry->nchar] = 0; spinbn_set_value(spin, (efloat)e_atof(buf)); }