2011-07-14 39 views
1

は、glut(glutCreateWindow( "title");)を使用してウィンドウが作成されたときに、MAC OSXのメニューバー項目を削除する手段ですか?Glutウィンドウ - MAC OSXのメニューバー

またはC/C++とglutを使用してOSXでOpenGLのための(menuless)ウィンドウを作成する他の方法がありますか?

+0

どのメニューバーについて話していますか? –

+0

MacOSXのトップメニュー - ファイル、編集、ウィンドウ –

+0

メニューバーを完全に削除/非表示しますか?または、いくつかのアイテムを選択的に削除したいですか? – Yuji

答えて

0

Glutはメニューバーとは関係ありません。あなたができることは、アプリケーションをglutFullscreen()で全画面表示させ、Glutウィンドウにいくつかのビューポートを定義して独自のウィンドウをシミュレートすることです。

3

glutはMac OSX上でメニューバーの項目やキーボードショートカットを作成しています(Command + Sを試してみると驚くでしょう)。 Cocoaにアクセスすることなくこれらの機能を削除する簡単な方法はありません。

http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html

GLUTでのメニューを取り除くためには、次の操作を実行する必要があります:ここから GLUTのソースコードは、すべてのものが実装されている場所を示し

  1. # main.cppファイルに "Cocoa/Cocoa.h"を含めてください。
  2. 、あなたのmain.cppにファイルを右クリックして「情報を見る」を選択し、「全般」タブで
  3. をsourcecode.cpp.objcppするために、あなたの「ファイルタイプ」を設定XcodeプロジェクトでのCocoaフレームワークが含まれ
  4. )(glutInit後に次のコードを追加します。

    if (NSApp){ 
        NSMenu  *menu; 
        NSMenuItem *menuItem; 
    
        [NSApp setMainMenu:[[NSMenu alloc] init]]; 
    
    menu = [[NSMenu alloc] initWithTitle:@""]; 
    [menu addItemWithTitle:@"About..." action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; 
    
    menuItem = [[NSMenuItem alloc] initWithTitle:@"Apple" action:nil keyEquivalent:@""]; 
    [menuItem setSubmenu:menu]; 
    [[NSApp mainMenu] addItem:menuItem]; 
    [NSApp setAppleMenu:menu]; 
    } 
    

コードはここからトム・デ・うなり声である:http://www.degrunt.net/2010/09/22/using-nsmenu-outside-the-nib/

この意志Apps名でメニュー内の「About ...」ボタンだけでアプリケーションを設定してください。メニューを削除するだけで、GLUTがメニューを予期し、コールバックを登録しているのでクラッシュすることになります。

私はこれに答えてウェブを検索し、同じ問題に遭遇した他の人に役立つことを願っています。

+0

ありがとう!私はまだMac App Storeの提出にGLUTを使用しています。メニューについては気が利いているようです。私のゲームでは使用しないので、印刷と保存のメニュー項目を削除する必要があります。彼らは何もしないので、私はファイル、編集、およびWindowsのメニューを削除したいと思います、どうすればいいですか?私は、デフォルトのアプリケーションメニューにGLUT設定のリンクが含まれているので、AppleにはCmd + Qショートカットが必要です。 – Rasterman