Added Area.Repaint() and implemented it on GTK+. Untested as of yet.
This commit is contained in:
parent
c9f8955758
commit
5ddef41133
|
@ -37,6 +37,11 @@ type Area interface {
|
|||
// It panics if width or height is zero or negative.
|
||||
SetSize(width int, height int)
|
||||
|
||||
// Repaint marks the given rectangle of the Area as needing to be redrawn.
|
||||
// The given rectangle is clipped to the Area's size.
|
||||
// If, after clipping, the rectangle is empty, Repaint does nothing.
|
||||
Repaint(r image.Rectangle)
|
||||
|
||||
// RepaintAll marks the entirety of the Area as needing to be redrawn.
|
||||
RepaintAll()
|
||||
}
|
||||
|
|
|
@ -70,6 +70,14 @@ func (a *area) SetSize(width, height int) {
|
|||
C.gtk_widget_set_size_request(a._widget, C.gint(a.width), C.gint(a.height))
|
||||
}
|
||||
|
||||
func (a *area) Repaint(r image.Rectangle) {
|
||||
r = image.Rect(0, 0, a.width, a.height).Intersect(r)
|
||||
if r.Empty() {
|
||||
return
|
||||
}
|
||||
C.gtk_widget_queue_draw_area(a._widget, C.gint(r.Min.X), C.gint(r.Max.Y), C.gint(r.Dx()), C.gint(r.Dy()))
|
||||
}
|
||||
|
||||
func (a *area) RepaintAll() {
|
||||
C.gtk_widget_queue_draw(a._widget)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue