*
* \param tipo Debe ser INPUT
* \param nombre Nombre del control (también usada como etiqueta).
- * \param max Cantidad máxima de caracteres
+ * \param max Cantidad máxima de caracteres.
+ * \param defecto Valor inicial del campo.
*/
-static t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max);
+static t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max, const char *defecto);
/** Crea un nuevo RADIO Group
*
* \param tipo Debe ser RADIO
/* Creo el nuevo widget segun el tipo */
switch (tipo) {
case INPUT:
- tmp = widget_input_create(tipo, nombre, max);
+ tmp = widget_input_create(tipo, nombre, max, defecto);
break;
case RADIO:
tmp = widget_radio_create(tipo, nombre, max, defecto);
}
/* Agrego el ": " al offset*/
x += offset + 2;
-
+ wrefresh(f->win);
tmp = f->primero;
my_y = y-1;
while (tmp) {
++my_y;
wmove(f->win, my_y, x);
salida = tmp->ejecutar(f->win, x, my_y, tmp);
+ wrefresh(f->win);
tmp = tmp->sig;
}
}
return "";
}
-t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max)
+t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max, const char *defecto)
{
t_Widget *tmp = (t_Widget *)malloc(sizeof(t_Widget));
tmp->max = max;
tmp->valor = (char *)malloc(sizeof(char)*(max+1));
tmp->valor[0] = '\0';
+ strncpy(tmp->valor, defecto, max);
tmp->sig = NULL;
current++;
}
+ wrefresh(win);
while ((c=getch()) != 13) {
/* Verifico si se apreto basckspace */
if (c == KEY_BACKSPACE) {
wmove(win, y, x+current);
waddch(win, c);
w->valor[current++] = c;
+ wrefresh(win);
}
/* Cierro el string con el \0 */
w->valor[current+1] = '\0';
wmove(win, y, xs[actual]);
waddch(win, 'X');
+ wrefresh(win);
while ((c=getch()) != 13) {
if (c == KEY_LEFT) {
wmove(win, y, xs[actual]);
wmove(win, y, xs[actual]);
waddch(win, 'X');
}
+ wrefresh(win);
}
w->actual = actual;