📄 tabset.js
字号:
// button. Applied as the width of buttons if the tabBar is horizontal, or the height // if tabBar is vertical. Note that the other dimension is determined by // +link{tabBarThickness,this.tabBarThickness} // @group tabBarControls // @visibility external //< pickerButtonSize:16, //> @attr tabSet.skinImgDir (string : "images/TabSet/" : [IR]) // @include Canvas.skinImgDir //< skinImgDir:"images/TabSet/", //> @attr tabSet.symmetricScroller (boolean : true : [IR]) // If this TabSet is showing +link{tabSet.showTabScroller,tab scroller buttons}, this property // determines whether the +link{tabSet.scrollerHSrc} and +link{tabSet.scrollerVSrc} media // will be used for vertical and horizontal tab-bar scroller buttons, or whether separate // media should be used for each possible +link{tabSet.tabBarPosition,tabBarPosition} based // on the +link{tabSet.scrollerSrc} property for this tabSet. // @group tabBarScrolling // @visibility external //< symmetricScroller:true, //> @attr tabSet.scrollerSrc (SCImgURL : "[SKIN]/scroll.gif" : [IR]) // If this TabSet is showing +link{tabSet.showTabScroller,tab scroller buttons}, and // +link{tabSet.symmetricScroller,symmetricScroller} is false, this property governs the base // URL for the tab bar back and forward scroller button images. // <P> // Note that if +link{tabSet.symmetricScroller,symmetricScroller} is true, // +link{tabSet.scrollerHSrc} and +link{tabSet.scrollerVSrc} will be used instead. // <P> // To get the path to the image to display, this base URL will be modified as follows: // <ul> // <li>If appropriate a state suffix of <code>"Down"</code> or <code>"Disabled"</code> will be // appended.</li> // <li>The +link{tabSet.tabBarPosition,tabBarPosition} for this tabSet will be appended.</li> // <li>A suffix of <code>"forward"</code> or <code>"back"</code> will be appended for the // forward or backward scrolling button.</li> // </ul> // For example - if the scrollerSrc is set to <code>"[SKIN]scroll.gif"</code>, the image // displayed for the back-scroller button on a tabSet with <code>tabBarPosition</code> set to // "top" and <code>symmetricScroller</code> set to false would be one of // <code>"[SKIN]scroll_top_back.gif"</code>, <code>"[SKIN]scroll_Down_top_back.gif"</code>, // and <code>"[SKIN]scroll_Disabled_top_back.gif"</code>. // <P> // Note that for best results the media should be sized to match the scroller button sizes, // determined by +link{tabSet.tabBarThickness} and +link{tabSet.scrollerButtonSize}. // @see tabSet.symmetricScroller // @group tabBarScrolling // @visibility external //< scrollerSrc:"[SKIN]/scroll.gif", //> @attr tabSet.scrollerHSrc (SCImgURL :"[SKIN]hscroll.gif" : [IR]) // If this TabSet is showing +link{tabSet.showTabScroller,tab scroller buttons}, and // +link{tabSet.symmetricScroller,symmetricScroller} is true, this property governs the base // URL for the tab bar back and forward scroller button images for horizontal tab bars [IE for // tab sets with +link{tabSet.tabBarPosition,tabBarPosition} set to "top" or "bottom"]. // <P> // Note that if +link{tabSet.symmetricScroller,symmetricScroller} is false, // +link{tabSet.scrollerSrc} will be used instead. // <P> // To get the path to the image to display, this base URL will be modified as follows: // <ul> // <li>If appropriate a state suffix of <code>"Down"</code> or <code>"Disabled"</code> will be // appended.</li> // <li>A suffix of <code>"forward"</code> or <code>"back"</code> will be appended for the // forward or backward scrolling button.</li> // </ul> // For example - if the scrollerHSrc is set to <code>"[SKIN]hscroll.gif"</code>, the image // displayed for the back-scroller button on a tabSet with <code>tabBarPosition</code> set to // "top" and <code>symmetricScroller</code> set to true would be one of // <code>"[SKIN]hscroll_back.gif"</code>, <code>"[SKIN]hscroll_Down_back.gif"</code>, // and <code>"[SKIN]hscroll_Disabled_back.gif"</code>. // <P> // Note that for best results the media should be sized to match the scroller button sizes, // determined by +link{tabSet.tabBarThickness} and +link{tabSet.scrollerButtonSize}. // @see tabSet.symmetricScroller // @group tabBarScrolling // @visibility external //< scrollerHSrc:"[SKIN]hscroll.gif", //> @attr tabSet.scrollerVSrc (SCImgURL :"[SKIN]vscroll.gif" : [IR]) // If this TabSet is showing +link{tabSet.showTabScroller,tab scroller buttons}, and // +link{tabSet.symmetricScroller,symmetricScroller} is true, this property governs the base // URL for the tab bar back and forward scroller button images for vertical tab bars [IE for // tab sets with +link{tabSet.tabBarPosition,tabBarPosition} set to "left" or "right"]. // <P> // Note that if +link{tabSet.symmetricScroller,symmetricScroller} is false, // +link{tabSet.scrollerSrc} will be used instead. // <P> // To get the path to the image to display, this base URL will be modified as follows: // <ul> // <li>If appropriate a state suffix of <code>"Down"</code> or <code>"Disabled"</code> will be // appended.</li> // <li>A suffix of <code>"forward"</code> or <code>"back"</code> will be appended for the // forward or backward scrolling button.</li> // </ul> // For example - if the scrollerVSrc is set to <code>"[SKIN]vscroll.gif"</code>, the image // displayed for the back-scroller button on a tabSet with <code>tabBarPosition</code> set to // "left" and <code>symmetricScroller</code> set to true would be one of // <code>"[SKIN]vscroll_back.gif"</code>, <code>"[SKIN]vscroll_Down_back.gif"</code>, // and <code>"[SKIN]vscroll_Disabled_back.gif"</code>. // <P> // Note that for best results the media should be sized to match the scroller button sizes, // determined by +link{tabSet.tabBarThickness} and +link{tabSet.scrollerButtonSize}. // @see tabSet.symmetricScroller // @group tabBarScrolling // @visibility external //< scrollerVSrc:"[SKIN]vscroll.gif", //> @attr tabSet.symmetricPickerButton (boolean : true : [IR]) // If this TabSet is showing a +link{tabSet.showTabPicker,tab picker button}, this // property determines whether the +link{tabSet.pickerButtonHSrc} and // +link{tabSet.pickerButtonVSrc} media will be used for vertical and horizontal tab-bar // picker buttons, or whether separate media should be used for each possible // +link{tabSet.tabBarPosition,tabBarPosition} based on the +link{tabSet.pickerButtonSrc} // property for this tabSet. // @group tabBarScrolling // @visibility external //< symmetricPickerButton:true, //> @attr tabSet.pickerButtonSrc (SCImgURL : "[SKIN]/picker.gif" : [IR]) // If +link{tabSet.showTabPicker} is true, this property governs the base URL for the picker // button image, when +link{tabSet.symmetricPickerButton} is set to false // <P> // Note that if <code>symmetricPickerButton</code> is true, the +link{tabSet.pickerButtonHSrc} // and +link{tabSet.pickerButtonVSrc} properties will be used instead. // <P> // To get the path to the image to display, this base URL will be modified as follows: // <ul> // <li>If appropriate a state suffix of <code>"Down"</code> or <code>"Disabled"</code> will be // appended.</li> // <li>The +link{tabSet.tabBarPosition,tabBarPosition} for this tabSet will be appended.</li> // </ul> // @see tabSet.symmetricPickerButton // @group tabBarScrolling // @visibility external //< pickerButtonSrc:"[SKIN]/picker.gif", //> @attr tabSet.pickerButtonHSrc (SCImgURL : "[SKIN]hpicker.gif" : [IR]) // If +link{tabSet.showTabPicker} is true, and +link{tabSet.symmetricPickerButton} is // set to true, this property governs the base URL for the picker // button image, when displayed in a horizontal tab-bar [IE +link{tabSet.tabBarPosition} is // set to <code>"top"</code> or <code>"bottom"</code>]. // <P> // Note that if <code>symmetricPickerButton</code> is false, the +link{tabSet.pickerButtonSrc} // property will be used instead. // <P> // This base URL will have a suffix of <code>"Down"</code> appended when the user holds the // mouse down over the button, and <code>"Disabled"</code> if the tabset as a whole is // disabled. // @see tabSet.symmetricPickerButton // @group tabBarScrolling // @visibility external //< pickerButtonHSrc:"[SKIN]hpicker.gif", //> @attr tabSet.pickerButtonVSrc (SCImgURL : "[SKIN]vpicker.gif" : [IR]) // If +link{tabSet.showTabPicker} is true, and +link{tabSet.symmetricPickerButton} is // set to true, this property governs the base URL for the picker // button image, when displayed in a verricaL tab-bar [IE +link{tabSet.tabBarPosition} is // set to <code>"LEFT"</code> or <code>"right"</code>]. // <P> // Note that if <code>symmetricPickerButton</code> is false, the +link{tabSet.pickerButtonSrc} // property will be used instead. // <P> // This base URL will have a suffix of <code>"Down"</code> appended when the user holds the // mouse down over the button, and <code>"Disabled"</code> if the tabset as a whole is // disabled. // @see tabSet.symmetricPickerButton // @group tabBarScrolling // @visibility external //< pickerButtonVSrc:"[SKIN]vpicker.gif", // PaneContainer // ---------------------------------------------------------------------------------------- //> @attr tabSet.paneContainer (AutoChild : null : R) // Container where the component specified by +link{tab.pane} is shown. // <P> // Note: paneContainer and showEdges:true for rounded tabsets: you can enable decorative // image-based edges on the paneContainer by setting +link{Canvas.showEdges,showEdges:true} // via paneContainerDefaults (to skin all tabsets) or paneContainerProperties (to use // edges on one instance). In this structure, the +link{group:baseLine} should use media // that matches the appearance of the decorative edges and fully overlaps the edge of the // paneContainer that it is adjacent to. In the most typical appearance (symmetric edges // on all 4 sides), both +link{tabBar.baseLineCapSize} and +link{tabBar.baseLineThickness} // match the +link{canvas.edgeSize,edgeSize} set on the paneContainer. See the // load_skin.js file for the "SmartClient" skin for an example of setting all relevant // properties. // <P> // To disable edges for a particular TabSet, which you may want to do for a TabSet that // is already within a clearly defined container, configure the paneContainer to show only // it's top edge: // <pre> // paneContainerProperties : { customEdges:["T"] }, // </pre> // To completely flatten even the top edge of the TabSet: // <pre> // paneContainerProperties : { customEdges:["T"] }, // tabBarProperties :{ baseLineCapSize:0 }, // </pre> // This "flattens" the baseLine so that only the center image is used. // // @visibility external //< // XXX: advice above suboptimal: // - in general, the StretchImg baseline is using different media names for the same media. // Could be fixed by passing custom sib.items to the baseline // - when we "flatten" as above, the paneContainer is still rendering a top edge and still // using 3 pieces of media, it's just occluded by the baseline. Ideally, we'd turn the // edges off entirely, but by default this would cause the baseline to actually overlap // widgets show in the paneContainer, so a margin would need to be set in CSS to // compensate - more complicated to explain paneContainerConstructor:"PaneContainer", //> @attr tabSet.paneContainerClassName (CSSStyleName : null : IRW) // CSS style used for the paneContainer. // @visibility external //< paneContainerClassName:"tabSetContainer", //> @attr tabSet.paneContainerOverflow (Overflow : isc.Canvas.AUTO : IRWA) // Specifies the overflow of the pane container (the component that holds the pane contents // for all tabs). By default this is set to "auto", meaning the pane container will // automatically introduce scrolling when the pane contents exceed the TabSet's specified // size. // <p> // For other values and their meaning, see +link{Overflow} // // @visibility external //< paneContainerOverflow:isc.Canvas.AUTO, //> @attr tabSet.symmetricEdges (boolean : true : IR) // If this tabSet will +link{tabSet.showPaneContainerEdges,show edges} for the paneContainer, // this property determines whether the same edge media will be used regardless of the tab // bar position, or whether different media should be used (necessary if the edge appearance is // not symmetrical on all sides). // <P> // If this property is set to false the paneContainer edge image URLs will be prefixed with // the tabBarPosition of the tabSet - for example <code>"[SKIN]edge_top_T.gif"</code> rather // than just <code>"[SKIN]edge_T.gif"</code>. // <P> // When <code>symmetricEdges</code> is false, custom edge sizes for the pane container may be // specified via +link{tabSet.topEdgeSizes} et al, and custom edge offsets via // +link{tabSet.topEdgeOffsets} et al. // @visibility external //< symmetricEdges:true //> @type EdgeSizes // Object used to specify custom edge sizes or offsets. // Specified as an object where <code>defaultSize</code> will map to the default edge size or // offset for the canvsa (+link{canvas.edgeSize}, or +link{canvas.edgeOffset} and // <code>top</code>, <code>left</code>, <code>right</code> and // <code>bottom</code> will map to the // +link{edgedCanvas.edgeTop,edgeTop}/+link{edgedCanvas.edgeOffsetTop,edgeOffsetTop}, // +link{edgedCanvas.edgeLeft,edgeLeft}/+link{edgedCanvas.edgeOffsetLeft,edgeOffsetLeft}, // +link{edgedCanvas.edgeRight,edgeRight}/+link{edgedCanvas.edgeOffsetRight,edgeOffsetRight}, // and +link{edgedCanvas.edgeBottom,edgeBottom}/+link{edgedCanvas.edgeOffsetBottom,edgeOffsetBottom} // attributes on the paneContainer respectively. Note that not all these properties have to be // set - if unset standard edge sizing rules will apply. // @visibility external //< //> @attr tabSet.leftEdgeSizes (EdgeSizes : null : IR) // If this tabSet will +link{tabSet.showPaneContainerEdges,show edges} for the paneContainer, // and +link{tabSet.symmetricEdges} is set to false, the <code>leftEdgeSizes</code>, // <code>rightEdgeSizes</code>, <code>topEdgeSizes</code> and <code>bottomEdgeSizes</code> // propertes allow the sizes of edges for the paneContainer to be customized depending on // the +link{tabSet.tabBarPosition}. // <P> // The attribute should be specified an +link{type:EdgeSizes,edgeSizes map}, specifying the // desired edge sizes where for the appropriate +link{tabSet.tabBarPosition}. // @visibility external //< //> @attr tabSet.topEdgeSizes (EdgeSizes : null : IR) // @include tabSet.leftEdgeSizes // @visibility external //< //> @attr tabSet.bottomEdgeSizes (EdgeSizes : null : IR) // @include tabSet.leftEdgeSizes // @visibility external //< //> @attr tabSet.rightEdgeSizes (EdgeSizes : null : IR) // @include tabSet.leftEdgeSizes // @visibility external //< //> @attr tabSet.leftEdgeOffsets (EdgeSizes : null : IR) // If this tabSet will +link{tabSet.showPaneContainerEdges,show edges} for the paneContainer, // and +link{tabSet.symmetricEdges} is set to false, the <code>leftEdgeOffsets</code>, // <code>rightEdgeOffsets</code>, <code>topEdgeOffsets</code> and <code>bottomEdgeOffsets</code> // propertes allow the offsets of edges for the paneContainer to be customized depending on // the +link{tabSet.tabBarPosition}. // <P> // The attribute should be specified an +link{type:EdgeSizes,edgeSizes map}, specifying the // desired edge offsets where for the appropriate +link{tabSet.tabBarPosition}. // @visibility external //< //> @attr tabSet.rightEdgeOffsets (EdgeSizes : null : IR) // @include tabSet.leftEdgeOffsets // @visibility external //< //> @attr tabSet.topEdgeOffsets (EdgeSizes : null : IR) // @include tabSet.leftEdgeOffsets
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -