1/*
2 * Copyright (C) 2006 Zack Rusin <zack@kde.org>
3 * Copyright (C) 2007 Staikos Computing Services Inc. <info@staikos.net>
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 *    notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 *    notice, this list of conditions and the following disclaimer in the
12 *    documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include "config.h"
28#include "ContextMenuItem.h"
29#include "ContextMenu.h"
30
31namespace WebCore {
32
33ContextMenuItem::ContextMenuItem(ContextMenu* subMenu)
34{
35    m_platformDescription.type = SubmenuType;
36    m_platformDescription.action = ContextMenuItemTagNoAction;
37    if (subMenu)
38        setSubMenu(subMenu);
39}
40
41ContextMenuItem::ContextMenuItem(ContextMenuItemType type, ContextMenuAction action,
42                                 const String& title, ContextMenu* subMenu)
43{
44    m_platformDescription.type = type;
45    m_platformDescription.action = action;
46    m_platformDescription.title = title;
47    if (subMenu)
48        setSubMenu(subMenu);
49}
50
51ContextMenuItem::~ContextMenuItem()
52{
53}
54
55PlatformMenuItemDescription ContextMenuItem::releasePlatformDescription()
56{
57    return m_platformDescription;
58}
59
60ContextMenuItemType ContextMenuItem::type() const
61{
62    return m_platformDescription.type;
63}
64
65void ContextMenuItem::setType(ContextMenuItemType type)
66{
67    m_platformDescription.type = type;
68}
69
70ContextMenuAction ContextMenuItem::action() const
71{
72    return m_platformDescription.action;
73}
74
75void ContextMenuItem::setAction(ContextMenuAction action)
76{
77    m_platformDescription.action = action;
78}
79
80String ContextMenuItem::title() const
81{
82    return m_platformDescription.title;
83}
84
85void ContextMenuItem::setTitle(const String& title)
86{
87    m_platformDescription.title = title;
88}
89
90
91PlatformMenuDescription ContextMenuItem::platformSubMenu() const
92{
93    return &m_platformDescription.subMenuItems;
94}
95
96void ContextMenuItem::setSubMenu(ContextMenu* menu)
97{
98    m_platformDescription.subMenuItems = *menu->platformDescription();
99}
100
101void ContextMenuItem::setChecked(bool on)
102{
103    m_platformDescription.checked = on;
104}
105
106void ContextMenuItem::setEnabled(bool on)
107{
108    m_platformDescription.enabled = on;
109}
110
111bool ContextMenuItem::enabled() const
112{
113    return m_platformDescription.enabled;
114}
115
116}
117// vim: ts=4 sw=4 et
118