@@ -7,17 +7,7 @@ import (
77 "unsafe"
88)
99
10- // #include <stdlib.h>
11- // #include <time.h>
12- // #include "ui.h"
13- // #include "util.h"
14- // static inline struct tm *allocTimeStruct(void)
15- // {
16- // return (struct tm *) pkguiAlloc(sizeof (struct tm));
17- // }
18- // extern void doDateTimePickerOnChanged(uiDateTimePicker *, void *);
19- // // see golang/go#19835
20- // typedef void (*dtpCallback)(uiDateTimePicker *, void *);
10+ // #include "pkgui.h"
2111import "C"
2212
2313// DateTimePicker is a Control that represents a field where the user
@@ -33,7 +23,7 @@ func finishNewDateTimePicker(dd *C.uiDateTimePicker) *DateTimePicker {
3323
3424 d .d = dd
3525
36- C .uiDateTimePickerOnChanged (d .d , C . dtpCallback ( C . doDateTimePickerOnChanged ), nil )
26+ C .pkguiDateTimePickerOnChanged (d .d )
3727
3828 d .ControlBase = NewControlBase (d , uintptr (unsafe .Pointer (d .d )))
3929 return d
@@ -60,8 +50,8 @@ func NewTimePicker() *DateTimePicker {
6050// Time returns the time stored in the uiDateTimePicker.
6151// The time is assumed to be local time.
6252func (d * DateTimePicker ) Time () time.Time {
63- tm := C .allocTimeStruct ()
64- defer C .free ( unsafe . Pointer ( tm ) )
53+ tm := C .pkguiAllocTime ()
54+ defer C .pkguiFreeTime ( tm )
6555 C .uiDateTimePickerTime (d .d , tm )
6656 return time .Date (
6757 int (tm .tm_year + 1900 ),
@@ -77,8 +67,8 @@ func (d *DateTimePicker) Time() time.Time {
7767// t's components are read as-is via t.Date() and t.Clock();
7868// no time zone manipulations are done.
7969func (d * DateTimePicker ) SetTime (t time.Time ) {
80- tm := C .allocTimeStruct ()
81- defer C .free ( unsafe . Pointer ( tm ) )
70+ tm := C .pkguiAllocTime ()
71+ defer C .pkguiFreeTime ( tm )
8272 year , mon , mday := t .Date ()
8373 tm .tm_year = C .int (year - 1900 )
8474 tm .tm_mon = C .int (mon - 1 )
@@ -98,8 +88,8 @@ func (d *DateTimePicker) OnChanged(f func(*DateTimePicker)) {
9888 d .onChanged = f
9989}
10090
101- //export doDateTimePickerOnChanged
102- func doDateTimePickerOnChanged (dd * C.uiDateTimePicker , data unsafe.Pointer ) {
91+ //export pkguiDoDateTimePickerOnChanged
92+ func pkguiDoDateTimePickerOnChanged (dd * C.uiDateTimePicker , data unsafe.Pointer ) {
10393 d := ControlFromLibui (uintptr (unsafe .Pointer (dd ))).(* DateTimePicker )
10494 if d .onChanged != nil {
10595 d .onChanged (d )
0 commit comments