跳到主要內容

SWT now supports Mac Application Menu (About, Preferences, and Quit)


Hooking Mac's application menu is no longer a trouble issue for SWT (standard widget toolkits) developers.  Display.getSystemMenu() is a new API returns the system-provided menu for the application.  All you have to do is comparing a MenuItem's id with various SWT.ID_* constants.  You can even change default system MenuItem's name.

  • SWT.ID_QUIT
  • SWT.ID_HIDE
  • SWT.ID_HIDE_OTHERS
  • SWT.ID_PREFERENCES
  • SWT.ID_ABOUT

Display.getSystemMenu() returns null if not running on Mac OS X.  Here's a sample usage:

Menu systemMenu = Display.getDefault().getSystemMenu();
if (systemMenu != null) {
    MenuItem sysItem = getSystemItem(systemMenu, SWT.ID_PREFERENCES);
    sysItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            System.out.println("Preferences");
        }
    });
    sysItem.setText("My Preferences");
}

You need a getSystemItem() function to make above code work.

static MenuItem getSystemItem(Menu menu, int id) {
    for (MenuItem item : menu.getItems()) {
        if (item.getID() == id) return item;
    }
    return null;
}

That's all.  Check SWT snippet354 for a detailed example of how you can use this API in a cross-platform application.  It's much easier than my previous way hooking application menu by CocoaUIEnhancer.

留言

張貼留言

熱門文章

差不多食譜:手工巧克力餅乾 Chocolate Cookies

又是手工餅乾,最近一連出了兩份餅乾食譜,這個「手工巧克力餅乾」已經是第三份了。會不會有更多呢?我可以告訴大家,這是肯定的。 要怪就怪這個陰鬱的冬季雨天,哪裡都不方便去,也懶得出去。餅乾櫃空在那邊已經很久了,雖然有時候會嘴饞,但也沒有迫切去補貨的必要。反正經常開伙,平常該有的材料都會有,自己弄個成分完全透明的零食,也是個不錯的選擇。再說,用烤箱進行烘焙時,房間會變得比較乾燥,也比較溫暖。在夏天是個折磨,但到了冬天,這種感覺還滿不錯的。 話不多說,開始進行這一道「手工巧克力餅乾」的準備工作。

差不多食譜:白糖粿 Beh Teung Guai 傳統小吃版的台式吉拿棒 Taiwanese Churros

只要有個油炸鍋,將糯米糰炸到表面金黃,裹上白糖,居家版「白糖粿」意外的簡單。 說到這「白糖粿」,就算在台灣土生土長,還是有很多人沒聽過這個點心。要不是它在網路上掀起熱門討論,恐怕到現在也只有老饕知道去哪裡解饞。但現在「差不多食譜」把它搬到回家,讓你在家裡也能自己做來吃。 至於怎麼跟外國朋友介紹,其實困擾了我一陣子。腦子裡根本沒有對應的東西,它很像年糕、麻糬、湯圓,實際上材料也一樣,但做法上的差異卻讓白糖粿又不同於上述那些食物。最後,看到西方的吉拿棒(churro),在做法和吃法上都很類似白糖粿,兩者都是弄成長條油炸,然後裹上糖粉食用。這樣,姑且就把它稱做台式的吉拿棒好了,英文除了音譯的Beh Teung Guai以外,就直翻成 Taiwanese Churros。不同於台北東區賣吉拿棒的 Street Curros,這可是道道地地 Taiwan Street Curros,而且好像只有南部限定喔!說太多了,直接看做法。

Excel運用VBA抓取Yahoo Finance APIs股票資料

Yahoo Finance APIs提供了多樣的應用程式接口,讓使用者能夠獲取Yahoo Finance的資料。這篇文章要介紹的,是多數人會用到的股票資料。實作的例子來自於 http://www.gummy-stuff.org/Yahoo-data.htm ,我只是將內容稍微解釋,並且換成台灣股票的例子。