mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
Revise console interface
This commit is contained in:
parent
425ad7319b
commit
b72725742a
45
src/gopheros/device/video/console/device.go
Normal file
45
src/gopheros/device/video/console/device.go
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package console
|
||||||
|
|
||||||
|
import "image/color"
|
||||||
|
|
||||||
|
// ScrollDir defines a scroll direction.
|
||||||
|
type ScrollDir uint8
|
||||||
|
|
||||||
|
// The supported list of scroll directions for the console Scroll() calls.
|
||||||
|
const (
|
||||||
|
Up ScrollDir = iota
|
||||||
|
Down
|
||||||
|
)
|
||||||
|
|
||||||
|
// The Device interface is implemented by objects that can function as system
|
||||||
|
// consoles.
|
||||||
|
type Device interface {
|
||||||
|
// Dimensions returns the width and height of the console in characters.
|
||||||
|
Dimensions() (uint16, uint16)
|
||||||
|
|
||||||
|
// DefaultColors returns the default foreground and background colors
|
||||||
|
// used by this console.
|
||||||
|
DefaultColors() (fg, bg uint8)
|
||||||
|
|
||||||
|
// Fill sets the contents of the specified rectangular region to the
|
||||||
|
// requested color. Both x and y coordinates are 1-based (top-left
|
||||||
|
// corner has coordinates 1,1).
|
||||||
|
Fill(x, y, width, height uint16, fg, bg uint8)
|
||||||
|
|
||||||
|
// Scroll the console contents to the specified direction. The caller
|
||||||
|
// is responsible for updating (e.g. clear or replace) the contents of
|
||||||
|
// the region that was scrolled.
|
||||||
|
Scroll(dir ScrollDir, lines uint16)
|
||||||
|
|
||||||
|
// Write a char to the specified location. Both x and y coordinates are
|
||||||
|
// 1-based (top-left corner has coordinates 1,1).
|
||||||
|
Write(ch byte, fg, bg uint8, x, y uint16)
|
||||||
|
|
||||||
|
// Palette returns the active color palette for this console.
|
||||||
|
Palette() color.Palette
|
||||||
|
|
||||||
|
// SetPaletteColor updates the color definition for the specified
|
||||||
|
// palette index. Passing a color index greated than the number of
|
||||||
|
// supported colors should be a no-op.
|
||||||
|
SetPaletteColor(uint8, color.RGBA)
|
||||||
|
}
|
@ -1,48 +0,0 @@
|
|||||||
package console
|
|
||||||
|
|
||||||
// Attr defines a color attribute.
|
|
||||||
type Attr uint16
|
|
||||||
|
|
||||||
// The set of attributes that can be passed to Write().
|
|
||||||
const (
|
|
||||||
Black Attr = iota
|
|
||||||
Blue
|
|
||||||
Green
|
|
||||||
Cyan
|
|
||||||
Red
|
|
||||||
Magenta
|
|
||||||
Brown
|
|
||||||
LightGrey
|
|
||||||
Grey
|
|
||||||
LightBlue
|
|
||||||
LightGreen
|
|
||||||
LightCyan
|
|
||||||
LightRed
|
|
||||||
LightMagenta
|
|
||||||
LightBrown
|
|
||||||
White
|
|
||||||
)
|
|
||||||
|
|
||||||
// ScrollDir defines a scroll direction.
|
|
||||||
type ScrollDir uint8
|
|
||||||
|
|
||||||
// The supported list of scroll directions for the console Scroll() calls.
|
|
||||||
const (
|
|
||||||
Up ScrollDir = iota
|
|
||||||
Down
|
|
||||||
)
|
|
||||||
|
|
||||||
// The Console interface is implemented by objects that can function as physical consoles.
|
|
||||||
type Console interface {
|
|
||||||
// Dimensions returns the width and height of the console in characters.
|
|
||||||
Dimensions() (uint16, uint16)
|
|
||||||
|
|
||||||
// Clear clears the specified rectangular region
|
|
||||||
Clear(x, y, width, height uint16)
|
|
||||||
|
|
||||||
// Scroll a particular number of lines to the specified direction.
|
|
||||||
Scroll(dir ScrollDir, lines uint16)
|
|
||||||
|
|
||||||
// Write a char to the specified location.
|
|
||||||
Write(ch byte, attr Attr, x, y uint16)
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user