More go fmt.

This commit is contained in:
Pietro Gagliardi 2014-06-10 11:23:00 -04:00
parent 09e3fcd9cb
commit 6e7f15c8e0
2 changed files with 74 additions and 75 deletions

View File

@ -4,7 +4,6 @@ package ui
import (
"fmt"
// "syscall"
"unsafe"
)
@ -20,64 +19,64 @@ import (
// As we are left with incomplete data, an arbitrary size will be chosen
const (
defaultWidth = 100 // 2 * preferred width of buttons
defaultWidth = 100 // 2 * preferred width of buttons
)
type dlgunits struct {
width int
height int
longest bool // TODO actually use this
getsize uintptr
area bool // use area sizes instead
width int
height int
longest bool // TODO actually use this
getsize uintptr
area bool // use area sizes instead
}
var stdDlgSizes = [nctypes]dlgunits{
c_button: dlgunits{
width: 50,
height: 14,
getsize: _BCM_GETIDEALSIZE,
c_button: dlgunits{
width: 50,
height: 14,
getsize: _BCM_GETIDEALSIZE,
},
c_checkbox: dlgunits{
c_checkbox: dlgunits{
// widtdh is not defined here so assume longest
longest: true,
height: 10,
longest: true,
height: 10,
},
c_combobox: dlgunits{
c_combobox: dlgunits{
// technically the height of a combobox has to include the drop-down list (this is a historical accident: originally comboboxes weren't drop-down)
// but since we're forcing Common Controls version 6, we can take advantage of one of its mechanisms to automatically fix this mistake (bad practice but whatever)
// see also: http://blogs.msdn.com/b/oldnewthing/archive/2006/03/10/548537.aspx
// note that the Microsoft guidelines pages don't take the list size into account
longest: true,
height: 12, // from http://msdn.microsoft.com/en-us/library/windows/desktop/bb226818%28v=vs.85%29.aspx; the page linked above says 14
longest: true,
height: 12, // from http://msdn.microsoft.com/en-us/library/windows/desktop/bb226818%28v=vs.85%29.aspx; the page linked above says 14
},
c_lineedit: dlgunits{
longest: true,
height: 14,
c_lineedit: dlgunits{
longest: true,
height: 14,
},
c_label: dlgunits{
longest: true,
height: 8,
c_label: dlgunits{
longest: true,
height: 8,
},
c_listbox: dlgunits{
longest: true,
c_listbox: dlgunits{
longest: true,
// height is not clearly defined here ("an integral number of items (3 items minimum)") so just use a three-line edit control
height: 14 + 10 + 10,
height: 14 + 10 + 10,
},
c_progressbar: dlgunits{
width: 237, // the first reference says 107 also works; TODO decide which to use
height: 8,
c_progressbar: dlgunits{
width: 237, // the first reference says 107 also works; TODO decide which to use
height: 8,
},
c_area: dlgunits{
area: true,
c_area: dlgunits{
area: true,
},
}
var (
_selectObject = gdi32.NewProc("SelectObject")
_getDC = user32.NewProc("GetDC")
_selectObject = gdi32.NewProc("SelectObject")
_getDC = user32.NewProc("GetDC")
_getTextExtentPoint32 = gdi32.NewProc("GetTextExtentPoint32W")
_getTextMetrics = gdi32.NewProc("GetTextMetricsW")
_releaseDC = user32.NewProc("ReleaseDC")
_getTextMetrics = gdi32.NewProc("GetTextMetricsW")
_releaseDC = user32.NewProc("ReleaseDC")
)
// This function runs on uitask; call the functions directly.
@ -95,7 +94,7 @@ func (s *sysData) preferredSize() (width int, height int) {
msg,
uintptr(0),
uintptr(unsafe.Pointer(&size)))
if r1 != uintptr(_FALSE) { // success
if r1 != uintptr(_FALSE) { // success
return int(size.cx), int(size.cy)
}
// otherwise the message approach failed, so fall back to the regular approach
@ -107,28 +106,28 @@ func (s *sysData) preferredSize() (width int, height int) {
var baseX, baseY int
r1, _, err := _getDC.Call(uintptr(s.hwnd))
if r1 == 0 { // failure
if r1 == 0 { // failure
panic(fmt.Errorf("error getting DC for preferred size calculations: %v", err))
}
dc = _HANDLE(r1)
r1, _, err = _selectObject.Call(
uintptr(dc),
uintptr(controlFont))
if r1 == 0 { // failure
if r1 == 0 { // failure
panic(fmt.Errorf("error loading control font into device context for preferred size calculation: %v", err))
}
r1, _, err = _getTextMetrics.Call(
uintptr(dc),
uintptr(unsafe.Pointer(&tm)))
if r1 == 0 { // failure
if r1 == 0 { // failure
panic(fmt.Errorf("error getting text metrics for preferred size calculations: %v", err))
}
baseX = int(tm.tmAveCharWidth) // TODO not optimal; third reference has better way
baseX = int(tm.tmAveCharWidth) // TODO not optimal; third reference has better way
baseY = int(tm.tmHeight)
r1, _, err = _releaseDC.Call(
uintptr(s.hwnd),
uintptr(dc))
if r1 == 0 { // failure
if r1 == 0 { // failure
panic(fmt.Errorf("error releasing DC for preferred size calculations: %v", err))
}
@ -138,8 +137,8 @@ func (s *sysData) preferredSize() (width int, height int) {
width = defaultWidth
}
height = stdDlgSizes[s.ctype].height
width = muldiv(width, baseX, 4) // equivalent to right of rect
height = muldiv(height, baseY, 8) // equivalent to bottom of rect
width = muldiv(width, baseX, 4) // equivalent to right of rect
height = muldiv(height, baseY, 8) // equivalent to bottom of rect
return width, height
}
@ -158,29 +157,29 @@ func muldiv(ma int, mb int, div int) int {
}
type _SIZE struct {
cx int32 // originally LONG
cy int32
cx int32 // originally LONG
cy int32
}
type _TEXTMETRICS struct {
tmHeight int32
tmAscent int32
tmDescent int32
tmInternalLeading int32
tmExternalLeading int32
tmAveCharWidth int32
tmMaxCharWidth int32
tmWeight int32
tmOverhang int32
tmDigitizedAspectX int32
tmDigitizedAspectY int32
tmFirstChar uint16
tmLastChar uint16
tmDefaultChar uint16
tmBreakChar uint16
tmItalic byte
tmUnderlined byte
tmStruckOut byte
tmPitchAndFamily byte
tmCharSet byte
tmHeight int32
tmAscent int32
tmDescent int32
tmInternalLeading int32
tmExternalLeading int32
tmAveCharWidth int32
tmMaxCharWidth int32
tmWeight int32
tmOverhang int32
tmDigitizedAspectX int32
tmDigitizedAspectY int32
tmFirstChar uint16
tmLastChar uint16
tmDefaultChar uint16
tmBreakChar uint16
tmItalic byte
tmUnderlined byte
tmStruckOut byte
tmPitchAndFamily byte
tmCharSet byte
}

View File

@ -11,16 +11,16 @@ import (
// Alternatively, a progressbar can show an animation indicating that progress is being made but how much is indeterminate.
// Newly-created ProgressBars default to showing 0% progress.
type ProgressBar struct {
lock sync.Mutex
created bool
sysData *sysData
initProg int
lock sync.Mutex
created bool
sysData *sysData
initProg int
}
// NewProgressBar creates a new ProgressBar.
func NewProgressBar() *ProgressBar {
return &ProgressBar{
sysData: mksysdata(c_progressbar),
sysData: mksysdata(c_progressbar),
}
}
@ -58,11 +58,11 @@ func (p *ProgressBar) make(window *sysData) error {
func (p *ProgressBar) setRect(x int, y int, width int, height int, rr *[]resizerequest) {
*rr = append(*rr, resizerequest{
sysData: p.sysData,
x: x,
y: y,
width: width,
height: height,
sysData: p.sysData,
x: x,
y: y,
width: width,
height: height,
})
}