OSDN Ticket Archive


Ticket #39276

macOS版 フルスクリーン表示対応

登録: 2019-06-01 22:08 最終更新: 2019-06-03 23:47

報告者:
yknk
担当者:
yknk
チケットの種類:
機能リクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.2.x for Mac OS X
マイルストーン:
Version 1.2.6 for macOS (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

フルスクリーン表示に対応する。

参考チケット

  • #39274 Win版 フルスクリーン表示対応

チケットの履歴

2019-06-01 22:08 更新者: yknk
  • 新しいチケット "macOS版 フルスクリーン表示対応" が作成されました
2019-06-01 22:11 更新者: yknk
  • 詳細が更新されました
2019-06-02 00:54 更新者: yknk
コメント

仕様

  • メインウィンドウの最大化ボタンを有効にして、フルスクリーン表示可能とする。
  • Viewメニューに"Full Screen"を追加する。
  • CONTROL + COMMAND + F キーでフルスクリーン切り替え可能とする。
  • フルスクリーン表示時にマウスカーソルを画面上端に移動したときメニューを表示する。
2019-06-02 00:54 更新者: yknk
コメント

対策1:リソース修正

MainWindow.xib

Attributes inspector / Full Screenの値を、"Inferred Behavor"から"Primary Window"に変更

MainMenu.xib

Viewメニューに"Full Screen"を追加。MTMenuCtrlのm_pMenuFullScreenに紐づける。

2019-06-02 00:54 更新者: yknk
コメント

対策2:MIDITrailメインクラス修正

MIDITrailApp::OnMenuFullScreen

フルスクリーンメニュー選択イベントハンドラを追加。

MIDITrailApp::OnToggleFullScreen

フルスクリーン切り替え通知イベントハンドラを追加。

MIDITrailApp::_ChangeMenuStyle

フルスクリーンメニューのスタイル更新処理を追加。

MIDITrailApp::_UpdateMenuCheckmark

フルスクリーンメニューの選択マーク更新処理を追加。

2019-06-02 00:55 更新者: yknk
コメント

対策3:アプリデリゲートクラス修正

MIDITrailAppDelegate::applicationWillFinishLaunching

フルスクリーン切り替え通知の通知先登録処理を追加。

MIDITrailAppDelegate::onToggleFullScreen

フルスクリーン切り替え通知イベントハンドラを追加。 MIDITrailAppはC++のクラスとして実装しているため、通知先として登録できない。 このためMIDITrailAppDelegateを経由して通知を受け取る。

2019-06-02 00:55 更新者: yknk
コメント

対策4:メインビュークラス修正

MTMainView::mouseDown

マウスカーソルがスクリーン上端に近い場合はイベントを無視する処理を追加。 フルスクリーン状態のとき、視線移動モードに入りマウスカーソルを無効化するタイミングと フルスクリーンで隠れていたメニューバーが表示されるタイミングが重なると、 メニューバー上にカーソルが表示されたまま移動できなくなる事象が発生する。 何も操作できなくなるため、マウスカーソルが画面上端に近い場合はイベントを無視する。

MTMainView::enterFullScreen

フルスクリーン開始メソッドを追加。

MTMainView::exitFullScreen

フルスクリーン終了メソッドを追加。

2019-06-02 00:55 更新者: yknk
コメント

対策5:メインウィンドウ制御クラス修正

MTMainWindowCtrl

メインウィンドウ制御クラスのメンバにウィンドウフレームを追加。

MTMainWindowCtrl::toggleFullScreen

フルスクリーン切り替えメソッドを追加。

MTMainWindowCtrl::windowWillEnterFullScreen

フルスクリーン開始直前通知イベントハンドラを追加。ウィンドウフレームをメンバに保存。

MTMainWindowCtrl::windowDidEnterFullScreen

フルスクリーン開始直後通知イベントハンドラを追加。

MTMainWindowCtrl::windowWillExitFullScreen

フルスクリーン終了直前通知イベントハンドラを追加。メンバに保存していたウィンドウフレームを反映。

MTMainWindowCtrl::windowDidExitFullScreen

フルスクリーン終了直後通知イベントハンドラを追加。メンバに保存していたウィンドウフレームを反映。

MTMainWindowCtrl::sendFullScreenNotification

フルスクリーン変更通知送信メソッドを追加。 MIDITrailメインクラスに伝えることで、フルスクリーンメニューの選択マークを更新させる。

MTMainWindowCtrl::isFullScreen

フルスクリーン状態確認メソッドを追加。

2019-06-02 00:56 更新者: yknk
コメント

対策6:メニュー制御クラス修正

MTMenuCtrl

メニュー項目種別の列挙型MTMenuItemにフルスクリーン(MenuFullScreen)を追加。 メンバにフルスクリーンメニュー(m_pMenuFullScreen)を追加。

MTMenuCtrl::initialize

初期化処理対象にフルスクリーンメニューを追加。

MTMenuCtrl::menuItemOf

メニューオブジェクト取得対象にフルスクリーンメニューを追加。

MTMenuCtrl::onMenuFullScreen

フルスクリーンメニュー選択イベントハンドラを追加。

2019-06-02 00:57 更新者: yknk
コメント

対策7:背景画像描画クラス修正

MTBackgroundImage

背景画像描画クラスのメンバにビュー配置情報m_ViewRectを追加。

MTBackgroundImage::Create

ビューの配置情報をメンバに記録する処理を追加。

MTBackgroundImage::Draw

ビューのサイズが変化した場合、すなわちフルスクリーン表示切り替えが発生した場合に、 背景画像頂点リセットのメソッドを呼び出す処理を追加。

MTBackgroundImage::_RestVertexOfBackground

背景画像頂点リセットのメソッドを追加。

2019-06-02 00:58 更新者: yknk
コメント

対策8:ダッシュボード描画クラス修正

MTDashboard

ダッシュボード描画クラスのメンバにビュー配置情報m_ViewRectを追加。

MTDashboard::Create

ビューの配置情報をメンバに記録する処理を追加。

MTDashboard::Transform

ビューのサイズが変化した場合、すなわちフルスクリーン表示切り替えが発生した場合に、 カウンタ表示位置の算出しなおす処理を追加。

MTDashboardLive

ライブモニタ用ダッシュボード描画クラスのメンバにビュー配置情報m_ViewRectを追加。

MTDashboardLive::Create

ビューの配置情報をメンバに記録する処理を追加。

MTDashboardLive::Transform

ビューのサイズが変化した場合、すなわちフルスクリーン表示切り替えが発生した場合に、 カウンタ表示位置の算出しなおす処理を追加。

2019-06-03 23:47 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません