// ========================================================================== // Project: SproutCore - JavaScript Application Framework // Copyright: ©2006-2011 Strobe Inc. and contributors. // Portions ©2008-2011 Apple Inc. All rights reserved. // License: Licensed under MIT license (see license.js) // ========================================================================== /** Renders and updates the HTML representation of a segment child view within SC.SegmentedView. */ SC.BaseTheme.segmentRenderDelegate = SC.RenderDelegate.create({ className: 'segment', render: function (dataSource, context) { var theme = dataSource.get('theme'), buttonDelegate, classes; // Segment specific additions classes = { 'sc-first-segment': dataSource.get('isFirstSegment'), 'sc-middle-segment': dataSource.get('isMiddleSegment'), 'sc-last-segment': dataSource.get('isLastSegment'), 'sc-overflow-segment': dataSource.get('isOverflowSegment'), 'vertical': dataSource.get('layoutDirection') !== SC.LAYOUT_HORIZONTAL }; if (!SC.none(dataSource.get('index'))) classes['sc-segment-' + dataSource.get('index')] = YES; context.setClass(classes); // Use the SC.ButtonView render delegate for the current theme to render the segment as a button buttonDelegate = theme.buttonRenderDelegate; buttonDelegate.render(dataSource, context); }, update: function (dataSource, jquery) { var theme = dataSource.get('theme'), buttonDelegate, classes = {}; // Segment specific additions classes = { 'sc-first-segment': dataSource.get('isFirstSegment'), 'sc-middle-segment': dataSource.get('isMiddleSegment'), 'sc-last-segment': dataSource.get('isLastSegment'), 'sc-overflow-segment': dataSource.get('isOverflowSegment') || NO, 'vertical': dataSource.get('layoutDirection') !== SC.LAYOUT_HORIZONTAL }; if (!SC.none(dataSource.get('index'))) classes['sc-segment-' + dataSource.get('index')] = YES; jquery.setClass(classes); // Use the SC.ButtonView render delegate for the current theme to update the segment as a button buttonDelegate = theme.buttonRenderDelegate; buttonDelegate.update(dataSource, jquery); } });