Index: blueprint/blueprint.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/themes/blueprint/blueprint/Attic/blueprint.info,v
retrieving revision 1.1.2.8
diff -u -p -r1.1.2.8 blueprint.info
--- blueprint/blueprint.info	21 Jul 2010 17:46:44 -0000	1.1.2.8
+++ blueprint/blueprint.info	9 Nov 2010 20:11:00 -0000
@@ -16,6 +16,7 @@ regions[left] = First sidebar
 regions[right] = Second sidebar
 regions[content] = Content
 regions[header] = Header
+regions[top_bar] = Top Bar
 regions[footer] = Footer
 
 ; Let's enable some features
@@ -35,3 +36,6 @@ settings[blueprint_block_edit_links]    
 settings[blueprint_rebuild_registry]        = 0
 settings[blueprint_showgrid]                = 0
 settings[blueprint_animated_submit]         = 1
+
+; Set the bars
+bars[top_bar] = 24
Index: blueprint/page.tpl.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/themes/blueprint/blueprint/Attic/page.tpl.php,v
retrieving revision 1.1.2.10
diff -u -p -r1.1.2.10 page.tpl.php
--- blueprint/page.tpl.php	9 Nov 2010 17:06:46 -0000	1.1.2.10
+++ blueprint/page.tpl.php	9 Nov 2010 20:11:00 -0000
@@ -34,13 +34,18 @@
           <?php print $logo_block; ?>
         </h1>
       <?php endif; ?>
-      
+
       <?php if ($search_box): ?>
         <div id="search-box" class="span-8 last prepend-16">
           <?php print $search_box; ?>
         </div> <!-- /#search-box -->
       <?php endif; ?>
     <?php print $header; ?>
+
+    <?php if ($top_bar): ?>
+    <div class="<?php print $top_bar_classes; ?>"><?php print $top_bar; ?></div>
+    <?php endif ?>
+
     <?php if (isset($primary_links)) : ?>
       <?php print theme('links', $primary_links, array('id' => 'nav', 'class' => 'links primary-links')) ?>
     <?php endif; ?>
Index: blueprint/template.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/themes/blueprint/blueprint/Attic/template.php,v
retrieving revision 1.1.2.31
diff -u -p -r1.1.2.31 template.php
--- blueprint/template.php	9 Nov 2010 18:21:55 -0000	1.1.2.31
+++ blueprint/template.php	9 Nov 2010 20:11:00 -0000
@@ -66,34 +66,10 @@ function blueprint_preprocess_page(&$var
   }
 
 
-  // determine layout
-  // 3 columns
-  if ($vars['layout'] == 'both') {
-    $vars['left_classes'] = 'col-left span-6';
-    $vars['right_classes'] = 'col-right span-6 last';
-    $vars['center_classes'] = 'col-center span-12';
-    $vars['body_classes'] .= ' col-3 ';
-  }
-
-  // 2 columns
-  elseif ($vars['layout'] != 'none') {
-    // left column & center
-    if ($vars['layout'] == 'left') {
-      $vars['left_classes'] = 'col-left span-6';
-      $vars['center_classes'] = 'col-center span-18 last';
-    }
-    // right column & center
-    elseif ($vars['layout'] == 'right') {
-      $vars['right_classes'] = 'col-right span-6 last';
-      $vars['center_classes'] = 'col-center span-18';
-    }
-    $vars['body_classes'] .= ' col-2 ';
-  }
-  // 1 column
-  else {
-    $vars['center_classes'] = 'col-center span-24';
-    $vars['body_classes'] .= ' col-1 ';
-  }
+  $vars['center'] = TRUE;
+  $widht_and_pos = blueprint_grid_calculate_items_classes(array('left' => 6, 'center' => 'auto', 'right' => 6), $vars);
+  blueprint_grid_reorder_items_classes(array('center', 'right', 'left'), $widht_and_pos, $vars);
+  blueprint_grid_bars_classes($vars);
 
   $vars['meta'] = '';
   // SEO optimization, add in the node's teaser, or if on the homepage, the mission statement
