summaryrefslogtreecommitdiff
path: root/progressbar.go
diff options
context:
space:
mode:
Diffstat (limited to 'progressbar.go')
-rw-r--r--progressbar.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/progressbar.go b/progressbar.go
new file mode 100644
index 0000000..f58976f
--- /dev/null
+++ b/progressbar.go
@@ -0,0 +1,39 @@
+// 12 december 2015
+
+package ui
+
+import (
+ "unsafe"
+)
+
+// #include "ui.h"
+import "C"
+
+// ProgressBar is a Control that represents a horizontal bar that
+// is filled in progressively over time as a process completes.
+type ProgressBar struct {
+ ControlBase
+ p *C.uiProgressBar
+}
+
+// NewProgressBar creates a new ProgressBar.
+func NewProgressBar() *ProgressBar {
+ p := new(ProgressBar)
+
+ p.p = C.uiNewProgressBar()
+
+ p.ControlBase = NewControlBase(p, uintptr(unsafe.Pointer(p.p)))
+ return p
+}
+
+// Value returns the value currently shown in the ProgressBar.
+func (p *ProgressBar) Value() int {
+ return int(C.uiProgressBarValue(p.p))
+}
+
+// SetValue sets the ProgressBar's currently displayed percentage
+// to value. value must be between 0 and 100 inclusive, or -1 for
+// an indeterminate progressbar.
+func (p *ProgressBar) SetValue(value int) {
+ C.uiProgressBarSetValue(p.p, C.int(value))
+}