-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
アウトライン解析にタイプ別設定フォントを使う #1450
アウトライン解析にタイプ別設定フォントを使う #1450
Conversation
✅ Build sakura 1.0.3217 completed (commit 8a287cf216 by @suconbu) |
sakura_core/outline/CDlgFuncList.h
Outdated
@@ -230,5 +232,7 @@ class CDlgFuncList final : public CDialog | |||
RECT m_rcItems[12]; | |||
|
|||
bool m_bFuncInfoArrIsUpToDate; | |||
|
|||
CFont m_cFontView; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
アフォな指摘だなぁ~と感じると思うんですがまじめな指摘です。
変数名に違和感があります。
m_cFontView;
パッと見、Viewを表す変数に見えます。
日本語で書くと「ビューフォント」を表す変数だと思うので、そのままViewFontとすべきな気がします。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
違和感ありますね。
多くの箇所でメンバ変数名は「"m_" + {型} + {任意}」の形式を取っていますが、{型} の部分をどう扱うかが自分としては曖昧だったりします。
(例えば、データ型が HFONT の場合は "h" なのか、あるいは "hFont" まで含んでいるのか?)
{型} の部分については、できあがる名前の自然さを考えると一文字のみ、ハンドルなら "h"、クラスなら "c" がいいような気がします。
今回のケースにこれを適用するとm_cViewFont
としっくりきますね。
sakura_core/util/window.h
Outdated
@@ -192,6 +192,50 @@ class CDCFont | |||
HFONT m_hFont; | |||
}; | |||
|
|||
class CFont |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
一般的な名前のクラスを作るときは CMyFont のような名前にする文化のような気がします。
例外、MFCモロパクりの CWnd、CDialog 。
こういうクソみたいな指摘によりプロジェクトの進化は妨げられてきた歴史があります。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MFC のそれと被っているので別名にするつもりでしたが、いい名前が思いつかなかったので一旦これにしています。
sakura_core/util/window.h
Outdated
::DeleteObject( m_hFont ); | ||
} | ||
} | ||
CFont& operator=(CFont& other) = delete; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
シグニチャは正確に記載すべきです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(const CFont& other)
でした。
sakura_core/util/window.h
Outdated
{ | ||
public: | ||
CFont() = default; | ||
CFont( const CFont& font ) : CFont( font.m_hFont ){} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コピー代入演算子がdeleteなのに、コピーコンストラクタが有効。
これは普通に「なんでやねん!」だと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コピー代入を蓋した意図は、ムーブ代入のつもりがコピー代入をしてしまうミスを検知するためです。
一方で初期化ではコピーが必要なケースはあると考えているのでコピーコンストラクタは有効としています。
sakura_core/util/window.h
Outdated
} | ||
HFONT GetHandle(){ return m_hFont; } | ||
LONG GetLogicalHeight(){ return m_nLogicalHeight; } | ||
const TCHAR* GetFaceName(){ return m_strFaceName.c_str(); } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3つともconst修飾を付けられるメソッドです。
sakura_core/util/window.h
Outdated
const TCHAR* GetFaceName(){ return m_strFaceName.c_str(); } | ||
|
||
private: | ||
LOGFONT GetLogFont( HFONT hFont ){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これもconstにできます。
というか、引数hFontをとるならstaticにできます。
引数チェックしてないからprivateにしたいんだとは思いますが、
こういうアフォみたいにクソ細かいことを考えるのがメソッド設計だと思います。
指摘ありがとうございます。コメント頂いた所を修正しました。 |
✅ Build sakura 1.0.3220 completed (commit a7c29b7e8b by @suconbu) |
「タイプ別設定のフォントに併せる」とした場合の見た目を確認することができましたので一旦クローズします。 エディタ部分に設定されているフォント次第では逆に見づらくなってしまうこともあったため、もし実際に対応するならば「システムフォント (現状)」「エディタ部分と連動 (この試作)」「任意のフォント」からユーザーが選択できると良さそうです。 |
PR の目的
#1326 - OSDNより転載:アウトライン解析のフォント
アウトライン解析のリストビュー / ツリービュー部分に「タイプ別設定」または「フォント設定」のフォントを使うようにします。
※現在は選択言語が日本語の時にはシステムフォント (Yu Gothic UI)、英語の時には Tahoma が使われます。
変更前1 (#1421 マージ前)
フォント設定:VL Gothic
変更前2 (#1421 マージ後)
フォント設定:VL Gothic
変更後
フォント設定:VL Gothic
フォント設定:HGP行書体
フォント設定:Segoe Script
カテゴリ
PR の背景
PR のメリット
PR のデメリット (トレードオフとかあれば)
仕様・動作説明
アウトライン解析のリストビュー / ツリービューに対してエディタ部分 (CEditWnd) と同じフォントを設定します。
ただしフォントのサイズは元々リストビュー / ツリービューに設定されていたフォントと同じサイズとします。
テスト内容
PR の影響範囲
関連 issue, PR
#1326 #1400
参考資料