Writing good progress bars is hard. How do we split up the progress percentage between tasks? How do we keep the user updated with whats going on?
The Progress Bar API provides a framework for developing good progress bars that your users can actually depend on. It provides easy ways for your code to update the status as well feedback mechanisms to allow common operations like aborting.
The API is split into two main components: The Reader and the Writer. Abstracting these two pieces lets you easily separate your UI from your business logic. The UI is responsible for initiating the progress bar and the writer is responsible for updating the current state.
The reader classes initialize the progress bar API. It provides the progress consumer with helpful events and status of the progress bar. It contains all of the user events and interfaces to get information about the the current progress.
The writer is responsible for calculating the current progress bar percentage. This can be an awkward number to calculate. Often you have to break the percentage up into a few different sections and each section needs to be updated in a different way. This is what the writer classes enable you to do.
The progress is broken up into any number of weighted blocks. Blocks can be made up of concrete percentage calculations, or even be further divided into more blocks. Each block has the ability to update it's current progress, and the total process's progress bar is the weighted sum of all of it's blocks.
See Contributing.md for information on how to submit pull requests. Bugs can be reported using the repositories issue tracker.
Updated Readme and Relinked VIs
Initial Release
Copyright (c) 2018 Moore Good Ideas, Inc . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of Moore Good Ideas, Inc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES%3B LOSS OF USE, DATA, OR PROFITS%3B OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.