1635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project/* 2635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Copyright (C) 2008 Apple Computer, Inc. All rights reserved. 3635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 4635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * Redistribution and use in source and binary forms, with or without 5635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * modification, are permitted provided that the following conditions 6635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * are met: 7635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 8635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer. 9635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 10635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 11635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * documentation and/or other materials provided with the distribution. 12635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * 13635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project */ 25635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 26635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "config.h" 27635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 28635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "ContextMenuItem.h" 29635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "ContextMenu.h" 30635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project#include "PlatformMenuDescription.h" 31635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 32635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectusing namespace WebCore; 33635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 34635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectContextMenuItem::ContextMenuItem(ContextMenu* subMenu) 35635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.type = SubmenuType; 37635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.action = ContextMenuItemTagNoAction; 38635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (subMenu) 39635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project setSubMenu(subMenu); 40635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project else 41635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.subMenu = 0; 42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 43635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectContextMenuItem::ContextMenuItem(ContextMenuItemType type, ContextMenuAction action, 45635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project const String& title, ContextMenu* subMenu) 46635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 47635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.type = type; 48635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.action = action; 49635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.title = title; 50635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project if (subMenu) 51635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project setSubMenu(subMenu); 52635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project else 53635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.subMenu = 0; 54635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 55635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 56635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectContextMenuItem::~ContextMenuItem() 57635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 59635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectPlatformMenuItemDescription ContextMenuItem::releasePlatformDescription() 61635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 62635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return m_platformDescription; 63635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 64635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 65635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectContextMenuItemType ContextMenuItem::type() const 66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 67635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return m_platformDescription.type; 68635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 69635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 70635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setType(ContextMenuItemType type) 71635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 72635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.type = type; 73635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 74635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 75635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectContextMenuAction ContextMenuItem::action() const 76635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 77635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return m_platformDescription.action; 78635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 79635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 80635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setAction(ContextMenuAction action) 81635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 82635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.action = action; 83635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 84635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 85635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source ProjectString ContextMenuItem::title() const 86635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 87635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project return m_platformDescription.title; 88635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 89635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 90635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setTitle(const String& title) 91635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 92635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.title = title; 93635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 94635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 95635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setSubMenu(ContextMenu* subMenu) 96635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 97635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.subMenu = subMenu->releasePlatformDescription(); 98635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 99635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 100635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setChecked(bool shouldCheck) 101635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 102635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.checked = shouldCheck; 103635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 104635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project 105635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Projectvoid ContextMenuItem::setEnabled(bool shouldEnable) 106635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{ 107635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project m_platformDescription.enabled = shouldEnable; 108635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} 109