summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--prefsize_windows.go2
-rw-r--r--sysdata_windows.go19
-rw-r--r--todo.md2
3 files changed, 8 insertions, 15 deletions
diff --git a/prefsize_windows.go b/prefsize_windows.go
index 9a16f8d..68b54b9 100644
--- a/prefsize_windows.go
+++ b/prefsize_windows.go
@@ -82,7 +82,7 @@ func (s *sysData) preferredSize() (width int, height int) {
dc = _HANDLE(r1)
r1, _, err = _selectObject.Call(
uintptr(dc),
- uintptr(unsafe.Pointer(*classTypes[s.ctype].font)))
+ uintptr(controlFont))
if r1 == 0 { // failure
panic(fmt.Errorf("error loading control font into device context for preferred size calculation: %v", err))
}
diff --git a/sysdata_windows.go b/sysdata_windows.go
index 6093f12..15249cd 100644
--- a/sysdata_windows.go
+++ b/sysdata_windows.go
@@ -29,7 +29,7 @@ type classData struct {
xstyle uint32
mkid bool
altStyle uint32
- font *_HANDLE
+ doNotLoadFont bool
appendMsg uintptr
insertBeforeMsg uintptr
deleteMsg uintptr
@@ -47,25 +47,23 @@ var classTypes = [nctypes]*classData{
register: registerStdWndClass,
style: _WS_OVERLAPPEDWINDOW,
xstyle: 0,
+ doNotLoadFont: true,
},
c_button: &classData{
name: "BUTTON",
style: _BS_PUSHBUTTON | controlstyle,
xstyle: 0 | controlxstyle,
- font: &controlFont,
},
c_checkbox: &classData{
name: "BUTTON",
style: _BS_AUTOCHECKBOX | controlstyle,
xstyle: 0 | controlxstyle,
- font: &controlFont,
},
c_combobox: &classData{
name: "COMBOBOX",
style: _CBS_DROPDOWNLIST | _WS_VSCROLL | controlstyle,
xstyle: 0 | controlxstyle,
altStyle: _CBS_DROPDOWN | _CBS_AUTOHSCROLL | _WS_VSCROLL | controlstyle,
- font: &controlFont,
appendMsg: _CB_ADDSTRING,
insertBeforeMsg: _CB_INSERTSTRING,
deleteMsg: _CB_DELETESTRING,
@@ -79,13 +77,11 @@ var classTypes = [nctypes]*classData{
style: _ES_AUTOHSCROLL | _WS_BORDER | controlstyle,
xstyle: 0 | controlxstyle,
altStyle: _ES_PASSWORD | _ES_AUTOHSCROLL | _WS_BORDER | controlstyle,
- font: &controlFont,
},
c_label: &classData{
name: "STATIC",
style: _SS_NOPREFIX | controlstyle,
xstyle: 0 | controlxstyle,
- font: &controlFont,
},
c_listbox: &classData{
name: "LISTBOX",
@@ -94,7 +90,6 @@ var classTypes = [nctypes]*classData{
style: _LBS_NOTIFY | _WS_BORDER | _WS_VSCROLL | controlstyle,
xstyle: 0 | controlxstyle,
altStyle: _LBS_EXTENDEDSEL | _LBS_NOTIFY | _WS_BORDER | _WS_VSCROLL | controlstyle,
- font: &controlFont,
appendMsg: _LB_ADDSTRING,
insertBeforeMsg: _LB_INSERTSTRING,
deleteMsg: _LB_DELETESTRING,
@@ -107,13 +102,13 @@ var classTypes = [nctypes]*classData{
name: _PROGRESS_CLASS,
style: _PBS_SMOOTH | controlstyle,
xstyle: 0 | controlxstyle,
- font: &controlFont,
+ doNotLoadFont: true,
},
c_area: &classData{
register: registerAreaWndClass,
style: areastyle,
xstyle: areaxstyle,
- font: &controlFont,
+ doNotLoadFont: true,
},
}
@@ -182,20 +177,18 @@ func (s *sysData) make(window *sysData) (err error) {
return fmt.Errorf("error actually creating window/control: %v", r.err)
}
s.hwnd = _HWND(r.ret)
- if ct.font != nil {
+ if !ct.doNotLoadFont {
uitask <- &uimsg{
call: _sendMessage,
p: []uintptr{
uintptr(s.hwnd),
uintptr(_WM_SETFONT),
- uintptr(_WPARAM(*ct.font)),
+ uintptr(_WPARAM(controlFont)),
uintptr(_LPARAM(_TRUE)),
},
ret: ret,
}
<-ret
- } else if s.ctype != c_window {
- panic(fmt.Errorf("internal ui package error: control type %d does not have a font (needed for preferred size calculations)", s.ctype))
}
return nil
}
diff --git a/todo.md b/todo.md
index 8d11830..d874243 100644
--- a/todo.md
+++ b/todo.md
@@ -36,7 +36,7 @@ important things:
- NSComboBox scans the entered text to see if it matches one of the items and returns the index of that item if it does; find out how to suppress this so that it returns -1 unless the item was chosen from the list (like the other platforms)
- some Cocoa controls don't seem to resize correctly: Buttons have space around the edges and don't satisfy stretchiness
- make sure GTK+ documentation version point differences (x in 4.3.x) don't matter
-- LineEdit heights on Windows seem too big; either that or LineEdit and Button text is not vertically centered properly
+- LineEdit heights on Windows seem too big; either that or LineEdit, Button, and Label text is not vertically centered properly
- are Checkboxes too small?
- Cocoa has similar margining issues (like Comboboxes having margins)
- sometimes the size of the drop-down part of a Combobox becomes 0 or 1 or some other impossibly small value on Windows