42 lines
1.1 KiB
Go
42 lines
1.1 KiB
Go
|
package widget
|
||
|
|
||
|
// This is how grids are handled. On the application side,
|
||
|
// things are mostly handled this way. Web browsers, etc
|
||
|
//
|
||
|
// On the toolkit side, this must be translated into the display
|
||
|
// code. This is particularly complicated with ncurses but once
|
||
|
// done in the toolkits, bears fruit in the application code simplicity
|
||
|
|
||
|
// NOTE: X numbers horizontally, Y is numbered down. Like in mathematics, EXCEPT Y IS DOWN
|
||
|
// this is the only sensible way. It's way too confusing to use negative numbers for Y.
|
||
|
// This is an attempt to make it simple for people to program against this code,
|
||
|
// then we hide these implementation details in the toolkit plugins
|
||
|
|
||
|
// Grid numbering examples (H) or (W,H)
|
||
|
// -----------------------
|
||
|
// -- (1) -- (2) -- (3) -- (X)
|
||
|
// -----------------------
|
||
|
//
|
||
|
// (Y)
|
||
|
// ---------
|
||
|
// -- (1) --
|
||
|
// -- (2) --
|
||
|
// ---------
|
||
|
//
|
||
|
// (X,Y)
|
||
|
// --------------------------------------
|
||
|
// -- (1,1) -- (2,1) -- (3,1) -- (4,1) --
|
||
|
// -- (1,2) -- (2,2) -- (3,2) -- --
|
||
|
// -- (1,3) -- -- (3,3) -- (4,3) --
|
||
|
// --------------------------------------
|
||
|
|
||
|
type GridSize struct {
|
||
|
Width int
|
||
|
Height int
|
||
|
}
|
||
|
|
||
|
type GridOffset struct {
|
||
|
X int
|
||
|
Y int
|
||
|
}
|