summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdata.go34
-rw-r--r--sysdata_darwin.go152
-rw-r--r--sysdata_unix.go166
3 files changed, 176 insertions, 176 deletions
diff --git a/sysdata.go b/sysdata.go
index 074ef64..9e6e384 100644
--- a/sysdata.go
+++ b/sysdata.go
@@ -2,7 +2,7 @@
package ui
-const eventbufsiz = 100 // suggested by skelterjohn
+const eventbufsiz = 100 // suggested by skelterjohn
// newEvent returns a new channel suitable for listening for events.
func newEvent() chan struct{} {
@@ -11,12 +11,12 @@ func newEvent() chan struct{} {
// The sysData type contains all system data. It provides the system-specific underlying implementation. It is guaranteed to have the following by embedding:
type cSysData struct {
- ctype int
- event chan struct{}
- resize func(x int, y int, width int, height int, rr *[]resizerequest)
- resizes []resizerequest
- alternate bool // editable for Combobox, multi-select for listbox, password for lineedit
- handler AreaHandler // for Areas
+ ctype int
+ event chan struct{}
+ resize func(x int, y int, width int, height int, rr *[]resizerequest)
+ resizes []resizerequest
+ alternate bool // editable for Combobox, multi-select for listbox, password for lineedit
+ handler AreaHandler // for Areas
}
// this interface is used to make sure all sysDatas are synced
@@ -41,7 +41,7 @@ var _xSysData interface {
len() int
setAreaSize(int, int)
repaintAll()
-} = &sysData{} // this line will error if there's an inconsistency
+} = &sysData{} // this line will error if there's an inconsistency
// signal sends the event signal. This raise is done asynchronously to avoid deadlocking the UI task.
// Thanks skelterjohn for this techinque: if we can't queue any more events, drop them
@@ -71,27 +71,27 @@ const (
func mksysdata(ctype int) *sysData {
s := &sysData{
- cSysData: cSysData{
- ctype: ctype,
+ cSysData: cSysData{
+ ctype: ctype,
},
}
- if ctype == c_window { // make resizes non-nil so it can be passed in
+ if ctype == c_window { // make resizes non-nil so it can be passed in
s.resizes = make([]resizerequest, 0, 0)
}
return s
}
type resizerequest struct {
- sysData *sysData
- x int
- y int
- width int
- height int
+ sysData *sysData
+ x int
+ y int
+ width int
+ height int
}
func (s *sysData) doResize(x int, y int, width int, height int, winheight int) {
if s.resize != nil {
- s.resizes = s.resizes[0:0] // set len to 0 without changing cap
+ s.resizes = s.resizes[0:0] // set len to 0 without changing cap
s.resize(x, y, width, height, &s.resizes)
for _, s := range s.resizes {
err := s.sysData.setRect(s.x, s.y, s.width, s.height, winheight)
diff --git a/sysdata_darwin.go b/sysdata_darwin.go
index d0e9b16..19b2d49 100644
--- a/sysdata_darwin.go
+++ b/sysdata_darwin.go
@@ -13,24 +13,24 @@ import "C"
type sysData struct {
cSysData
- id C.id
- trackingArea C.id // for Area
+ id C.id
+ trackingArea C.id // for Area
}
type classData struct {
- make func(parentWindow C.id, alternate bool, s *sysData) C.id
- getinside func(scrollview C.id) C.id
- show func(what C.id)
- hide func(what C.id)
- settext func(what C.id, text C.id)
- text func(what C.id, alternate bool) C.id
- append func(id C.id, what string, alternate bool)
- insertBefore func(id C.id, what string, before int, alternate bool)
- selIndex func(id C.id) int
- selIndices func(id C.id) []int
- selTexts func(id C.id) []string
- delete func(id C.id, index int)
- len func(id C.id) int
+ make func(parentWindow C.id, alternate bool, s *sysData) C.id
+ getinside func(scrollview C.id) C.id
+ show func(what C.id)
+ hide func(what C.id)
+ settext func(what C.id, text C.id)
+ text func(what C.id, alternate bool) C.id
+ append func(id C.id, what string, alternate bool)
+ insertBefore func(id C.id, what string, before int, alternate bool)
+ selIndex func(id C.id) int
+ selIndices func(id C.id) []int
+ selTexts func(id C.id) []string
+ delete func(id C.id, index int)
+ len func(id C.id) int
}
func addControl(parentWindow C.id, control C.id) {
@@ -56,148 +56,148 @@ func applyStandardControlFont(id C.id) {
}
var classTypes = [nctypes]*classData{
- c_window: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_window: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
return C.makeWindow(appDelegate)
},
- show: func(what C.id) {
+ show: func(what C.id) {
C.windowShow(what)
},
- hide: func(what C.id) {
+ hide: func(what C.id) {
C.windowHide(what)
},
- settext: func(what C.id, text C.id) {
+ settext: func(what C.id, text C.id) {
C.windowSetTitle(what, text)
},
- text: func(what C.id, alternate bool) C.id {
+ text: func(what C.id, alternate bool) C.id {
return C.windowTitle(what)
},
},
- c_button: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_button: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
button := C.makeButton()
C.buttonSetTargetAction(button, appDelegate)
applyStandardControlFont(button)
addControl(parentWindow, button)
return button
},
- show: controlShow,
- hide: controlHide,
- settext: func(what C.id, text C.id) {
+ show: controlShow,
+ hide: controlHide,
+ settext: func(what C.id, text C.id) {
C.buttonSetText(what, text)
},
- text: func(what C.id, alternate bool) C.id {
+ text: func(what C.id, alternate bool) C.id {
return C.buttonText(what)
},
},
- c_checkbox: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_checkbox: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
checkbox := C.makeCheckbox()
applyStandardControlFont(checkbox)
addControl(parentWindow, checkbox)
return checkbox
},
- show: controlShow,
- hide: controlHide,
- settext: func(what C.id, text C.id) {
+ show: controlShow,
+ hide: controlHide,
+ settext: func(what C.id, text C.id) {
C.buttonSetText(what, text)
},
- text: func(what C.id, alternate bool) C.id {
+ text: func(what C.id, alternate bool) C.id {
return C.buttonText(what)
},
},
- c_combobox: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_combobox: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
combobox := C.makeCombobox(toBOOL(alternate))
applyStandardControlFont(combobox)
addControl(parentWindow, combobox)
return combobox
},
- show: controlShow,
- hide: controlHide,
- text: func(what C.id, alternate bool) C.id {
+ show: controlShow,
+ hide: controlHide,
+ text: func(what C.id, alternate bool) C.id {
return C.comboboxText(what, toBOOL(alternate))
},
- append: func(id C.id, what string, alternate bool) {
+ append: func(id C.id, what string, alternate bool) {
C.comboboxAppend(id, toBOOL(alternate), toNSString(what))
},
- insertBefore: func(id C.id, what string, before int, alternate bool) {
+ insertBefore: func(id C.id, what string, before int, alternate bool) {
C.comboboxInsertBefore(id, toBOOL(alternate),
toNSString(what), C.intptr_t(before))
},
- selIndex: func(id C.id) int {
+ selIndex: func(id C.id) int {
return int(C.comboboxSelectedIndex(id))
},
- delete: func(id C.id, index int) {
+ delete: func(id C.id, index int) {
C.comboboxDelete(id, C.intptr_t(index))
},
- len: func(id C.id) int {
+ len: func(id C.id) int {
return int(C.comboboxLen(id))
},
},
- c_lineedit: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_lineedit: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
lineedit := C.makeLineEdit(toBOOL(alternate))
applyStandardControlFont(lineedit)
addControl(parentWindow, lineedit)
return lineedit
},
- show: controlShow,
- hide: controlHide,
- settext: func(what C.id, text C.id) {
+ show: controlShow,
+ hide: controlHide,
+ settext: func(what C.id, text C.id) {
C.lineeditSetText(what, text)
},
- text: func(what C.id, alternate bool) C.id {
+ text: func(what C.id, alternate bool) C.id {
return C.lineeditText(what)
},
},
- c_label: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_label: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
label := C.makeLabel()
applyStandardControlFont(label)
addControl(parentWindow, label)
return label
},
- show: controlShow,
- hide: controlHide,
- settext: func(what C.id, text C.id) {
+ show: controlShow,
+ hide: controlHide,
+ settext: func(what C.id, text C.id) {
C.lineeditSetText(what, text)
},
- text: func(what C.id, alternate bool) C.id {
+ text: func(what C.id, alternate bool) C.id {
return C.lineeditText(what)
},
},
- c_listbox: &classData{
- make: makeListbox,
- show: controlShow,
- hide: controlHide,
- append: listboxAppend,
- insertBefore: listboxInsertBefore,
- selIndices: listboxSelectedIndices,
- selTexts: listboxSelectedTexts,
- delete: listboxDelete,
- len: listboxLen,
+ c_listbox: &classData{
+ make: makeListbox,
+ show: controlShow,
+ hide: controlHide,
+ append: listboxAppend,
+ insertBefore: listboxInsertBefore,
+ selIndices: listboxSelectedIndices,
+ selTexts: listboxSelectedTexts,
+ delete: listboxDelete,
+ len: listboxLen,
},
- c_progressbar: &classData{
- make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
+ c_progressbar: &classData{
+ make: func(parentWindow C.id, alternate bool, s *sysData) C.id {
pbar := C.makeProgressBar()
addControl(parentWindow, pbar)
return pbar
},
- show: controlShow,
- hide: controlHide,
+ show: controlShow,
+ hide: controlHide,
},
- c_area: &classData{
- make: makeArea,
- getinside: areaInScrollView,
- show: controlShow,
- hide: controlHide,
+ c_area: &classData{
+ make: makeArea,
+ getinside: areaInScrollView,
+ show: controlShow,
+ hide: controlHide,
},
}
// I need to access sysData from appDelegate, but appDelegate doesn't store any data. So, this.
var (
- sysdatas = make(map[C.id]*sysData)
+ sysdatas = make(map[C.id]*sysData)
sysdatalock sync.Mutex
)
@@ -282,7 +282,7 @@ func (s *sysData) setRect(x int, y int, width int, height int, winheight int) er
// winheight - y because (0,0) is the bottom-left corner of the window and not the top-left corner
// (winheight - y) - height because (x, y) is the bottom-left corner of the control and not the top-left
C.setRect(s.id,
- C.intptr_t(x), C.intptr_t((winheight - y) - height),
+ C.intptr_t(x), C.intptr_t((winheight-y)-height),
C.intptr_t(width), C.intptr_t(height))
return nil
}
diff --git a/sysdata_unix.go b/sysdata_unix.go
index 31cb7a6..c416552 100644
--- a/sysdata_unix.go
+++ b/sysdata_unix.go
@@ -14,103 +14,103 @@ import "C"
type sysData struct {
cSysData
- widget *C.GtkWidget
- container *C.GtkWidget // for moving
- pulse chan bool // for sysData.progressPulse()
- clickCounter clickCounter // for Areas
+ widget *C.GtkWidget
+ container *C.GtkWidget // for moving
+ pulse chan bool // for sysData.progressPulse()
+ clickCounter clickCounter // for Areas
// we probably don't need to save these, but we'll do so for sysData.preferredSize() just in case
- areawidth int
- areaheight int
+ areawidth int
+ areaheight int
}
type classData struct {
- make func() *C.GtkWidget
- makeAlt func() *C.GtkWidget
- setText func(widget *C.GtkWidget, text string)
- text func(widget *C.GtkWidget) string
- append func(widget *C.GtkWidget, text string)
- insert func(widget *C.GtkWidget, index int, text string)
- selected func(widget *C.GtkWidget) int
- selMulti func(widget *C.GtkWidget) []int
- smtexts func(widget *C.GtkWidget) []string
- delete func(widget *C.GtkWidget, index int)
- len func(widget *C.GtkWidget) int
+ make func() *C.GtkWidget
+ makeAlt func() *C.GtkWidget
+ setText func(widget *C.GtkWidget, text string)
+ text func(widget *C.GtkWidget) string
+ append func(widget *C.GtkWidget, text string)
+ insert func(widget *C.GtkWidget, index int, text string)
+ selected func(widget *C.GtkWidget) int
+ selMulti func(widget *C.GtkWidget) []int
+ smtexts func(widget *C.GtkWidget) []string
+ delete func(widget *C.GtkWidget, index int)
+ len func(widget *C.GtkWidget) int
// ...
- signals callbackMap
- child func(widget *C.GtkWidget) *C.GtkWidget
- childsigs callbackMap
+ signals callbackMap
+ child func(widget *C.GtkWidget) *C.GtkWidget
+ childsigs callbackMap
}
var classTypes = [nctypes]*classData{
- c_window: &classData{
- make: gtk_window_new,
- setText: gtk_window_set_title,
- text: gtk_window_get_title,
- signals: callbackMap{
- "delete-event": window_delete_event_callback,
- "configure-event": window_configure_event_callback,
+ c_window: &classData{
+ make: gtk_window_new,
+ setText: gtk_window_set_title,
+ text: gtk_window_get_title,
+ signals: callbackMap{
+ "delete-event": window_delete_event_callback,
+ "configure-event": window_configure_event_callback,
},
},
- c_button: &classData{
- make: gtk_button_new,
- setText: gtk_button_set_label,
- text: gtk_button_get_label,
- signals: callbackMap{
- "clicked": button_clicked_callback,
+ c_button: &classData{
+ make: gtk_button_new,
+ setText: gtk_button_set_label,
+ text: gtk_button_get_label,
+ signals: callbackMap{
+ "clicked": button_clicked_callback,
},
},
- c_checkbox: &classData{
- make: gtk_check_button_new,
- setText: gtk_button_set_label,
- text: gtk_button_get_label,
+ c_checkbox: &classData{
+ make: gtk_check_button_new,
+ setText: gtk_button_set_label,
+ text: gtk_button_get_label,
},
- c_combobox: &classData{
- make: gtk_combo_box_text_new,
- makeAlt: gtk_combo_box_text_new_with_entry,
- text: gtk_combo_box_text_get_active_text,
- append: gtk_combo_box_text_append_text,
- insert: gtk_combo_box_text_insert_text,
- selected: gtk_combo_box_get_active,
- delete: gtk_combo_box_text_remove,
- len: gtkComboBoxLen,
+ c_combobox: &classData{
+ make: gtk_combo_box_text_new,
+ makeAlt: gtk_combo_box_text_new_with_entry,
+ text: gtk_combo_box_text_get_active_text,
+ append: gtk_combo_box_text_append_text,
+ insert: gtk_combo_box_text_insert_text,
+ selected: gtk_combo_box_get_active,
+ delete: gtk_combo_box_text_remove,
+ len: gtkComboBoxLen,
},
- c_lineedit: &classData{
- make: gtk_entry_new,
- makeAlt: gtkPasswordEntryNew,
- setText: gtk_entry_set_text,
- text: gtk_entry_get_text,
+ c_lineedit: &classData{
+ make: gtk_entry_new,
+ makeAlt: gtkPasswordEntryNew,
+ setText: gtk_entry_set_text,
+ text: gtk_entry_get_text,
},
- c_label: &classData{
- make: gtk_label_new,
- setText: gtk_label_set_text,
- text: gtk_label_get_text,
+ c_label: &classData{
+ make: gtk_label_new,
+ setText: gtk_label_set_text,
+ text: gtk_label_get_text,
},
- c_listbox: &classData{
- make: gListboxNewSingle,
- makeAlt: gListboxNewMulti,
- text: gListboxText,
- append: gListboxAppend,
- insert: gListboxInsert,
- selMulti: gListboxSelectedMulti,
- smtexts: gListboxSelMultiTexts,
- delete: gListboxDelete,
- len: gListboxLen,
+ c_listbox: &classData{
+ make: gListboxNewSingle,
+ makeAlt: gListboxNewMulti,
+ text: gListboxText,
+ append: gListboxAppend,
+ insert: gListboxInsert,
+ selMulti: gListboxSelectedMulti,
+ smtexts: gListboxSelMultiTexts,
+ delete: gListboxDelete,
+ len: gListboxLen,
},
- c_progressbar: &classData{
- make: gtk_progress_bar_new,
+ c_progressbar: &classData{
+ make: gtk_progress_bar_new,
},
- c_area: &classData{
- make: gtkAreaNew,
- child: gtkAreaGetControl,
- childsigs: callbackMap{
- "draw": area_draw_callback,
- "button-press-event": area_button_press_event_callback,
- "button-release-event": area_button_release_event_callback,
- "motion-notify-event": area_motion_notify_event_callback,
- "enter-notify-event": area_enterleave_notify_event_callback,
- "leave-notify-event": area_enterleave_notify_event_callback,
- "key-press-event": area_key_press_event_callback,
- "key-release-event": area_key_release_event_callback,
+ c_area: &classData{
+ make: gtkAreaNew,
+ child: gtkAreaGetControl,
+ childsigs: callbackMap{
+ "draw": area_draw_callback,
+ "button-press-event": area_button_press_event_callback,
+ "button-release-event": area_button_release_event_callback,
+ "motion-notify-event": area_motion_notify_event_callback,
+ "enter-notify-event": area_enterleave_notify_event_callback,
+ "leave-notify-event": area_enterleave_notify_event_callback,
+ "key-press-event": area_key_press_event_callback,
+ "key-release-event": area_key_release_event_callback,
},
},
}
@@ -311,14 +311,14 @@ func (s *sysData) progressPulse() {
if start {
ticker = time.NewTicker(pulseRate)
tickchan = ticker.C
- pulse() // start the pulse animation now, not 100ms later
+ pulse() // start the pulse animation now, not 100ms later
} else {
if ticker != nil {
ticker.Stop()
}
ticker = nil
tickchan = nil
- s.pulse <- true // notify sysData.setProgress()
+ s.pulse <- true // notify sysData.setProgress()
}
case <-tickchan:
pulse()
@@ -336,7 +336,7 @@ func (s *sysData) setProgress(percent int) {
return
}
s.pulse <- false
- <-s.pulse // wait for sysData.progressPulse() to register that
+ <-s.pulse // wait for sysData.progressPulse() to register that
ret := make(chan struct{})
defer close(ret)
uitask <- func() {
@@ -361,7 +361,7 @@ func (s *sysData) setAreaSize(width int, height int) {
uitask <- func() {
c := gtkAreaGetControl(s.widget)
gtk_widget_set_size_request(c, width, height)
- s.areawidth = width // for sysData.preferredSize()
+ s.areawidth = width // for sysData.preferredSize()
s.areaheight = height
C.gtk_widget_queue_draw(c)
ret <- struct{}{}