0.0.1 • Published 3 years ago

electron-progress v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

npm

electron-progress

This project is inspired by electron-progressbar

electron-progress provides an easy-to-use and highly customizable API to show and control progress bars on Electron applications.

You can customize the aspects of the windows (electron's BrowserWindow), progress bars' visual aspects (CSS), texts and also all visible information.

For more smooth animation we use the way of the React Scheduler to schedule task.


Table of Contents

Installation

Install with npm:

$ npm i electron-progress

API

Methods

new ProgressBar(options, [electronApp])

Create a new progress bar. Because electron's BrowserWindow is used to display the progress bar and it only works after electron's "ready" event, you have wait for the "ready" event before creating a progress bar; optionally, you can just pass electron's app as a second parameter (electronApp).

ParamTypeDefaultDescription
optionsobjectelectron-progressbar options
options.abortOnErrorbooleanfalseWhether progress bar should abort and close if an error occurs internally.
options.initialValuenumber0Progress bar's initial value. Used only for determinate progress bar.
options.maxValuenumber100Progress bar's maximum value. When progress bar's value reaches this number, it will be set to completed and event complete will be fired. Used only for determinate progress bar.
options.closeOnCompletebooleantrueWhether progress bar window should be automatically closed after completed. If false, the progress bar must be manually closed by calling its close method.
options.titlestring'Wait...'Text shown on title bar.
options.textstring'Wait...'Text shown inside the window and below the progress bar.
options.detailstringText shown between text and the progress bar element. Can be used to display detailed information, e.g., the current step of a task. Usually setting this property later is more useful because your application can determine and display, in real time, what is currently happening.
options.styleStrobjectVisual styles for elements: text, detail, bar and value. All elements properties are purely CSS, just the way it is used in a CSS file.
options.centerHtmlStrstringuse the html string to change the view of the center of the circle progress
options.extraScriptstringextra script run in the progress's window
options.strokeWidthnumber100width of progress bar. unit is 'px'
options.strokeColorstring#236EFFcolor of progress bar.
options.strokeLinecap'round', 'square' 'round'the style of the end of progress bar.
options.gapDegreenumber0the value of the gap of progress bar.
options.gapPosition'top', 'bottom', 'left', 'right''bottom'width of progress bar.
options.trailColorobject#f3f3f3width of progress bar.
options.remoteWindowinstance of BrowserWindownullThe BrowserWindow to use for the progress bar. When null/empty, a new BrowserWindow will be created. By default, a new BrowserWindow is created, unless this option is specified.
options.browserWindowobjectElectron's BrowserWindow options. Although only a few options are set by default, you can specify any of Electron's BrowserWindow options.
options.browserWindow.parentinstance of BrowserWindownullA BrowserWindow instance. If informed, the progress bar window will always show on top of the parent window and will block it so user can't interact with it until the progress bar is completed/aborted and closed.
options.browserWindow.modalbooleantrueWhether this is a modal window. This actually only works if progress bar window is a child window, i.e., when its parent is informed.
options.browserWindow.resizablebooleanfalseWhether window is resizable.
options.browserWindow.closablebooleanfalseWhether window is closable.
options.browserWindow.minimizablebooleanfalseWhether window is minimizable.
options.browserWindow.maximizablebooleanfalseWhether window is maximizable.
options.browserWindow.widthnumber450Progress bar window's width in pixels.
options.browserWindow.heightnumber175Progress bar window's height in pixels.
options.browserWindow.webPreferences.nodeIntegrationbooleantrueWhether node integration is enabled.

getOptions()object

Return a copy of all current options.


on(eventName, listener)reference to this

Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added and called multiple times.

Returns a reference to this so that calls can be chained.

Events

Event nameReceives parameterDescription
readyFired when progress bar is created and ready to be used and controlled.
progressvalueAvailable only for determinate progress bar. Fired every time the progress bar's value is changed. The listener receives, as first parameter, the current progress bar's value.
completedvalueFired when progress bar is completed, i.e., its value reaches maxValue or method complete is called. The listener receives, as first parameter, the current progress bar's value.
abortedvalueFired if progress bar is closed when it's not completed yet, i.e., when user closes progress bar window or method close is called before progress bar is completed. The listener receives, as first parameter, the current progress bar's value.

setCompleted()

Set progress bar as complete. This means the whole task is finished.


close()

Close progress bar window. If progress bar is not completed yet, it'll be aborted and event aborted will be fired.


isInProgress()boolean

Return true if progress bar is currently in progress, i.e., it hasn't been completed nor aborted yet, otherwise false.


isCompleted()boolean

Return true if progress bar is completed, otherwise false.


Properties

valuenumber

Get or set progress bar's value. Only available for determinate progress bar.


textstring

Get or set the text. This information is shown inside the window and above the progress bar.


detailstring

Get or set the detail. This information is shown between text and the progress bar element. Useful to display any detailed information, e.g., the current status in real time or the current step of the task.


Changelog

Changelog

License

MIT. See LICENSE.md for details.