Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

set Display.errch and use it for errors from mouse/keyboard #17

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
15 changes: 5 additions & 10 deletions draw/alloc.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,23 +86,18 @@ func allocImage(d *Display, ai *Image, r image.Rectangle, pix Pix, repl bool, va
return i, nil
}

/*
func namedimage(d *Display, name string) (*Image, nil) {
panic("namedimage")
}

/* implements message 'N' */
func nameimage(i *Image, name string, in bool) error {
a := i.Display.bufimage(1+4+1+1+len(name))
a := i.Display.bufimage(1 + 4 + 1 + 1 + len(name))
a[0] = 'N'
bplong(a[1:], i.ID)
bplong(a[1:], i.id)
if in {
a[5] = 1
}
a[6] = len(name)
a[6] = byte(len(name))
copy(a[7:], name)
return d.flushimage(false)
return i.Display.flush(false)
}
*/

func (i *Image) free() error {
if i == nil || i.Display == nil {
Expand Down
5 changes: 4 additions & 1 deletion draw/draw.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
// Package draw is a port of Plan 9's libdraw to Go.
// It connects to the 'devdraw' binary built as part of Plan 9 from User Space (http://swtch.com/plan9port/).
//
// On Plan 9 it talks to /dev/draw and rio(4) at $wsys directly.
// On unix, it connects to the 'devdraw' binary built as part of Plan 9 from User Space (http://swtch.com/plan9port/).
//
// All graphics operations are done in the remote server. The functions
// in this package typically send a message to the server.
//
Expand Down
28 changes: 0 additions & 28 deletions draw/getsubfont.go
Original file line number Diff line number Diff line change
@@ -1,38 +1,10 @@
package draw

import (
"bytes"
"fmt"
"image"
"io/ioutil"
"log"
"os"
"strings"
)

func getsubfont(d *Display, name string) (*Subfont, error) {
scale, fname := parsefontscale(name)
data, err := ioutil.ReadFile(fname)
if err != nil && strings.HasPrefix(fname, "/mnt/font/") {
data1, err1 := fontPipe(fname[len("/mnt/font/"):])
if err1 == nil {
data, err = data1, err1
}
}
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: %v\n", err)
return nil, err
}
f, err := d.readSubfont(name, bytes.NewReader(data), nil)
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: can't read %s: %v\n", fname, err)
}
if scale > 1 {
scalesubfont(f, scale)
}
return f, err
}

func scalesubfont(f *Subfont, scale int) {
r := f.Bits.R
r2 := r
Expand Down
34 changes: 34 additions & 0 deletions draw/getsubfont_devdraw.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// +build !plan9

package draw

import (
"bytes"
"fmt"
"io/ioutil"
"os"
"strings"
)

func getsubfont(d *Display, name string) (*Subfont, error) {
scale, fname := parsefontscale(name)
data, err := ioutil.ReadFile(fname)
if err != nil && strings.HasPrefix(fname, "/mnt/font/") {
data1, err1 := fontPipe(fname[len("/mnt/font/"):])
if err1 == nil {
data, err = data1, err1
}
}
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: %v\n", err)
return nil, err
}
f, err := d.readSubfont(name, bytes.NewReader(data), nil)
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: can't read %s: %v\n", fname, err)
}
if scale > 1 {
scalesubfont(f, scale)
}
return f, err
}
25 changes: 25 additions & 0 deletions draw/getsubfont_plan9.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package draw

import (
"bytes"
"fmt"
"io/ioutil"
"os"
)

func getsubfont(d *Display, name string) (*Subfont, error) {
scale, fname := parsefontscale(name)
data, err := ioutil.ReadFile(fname)
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: %v\n", err)
return nil, err
}
f, err := d.readSubfont(name, bytes.NewReader(data), nil)
if err != nil {
fmt.Fprintf(os.Stderr, "getsubfont: can't read %s: %v\n", fname, err)
}
if scale > 1 {
scalesubfont(f, scale)
}
return f, err
}
7 changes: 6 additions & 1 deletion draw/init.go → draw/init_devdraw.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// +build !plan9

package draw

import (
Expand Down Expand Up @@ -88,6 +90,9 @@ func Init(errch chan<- error, fontname, label, winsize string) (*Display, error)
if err != nil {
return nil, err
}
if errch == nil {
errch = make(chan error)
}
d := &Display{
conn: c,
errch: errch,
Expand Down Expand Up @@ -361,7 +366,7 @@ func bpshort(b []byte, n uint16) {
}

func (d *Display) HiDPI() bool {
return d.DPI >= DefaultDPI*3/2
return d.DPI >= DefaultDPI*3/2
}

func (d *Display) ScaleSize(n int) int {
Expand Down
Loading