Files
EpochSilicon/pkg/ui/ui.go
Evan Burkey 0967834f6b Epochify (#1)
Make it work for Epoch!

Reviewed-on: #1
2025-07-22 20:47:04 +00:00

65 lines
1.6 KiB
Go

package ui
import (
"epochsilicon/pkg/paths"
"epochsilicon/pkg/utils"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func CreateUI(myWindow fyne.Window) fyne.CanvasObject {
// Initialize UI component variables
crossoverPathLabel = widget.NewRichText()
epochPathLabel = widget.NewRichText()
epochStatusLabel = widget.NewRichText()
crossoverStatusLabel = widget.NewRichText()
serviceStatusLabel = widget.NewRichText()
// Load saved paths from prefs
prefs, _ := utils.LoadPrefs()
if prefs.EpochPath != "" {
paths.EpochPath = prefs.EpochPath
}
if prefs.CrossOverPath != "" {
paths.CrossoverPath = prefs.CrossOverPath
}
// Create all UI components
createOptionsComponents()
createPatchingButtons(myWindow)
createServiceButtons(myWindow)
createLaunchButton(myWindow)
// Check default CrossOver path
paths.CheckDefaultCrossOverPath()
// Create header, main content and bottom bar
headerContent := createHeaderContainer()
mainContent := createMainContent(myWindow)
bottomBar := createBottomBar(myWindow)
// Initial UI state update
UpdateAllStatuses()
// Create layout with header at top, main content moved up to avoid bottom bar, and bottom bar
// Use VBox to position main content higher up instead of centering it
mainContentContainer := container.NewVBox(
mainContent,
)
// Add horizontal padding to the main content
paddedMainContent := container.NewPadded(mainContentContainer)
layout := container.NewBorder(
headerContent, // top
bottomBar, // bottom
nil, // left
nil, // right
paddedMainContent, // main content with horizontal padding
)
return layout
}