diff options
| author | Pietro Gagliardi <[email protected]> | 2015-12-16 14:03:47 -0500 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2015-12-16 14:03:47 -0500 |
| commit | e67ed84ad93b128cd4afe58b012b0e3889a34b66 (patch) | |
| tree | 849e8f63fb22bfd9ec1c4411defc45bc7adb6c4e | |
| parent | a6c0fbdb870f6a5fb48824ebeac03360be601f57 (diff) | |
Did some build fixes.
| -rw-r--r-- | area.go | 14 | ||||
| -rw-r--r-- | areahandler.go | 3 | ||||
| -rw-r--r-- | draw.go | 27 |
3 files changed, 40 insertions, 4 deletions
@@ -0,0 +1,14 @@ +// 16 december 2015 + +package ui + +// #include "ui.h" +import "C" + +// no need to lock this; only the GUI thread can access it +var areas = make(map[*C.uiArea]*Area) + +// TODO. +type Area struct { + Control +} diff --git a/areahandler.go b/areahandler.go index 0daa5b5..5cd7987 100644 --- a/areahandler.go +++ b/areahandler.go @@ -2,6 +2,7 @@ package ui +// #include <stdlib.h> // #include "ui.h" // extern void doAreaHandlerDraw(uiAreaHandler *, uiArea *, uiAreaDrawParams *); // static inline uiAreaHandler *allocAreaHandler(void) @@ -55,7 +56,7 @@ type AreaDrawParams struct { VScrollPos int } -// export doAreaHandlerDraw +//export doAreaHandlerDraw func doAreaHandlerDraw(uah *C.uiAreaHandler, ua *C.uiArea, udp *C.uiAreaDrawParams) { ah := areahandlers[uah] a := areas[ua] @@ -32,14 +32,35 @@ import "C" // dp.Context.Clip(p) // // ... // p.Free() // when done with the path +// +// A Path also defines its fill mode. (This should ideally be a fill +// parameter, but some implementations prevent it.) +// TODO talk about fill modes type Path struct { p *C.uiDrawPath } -// NewPath creates a new Path. -func NewPath() *Path { +// TODO +type FillMode uint +const ( + Winding FillMode = iota + Alternate +) + +// NewPath creates a new Path with the given fill mode. +func NewPath(fillMode FillMode) *Path { + var fm C.uiDrawFillMode + + switch fillMode { + case Winding: + fm = C.uiDrawFillModeWinding + case Alternate: + fm = C.uiDrawFillModeAlternate + default: + panic("invalid fill mode passed to ui.NewPath()") + } return &Path{ - p: C.uiDrawNewPath(), + p: C.uiDrawNewPath(fm), } } |
