Changeset 29228 in webkit


Ignore:
Timestamp:
Jan 7, 2008 8:23:06 AM (16 years ago)
Author:
alp@webkit.org
Message:

2008-01-07 Luca Bruno <lethalman88@gmail.com>

Reviewed by Alp Toker.

http://bugs.webkit.org/show_bug.cgi?id=16745
[GTK] Context menu doesn't feel or look native - no icons

Use GTK+ stock icons for menu items where possible.

  • platform/gtk/ContextMenuItemGtk.cpp: (WebCore::gtkStockIDFromContextMenuAction): (WebCore::ContextMenuItem::createNativeMenuItem): (WebCore::ContextMenuItem::setAction):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r29227 r29228  
     12008-01-07  Luca Bruno  <lethalman88@gmail.com>
     2
     3        Reviewed by Alp Toker.
     4
     5        http://bugs.webkit.org/show_bug.cgi?id=16745
     6        [GTK] Context menu doesn't feel or look native - no icons
     7
     8        Use GTK+ stock icons for menu items where possible.
     9
     10        * platform/gtk/ContextMenuItemGtk.cpp:
     11        (WebCore::gtkStockIDFromContextMenuAction):
     12        (WebCore::ContextMenuItem::createNativeMenuItem):
     13        (WebCore::ContextMenuItem::setAction):
     14
    1152008-01-07  Dan Bernstein  <mitz@apple.com>
    216
  • trunk/WebCore/platform/gtk/ContextMenuItemGtk.cpp

    r29130 r29228  
    2929namespace WebCore {
    3030
     31static const char* gtkStockIDFromContextMenuAction(const ContextMenuAction& action)
     32{
     33    switch (action) {
     34    case ContextMenuItemTagCopyLinkToClipboard:
     35    case ContextMenuItemTagCopyImageToClipboard:
     36    case ContextMenuItemTagCopy:
     37        return GTK_STOCK_COPY;
     38    case ContextMenuItemTagOpenLinkInNewWindow:
     39    case ContextMenuItemTagOpenImageInNewWindow:
     40    case ContextMenuItemTagOpenFrameInNewWindow:
     41        return GTK_STOCK_OPEN;
     42    case ContextMenuItemTagDownloadLinkToDisk:
     43    case ContextMenuItemTagDownloadImageToDisk:
     44        return GTK_STOCK_SAVE;
     45    case ContextMenuItemTagGoBack:
     46        return GTK_STOCK_GO_BACK;
     47    case ContextMenuItemTagGoForward:
     48        return GTK_STOCK_GO_FORWARD;
     49    case ContextMenuItemTagStop:
     50        return GTK_STOCK_STOP;
     51    case ContextMenuItemTagReload:
     52        return GTK_STOCK_REFRESH;
     53    case ContextMenuItemTagCut:
     54        return GTK_STOCK_CUT;
     55    case ContextMenuItemTagPaste:
     56        return GTK_STOCK_PASTE;
     57    case ContextMenuItemTagSpellingGuess:
     58        return GTK_STOCK_INFO;
     59    case ContextMenuItemTagIgnoreSpelling:
     60        return GTK_STOCK_NO;
     61    case ContextMenuItemTagLearnSpelling:
     62        return GTK_STOCK_OK;
     63    case ContextMenuItemTagOther:
     64        return GTK_STOCK_MISSING_IMAGE;
     65    case ContextMenuItemTagSearchInSpotlight:
     66        return GTK_STOCK_FIND;
     67    case ContextMenuItemTagOpenWithDefaultApplication:
     68        return GTK_STOCK_OPEN;
     69    case ContextMenuItemPDFZoomIn:
     70        return GTK_STOCK_ZOOM_IN;
     71    case ContextMenuItemPDFZoomOut:
     72        return GTK_STOCK_ZOOM_OUT;
     73    case ContextMenuItemPDFAutoSize:
     74        return GTK_STOCK_ZOOM_FIT;
     75    case ContextMenuItemPDFNextPage:
     76        return GTK_STOCK_GO_FORWARD;
     77    case ContextMenuItemPDFPreviousPage:
     78        return GTK_STOCK_GO_BACK;
     79    // New tags, not part of API
     80    case ContextMenuItemTagOpenLink:
     81        return GTK_STOCK_OPEN;
     82    case ContextMenuItemTagCheckSpelling:
     83        return GTK_STOCK_SPELL_CHECK;
     84    case ContextMenuItemTagFontMenu:
     85        return GTK_STOCK_SELECT_FONT;
     86    case ContextMenuItemTagShowFonts:
     87        return GTK_STOCK_SELECT_FONT;
     88    case ContextMenuItemTagBold:
     89        return GTK_STOCK_BOLD;
     90    case ContextMenuItemTagItalic:
     91        return GTK_STOCK_ITALIC;
     92    case ContextMenuItemTagUnderline:
     93        return GTK_STOCK_UNDERLINE;
     94    case ContextMenuItemTagShowColors:
     95        return GTK_STOCK_SELECT_COLOR;
     96    default:
     97        return NULL;
     98    }
     99}
     100
    31101// Extract the ActionType from the menu item
    32102ContextMenuItem::ContextMenuItem(GtkMenuItem* item)
     
    74144            item = GTK_MENU_ITEM(gtk_check_menu_item_new_with_label(menu.title.utf8().data()));
    75145            gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), menu.checked);
    76         } else
    77             item = GTK_MENU_ITEM(gtk_menu_item_new_with_label(menu.title.utf8().data()));
    78        
     146        } else {
     147            if (const gchar* stockID = gtkStockIDFromContextMenuAction(menu.action)) {
     148                item = GTK_MENU_ITEM(gtk_image_menu_item_new_with_label(menu.title.utf8().data()));
     149                GtkWidget* image = gtk_image_new_from_stock(stockID, GTK_ICON_SIZE_MENU);
     150                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
     151            } else
     152                item = GTK_MENU_ITEM(gtk_menu_item_new_with_label(menu.title.utf8().data()));
     153        }
     154
    79155        ContextMenuAction* menuAction = static_cast<ContextMenuAction*>(malloc(sizeof(ContextMenuAction*)));
    80156        *menuAction = menu.action;
     
    84160
    85161        if (menu.subMenu)
    86            gtk_menu_item_set_submenu(item, GTK_WIDGET(menu.subMenu)); 
     162           gtk_menu_item_set_submenu(item, GTK_WIDGET(menu.subMenu));
    87163    }
    88164
     
    115191{
    116192    m_platformDescription.action = action;
    117 
    118193}
    119194
Note: See TracChangeset for help on using the changeset viewer.