-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfontManager.py
66 lines (56 loc) · 2.29 KB
/
fontManager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-
#Copyright (C) 2019 yamahubuki <itiro.ishino@gmail.com>
import logging
import wx
from logging import getLogger
#from .base import *
import constants
import DefaultSettings
import globalVars
from simpleDialog import *
class FontManager():
def __init__(self):
self.identifier="FontManager"
self.log=getLogger("%s.%s" % (constants.APP_NAME,self.identifier))
self.log.debug("created")
self.app=globalVars.app
# 設定ファイルの情報を基にfontを生成
self.font=wx.Font();
if self.app:
if not self.font.SetNativeFontInfoUserDesc(self.app.config.get("view","font")):
dialog(_("エラー"),_("設定されているフォント情報が不正です。デフォルトのフォントを適用します。"))
self.log.warning("fontString error. SetNativeFontInfoUserDesc("+self.app.config.get("view","font")+") returned false.")
self.font.SetNativeFontInfoUserDesc(DefaultSettings.get("view","font"))
self.app.config.set("view","font",DefaultSettings.get("view","font"))
with open(constants.SETTING_FILE_NAME, "w") as f: self.config.write(f)
else:
self.font.SetNativeFontInfoUserDesc("bold 'MS ゴシック' 22")
# フォント設定ダイアログを表示
# 引数に親ウィンドウを指定
def ShowSettingDialog(self,parent):
# FontDataを生成し、設定を行う
fontData=wx.FontData()
fontData.EnableEffects(False) #取り消し線などは設定できない
fontData.SetAllowSymbols(False) #シンボルフォントの設定は認めない
fontData.SetRange(constants.FONT_MIN_SIZE,constants.FONT_MAX_SIZE)
fontData.SetInitialFont(self.font)
fontchooser=wx.FontDialog(parent,fontData)
if (fontchooser.ShowModal()==wx.ID_OK):
font=fontchooser.GetFontData().GetChosenFont()
else:
self.log.info("font change was canceled.")
#アサーションエラーの対策
if not font.IsOk():
dialog(_("エラー"),_("原因不明のエラーにより、フォントの変更に失敗しました。"))
self.log.warning("font change error. IsOK() returned False.")
return false
self.font=font
return True
def GetFont(self):
return self.font
def GetName(self):
return self.font.GetFaceName()
def GetSize(self):
return self.font.GetPointSize()
def GetInfo(self):
return self.font.GetNativeFontInfoUserDesc()