├── 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 | --------------------------------------------------------------------------------