mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2026-03-19 02:12:46 +01:00
start to clone warehouse
This commit is contained in:
@@ -38,6 +38,7 @@ func (self *IconPool) Init() {
|
||||
keyname := strings.Split(f.Name(), ".")
|
||||
if len(keyname) > 1 {
|
||||
self.Icons[keyname[0]] = image.Load(self.GameShellIconPath + "/" + f.Name())
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,8 +49,32 @@ func (self *IconPool) GetImgSurf(keyname string) *sdl.Surface {
|
||||
if _, ok := self.Icons[keyname]; ok {
|
||||
return self.Icons[keyname]
|
||||
} else {
|
||||
fmt.Println("IconPool GetImgSurf ", keyname, " failed")
|
||||
return nil
|
||||
icon_file := self.GameShellIconPath+"/"+keyname+".png"
|
||||
if IsAFile(icon_file) {
|
||||
self.Icons[keyname] = image.Load(icon_file)
|
||||
return self.Icons[keyname]
|
||||
}else {
|
||||
fmt.Println("IconPool GetImgSurf ", keyname, " failed")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (self *IconPool) Width(keyname string) int {
|
||||
if _,ok := self.Icons[keyname]; ok {
|
||||
return int(self.Icons[keyname].W)
|
||||
}else {
|
||||
fmt.Println("IconPool lookup ", keyname, " failed")
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
func (self *IconPool) Height(keyname string) int {
|
||||
if _,ok := self.Icons[keyname]; ok {
|
||||
return int(self.Icons[keyname].W)
|
||||
}else {
|
||||
fmt.Println("IconPool lookup ", keyname, " failed")
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,3 +65,11 @@ func keys_def_init() {
|
||||
CurKeys = PC
|
||||
}
|
||||
}
|
||||
|
||||
func IsKeyStartOrA(key string) bool {
|
||||
return key == CurKeys["Start"] || key == CurKeys["A"]
|
||||
}
|
||||
|
||||
func IsKeyMenuOrB(key string) bool {
|
||||
return key == CurKeys["Menu"] || key == CurKeys["B"]
|
||||
}
|
||||
|
||||
@@ -177,7 +177,8 @@ type PageInterface interface {
|
||||
|
||||
SetIconIndex(idx int)
|
||||
GetIconIndex() int
|
||||
|
||||
RefreshPsIndex()
|
||||
|
||||
Coord() (int, int)
|
||||
NewCoord(x, y int)
|
||||
Size() (int, int)
|
||||
@@ -959,6 +960,15 @@ func (self *Page) GetPsIndex() int {
|
||||
return self.PsIndex
|
||||
}
|
||||
|
||||
func (self *Page) RefreshPsIndex() {
|
||||
if len(self.MyList) == 0 {
|
||||
self.SetPsIndex(0)
|
||||
}
|
||||
if self.GetPsIndex() > len(self.MyList) -1 {
|
||||
self.SetPsIndex( len(self.MyList) - 1)
|
||||
}
|
||||
}
|
||||
|
||||
func (self *Page) SetIconIndex(idx int) {
|
||||
self.IconIndex = idx
|
||||
}
|
||||
|
||||
@@ -292,3 +292,60 @@ func ExecCmd(cmdArgs []string) ([]byte, error) {
|
||||
}
|
||||
return out, err
|
||||
}
|
||||
|
||||
func CopyFile(src, dst string) (err error) {
|
||||
sfi, err := os.Stat(src)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if !sfi.Mode().IsRegular() {
|
||||
// cannot copy non-regular files (e.g., directories,
|
||||
// symlinks, devices, etc.)
|
||||
return fmt.Errorf("CopyFile: non-regular source file %s (%q)", sfi.Name(), sfi.Mode().String())
|
||||
}
|
||||
dfi, err := os.Stat(dst)
|
||||
if err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if !(dfi.Mode().IsRegular()) {
|
||||
return fmt.Errorf("CopyFile: non-regular destination file %s (%q)", dfi.Name(), dfi.Mode().String())
|
||||
}
|
||||
if os.SameFile(sfi, dfi) {
|
||||
return
|
||||
}
|
||||
}
|
||||
if err = os.Link(src, dst); err == nil {
|
||||
return
|
||||
}
|
||||
err = copyFileContents(src, dst)
|
||||
return
|
||||
}
|
||||
|
||||
// copyFileContents copies the contents of the file named src to the file named
|
||||
// by dst. The file will be created if it does not already exist. If the
|
||||
// destination file exists, all it's contents will be replaced by the contents
|
||||
// of the source file.
|
||||
func copyFileContents(src, dst string) (err error) {
|
||||
in, err := os.Open(src)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer in.Close()
|
||||
out, err := os.Create(dst)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
cerr := out.Close()
|
||||
if err == nil {
|
||||
err = cerr
|
||||
}
|
||||
}()
|
||||
if _, err = io.Copy(out, in); err != nil {
|
||||
return
|
||||
}
|
||||
err = out.Sync()
|
||||
return
|
||||
}
|
||||
|
||||
63
sysgo/UI/yes_cancel__confirm_page.go
Normal file
63
sysgo/UI/yes_cancel__confirm_page.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package UI
|
||||
|
||||
import (
|
||||
//"fmt"
|
||||
//"os"
|
||||
//"path/filepath"
|
||||
//"strings"
|
||||
|
||||
"github.com/cuu/gogame/event"
|
||||
//"github.com/cuu/gogame/time"
|
||||
)
|
||||
|
||||
type Func func()
|
||||
|
||||
type YesCancelConfirmPage struct {
|
||||
ConfirmPage
|
||||
StartOrAEvent Func
|
||||
KeyXEvent Func
|
||||
KeyYEvent Func
|
||||
}
|
||||
|
||||
func NewYesCancelConfirmPage() *YesCancelConfirmPage {
|
||||
p := &YesCancelConfirmPage{}
|
||||
p.FootMsg = [5]string{"Nav","","","Cancel","Yes"}
|
||||
p.ConfirmText = MyLangManager.Tr("Awaiting Input")
|
||||
|
||||
p.StartOrAEvent = nil
|
||||
p.KeyXEvent = nil
|
||||
p.KeyYEvent = nil
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
func (self *YesCancelConfirmPage) KeyDown(ev *event.Event) {
|
||||
|
||||
if UI.IsKeyMenuOrB(ev.Data["Key"]) {
|
||||
self.ReturnToUpLevelPage()
|
||||
self.Screen.Draw()
|
||||
self.Screen.SwapAndShow()
|
||||
}
|
||||
|
||||
if UI.IsKeyStartOrA(ev.Data["Key"]) {
|
||||
if self.StartOrAEvent != nil {
|
||||
self.StartOrAEvent()
|
||||
self.ReturnToUpLevelPage()
|
||||
}
|
||||
}
|
||||
|
||||
if ev.Data["Key"] == CurKeys["X"] {
|
||||
if self.KeyXEvent != nil {
|
||||
self.KeyXEvent()
|
||||
self.ReturnToUpLevelPage()
|
||||
}
|
||||
}
|
||||
|
||||
if ev.Data["Key"] == CurKeys["Y"] {
|
||||
if self.KeyYEvent != nil {
|
||||
self.KeyYEvent()
|
||||
self.ReturnToUpLevelPage()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user