ginebra2/DualButtonToolbarSnippet.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 06 Jul 2010 14:03:49 +0300
changeset 6 1c3b8676e58c
parent 5 0f2326c2a325
permissions -rw-r--r--
Revision: 201026 Kit: 2010127

/*
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, version 2.1 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not,
 * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
 *
 * Description:
 * This class extends ToolbarSnippet class to hold the
 * windows view toolbar buttons
 *
 */

#include "DualButtonToolbarSnippet.h"
#include "ViewStack.h"
#include <QDebug>

namespace GVA {

    DualButtonToolbarSnippet::DualButtonToolbarSnippet(const QString& elementId, ChromeWidget * chrome,
                                                       const QWebElement & element)
        : ToolbarSnippet(elementId, chrome, element)
    {      
        m_type = "";
    }

    DualButtonToolbarSnippet::~DualButtonToolbarSnippet()
    {
    }

    /*! 
      Update the item spacing based on the new size
    */
    void DualButtonToolbarSnippet::updateSize(QSize size) {
        setChildSpacing(size.width());
        ToolbarSnippet::updateSize(size);
    }

    /*! 
      Update the item spacing based on the chrome width
    */
    void DualButtonToolbarSnippet::updateOwnerArea() {
      setChildSpacing(m_chrome->layout()->size().width());
        ToolbarSnippet::updateOwnerArea();
    }

    void DualButtonToolbarSnippet::setChildSpacing(int width) {
        QGraphicsLinearLayout* l = layout();

        // If all the buttons have been added, set the spacing for the last button
        if (l->count() == DUAL_TOOLBAR_NUM_BUTTONS ) {
            int spacing = width - l->itemAt(0)->geometry().width() -  l->itemAt(l->count()-1)->geometry().width();
            l->setItemSpacing(l->count()-1, spacing);
        }
        ToolbarSnippet::updateOwnerArea();
    }

} // end of namespace GVA