diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebCore/platform/wx/PopupMenuWx.cpp | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebCore/platform/wx/PopupMenuWx.cpp')
-rw-r--r-- | WebCore/platform/wx/PopupMenuWx.cpp | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/WebCore/platform/wx/PopupMenuWx.cpp b/WebCore/platform/wx/PopupMenuWx.cpp deleted file mode 100644 index 4563b77..0000000 --- a/WebCore/platform/wx/PopupMenuWx.cpp +++ /dev/null @@ -1,113 +0,0 @@ -/* - * This file is part of the popup menu implementation for <select> elements in WebCore. - * - * Copyright (C) 2008 Apple Computer, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" -#include "PopupMenu.h" - -#include "Frame.h" -#include "FrameView.h" -#include "NotImplemented.h" -#include "PopupMenuClient.h" -#include "PlatformString.h" - -#include <wx/defs.h> -#if __WXMSW__ -#include <wx/msw/winundef.h> -#endif -#include <wx/event.h> -#include <wx/menu.h> - -static int s_menuStartId = wxNewId(); - - - -namespace WebCore { - -PopupMenu::PopupMenu(PopupMenuClient* client) - : m_popupClient(client) - , m_menu(NULL) -{ -} - -PopupMenu::~PopupMenu() -{ - delete m_menu; -} - -void PopupMenu::show(const IntRect& r, FrameView* v, int index) -{ - // just delete and recreate - delete m_menu; - ASSERT(client()); - - wxWindow* nativeWin = v->platformWidget(); - - if (nativeWin) { - // construct the menu - m_menu = new wxMenu(); - int size = client()->listSize(); - for (int i = 0; i < size; i++) { - int id = s_menuStartId + i; - - if (client()->itemIsSeparator(i)) { - m_menu->AppendSeparator(); - } - else { - // FIXME: appending a menu item with an empty label asserts in - // wx. This needs to be fixed at wx level so that we can have - // the concept of "no selection" in choice boxes, etc. - if (!client()->itemText(i).isEmpty()) - m_menu->Append(s_menuStartId + i, client()->itemText(i)); - } - } - nativeWin->Connect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenu::OnMenuItemSelected), NULL, this); - nativeWin->PopupMenu(m_menu, r.x() - v->scrollX(), r.y() - v->scrollY()); - nativeWin->Disconnect(s_menuStartId, s_menuStartId + (size-1), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(PopupMenu::OnMenuItemSelected), NULL, this); - } -} - -void PopupMenu::OnMenuItemSelected(wxCommandEvent& event) -{ - if (client()) { - client()->valueChanged(event.GetId() - s_menuStartId); - client()->hidePopup(); - } - // TODO: Do we need to call Disconnect here? Do we have a ref to the native window still? -} - -void PopupMenu::hide() -{ - // we don't need to do anything here, the native control only exists during the time - // show is called -} - -void PopupMenu::updateFromElement() -{ - client()->setTextFromItem(m_popupClient->selectedIndex()); -} - -bool PopupMenu::itemWritingDirectionIsNatural() -{ - return false; -} - -} |