構成変更の通知


Quartz Display Services は、ディスプレイ構成変更について知る必要があるアプリケーションに、一般的な通知メカニズムを提供します。どのアプリケーションでも、ディスプレイの再構成呼び出し関数を登録できます。再構成中のいくつかの時点で、Quartz は呼び出し関数にディスプレイ ID、ステータスフラグ、およびオプションの private データを渡します。たとえば、ディスプレイモードの変更中に、呼び出し関数を使用して、新しいモードを説明するログメッセージを印刷することができます。


Quartz は以下の場合に呼び出し関数を呼び出します。


ディスプレイの再構成の前に、Quartz はオンラインディスプレイごとに呼び出し関数を 1 回ずつ呼び出して、保留中の構成変更を示します。kCGDisplayBeginConfigurationFlag フラグは常に設定されます。ディスプレイの再構成の後、Quartz は追加、削除、およびオンラインディスプレイごとに呼び出し関数を 1 回ずつ呼び出します。フラグは、ディスプレイ構成がどのように変更されたかを示します。


Cocoa は既にこの通知メカニズムを使用して、ディスプレイの再構成に応答します。その結果、ユーザーやアプリケーションがディスプレイモードを変更したり、ミラーリングをオンにしたり、ディスプレイを切断したりすると、Cocoa アプリケーションはウィンドウの位置を変えたりサイズを変更したりするのに関与する必要はありません。アプリケーションフレームワークはこのタスクを自動的に処理します。


構成の変更の通知を受け取りたい場合は、以下の手順を簡単に説明します。


  1. 通知呼び出し関数を登録します。

  2. CGDisplayRegisterReconfigurationCallback (MyDisplayReconfigurationCallBack, &userInfo);
    


  3. あなたの関数が呼び出されたら、アクションが必要かどうかを調べるためにパラメータをチェックしてください。例えば:

  4. void MyDisplayReconfigurationCallBack (
       CGDirectDisplayID display,
       CGDisplayChangeSummaryFlags flags,
       void *userInfo)
    {
        if (flags & kCGDisplaySetModeFlag) {
            /* handle mode change for this display */
        }
    }
    


  5. 通知が不要になったら、呼び出し関数登録を削除します。

  6. CGDisplayRemoveReconfigurationCallback (MyDisplayReconfigurationCallBack, &userInfo);
    


前の章 次の章



目次
Xcode の新機能

  • Quartz Display Services プログラミング入門
  • この文書の構成
  • Quartz ディスプレイサービスの概要
  • ディスプレイの状態
    ディスプレイ ID
    ディスプレイモード(OS X v10.6 以降)
    ディスプレイモード(OS X v10.5)
    ディスプレイの配置
    ディスプレイのミラーリング
  • ディスプレイに関する情報の取得
  • ディスプレイ状態情報の取得(OS X v10.6 以降)
    ディスプレイ状態情報の取得(OS X v10.5)
    ディスプレイモード情報の取得(OS X v10.6 以降)
    ディスプレイモード情報の取得(OS X v10.5)
  • ディスプレイのキャプチャ
  • ディスプレイモードの変更(OS X v10.6以降)
  • 使用可能なモードからベストのモードを見つける
  • ディスプレイモードの変更(OS X v10.5)
  • メインディスプレイのモードを設定
  • 処理(Transaction) を使用したディスプレイの構成
  • フェード効果の使用
  • すべてのディスプレイをフェードする
    単一のディスプレイをフェードする
  • 構成変更の通知
  • マウスカーソルの制御
  • 文書改定履歴












  • トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)