123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- package al
- import "C"
- import "unsafe"
- import "runtime"
- const (
- FILECHOOSER_FILE_MUST_EXIST = 1
- FILECHOOSER_SAVE = 2
- FILECHOOSER_FOLDER = 4
- FILECHOOSER_PICTURES = 8
- FILECHOOSER_SHOW_HIDDEN = 16
- FILECHOOSER_MULTIPLE = 32
- MESSAGEBOX_WARN = 1 << 0
- MESSAGEBOX_ERROR = 1 << 1
- MESSAGEBOX_OK_CANCEL = 1 << 2
- MESSAGEBOX_YES_NO = 1 << 3
- MESSAGEBOX_QUESTION = 1 << 4
- TEXTLOG_NO_CLOSE = 1 << 0
- TEXTLOG_MONOSPACE = 1 << 1
- EVENT_NATIVE_DIALOG_CLOSE = 600
- EVENT_MENU_CLICK = 601
- MENU_ITEM_ENABLED = 0
- MENU_ITEM_CHECKBOX = 1
- MENU_ITEM_CHECKED = 2
- MENU_ITEM_DISABLED = 4
- )
- type FileChooser struct {
- handle *C.ALLEGRO_FILECHOOSER
- }
- func (self *FileChooser) toC() *C.ALLEGRO_FILECHOOSER {
- return (*C.ALLEGRO_FILECHOOSER)(self.handle)
- }
- func (self *FileChooser) Destroy() {
- if self.handle != nil {
- C.al_destroy_native_file_dialog(self.toC())
- }
- self.handle = nil
- }
- func wrapFileChooserRaw(data *C.ALLEGRO_FILECHOOSER) *FileChooser {
- if data == nil {
- return nil
- }
- return &FileChooser{data}
- }
- func (self *FileChooser) SetDestroyFinalizer() *FileChooser {
- if self != nil {
- runtime.SetFinalizer(self, func(me *FileChooser) { me.Destroy() })
- }
- return self
- }
- func wrapFileChooser(data *C.ALLEGRO_FILECHOOSER) *FileChooser {
- self := wrapFileChooserRaw(data)
- return self.SetDestroyFinalizer()
- }
- type TextLog struct {
- handle *C.ALLEGRO_TEXTLOG
- }
- func (self *TextLog) toC() *C.ALLEGRO_TEXTLOG {
- return (*C.ALLEGRO_TEXTLOG)(self.handle)
- }
- func (self *TextLog) Close() {
- if self.handle != nil {
- C.al_close_native_text_log(self.toC())
- }
- self.handle = nil
- }
- func wrapTextLogRaw(data *C.ALLEGRO_TEXTLOG) *TextLog {
- if data == nil {
- return nil
- }
- return &TextLog{data}
- }
- func (self *TextLog) SetDestroyFinalizer() *TextLog {
- if self != nil {
- runtime.SetFinalizer(self, func(me *TextLog) { me.Close() })
- }
- return self
- }
- func wrapTextLog(data *C.ALLEGRO_TEXTLOG) *TextLog {
- self := wrapTextLogRaw(data)
- return self.SetDestroyFinalizer()
- }
- type Menu struct {
- handle *C.ALLEGRO_MENU
- }
- func (self *Menu) toC() *C.ALLEGRO_MENU {
- return (*C.ALLEGRO_MENU)(self.handle)
- }
- func (self *Menu) Destroy() {
- if self.handle != nil {
- C.al_destroy_menu(self.toC())
- }
- self.handle = nil
- }
- func wrapMenuRaw(data *C.ALLEGRO_MENU) *Menu {
- if data == nil {
- return nil
- }
- return &Menu{data}
- }
- func (self *Menu) SetDestroyFinalizer() *Menu {
- if self != nil {
- runtime.SetFinalizer(self, func(me *Menu) { me.Destroy() })
- }
- return self
- }
- func wrapMenu(data *C.ALLEGRO_MENU) *Menu {
- self := wrapMenuRaw(data)
- return self.SetDestroyFinalizer()
- }
- type MenuInfo C.ALLEGRO_MENU_INFO
- func makeMenuInfo(text *string, id, flags int, icon *Bitmap) C.ALLEGRO_MENU_INFO {
- res := C.ALLEGRO_MENU_INFO{}
- if text == nil {
- res.caption = nil
- } else {
- bytes := []byte(*text)
- res.caption = (*C.char)(unsafe.Pointer(&bytes[0]))
- }
- res.id = cui16(id)
- res.flags = ci(flags)
- res.icon = icon.handle
- return res
- }
- func MakeMenuInfo(text *string, id, flags int, icon *Bitmap) MenuInfo {
- return (MenuInfo)(makeMenuInfo(text, id, flags, icon))
- }
- func MenuSeparator() MenuInfo {
- return MakeMenuInfo(nil, -1, 0, nil)
- }
- func StartOfMenu(caption string, id int) MenuInfo {
- return MakeMenuInfo(&caption, id, 0, nil)
- }
- func EndOfMenu(caption string, id int) MenuInfo {
- return MakeMenuInfo(nil, 0, 0, nil)
- }
- func InitNativeDialogAddon() bool {
- return cb2b(C.al_init_native_dialog_addon())
- }
- func ShutdownNativeDialogAddon() {
- C.al_shutdown_native_dialog_addon()
- }
- func CreateNativeFileDialogRaw(path, title, patterns string, mode int) *FileChooser {
- return nil
-
- }
|