diff options
| -rw-r--r-- | sysdata.go | 34 | ||||
| -rw-r--r-- | sysdata_darwin.go | 152 | ||||
| -rw-r--r-- | sysdata_unix.go | 166 |
3 files changed, 176 insertions, 176 deletions
@@ -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{}{} |
