Index: webform.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/webform.module,v
retrieving revision 1.269
diff -u -p -r1.269 webform.module
--- webform.module	5 Nov 2010 01:05:53 -0000	1.269
+++ webform.module	28 Dec 2010 21:50:20 -0000
@@ -2397,6 +2397,14 @@ function theme_webform_element($variable
 
   switch ($element['#title_display']) {
     case 'before':
+      // Setting the display to 'after' here is necessary because it adds the
+      // "option" class to the label which causes it to be displayed inline by
+      // default.
+      $variables['element']['#title_display'] = 'after';
+      $output .= ' ' . theme('form_element_label', $variables) . "\n";
+      $output .= ' ' . $prefix . $element['#children'] . $suffix;
+      break;
+
     case 'invisible':
       $output .= ' ' . theme('form_element_label', $variables);
       $output .= ' ' . $prefix . $element['#children'] . $suffix . "\n";
@@ -2407,6 +2415,16 @@ function theme_webform_element($variable
       $output .= ' ' . theme('form_element_label', $variables) . "\n";
       break;
 
+    case 'above':
+      $output .= ' ' . theme('form_element_label', $variables) . "\n";
+      $output .= ' ' . $prefix . $element['#children'] . $suffix;
+      break;
+
+    case 'below':
+      $output .= ' ' . $prefix . $element['#children'] . $suffix;
+      $output .= ' ' . theme('form_element_label', $variables) . "\n";
+      break;
+
     case 'none':
     case 'attribute':
       // Output no label and no required marker, only the children.
Index: css/webform.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/css/webform.css,v
retrieving revision 1.4
diff -u -p -r1.4 webform.css
--- css/webform.css	17 Oct 2010 18:53:13 -0000	1.4
+++ css/webform.css	28 Dec 2010 21:50:20 -0000
@@ -12,3 +12,8 @@ input.webform-calendar {
 .webform-container-inline div.form-item {
   display: inline;
 }
+.webform-component-select > label.option + .form-checkboxes,
+.webform-component-select > label.option + .form-radios {
+  display: inline-block;
+  vertical-align: top;
+}
Index: includes/webform.components.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/webform/includes/webform.components.inc,v
retrieving revision 1.53
diff -u -p -r1.53 webform.components.inc
--- includes/webform.components.inc	20 Oct 2010 03:05:13 -0000	1.53
+++ includes/webform.components.inc	28 Dec 2010 21:50:20 -0000
@@ -397,11 +397,17 @@ function webform_component_edit_form($fo
     '#weight' => 8,
   );
   $form['display']['title_display'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Hide component title'),
-    '#default_value' => !empty($component['extra']['title_display']),
-    '#return_value' => 'none',
-    '#description' => t('Do not display the title or label of this field in the form.'),
+    '#type' => 'select',
+    '#title' => t('Component title display'),
+    '#default_value' => !empty($component['extra']['title_display']) ? $component['extra']['title_display'] : 'before',
+    '#options' => array(
+      'above' => 'above',
+      'below' => 'below',
+      'before' => 'inline before',
+      'after' => 'inline after',
+      'invisible' => 'hidden',
+    ),
+    '#description' => t('Determines the placement of the component\'s title.'),
     '#weight' => 8,
     '#parents' => array('extra', 'title_display'),
   );
