aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjoesis2017-06-20 12:09:15 +0800
committerjoesis2017-06-20 13:52:11 +0800
commit64fc593b2f0f930014b8a8a0631f73ba6d00eed2 (patch)
tree2ca69b25dbba989d6d7699f60e21fc2168890b2f
parent8a840534343d8d7c863b876ed6ba3856e560c610 (diff)
downloadsystray-64fc593b2f0f930014b8a8a0631f73ba6d00eed2.tar.bz2
update example
-rw-r--r--example/main.go10
-rw-r--r--systraydll_windows.go105
2 files changed, 63 insertions, 52 deletions
diff --git a/example/main.go b/example/main.go
index 01b9ee8..46604d5 100644
--- a/example/main.go
+++ b/example/main.go
@@ -2,6 +2,8 @@ package main
import (
"fmt"
+ "os"
+
"github.com/getlantern/systray"
"github.com/getlantern/systray/example/icon"
"github.com/skratchdot/open-golang/open"
@@ -9,7 +11,7 @@ import (
func main() {
// Should be called at the very beginning of main().
- systray.Run(onReady)
+ systray.Run(onReady, onExit)
}
func onReady() {
@@ -59,3 +61,9 @@ func onReady() {
}
}()
}
+
+func onExit() {
+ file, _ := os.Create("out.txt")
+ defer file.Close()
+ file.Write([]byte("On Exit..."))
+}
diff --git a/systraydll_windows.go b/systraydll_windows.go
index 2bf4b4e..749605b 100644
--- a/systraydll_windows.go
+++ b/systraydll_windows.go
@@ -8,13 +8,14 @@ package systray
import (
"fmt"
- "io/ioutil"
- "os"
- "path/filepath"
"reflect"
"strings"
- "time"
"unsafe"
+ "os"
+ "time"
+ "io/ioutil"
+ "path"
+ "path/filepath"
)
func bindataRead(data, name string) ([]byte, error) {
@@ -34,9 +35,9 @@ type asset struct {
}
type bindataFileInfo struct {
- name string
- size int64
- mode os.FileMode
+ name string
+ size int64
+ mode os.FileMode
modTime time.Time
}
@@ -74,8 +75,8 @@ func systray386Dll() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "systray386.dll", size: 94208, mode: os.FileMode(438), modTime: time.Unix(1471643142, 0)}
- a := &asset{bytes: bytes, info: info}
+ info := bindataFileInfo{name: "systray386.dll", size: 94208, mode: os.FileMode(420), modTime: time.Unix(1497931828, 0)}
+ a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -94,8 +95,8 @@ func systrayamd64Dll() (*asset, error) {
return nil, err
}
- info := bindataFileInfo{name: "systrayamd64.dll", size: 111104, mode: os.FileMode(438), modTime: time.Unix(1471643140, 0)}
- a := &asset{bytes: bytes, info: info}
+ info := bindataFileInfo{name: "systrayamd64.dll", size: 111104, mode: os.FileMode(420), modTime: time.Unix(1497931828, 0)}
+ a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -118,7 +119,7 @@ func Asset(name string) ([]byte, error) {
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
a, err := Asset(name)
- if err != nil {
+ if (err != nil) {
panic("asset: Asset(" + name + "): " + err.Error())
}
@@ -191,58 +192,60 @@ func AssetDir(name string) ([]string, error) {
}
type bintree struct {
- Func func() (*asset, error)
+ Func func() (*asset, error)
Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
- "systray386.dll": &bintree{systray386Dll, map[string]*bintree{}},
- "systrayamd64.dll": &bintree{systrayamd64Dll, map[string]*bintree{}},
+ "systray386.dll": &bintree{systray386Dll, map[string]*bintree{
+ }},
+ "systrayamd64.dll": &bintree{systrayamd64Dll, map[string]*bintree{
+ }},
}}
// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
- data, err := Asset(name)
- if err != nil {
- return err
- }
- info, err := AssetInfo(name)
- if err != nil {
- return err
- }
- err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
- if err != nil {
- return err
- }
- err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
- if err != nil {
- return err
- }
- err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
- if err != nil {
- return err
- }
- return nil
+ data, err := Asset(name)
+ if err != nil {
+ return err
+ }
+ info, err := AssetInfo(name)
+ if err != nil {
+ return err
+ }
+ err = os.MkdirAll(_filePath(dir, path.Dir(name)), os.FileMode(0755))
+ if err != nil {
+ return err
+ }
+ err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
+ if err != nil {
+ return err
+ }
+ err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
+ if err != nil {
+ return err
+ }
+ return nil
}
// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
- children, err := AssetDir(name)
- // File
- if err != nil {
- return RestoreAsset(dir, name)
- }
- // Dir
- for _, child := range children {
- err = RestoreAssets(dir, filepath.Join(name, child))
- if err != nil {
- return err
- }
- }
- return nil
+ children, err := AssetDir(name)
+ // File
+ if err != nil {
+ return RestoreAsset(dir, name)
+ }
+ // Dir
+ for _, child := range children {
+ err = RestoreAssets(dir, path.Join(name, child))
+ if err != nil {
+ return err
+ }
+ }
+ return nil
}
func _filePath(dir, name string) string {
- cannonicalName := strings.Replace(name, "\\", "/", -1)
- return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
+ cannonicalName := strings.Replace(name, "\\", "/", -1)
+ return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...)
}