//----------------------------------------------------------------------------
//  Copyright (C) 2008 The IPython Development Team
//
//  Distributed under the terms of the BSD License.  The full license is in
//  the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------

//============================================================================
// ToolBar
//============================================================================

var IPython = (function (IPython) {

    var ToolBar = function (selector) {
        this.selector = selector;
        if (this.selector !== undefined) {
            this.element = $(selector);
            this.style();
        }
    };

    // add a group of button into the current toolbar.
    //
    // First argument : Mandatory
    //      list of dict as argument, each dict should contain
    //      3 mandatory keys and values :
    //      label : string -- the text to show on hover
    //      icon  : string -- the jQuery-ui icon to add on this button
    //      callback : function -- the callback to execute on a click
    //
    //      and optionally an 'id' key that is assigned to the button element
    //
    // Second Argument, optional,
    //      string reprensenting the id to give to the button group.
    //
    // Example
    //
    // IPython.toolbar.add_button_group([
    //  {label:'my button',
    //   icon:'ui-icon-disk',
    //   callback:function(){alert('hoho'),
    //   id : 'my_button_id',                 // this is optional
    //   }
    //  },
    //  {label:'my second button',
    //   icon:'ui-icon-scissors',
    //   callback:function(){alert('be carefull I cut')}
    //  }
    //  ],
    //  "my_button_group_id"
    //  )
    //
    ToolBar.prototype.add_buttons_group = function (list, group_id) {
        var span_group = $('<span/>');
        if( group_id != undefined ) {
            span_group.attr('id',group_id);
        }
        for(var el in list) {
            var button  = $('<button/>').button({
                icons : {primary : list[el].icon},
                text  : false,
                label : list[el].label
                });
            var id = list[el].id;
            if( id != undefined )
                button.attr('id',id);
            var fun = list[el].callback;
            button.click(fun);
            span_group.append(button);
        }
        span_group.buttonset();
        $(this.selector).append(span_group);
    };

    ToolBar.prototype.style = function () {
        this.element.addClass('border-box-sizing').
            addClass('ui-widget ui-widget-content toolbar').
            css('border-top-style','none').
            css('border-left-style','none').
            css('border-right-style','none');
    };


    ToolBar.prototype.toggle = function () {
        this.element.toggle();
        if (IPython.layout_manager != undefined) {
            IPython.layout_manager.do_resize();
        }
    };


    IPython.ToolBar = ToolBar;

    return IPython;

}(IPython));