package application import ( "fyne.io/fyne/v2" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/convertor" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/application/setting" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/internal/ffmpeg" ) type AppContract interface { FyneApp() fyne.App GetSetting() setting.SettingContract GetProgressBarService() convertor.ProgressBarContract GetFFmpegService() ffmpeg.UtilitiesContract GetConvertorService() convertor.ConvertorContract GetItemsToConvert() convertor.ItemsToConvertContract GetQueueService() convertor.QueueListContract Run() } type application struct { fyneApp fyne.App setting setting.SettingContract progressBarService convertor.ProgressBarContract ffmpegService ffmpeg.UtilitiesContract itemsToConvert convertor.ItemsToConvertContract queueService convertor.QueueListContract convertorService convertor.ConvertorContract } func NewApp( fyneApp fyne.App, setting setting.SettingContract, progressBarService convertor.ProgressBarContract, ffmpegService ffmpeg.UtilitiesContract, itemsToConvert convertor.ItemsToConvertContract, queueService convertor.QueueListContract, convertorService convertor.ConvertorContract, ) AppContract { return &application{ fyneApp: fyneApp, setting: setting, progressBarService: progressBarService, ffmpegService: ffmpegService, itemsToConvert: itemsToConvert, queueService: queueService, convertorService: convertorService, } } func (a *application) FyneApp() fyne.App { return a.fyneApp } func (a *application) GetSetting() setting.SettingContract { return a.setting } func (a *application) GetProgressBarService() convertor.ProgressBarContract { return a.progressBarService } func (a *application) GetFFmpegService() ffmpeg.UtilitiesContract { return a.ffmpegService } func (a *application) GetItemsToConvert() convertor.ItemsToConvertContract { return a.itemsToConvert } func (a *application) GetQueueService() convertor.QueueListContract { return a.queueService } func (a *application) GetConvertorService() convertor.ConvertorContract { return a.convertorService } func (a *application) Run() { a.fyneApp.Run() }