├── LICENSE
├── README.md
├── README_ja.md
├── resource
├── image-v2.png
└── image.png
├── v1
├── README.md
├── bundle.go
├── go.mod
├── go.sum
├── main.go
├── mplus-1c-bold.ttf
├── mplus-1c-regular.ttf
└── theme.go
└── v2
├── bundle.go
├── go.mod
├── go.sum
├── main.go
├── mplus-1c-bold.ttf
├── mplus-1c-regular.ttf
└── theme.go
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 lusingander
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | fyne-font-example
2 | ====
3 |
4 | English / [日本語](./README_ja.md)
5 |
6 | ## About
7 |
8 | Sample application that uses different fonts in [Fyne](https://fyne.io).
9 |
10 | > [!IMPORTANT]
11 | > This is a description for Fyne v2.x. If you want to know for Fyne v1.x or earlier, please refer to the [v1](./v1) directory.
12 |
13 |
14 |
15 | > [!TIP]
16 | > 🎨 Prefer to work with the GUI? Try the [fyne-theme-generator](https://github.com/lusingander/fyne-theme-generator)!
17 |
18 | ## Summary
19 |
20 | #### 0. Install `fyne` command
21 |
22 | ```
23 | $ go get fyne.io/fyne/v2/cmd/fyne
24 |
25 | $ fyne
26 | Usage: fyne [command] [parameters], where command is one of:
27 | ...
28 | ```
29 |
30 | #### 1. Prepare the font file and execute `fyne bundle` command
31 |
32 | ```
33 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
34 |
35 | $ head -n 9 bundle.go
36 | // auto-generated
37 |
38 | package main
39 |
40 | import "fyne.io/fyne/v2"
41 |
42 | var resourceMplus1cRegularTtf = &fyne.StaticResource{
43 | StaticName: "mplus-1c-regular.ttf",
44 | StaticContent: []byte{
45 | ```
46 |
47 | See [./v2/bundle.go](./v2/bundle.go).
48 |
49 | > [!WARNING]
50 | > the file size is very large
51 |
52 | #### 2. Create the custom theme and load font resources
53 |
54 | ```go
55 | type myTheme struct{}
56 |
57 | func (*myTheme) Font(s fyne.TextStyle) fyne.Resource {
58 | if s.Monospace {
59 | return theme.DefaultTheme().Font(s)
60 | }
61 | if s.Bold {
62 | if s.Italic {
63 | return theme.DefaultTheme().Font(s)
64 | }
65 | return resourceMplus1cBoldTtf
66 | }
67 | if s.Italic {
68 | return theme.DefaultTheme().Font(s)
69 | }
70 | return resourceMplus1cRegularTtf
71 | }
72 | ...
73 | ```
74 |
75 | See [./v2/theme.go](./v2/theme.go).
76 |
77 | #### 3. Load the custom theme
78 |
79 | ```go
80 | ...
81 | a := app.New()
82 | a.Settings().SetTheme(&myTheme{})
83 | ...
84 | ```
85 |
86 | See [./v2/main.go](./v2/main.go).
87 |
88 | ## A little more details
89 |
90 | `bundle.go` is generated using [fyne command](https://github.com/fyne-io/fyne/tree/master/cmd/fyne).
91 |
92 | ```
93 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
94 | $ fyne bundle -append mplus-1c-bold.ttf >> bundle.go
95 | ```
96 |
97 | See the Blog below for more information. (Japanese)
98 |
99 | - [About the `fyne` command](https://lusingander.netlify.app/posts/200613-fyne-resourece/)
100 | - [About fonts](https://lusingander.netlify.app/posts/200614-fyne-font/)
101 |
102 | An official tutorial has also been added on resource bundling.
103 |
104 | - [Bundling resources | Develop using Fyne](https://developer.fyne.io/tutorial/bundle)
105 |
106 | ----
107 |
108 | [M+ FONTS](https://mplusfonts.github.io) is included and used as a sample font file.
109 |
110 | https://mplusfonts.github.io
111 |
--------------------------------------------------------------------------------
/README_ja.md:
--------------------------------------------------------------------------------
1 |
2 | fyne-font-example
3 | ====
4 |
5 | [English](./README.md) / 日本語
6 |
7 | ## About
8 |
9 | [Fyne](https://fyne.io) で日本語フォントを利用するサンプルアプリケーションです。
10 |
11 | > [!IMPORTANT]
12 | > これは Fyne v2.x についての説明です. Fyne v1.x 以前のバージョンについて知りたい場合は [v1](./v1) 以下を参照してください.
13 |
14 |
15 |
16 | > [!TIP]
17 | > 🎨 GUI でテーマを作成したい場合は [fyne-theme-generator](https://github.com/lusingander/fyne-theme-generator) も試してみてください.
18 |
19 | ## Summary
20 |
21 | #### 0. `fyne` コマンドをインストール
22 |
23 | ```
24 | $ go get fyne.io/fyne/v2/cmd/fyne
25 |
26 | $ fyne
27 | Usage: fyne [command] [parameters], where command is one of:
28 | ...
29 | ```
30 |
31 | #### 1. フォントファイルを用意して `fyne bundle` コマンドを実行
32 |
33 | ```
34 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
35 |
36 | $ head -n 9 bundle.go
37 | // auto-generated
38 |
39 | package main
40 |
41 | import "fyne.io/fyne/v2"
42 |
43 | var resourceMplus1cRegularTtf = &fyne.StaticResource{
44 | StaticName: "mplus-1c-regular.ttf",
45 | StaticContent: []byte{
46 | ```
47 |
48 | 詳細は [./v2/bundle.go](./v2/bundle.go) を参照してください.
49 |
50 | > [!WARNING]
51 | > ファイルサイズがかなり大きくなります
52 |
53 | #### 2. カスタムテーマを作成しフォントリソースを読み込む
54 |
55 | ```go
56 | type myTheme struct{}
57 |
58 | func (*myTheme) Font(s fyne.TextStyle) fyne.Resource {
59 | if s.Monospace {
60 | return theme.DefaultTheme().Font(s)
61 | }
62 | if s.Bold {
63 | if s.Italic {
64 | return theme.DefaultTheme().Font(s)
65 | }
66 | return resourceMplus1cBoldTtf
67 | }
68 | if s.Italic {
69 | return theme.DefaultTheme().Font(s)
70 | }
71 | return resourceMplus1cRegularTtf
72 | }
73 | ...
74 | ```
75 |
76 | 詳細は [./v2/theme.go](./v2/theme.go) を参照してください.
77 |
78 | #### 3. カスタムテーマを読み込む
79 |
80 | ```go
81 | ...
82 | a := app.New()
83 | a.Settings().SetTheme(&myTheme{})
84 | ...
85 | ```
86 |
87 | 詳細は [./v2/main.go](./v2/main.go) を参照してください.
88 |
89 |
90 | ## もう少し詳しく
91 |
92 | `bundle.go` は [fyne command](https://github.com/fyne-io/fyne/tree/master/cmd/fyne) を利用して生成しています.
93 |
94 | ```
95 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
96 | $ fyne bundle -append mplus-1c-bold.ttf >> bundle.go
97 | ```
98 |
99 | 詳細については以下の記事に記載しています.
100 |
101 | - [`fyne` コマンドで各種リソースをバンドルする方法](https://lusingander.netlify.app/posts/200613-fyne-resourece/)
102 | - [Fyne で日本語を扱う](https://lusingander.netlify.app/posts/200614-fyne-font/)
103 |
104 | 公式のチュートリアルにもリソースのバンドルについて追記されました.
105 |
106 | - [Bundling resources | Develop using Fyne](https://developer.fyne.io/tutorial/bundle)
107 |
108 | ----
109 |
110 | サンプルのフォントとして [M+ FONTS](https://mplusfonts.github.io) を使用しています.
111 |
112 | https://mplusfonts.github.io
113 |
--------------------------------------------------------------------------------
/resource/image-v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/resource/image-v2.png
--------------------------------------------------------------------------------
/resource/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/resource/image.png
--------------------------------------------------------------------------------
/v1/README.md:
--------------------------------------------------------------------------------
1 | fyne-font-example
2 | ====
3 |
4 |
5 | [Fyne](https://fyne.io) で日本語フォントを利用するサンプルアプリケーションです。
6 |
7 | Sample application that uses different fonts in [Fyne](https://fyne.io).
8 |
9 | > これは Fyne v1.x についての説明です. Fyne v2.x について知りたい場合は [v2](../v2) 以下を参照してください.
10 | >
11 | > This is a description for Fyne v1.x. If you want to know for Fyne v2.x, please refer to the [v2](../v2) directory.
12 |
13 |
14 |
15 | > If you prefer to work with the GUI, see [fyne-theme-generator](https://github.com/lusingander/fyne-theme-generator).
16 |
17 | ## Summary
18 |
19 | #### 0. `fyne` コマンドをインストール / Install `fyne` command
20 |
21 | ```
22 | $ go get fyne.io/fyne/cmd/fyne
23 |
24 | $ fyne
25 | Usage: fyne [command] [parameters], where command is one of:
26 | ...
27 | ```
28 |
29 | #### 1. フォントファイルを用意して `fyne bundle` コマンドを実行 / Prepare the font file and execute `fyne bundle` command
30 |
31 | ```
32 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
33 |
34 | $ head -n 9 bundle.go
35 | // auto-generated
36 |
37 | package main
38 |
39 | import "fyne.io/fyne"
40 |
41 | var resourceMplus1cRegularTtf = &fyne.StaticResource{
42 | StaticName: "mplus-1c-regular.ttf",
43 | StaticContent: []byte{
44 | ```
45 |
46 | See [bundle.go](./bundle.go).
47 |
48 | > Warning: the file size is very large
49 |
50 | #### 2. カスタムテーマを作成しフォントリソースを読み込む / Create the custom theme and load font resources
51 |
52 | ```go
53 | type myTheme struct{}
54 |
55 | func (myTheme) TextFont() fyne.Resource { return resourceMplus1cRegularTtf }
56 | ...
57 | ```
58 |
59 | See [theme.go](./theme.go).
60 |
61 | #### 3. カスタムテーマを読み込む / Load the custom theme
62 |
63 | ```go
64 | ...
65 | a := app.New()
66 | a.Settings().SetTheme(&myTheme{})
67 | ...
68 | ```
69 |
70 | See [main.go](./main.go).
71 |
72 |
73 | ## もう少し詳しく
74 |
75 | `bundle.go` は [fyne command](https://github.com/fyne-io/fyne/tree/master/cmd/fyne) を利用して生成しています.
76 |
77 | ```
78 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
79 | $ fyne bundle -append mplus-1c-bold.ttf >> bundle.go
80 | ```
81 |
82 | 詳細については以下の記事に記載しています.
83 |
84 | - [`fyne` コマンドで各種リソースをバンドルする方法](https://lusingander.netlify.app/posts/200613-fyne-resourece/)
85 | - [Fyne で日本語を扱う](https://lusingander.netlify.app/posts/200614-fyne-font/)
86 |
87 | 公式のチュートリアルにもリソースのバンドルについて追記されました.
88 |
89 | - [Bundling resources | Develop using Fyne](https://developer.fyne.io/tutorial/bundle)
90 |
91 |
92 | ## A little more details
93 |
94 | `bundle.go` is generated using [fyne command](https://github.com/fyne-io/fyne/tree/master/cmd/fyne).
95 |
96 | ```
97 | $ fyne bundle mplus-1c-regular.ttf > bundle.go
98 | $ fyne bundle -append mplus-1c-bold.ttf >> bundle.go
99 | ```
100 |
101 | See the Blog below for more information. (Japanese)
102 |
103 | - [About the `fyne` command](https://lusingander.netlify.app/posts/200613-fyne-resourece/)
104 | - [About fonts](https://lusingander.netlify.app/posts/200614-fyne-font/)
105 |
106 | An official tutorial has also been added on resource bundling.
107 |
108 | - [Bundling resources | Develop using Fyne](https://developer.fyne.io/tutorial/bundle)
109 |
110 | ----
111 |
112 | [M+ FONTS](http://mplus-fonts.osdn.jp/) is included and used as a sample font file.
113 |
114 | http://mplus-fonts.osdn.jp/
115 |
--------------------------------------------------------------------------------
/v1/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/lusingander/fyne-font-example
2 |
3 | go 1.13
4 |
5 | require (
6 | fyne.io/fyne v1.3.2
7 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2 // indirect
8 | github.com/stretchr/testify v1.6.1 // indirect
9 | golang.org/x/image v0.0.0-20200618115811-c13761719519 // indirect
10 | golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
11 | golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect
12 | golang.org/x/text v0.3.3 // indirect
13 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
14 | )
15 |
--------------------------------------------------------------------------------
/v1/go.sum:
--------------------------------------------------------------------------------
1 | fyne.io/fyne v1.3.2 h1:9MVvZeYeGKJa0I6PKsf0LlZfeurYpsQMEpTaM2O6UpA=
2 | fyne.io/fyne v1.3.2/go.mod h1:osD/JXxGf8AC7aB+Ek0YuFF2QXzdTFFzMRM8cdqrwvQ=
3 | github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I=
4 | github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
5 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
6 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
8 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9 | github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
10 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
11 | github.com/fyne-io/mobile v0.0.2 h1:eGmCR5lkFxk0PnPafGppLFRD5QODJfSVdrjhLjanOVg=
12 | github.com/fyne-io/mobile v0.0.2/go.mod h1:/kOrWrZB6sasLbEy2JIvr4arEzQTXBTZGb3Y96yWbHY=
13 | github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 h1:SCYMcCJ89LjRGwEa0tRluNRiMjZHalQZrVrvTbPh+qw=
14 | github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
15 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3 h1:q521PfSp5/z6/sD9FZZOWj4d1MLmfQW8PkRnI9M6PCE=
16 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
17 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2 h1:Ac1OEHHkbAZ6EUnJahF0GKcU0FjPc/V8F1DvjhKngFE=
18 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
19 | github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=
20 | github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
21 | github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff h1:W71vTCKoxtdXgnm1ECDFkfQnpdqAO00zzGXLA5yaEX8=
22 | github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff/go.mod h1:wfqRWLHRBsRgkp5dmbG56SA0DmVtwrF5N3oPdI8t+Aw=
23 | github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526/go.mod h1:UQkeMHVoNcyXYq9otUupF7/h/2tmHlhrS2zw7ZVvUqc=
24 | github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca/go.mod h1:eJTEwMjXb7kZ633hO3Ln9mBUCOjX2+FlTljvpl9SYdE=
25 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
26 | github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
27 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
28 | github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a/go.mod h1:ORP3/rB5IsulLEBwQZCJyyV6niqmI7P4EWSmkug+1Ng=
29 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
30 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
31 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
32 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
33 | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
34 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
35 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
36 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
37 | github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
38 | github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
39 | github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 h1:HunZiaEKNGVdhTRQOVpMmj5MQnGnv+e8uZNu3xFLgyM=
40 | github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4=
41 | github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 h1:m59mIOBO4kfcNCEzJNy71UkeF4XIx2EVmL9KLwDQdmM=
42 | github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU=
43 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
44 | github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
45 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
46 | github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
47 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
48 | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
49 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
50 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
51 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
52 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
53 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
54 | golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
55 | golang.org/x/image v0.0.0-20200618115811-c13761719519 h1:1e2ufUJNM3lCHEY5jIgac/7UTjd6cgJNdatjPdFWf34=
56 | golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
57 | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
58 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
59 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
60 | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
61 | golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
62 | golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
63 | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
64 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
65 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
66 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
67 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
68 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
69 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
70 | golang.org/x/sys v0.0.0-20200327173247-9dae0f8f5775/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
71 | golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo=
72 | golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
73 | golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
74 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
75 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
76 | golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
77 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
78 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
79 | golang.org/x/tools v0.0.0-20190808195139-e713427fea3f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
80 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
81 | golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
82 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
83 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
84 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
85 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
86 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
87 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
88 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
89 | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
90 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
91 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
92 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
93 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
94 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
95 |
--------------------------------------------------------------------------------
/v1/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fyne.io/fyne"
5 | "fyne.io/fyne/app"
6 | "fyne.io/fyne/dialog"
7 | "fyne.io/fyne/layout"
8 | "fyne.io/fyne/widget"
9 | )
10 |
11 | func main() {
12 | a := app.New()
13 | a.Settings().SetTheme(&myTheme{})
14 | w := a.NewWindow("font")
15 | w.Resize(fyne.NewSize(300, 200))
16 | w.SetContent(
17 | fyne.NewContainerWithLayout(
18 | layout.NewVBoxLayout(),
19 | layout.NewSpacer(),
20 | widget.NewLabel("こんにちは、ファイン"),
21 | widget.NewLabel("これは日本語のラベルです"),
22 | widget.NewButton("これはボタンです", func() {
23 | dialog.ShowInformation("確認", "これはダイアログです", w)
24 | }),
25 | layout.NewSpacer(),
26 | ),
27 | )
28 | w.ShowAndRun()
29 | }
30 |
--------------------------------------------------------------------------------
/v1/mplus-1c-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/v1/mplus-1c-bold.ttf
--------------------------------------------------------------------------------
/v1/mplus-1c-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/v1/mplus-1c-regular.ttf
--------------------------------------------------------------------------------
/v1/theme.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "image/color"
5 |
6 | "fyne.io/fyne"
7 | "fyne.io/fyne/theme"
8 | )
9 |
10 | type myTheme struct{}
11 |
12 | // return bundled font resource
13 | func (myTheme) TextFont() fyne.Resource { return resourceMplus1cRegularTtf }
14 | func (myTheme) TextBoldFont() fyne.Resource { return resourceMplus1cBoldTtf }
15 |
16 | func (myTheme) BackgroundColor() color.Color { return theme.LightTheme().BackgroundColor() }
17 | func (myTheme) ButtonColor() color.Color { return theme.LightTheme().ButtonColor() }
18 | func (myTheme) DisabledButtonColor() color.Color { return theme.LightTheme().DisabledButtonColor() }
19 | func (myTheme) IconColor() color.Color { return theme.LightTheme().IconColor() }
20 | func (myTheme) DisabledIconColor() color.Color { return theme.LightTheme().DisabledIconColor() }
21 | func (myTheme) HyperlinkColor() color.Color { return theme.LightTheme().HyperlinkColor() }
22 | func (myTheme) TextColor() color.Color { return theme.LightTheme().TextColor() }
23 | func (myTheme) DisabledTextColor() color.Color { return theme.LightTheme().DisabledTextColor() }
24 | func (myTheme) HoverColor() color.Color { return theme.LightTheme().HoverColor() }
25 | func (myTheme) PlaceHolderColor() color.Color { return theme.LightTheme().PlaceHolderColor() }
26 | func (myTheme) PrimaryColor() color.Color { return theme.LightTheme().PrimaryColor() }
27 | func (myTheme) FocusColor() color.Color { return theme.LightTheme().FocusColor() }
28 | func (myTheme) ScrollBarColor() color.Color { return theme.LightTheme().ScrollBarColor() }
29 | func (myTheme) ShadowColor() color.Color { return theme.LightTheme().ShadowColor() }
30 | func (myTheme) TextSize() int { return theme.LightTheme().TextSize() }
31 | func (myTheme) TextItalicFont() fyne.Resource { return theme.LightTheme().TextItalicFont() }
32 | func (myTheme) TextBoldItalicFont() fyne.Resource { return theme.LightTheme().TextBoldItalicFont() }
33 | func (myTheme) TextMonospaceFont() fyne.Resource { return theme.LightTheme().TextMonospaceFont() }
34 | func (myTheme) Padding() int { return theme.LightTheme().Padding() }
35 | func (myTheme) IconInlineSize() int { return theme.LightTheme().IconInlineSize() }
36 | func (myTheme) ScrollBarSize() int { return theme.LightTheme().ScrollBarSize() }
37 | func (myTheme) ScrollBarSmallSize() int { return theme.LightTheme().ScrollBarSmallSize() }
38 |
--------------------------------------------------------------------------------
/v2/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/lusingander/fyne-font-example
2 |
3 | go 1.13
4 |
5 | require (
6 | fyne.io/fyne/v2 v2.0.0
7 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2 // indirect
8 | github.com/stretchr/testify v1.6.1 // indirect
9 | golang.org/x/image v0.0.0-20200618115811-c13761719519 // indirect
10 | golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
11 | golang.org/x/text v0.3.3 // indirect
12 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
13 | )
14 |
--------------------------------------------------------------------------------
/v2/go.sum:
--------------------------------------------------------------------------------
1 | fyne.io/fyne/v2 v2.0.0 h1:TfsS3bNq5663BpXsoz1OfzyjcaMqqOf9usI8ZKkw4IE=
2 | fyne.io/fyne/v2 v2.0.0/go.mod h1:FmobqvPpBW+nG1nDyxZWf1SQLED9g/vXIxiIIVjHazY=
3 | github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I=
4 | github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
5 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
6 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
7 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
8 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9 | github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 h1:FDqhDm7pcsLhhWl1QtD8vlzI4mm59llRvNzrFg6/LAA=
10 | github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3/go.mod h1:CzM2G82Q9BDUvMTGHnXf/6OExw/Dz2ivDj48nVg7Lg8=
11 | github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
12 | github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
13 | github.com/fyne-io/mobile v0.1.2 h1:0HaXDtOOwyOTn3Umi0uKVCOgJtfX73c6unC4U8i5VZU=
14 | github.com/fyne-io/mobile v0.1.2/go.mod h1:/kOrWrZB6sasLbEy2JIvr4arEzQTXBTZGb3Y96yWbHY=
15 | github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 h1:SCYMcCJ89LjRGwEa0tRluNRiMjZHalQZrVrvTbPh+qw=
16 | github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
17 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3 h1:q521PfSp5/z6/sD9FZZOWj4d1MLmfQW8PkRnI9M6PCE=
18 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200625191551-73d3c3675aa3/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
19 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2 h1:Ac1OEHHkbAZ6EUnJahF0GKcU0FjPc/V8F1DvjhKngFE=
20 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200707082815-5321531c36a2/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
21 | github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=
22 | github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
23 | github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff h1:W71vTCKoxtdXgnm1ECDFkfQnpdqAO00zzGXLA5yaEX8=
24 | github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff/go.mod h1:wfqRWLHRBsRgkp5dmbG56SA0DmVtwrF5N3oPdI8t+Aw=
25 | github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526/go.mod h1:UQkeMHVoNcyXYq9otUupF7/h/2tmHlhrS2zw7ZVvUqc=
26 | github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca/go.mod h1:eJTEwMjXb7kZ633hO3Ln9mBUCOjX2+FlTljvpl9SYdE=
27 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
28 | github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
29 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
30 | github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a/go.mod h1:ORP3/rB5IsulLEBwQZCJyyV6niqmI7P4EWSmkug+1Ng=
31 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
32 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
33 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
34 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
35 | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
36 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
37 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
38 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
39 | github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
40 | github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
41 | github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 h1:HunZiaEKNGVdhTRQOVpMmj5MQnGnv+e8uZNu3xFLgyM=
42 | github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564/go.mod h1:afMbS0qvv1m5tfENCwnOdZGOF8RGR/FsZ7bvBxQGZG4=
43 | github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 h1:m59mIOBO4kfcNCEzJNy71UkeF4XIx2EVmL9KLwDQdmM=
44 | github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU=
45 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
46 | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
47 | github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
48 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
49 | github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
50 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
51 | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
52 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
53 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
54 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
55 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
56 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
57 | golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
58 | golang.org/x/image v0.0.0-20200618115811-c13761719519 h1:1e2ufUJNM3lCHEY5jIgac/7UTjd6cgJNdatjPdFWf34=
59 | golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
60 | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
61 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
62 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
63 | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
64 | golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
65 | golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
66 | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
67 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
68 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
69 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
70 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
71 | golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
72 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
73 | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 h1:gVCS+QOncANNPlmlO1AhlU3oxs4V9z+gTtPwIk3p2N8=
74 | golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
75 | golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
76 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
77 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
78 | golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
79 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
80 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
81 | golang.org/x/tools v0.0.0-20190808195139-e713427fea3f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
82 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
83 | golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
84 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
85 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
86 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
87 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
88 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
89 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
90 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
91 | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
92 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
93 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
94 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
95 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
96 | gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
97 |
--------------------------------------------------------------------------------
/v2/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "fyne.io/fyne/v2"
5 | "fyne.io/fyne/v2/app"
6 | "fyne.io/fyne/v2/dialog"
7 | "fyne.io/fyne/v2/layout"
8 | "fyne.io/fyne/v2/widget"
9 | )
10 |
11 | func main() {
12 | a := app.New()
13 | a.Settings().SetTheme(&myTheme{})
14 | w := a.NewWindow("font")
15 | w.Resize(fyne.NewSize(300, 200))
16 | w.SetContent(
17 | fyne.NewContainerWithLayout(
18 | layout.NewVBoxLayout(),
19 | layout.NewSpacer(),
20 | widget.NewLabel("こんにちは、ファイン"),
21 | widget.NewLabel("これは日本語のラベルです"),
22 | widget.NewButton("これはボタンです", func() {
23 | dialog.ShowInformation("確認", "これはダイアログです", w)
24 | }),
25 | layout.NewSpacer(),
26 | ),
27 | )
28 | w.ShowAndRun()
29 | }
30 |
--------------------------------------------------------------------------------
/v2/mplus-1c-bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/v2/mplus-1c-bold.ttf
--------------------------------------------------------------------------------
/v2/mplus-1c-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lusingander/fyne-font-example/0b82d5073d0e2071adaaa91710414cd3436571bf/v2/mplus-1c-regular.ttf
--------------------------------------------------------------------------------
/v2/theme.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "image/color"
5 |
6 | "fyne.io/fyne/v2"
7 | "fyne.io/fyne/v2/theme"
8 | )
9 |
10 | type myTheme struct{}
11 |
12 | var _ fyne.Theme = (*myTheme)(nil)
13 |
14 | // return bundled font resource
15 | func (*myTheme) Font(s fyne.TextStyle) fyne.Resource {
16 | if s.Monospace {
17 | return theme.DefaultTheme().Font(s)
18 | }
19 | if s.Bold {
20 | if s.Italic {
21 | return theme.DefaultTheme().Font(s)
22 | }
23 | return resourceMplus1cBoldTtf
24 | }
25 | if s.Italic {
26 | return theme.DefaultTheme().Font(s)
27 | }
28 | return resourceMplus1cRegularTtf
29 | }
30 |
31 | func (*myTheme) Color(n fyne.ThemeColorName, v fyne.ThemeVariant) color.Color {
32 | return theme.DefaultTheme().Color(n, v)
33 | }
34 |
35 | func (*myTheme) Icon(n fyne.ThemeIconName) fyne.Resource {
36 | return theme.DefaultTheme().Icon(n)
37 | }
38 |
39 | func (*myTheme) Size(n fyne.ThemeSizeName) float32 {
40 | return theme.DefaultTheme().Size(n)
41 | }
42 |
--------------------------------------------------------------------------------