Index: wp-includes/class-wp-customize-control.php
===================================================================
--- wp-includes/class-wp-customize-control.php	(revision 21275)
+++ wp-includes/class-wp-customize-control.php	(working copy)
@@ -6,25 +6,71 @@
  * @subpackage Customize
  * @since 3.4.0
  */
-
 class WP_Customize_Control {
+	/**
+	 * @access public
+	 * @var WP_Customize_Manager
+	 */
 	public $manager;
+	
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $id;
 
-	// All settings tied to the control.
+	/**
+	 * All settings tied to the control.
+	 *
+	 * @access public
+	 * @var array
+	 */
 	public $settings;
 
-	// The primary setting for the control (if there is one).
+	/**
+	 * The primary setting for the control (if there is one).
+	 *
+	 * @access public
+	 * @var string
+	 */
 	public $setting = 'default';
 
+	/**
+	 * @access public
+	 * @var int
+	 */
 	public $priority          = 10;
+	
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $section           = '';
+	
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $label             = '';
-	// @todo: remove choices
+	
+	/**
+	 * @todo: Remove choices
+	 *
+	 * @access public
+	 * @var array
+	 */
 	public $choices           = array();
 
+	/**
+	 * @access public
+	 * @var array
+	 */
 	public $json = array();
 
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $type = 'text';
 
 
@@ -34,6 +80,10 @@
 	 * If $args['settings'] is not defined, use the $id as the setting ID.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
 	 */
 	function __construct( $manager, $id, $args = array() ) {
 		$keys = array_keys( get_object_vars( $this ) );
@@ -75,6 +125,9 @@
 	 * Grabs the main setting by default.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param string $setting_key
+	 * @return mixed The requested setting's value, if the setting exists.
 	 */
 	public final function value( $setting_key = 'default' ) {
 		if ( isset( $this->settings[ $setting_key ] ) )
@@ -119,6 +172,7 @@
 	 * Check capabilities and render the control.
 	 *
 	 * @since 3.4.0
+	 * @uses WP_Customize_Control::render()
 	 */
 	public final function maybe_render() {
 		if ( ! $this->check_capabilities() )
@@ -143,14 +197,30 @@
 			<?php $this->render_content(); ?>
 		</li><?php
 	}
-
+	
+	/**
+	 * Get the data link parameter for a setting.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $setting_key
+	 * @return string Data link parameter, if $setting_key is a valid setting, empty string otherwise.
+	 */
 	public function get_link( $setting_key = 'default' ) {
 		if ( ! isset( $this->settings[ $setting_key ] ) )
 			return '';
 
 		return 'data-customize-setting-link="' . esc_attr( $this->settings[ $setting_key ]->id ) . '"';
 	}
-
+	
+	/**
+	 * Render the data link parameter for a setting
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::get_link()
+	 *
+	 * @param string $setting_key
+	 */
 	public function link( $setting_key = 'default' ) {
 		echo $this->get_link( $setting_key );
 	}
@@ -238,25 +308,69 @@
 	}
 }
 
+/**
+ * Customize Color Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Color_Control extends WP_Customize_Control {
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $type = 'color';
+	
+	/**
+	 * @access public
+	 * @var array
+	 */
 	public $statuses;
 
+	/**
+	 * Constructor.
+	 *
+	 * If $args['settings'] is not defined, use the $id as the setting ID.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
+	 */
 	public function __construct( $manager, $id, $args = array() ) {
 		$this->statuses = array( '' => __('Default') );
 		parent::__construct( $manager, $id, $args );
 	}
 
+	/**
+	 * Enqueue control related scripts/styles.
+	 *
+	 * @since 3.4.0
+	 */
 	public function enqueue() {
 		wp_enqueue_script( 'farbtastic' );
 		wp_enqueue_style( 'farbtastic' );
 	}
 
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 		$this->json['statuses'] = $this->statuses;
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
 		?>
 		<label>
@@ -276,15 +390,33 @@
 	}
 }
 
+/**
+ * Customize Upload Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Upload_Control extends WP_Customize_Control {
 	public $type    = 'upload';
 	public $removed = '';
 	public $context;
 
+	/**
+	 * Enqueue control related scripts/styles.
+	 *
+	 * @since 3.4.0
+	 */
 	public function enqueue() {
 		wp_enqueue_script( 'wp-plupload' );
 	}
