93 lines
4.0 KiB
Go
93 lines
4.0 KiB
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"git.sr.ht/~rjarry/aerc/config"
|
|
"git.sr.ht/~rjarry/aerc/lib"
|
|
"git.sr.ht/~rjarry/aerc/lib/crypto"
|
|
"git.sr.ht/~rjarry/aerc/lib/ipc"
|
|
"git.sr.ht/~rjarry/aerc/lib/ui"
|
|
"git.sr.ht/~rjarry/aerc/models"
|
|
"git.sr.ht/~rjarry/aerc/worker/types"
|
|
"git.sr.ht/~rjarry/go-opt/v2"
|
|
"github.com/ProtonMail/go-crypto/openpgp"
|
|
)
|
|
|
|
var aerc Aerc
|
|
|
|
func Init(
|
|
crypto crypto.Provider,
|
|
cmd func(string, *config.AccountConfig, *models.MessageInfo) error,
|
|
complete func(ctx context.Context, cmd string) ([]opt.Completion, string), history lib.History,
|
|
deferLoop chan struct{},
|
|
) {
|
|
aerc.Init(crypto, cmd, complete, history, deferLoop)
|
|
}
|
|
|
|
func Drawable() ui.DrawableInteractive { return &aerc }
|
|
func IPCHandler() ipc.Handler { return &aerc }
|
|
func Command(args []string) error { return aerc.Command(args) }
|
|
func HandleMessage(msg types.WorkerMessage) { aerc.HandleMessage(msg) }
|
|
|
|
func CloseBackends() error { return aerc.CloseBackends() }
|
|
|
|
func AddDialog(d ui.DrawableInteractive) { aerc.AddDialog(d) }
|
|
func CloseDialog() { aerc.CloseDialog() }
|
|
|
|
func HumanReadableBindings() []string {
|
|
return aerc.HumanReadableBindings()
|
|
}
|
|
|
|
func Account(name string) (*AccountView, error) { return aerc.Account(name) }
|
|
func AccountNames() []string { return aerc.AccountNames() }
|
|
func NextAccount() (*AccountView, error) { return aerc.NextAccount() }
|
|
func PrevAccount() (*AccountView, error) { return aerc.PrevAccount() }
|
|
func SelectedAccount() *AccountView { return aerc.SelectedAccount() }
|
|
func SelectedAccountUiConfig() *config.UIConfig { return aerc.SelectedAccountUiConfig() }
|
|
|
|
func NextTab() { aerc.NextTab() }
|
|
func PrevTab() { aerc.PrevTab() }
|
|
func PinTab() { aerc.PinTab() }
|
|
func UnpinTab() { aerc.UnpinTab() }
|
|
func MoveTab(i int, relative bool) { aerc.MoveTab(i, relative) }
|
|
func TabNames() []string { return aerc.TabNames() }
|
|
func GetTab(i int) *ui.Tab { return aerc.tabs.Get(i) }
|
|
func SelectTab(name string) bool { return aerc.SelectTab(name) }
|
|
func SelectPreviousTab() bool { return aerc.SelectPreviousTab() }
|
|
func SelectedTab() *ui.Tab { return aerc.SelectedTab() }
|
|
func SelectedTabContent() ui.Drawable { return aerc.SelectedTabContent() }
|
|
func SelectTabIndex(index int) bool { return aerc.SelectTabIndex(index) }
|
|
func SelectTabAtOffset(offset int) { aerc.SelectTabAtOffset(offset) }
|
|
func RemoveTab(tab ui.Drawable, closeContent bool) { aerc.RemoveTab(tab, closeContent) }
|
|
func NewTab(clickable ui.Drawable, name string) *ui.Tab {
|
|
return aerc.NewTab(clickable, name, false)
|
|
}
|
|
|
|
func NewBackgroundTab(clickable ui.Drawable, name string) *ui.Tab {
|
|
return aerc.NewTab(clickable, name, true)
|
|
}
|
|
|
|
func ReplaceTab(tabSrc ui.Drawable, tabTarget ui.Drawable, name string, closeSrc bool) {
|
|
aerc.ReplaceTab(tabSrc, tabTarget, name, closeSrc)
|
|
}
|
|
|
|
func UpdateStatus() { aerc.UpdateStatus() }
|
|
func PushPrompt(prompt *ExLine) { aerc.PushPrompt(prompt) }
|
|
func SetError(text string) { aerc.SetError(text) }
|
|
func PushError(text string) *StatusMessage { return aerc.PushError(text) }
|
|
func PushWarning(text string) *StatusMessage { return aerc.PushWarning(text) }
|
|
func PushSuccess(text string) *StatusMessage { return aerc.PushSuccess(text) }
|
|
func PushStatus(text string, expiry time.Duration) *StatusMessage {
|
|
return aerc.PushStatus(text, expiry)
|
|
}
|
|
|
|
func RegisterChoices(choices []Choice) { aerc.RegisterChoices(choices) }
|
|
func RegisterPrompt(prompt string, cmd string) { aerc.RegisterPrompt(prompt, cmd) }
|
|
|
|
func CryptoProvider() crypto.Provider { return aerc.Crypto }
|
|
func DecryptKeys(keys []openpgp.Key, symmetric bool) (b []byte, err error) {
|
|
return aerc.DecryptKeys(keys, symmetric)
|
|
}
|