// Copyright (C) 1997-2004 Alias Systems Corp.
// 
// The information in this file is provided for the exclusive use of the
// licensees of Alias.  Such users have the right to use, modify,
// and incorporate this code into other products for purposes authorized
// by the Alias license agreement, without fee.
// 
// ALIAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
// EVENT SHALL ALIAS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.

// Description:  This procedure is called to create a new bin.
//
global proc string hyperShadeCreateNewBin(
    string $gridLayout, string $suggestedBinName)
{
    // Make up a default bin name.
    //
    string $binName;
    int $index = 0;
    if ($suggestedBinName == "")
    {
        $suggestedBinName = "untitled bin";
    }
    while (true)
    {
        // Make up an bin name.
        //
        $binName = $suggestedBinName; 
    
        if ($index != 0)
        {
            $binName = $binName + " " +$index;
        }

        // Check if this name exists.
        //
        if (!binNameExistsInHyperShadeBinList($binName))
        {
            // This make up name is a unique bin name.  Use it.
            //
            break;
        }
        $index++;
    }

    // Add the bin button to the UI.
    //
    addNewBinUI($binName, $gridLayout, false);

    // Add the new bin in the bin list.
    //
    addBinsToHyperShadeBinList({$binName});

    return $binName;
}
