A simple yet powerful library for controlling graphical displays. Multiple display controllers are supported using inheritance.

Dependents:   mbed_rifletool Hexi_Bubble_Game Hexi_Catch-the-dot_Game Hexi_Acceleromagnetic_Synth

NOTE: This library is in beta right now. As far as I know, everything here works, but there are many features that are lacking so far. Most notably containers, button handling, and display drivers other than the SSD1306.

Controls/ProgressBar.cpp

Committer:
neilt6
Date:
2014-05-27
Revision:
3:a8f72d4864e6
Parent:
2:bbfc18022ee5

File content as of revision 3:a8f72d4864e6:

/* NeatGUI Library
 * Copyright (c) 2014 Neil Thiessen
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "ProgressBar.h"

ProgressBar::ProgressBar(int x, int y, int w, int h, Font *fnt) : Control(x, y, w, h)
{
    m_Value = 0.0;
    text(NULL);
    font(fnt);
    border(1);
    padding(1);
    foreColor(0xFFFFFFFF);
    backColor(0xFF000000);
}

float ProgressBar::value()
{
    //Return the current value
    return m_Value;
}

void ProgressBar::value(float v)
{
    //Update the value with range-limiting
    if (v < 0)
        m_Value = 0;
    else if (v > 100)
        m_Value = 100;
    else
        m_Value = v;

    //Force a repaint
    invalidate();
}

void ProgressBar::paint(Canvas* canvas)
{
    //Paint the base class
    Control::paint(canvas);

    //Draw the progress bar
    canvas->fillRect(contentPosX(), contentPosY(), contentWidth() * m_Value, contentHeight(), foreColor());
}