@@ -142,7 +118,6 @@ function blueprint_preprocess_page(&$var
     // Remove Blueprint Grid and use RTL grid
     $css = $vars['css'];
     $css['screen,projection']['theme'][$vars['bp_library_path'] .'/blueprint/plugins/rtl/screen.css'] = TRUE;
-    $vars['styles'] = drupal_get_css($css);
 
     //setup rtl css for IE
     $vars['styles_ie']['ie'] = '<link href="'. $path .'css/ie-rtl.css" rel="stylesheet"  type="text/css"  media="screen, projection" />';
@@ -195,7 +170,7 @@ function blueprint_preprocess_comment(&$
   $page = 0;
   $comments_previous = 0;
   if (isset($_GET['page'])) {
-    $page = $_GET['page'];    
+    $page = $_GET['page'];
     $comments_per_page = variable_get('comment_default_per_page_' . $vars['node']->type, 1);
     $comments_previous = $comments_per_page * $page;
   }
@@ -206,7 +181,7 @@ function blueprint_preprocess_comment(&$
   if ($vars['comment']->uid == $node->uid) {
     $vars['author_comment'] = TRUE;
   }
-  
+
   // Add the pager variable to the title link if it needs it.
   $fragment = 'comment-' . $vars['comment']->cid;
   $query = '';
@@ -245,6 +220,12 @@ function blueprint_preprocess_block(&$va
   $classes[] = $vars['zebra'];
   $classes[] = 'region-count-' . $vars['block_id'];
   $classes[] = 'count-' . $vars['id'];
+  if ($block->width) {
+    $classes[] = 'span-' . $block->width;
+  }
+  if ($block->last) {
+    $classes[] = 'last';
+  }
 
   $vars['edit_links_array'] = array();
   $vars['edit_links'] = '';
@@ -259,6 +240,38 @@ function blueprint_preprocess_block(&$va
   $vars['classes'] = implode(' ', $classes);
 }
 
+/**
+ * Override or insert variables into the blocks templates.
+ *
+ * @param $vars
+ *   An array of variables to pass to the theme template.
+ * @param $hook
+ *   The name of the template being rendered ("block" in this case.)
+ */
+function blueprint_blocks($region) {
+global $theme_info;
+
+  $output = '';
+
+  if ($list = block_list($region)) {
+    $count = count($list);
+    $i = 0;
+    foreach ($list as $key => $block) {
+      if (isset($theme_info->info['bars'][$region])) {
+        $block->width = blueprint_grid_calculate_item_with($i++, $count);
+        if ($i == $count) {
+          $block->last = TRUE;
+        }
+      }
+      $output .= theme('block', $block);
+    }
+  }
+
+  // Add any content assigned to this region through drupal_set_content() calls.
+  $output .= drupal_get_content($region);
+
+  return $output;
+}
 
 /**
  * Intercept box template variables
@@ -345,7 +358,7 @@ function blueprint_help() {
  * @return a string containing the breadcrumb output.
  */
 function blueprint_breadcrumb($breadcrumb) {
-  // Don't add the title if menu_breadcrumb exists. TODO: Add a settings 
+  // Don't add the title if menu_breadcrumb exists. TODO: Add a settings
   // checkbox to optionally control the display.
   if (!module_exists('menu_breadcrumb') && count($breadcrumb) > 0) {
       $breadcrumb[] = drupal_get_title();
@@ -436,21 +449,21 @@ if (!module_exists('advanced_forum')) {
     else {
       $icon = $new_posts ? 'new' : 'default';
     }
-  
+
     if ($comment_mode == COMMENT_NODE_READ_ONLY || $comment_mode == COMMENT_NODE_DISABLED) {
       $icon = 'closed';
     }
-  
+
     if ($sticky == 1) {
       $icon = 'sticky';
     }
-  
+
     $output = theme('image', path_to_theme() . "/images/icons/forum-$icon.png");
-  
+
     if ($new_posts) {
       $output = "<a name=\"new\">$output</a>";
     }
-  
+
     return $output;
   }
 
@@ -518,3 +531,120 @@ function blueprint_css_reorder($css) {
   return $css;
 }
 
+/**
+ * Calculet item with.
+ *
+ * @param $delta
+ *   The position of the item. The first position is 0. Eg.: If you have left,
+ *   content and right regions the left's delta is 0, content's delta is 1,
+ *   right's delta is 2.
+ * @param $count
+ *   The count of  parent's children. Eg.: Eg.: If you have left,
+ *   content and right regions the count is 3 every region.
+ * @param $parent_width
+ *   The with of parent in grids. The blueprint max with is 24.
+ */
+function blueprint_grid_calculate_item_with($delta, $count, $parent_width = 24) {
+  $width = $parent_width / $count;
+  if ($delta < $parent_width % $count) {
+    $width++;
+  }
+  return $width;
+}
+
+/**
+ * Calculet items classes.
+ *
+ * @param $items
+ *   The items withs array. If you want to calculate with automatice, set it 'auto'
+ *   Eg.: array('left' => 6, 'content' => 'auto', 'right' => 6)
+ * @param $vars
+ *   References off $vars array.
+ * @param $parent_width
+ *   The with of parent in grids. The blueprint max with is 24.
+ * @param $classes_prefix
+ *   Prefix of class variable name. Eg. if the item name is 'left' and $classes_prefix
+ *   is 'classes_' the classes name will be 'classes_left' in the $vars array.
+ * @param $classes_postfix
+ *   Postfix of class variable name. Eg. if the item name is 'left' and $classes_postfix
+ *   is '_classes' the classes name will be 'left_classes' in the $vars array.
+ *
+ */
+
+function blueprint_grid_calculate_items_classes($items, &$vars, $parent_width = 24, $classes_prefix = '', $classes_postfix = '_classes') {
+  $fix_width = 0;
+  $auto = array();
+  $last = '';
+  foreach($items as $item => $width) {
+    if($vars[$item]) {
+      if (is_numeric($width)) {
+        $fix_width += $width;
+      }
+      else {
+        $auto[] = $item;
+      }
+      $last = $item;
+    }
+  }
+  $auto_width = $parent_width - $fix_width;
+  if ($auto_width < 1) {
+    $auto_width = $parent_width;
+  }
+  $auto_count = count($auto);
+  $auto_delta = 0;
+  $width_and_pos = array();
+  $pos = 0;
+  foreach($items as $item => $width) {
+    if($vars[$item]) {
+      if (!is_numeric($width)) {
+        $width = blueprint_grid_calculate_item_with($auto_delta++, $auto_count, $auto_width);
+      }
+      $vars[$classes_prefix . $item . $classes_postfix] = 'span-'. $width;
+      $width_and_pos[$item]['width'] = $width;
+      $width_and_pos[$item]['pos'] = $pos;
+      $pos += $width;
+      if ($item == $last) {
+        $vars[$classes_prefix . $item . $classes_postfix] .= ' last';
+      }
+    }
+  }
+  return $width_and_pos;
+}
+
+/**
+ * Calculet widths of blocks of bars classes.
+ *
+ * @param $vars
+ *   References off $vars array.
+ * @param $classes_prefix
+ *   Prefix of class variable name. Eg. if the item name is 'left' and $classes_prefix
+ *   is 'classes_' the classes name will be 'classes_left' in the $vars array.
+ * @param $classes_postfix
+ *   Postfix of class variable name. Eg. if the item name is 'left' and $classes_postfix
+ *   is '_classes' the classes name will be 'left_classes' in the $vars array.
+*/
+function blueprint_grid_bars_classes(&$vars, $classes_prefix = '', $classes_postfix = '_classes') {
+  global $theme_info;
+  if (isset($theme_info->info['bars'])) {
+    foreach($theme_info->info['bars'] as $region => $width) {
+      $vars[$classes_prefix . $region . $classes_postfix] = 'span-'. $width;
+      $vars[$classes_prefix . $region . $classes_postfix] .= ' clear-block';
+    }
+  }
+}
+
+function blueprint_grid_reorder_items_classes($new_order, $widht_and_pos, &$vars, $classes_prefix = '', $classes_postfix = '_classes') {
+  $pos = 0;
+  foreach($new_order as $item) {
+    if (array_key_exists($item, $widht_and_pos)) {
+      $new = $pos - $widht_and_pos[$item]['pos'];
+      if ($new < 0) {
+        $vars[$classes_prefix . $item . $classes_postfix] .= ' real-pull-'. abs($new);
+      }
+      if ($new > 0) {
+        $vars[$classes_prefix . $item . $classes_postfix] .= ' real-push-'. $new;
+      }
+      $pos += $widht_and_pos[$item]['width'];
+    }
+  }
+}
Index: blueprint/css/blueprint.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/themes/blueprint/blueprint/css/Attic/blueprint.css,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 blueprint.css
--- blueprint/css/blueprint.css	9 Nov 2010 17:26:07 -0000	1.1.2.5
+++ blueprint/css/blueprint.css	9 Nov 2010 20:11:01 -0000
@@ -425,6 +425,9 @@ div.block {
   margin-bottom: 1.5em;
 }
 
+div.block-region {
+  clear: both;
+}
 /* @end */
 
 /* @group block editing */
@@ -491,13 +494,13 @@ ul.pager span.pager-ellipsis {
   padding: 0 0.5em;
 }
 
-.item-list .pager li { 
+.item-list .pager li {
   padding:0em;
 }
 
 /* @end */
 
-#user-login-form li.openid-link, 
+#user-login-form li.openid-link,
 #user-login li.openid-link {
   background-position: 0 0;
   padding-left:18px;
@@ -506,4 +509,61 @@ ul.pager span.pager-ellipsis {
 /* @group Fixes */
 
 
-/* @end */
\ No newline at end of file
+/* @end */
+
+/* @pull-push Fixes */
+.real-pull-1, .real-pull-2, .real-pull-3, .real-pull-4, .real-pull-5, .real-pull-6, .real-pull-7, .real-pull-8, .real-pull-9, .real-pull-10, .real-pull-11, .real-pull-12, .real-pull-13, .real-pull-14, .real-pull-15, .real-pull-16, .real-pull-17, .real-pull-18, .real-pull-19, .real-pull-20, .real-pull-21, .real-pull-22, .real-pull-23, .real-pull-24 {position:relative;}
+
+.real-pull-1 {left:-40px;}
+.real-pull-2 {left:-80px;}
+.real-pull-3 {left:-120px;}
+.real-pull-4 {left:-160px;}
+.real-pull-5 {left:-200px;}
+.real-pull-6 {left:-240px;}
+.real-pull-7 {left:-280px;}
+.real-pull-8 {left:-320px;}
+.real-pull-9 {left:-360px;}
+.real-pull-10 {left:-400px;}
+.real-pull-11 {left:-440px;}
+.real-pull-12 {left:-480px;}
+.real-pull-13 {left:-520px;}
+.real-pull-14 {left:-560px;}
+.real-pull-15 {left:-600px;}
+.real-pull-16 {left:-640px;}
+.real-pull-17 {left:-680px;}
+.real-pull-18 {left:-720px;}
+.real-pull-19 {left:-760px;}
+.real-pull-20 {left:-800px;}
+.real-pull-21 {left:-840px;}
+.real-pull-22 {left:-880px;}
+.real-pull-23 {left:-920px;}
+.real-pull-24 {left:-960px;}
+
+
+.real-push-1, .real-push-2, .real-push-3, .real-push-4, .real-push-5, .real-push-6, .real-push-7, .real-push-8, .real-push-9, .real-push-10, .real-push-11, .real-push-12, .real-push-13, .real-push-14, .real-push-15, .real-push-16, .real-push-17, .real-push-18, .real-push-19, .real-push-20, .real-push-21, .real-push-22, .real-push-23, .real-push-24 {position:relative;}
+
+.real-push-1 {left: 40px;}
+.real-push-2 {left: 80px;}
+.real-push-3 {left: 120px;}
+.real-push-4 {left: 160px;}
+.real-push-5 {left: 200px;}
+.real-push-6 {left: 240px;}
+.real-push-7 {left: 280px;}
+.real-push-8 {left: 320px;}
+.real-push-9 {left: 360px;}
+.real-push-10 {left: 400px;}
+.real-push-11 {left: 440px;}
+.real-push-12 {left: 480px;}
+.real-push-13 {left: 520px;}
+.real-push-14 {left: 560px;}
+.real-push-15 {left: 600px;}
+.real-push-16 {left: 640px;}
+.real-push-17 {left: 680px;}
+.real-push-18 {left: 720px;}
+.real-push-19 {left: 760px;}
+.real-push-20 {left: 800px;}
+.real-push-21 {left: 840px;}
+.real-push-22 {left: 880px;}
+.real-push-23 {left: 920px;}
+.real-push-24 {left: 960px;}
+/* @end */
