Skip to content

Commit d0fe74d

Browse files
committed
Migrated datetimepicker.go and brought stddialogs.go back again.
1 parent 7b7ae9d commit d0fe74d

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

BBB_GOFILES/datetimepicker.go renamed to datetimepicker.go

+8-18
Original file line numberDiff line numberDiff line change
@@ -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"
2111
import "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.
6252
func (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.
7969
func (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)

pkgui.c

+15
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,21 @@ void pkguiComboboxOnSelected(uiCombobox *c)
4242
uiComboboxOnSelected(c, pkguiDoComboboxOnSelected, NULL);
4343
}
4444

45+
void pkguiDateTimePickerOnChanged(uiDateTimePicker *d)
46+
{
47+
uiDateTimePickerOnChanged(d, pkguiDoDateTimePickerOnChanged, NULL);
48+
}
49+
50+
struct tm *pkguiAllocTime(void)
51+
{
52+
return (struct tm *) pkguiAlloc(sizeof (struct tm));
53+
}
54+
55+
void pkguiFreeTime(struct tm *t)
56+
{
57+
free(t);
58+
}
59+
4560
void pkguiEditableComboboxOnChanged(uiEditableCombobox *c)
4661
{
4762
uiEditableComboboxOnChanged(c, pkguiDoEditableComboboxOnChanged, NULL);

pkgui.h

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#define pkguiHFileIncluded
44

55
#include <stdlib.h>
6+
#include <time.h>
67
#include "ui.h"
78

89
// main.go
@@ -23,6 +24,11 @@ extern void pkguiCheckboxOnToggled(uiCheckbox *c);
2324
// combobox.go
2425
extern void pkguiComboboxOnSelected(uiCombobox *c);
2526

27+
// datetimepicker.go
28+
extern void pkguiDateTimePickerOnChanged(uiDateTimePicker *d);
29+
extern struct tm *pkguiAllocTime(void);
30+
extern void pkguiFreeTime(struct tm *t);
31+
2632
// editablecombobox.go
2733
extern void pkguiEditableComboboxOnChanged(uiEditableCombobox *c);
2834

BBB_GOFILES/stddialogs.go renamed to stddialogs.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package ui
44

5-
// #include "ui.h"
5+
// #include "pkgui.h"
66
import "C"
77

88
// TODO

0 commit comments

Comments
 (0)