-
+	
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 
@@ -294,6 +426,11 @@
 			$this->json['context'] = $this->context;
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
 		?>
 		<label>
@@ -307,6 +444,13 @@
 	}
 }
 
+/**
+ * Customize Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
 	public $type = 'image';
 	public $get_url;
@@ -314,6 +458,18 @@
 
 	protected $tabs = array();
 
+	/**
+	 * Constructor.
+	 *
+	 * If $args['settings'] is not defined, use the $id as the setting ID.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Upload_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
+	 */
 	public function __construct( $manager, $id, $args ) {
 		$this->statuses = array( '' => __('No Image') );
 
@@ -323,11 +479,22 @@
 		$this->add_tab( 'uploaded',   __('Uploaded'),   array( $this, 'tab_uploaded' ) );
 	}
 
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Upload_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 		$this->json['statuses'] = $this->statuses;
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
 		$src = $this->value();
 		if ( isset( $this->get_url ) )
@@ -372,7 +539,16 @@
 		</div>
 		<?php
 	}
-
+	
+	/**
+	 * Add a tab to the control.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $id
+	 * @param string $label
+	 * @param mixed $callback
+	 */
 	public function add_tab( $id, $label, $callback ) {
 		$this->tabs[ $id ] = array(
 			'label'    => $label,
@@ -380,10 +556,20 @@
 		);
 	}
 
+	/**
+	 * Remove a tab from the control.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $id
+	 */
 	public function remove_tab( $id ) {
 		unset( $this->tabs[ $id ] );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_upload_new() {
 		if ( ! _device_can_upload() ) {
 			?>
@@ -400,13 +586,22 @@
 			<?php
 		}
 	}
-
+	
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		?>
 		<div class="uploaded-target"></div>
 		<?php
 	}
 
+	/**
+	 * @since 3.4.0
+	 *
+	 * @param string $url
+	 * @param string $thumbnail_url
+	 */
 	public function print_tab_image( $url, $thumbnail_url = null ) {
 		$url = set_url_scheme( $url );
 		$thumbnail_url = ( $thumbnail_url ) ? set_url_scheme( $thumbnail_url ) : $url;
@@ -418,7 +613,23 @@
 	}
 }
 
+/**
+ * Customize Background Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Background_Image_Control extends WP_Customize_Image_Control {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 */
 	public function __construct( $manager ) {
 		parent::__construct( $manager, 'background_image', array(
 			'label'    => __( 'Background Image' ),
@@ -431,6 +642,9 @@
 			$this->add_tab( 'default',  __('Default'),  array( $this, 'tab_default_background' ) );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		$backgrounds = get_posts( array(
 			'post_type'  => 'attachment',
@@ -448,13 +662,34 @@
 		foreach ( (array) $backgrounds as $background )
 			$this->print_tab_image( esc_url_raw( $background->guid ) );
 	}
-
+	
+	/**
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::print_tab_image()
+	 */
 	public function tab_default_background() {
 		$this->print_tab_image( $this->setting->default );
 	}
 }
 
+/**
+ * Customize Header Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::__construct()
+	 * @uses WP_Customize_Image_Control::add_tab()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 */
 	public function __construct( $manager ) {
 		parent::__construct( $manager, 'header_image', array(
 			'label'    => __( 'Header Image' ),
@@ -477,6 +712,12 @@
 		$this->add_tab( 'default',  __('Default'),  array( $this, 'tab_default_headers' ) );
 	}
 
+	/**
+	 * @since 3.4.0
+	 *
+	 * @param mixed $choice Which header image to select. (@see Custom_Image_Header::get_header_image() )
+	 * @param array $header
+	 */
 	public function print_header_image( $choice, $header ) {
 		$header['url']           = set_url_scheme( $header['url'] );
 		$header['thumbnail_url'] = set_url_scheme( $header['thumbnail_url'] );
@@ -496,7 +737,10 @@
 		</a>
 		<?php
 	}
-
+	
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		$headers = get_uploaded_header_images();
 
@@ -506,6 +750,9 @@
 			$this->print_header_image( $choice, $header );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_default_headers() {
 		global $custom_image_header;
 		$custom_image_header->process_default_headers();
