mirror of
https://github.com/gen2brain/cbconvert
synced 2025-10-14 02:28:51 +02:00
66 lines
1.3 KiB
Go
66 lines
1.3 KiB
Go
//go:build !portal
|
|
|
|
package main
|
|
|
|
import (
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/gen2brain/iup-go/iup"
|
|
)
|
|
|
|
func fileDlg(title string, multiple, directory bool) ([]string, error) {
|
|
ret := make([]string, 0)
|
|
|
|
dlg := iup.FileDlg()
|
|
defer dlg.Destroy()
|
|
|
|
if !directory {
|
|
mf := "YES"
|
|
if !multiple {
|
|
mf = "NO"
|
|
}
|
|
|
|
dlg.SetAttributes(map[string]string{
|
|
"DIALOGTYPE": "OPEN",
|
|
"MULTIPLEFILES": mf,
|
|
"EXTFILTER": "Comic Files|*.rar;*.zip;*.7z;*.tar;*.cbr;*.cbz;*.cb7;*.cbt;*.pdf;*.epub;*.mobi;*.xps|",
|
|
"FILTER": "*.cb*", // for Motif
|
|
"TITLE": title,
|
|
})
|
|
} else {
|
|
dlg.SetAttributes(map[string]string{
|
|
"DIALOGTYPE": "DIR",
|
|
"TITLE": title,
|
|
})
|
|
}
|
|
|
|
iup.Popup(dlg, iup.CENTERPARENT, iup.CENTERPARENT)
|
|
|
|
if dlg.GetInt("STATUS") == 0 {
|
|
if !directory {
|
|
value := dlg.GetAttribute("VALUE")
|
|
sp := strings.Split(value, "|")
|
|
|
|
if strings.ToLower(iup.GetGlobal("DRIVER")) == "cocoa" {
|
|
for _, file := range sp {
|
|
ret = append(ret, file)
|
|
}
|
|
} else {
|
|
if len(sp) > 1 {
|
|
for _, file := range sp[1 : len(sp)-1] {
|
|
ret = append(ret, filepath.Join(sp[0], file))
|
|
}
|
|
} else {
|
|
ret = append(ret, value)
|
|
}
|
|
}
|
|
} else {
|
|
value := dlg.GetAttribute("VALUE")
|
|
ret = append(ret, value)
|
|
}
|
|
}
|
|
|
|
return ret, nil
|
|
}
|