3 * This software is licensed under the MIT licence (as defined by the OSI at
4 * http://www.opensource.org/licenses/mit-license.php)
6 * ***************************************************************************
7 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
8 * Copyright (c) 2011 by Intel Corporation Ltd.
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and associated documentation files (the "Software"),
12 * to deal in the Software without restriction, including without limitation
13 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 * and/or sell copies of the Software, and to permit persons to whom the
15 * Software is furnished to do so, subject to the following conditions:
17 * The above copyright notice and this permission notice shall be included in
18 * all copies or substantial portions of the Software.
20 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26 * DEALINGS IN THE SOFTWARE.
27 * ***************************************************************************
30 ( function ($, undefined) {
32 $.widget( "tizen.triangle", $.tizen.widgetex, {
38 initSelector: ":jqmData(role='triangle')"
41 _create: function () {
42 var triangle = $( "<div></div>", {"class" : "ui-triangle"} );
48 this.element.addClass( "ui-triangle-container" ).append( triangle );
52 var location = ( this.options.location || "top" ),
53 offsetCoord = ( ($.inArray(location, ["top", "bottom"]) === -1) ? "top" : "left"),
55 "border-bottom-color" : "top" === location ? this.options.color : "transparent",
56 "border-top-color" : "bottom" === location ? this.options.color : "transparent",
57 "border-left-color" : "right" === location ? this.options.color : "transparent",
58 "border-right-color" : "left" === location ? this.options.color : "transparent"
61 cssArg[offsetCoord] = this.options.offset;
63 this._triangle.removeAttr( "style" ).css( cssArg );
66 _setOffset: function ( value ) {
67 this.options.offset = value;
68 this.element.attr( "data-" + ($.mobile.ns || "") + "offset", value );
72 _setExtraClass: function ( value ) {
73 this._triangle.addClass( value );
74 this.options.extraClass = value;
75 this.element.attr( "data-" + ($.mobile.ns || "") + "extra-class", value );
78 _setColor: function ( value ) {
79 this.options.color = value;
80 this.element.attr( "data-" + ($.mobile.ns || "") + "color", value );
84 _setLocation: function ( value ) {
86 .removeClass( "ui-triangle-container-" + this.options.location )
87 .addClass( "ui-triangle-container-" + value );
89 .removeClass( "ui-triangle-" + this.options.location )
90 .addClass( "ui-triangle-" + value );
92 this.options.location = value;
93 this.element.attr( "data-" + ($.mobile.ns || "") + "location", value );
99 $( document ).bind( "pagecreate create", function ( e ) {
100 $($.tizen.triangle.prototype.options.initSelector, e.target)
101 .not(":jqmData(role='none'), :jqmData(role='nojs')")