See: http://drupal.org/node/342748 diff -Nurp ../phone.orig/phone.module ./phone.module --- ../phone.orig/phone.module 2010-04-28 09:07:54.000000000 -0500 +++ ./phone.module 2010-04-28 09:29:25.000000000 -0500 @@ -668,12 +668,25 @@ function phone_widget_info() { function phone_widget_settings($op, $widget) { switch ($op) { case 'form': + $form = array(); + + $size = (isset($widget['size']) && is_numeric($widget['size'])) ? $widget['size'] : 60; + + $form['input']['size'] = array( + '#type' => 'textfield', + '#title' => t('Size of textfield'), + '#default_value' => $size, + '#element_validate' => array('_element_validate_integer_positive'), + '#required' => TRUE, + ); + + return $form; case 'validate': break; //do nothing case 'save': - return array(); + return array('size'); } } @@ -788,6 +801,7 @@ function phone_textfield_process($elemen $element[$field_key] = array( '#type' => 'textfield', '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL, + '#size' => !empty($field['widget']['size']) ? $field['widget']['size'] : 60, '#autocomplete_path' => FALSE, // The following values were set by the content module and need // to be passed down to the nested element.