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() ProgressBarContract GetFFmpegService() ffmpeg.UtilitiesContract GetItemsToConvert() convertor.ItemsToConvertContract GetQueueService() convertor.QueueListContract Run() } type application struct { fyneApp fyne.App setting setting.SettingContract progressBarService ProgressBarContract ffmpegService ffmpeg.UtilitiesContract itemsToConvert convertor.ItemsToConvertContract queueService convertor.QueueListContract } func NewApp( fyneApp fyne.App, setting setting.SettingContract, progressBarService ProgressBarContract, ffmpegService ffmpeg.UtilitiesContract, itemsToConvert convertor.ItemsToConvertContract, queueService convertor.QueueListContract, ) AppContract { return &application{ fyneApp: fyneApp, setting: setting, progressBarService: progressBarService, ffmpegService: ffmpegService, itemsToConvert: itemsToConvert, queueService: queueService, } } func (a *application) FyneApp() fyne.App { return a.fyneApp } func (a *application) GetSetting() setting.SettingContract { return a.setting } func (a *application) GetProgressBarService() 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) Run() { a.fyneApp.Run() }