Index: nodequeue.module
===================================================================
--- nodequeue.module	(revision 6)
+++ nodequeue.module	(working copy)
@@ -523,7 +523,14 @@
     $rows[] = $row;
   }
 
-  $output .= theme('table', $header, $rows, array('class' => 'nodequeue-table'));
+  // Invoke hook_nodequeue_table()s.
+  $attributes = array('class' => 'nodequeue-table'); $caption = NULL;
+  foreach (module_implements('nodequeue_table') as $module) {
+    $implementation = $module.'_nodequeue_table';
+    $implementation('nodequeue_node_tab', $header, $rows, $attributes, $caption, $queues, $subqueues, $node);
+  }
+
+  $output .= theme('table', $header, $rows, $attributes, $caption);
   drupal_add_js(drupal_get_path('module', 'nodequeue') .'/nodequeue.js');
   drupal_add_css(drupal_get_path('module', 'nodequeue') .'/nodequeue.css');
   return $output;
@@ -621,7 +628,14 @@
     );
   }
 
-  $output .= theme('table', $header, $rows);
+  // Invoke hook_nodequeue_table()s.
+  $attributes = array(); $caption = NULL;
+  foreach (module_implements('nodequeue_table') as $module) {
+    $implementation = $module.'_nodequeue_table';
+    $implementation('nodequeue_view_queues', $header, $rows, $attributes, $caption, $queues);
+  }
+  
+  $output .= theme('table', $header, $rows, $attributes, $caption);
   $output .= theme('pager', NULL, 25);
 
   return  $output;
@@ -648,8 +662,15 @@
     }
   }
 
+  // Invoke hook_nodequeue_table()s.
+  $attributes = array(); $caption = NULL;
+  foreach (module_implements('nodequeue_table') as $module) {
+    $implementation = $module.'_nodequeue_table';
+    $implementation('nodequeue_view_subqueues', $header, $rows, $attributes, $caption, $queue, $subqueues);
+  }
+
   $output = '<p>'. t('Max nodes in queue: @size', array('@size' => $queue->size ? $queue->size : t("Infinite"))) .'</p>';
-  $output .= theme('table', $header, $rows);
+  $output .= theme('table', $header, $rows, $attributes, $caption);
   $output .= theme('pager', NULL, 20);
 
   return  $output;
