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
30#include "ContextMenu.h"
31
32namespace WebCore {
33
34ContextMenuItem::ContextMenuItem(ContextMenu* subMenu)
35{
36    m_platformDescription.type = SubmenuType;
37    m_platformDescription.action = ContextMenuItemTagNoAction;
38    if (subMenu)
39        setSubMenu(subMenu);
40}
41
42ContextMenuItem::ContextMenuItem(ContextMenuItemType type, ContextMenuAction action,
43                                 const String& title, ContextMenu* subMenu)
44{
45    m_platformDescription.type = type;
46    m_platformDescription.action = action;
47    m_platformDescription.title = title;
48    if (subMenu)
49        setSubMenu(subMenu);
50}
51
52ContextMenuItem::ContextMenuItem(ContextMenuItemType, ContextMenuAction, const String&, bool, bool)
53{
54    // FIXME: Implement
55}
56
57ContextMenuItem::ContextMenuItem(ContextMenuAction, const String&, bool, bool, Vector<ContextMenuItem>&)
58{
59    // FIXME: Implement
60}
61
62ContextMenuItem::~ContextMenuItem()
63{
64}
65
66PlatformMenuItemDescription ContextMenuItem::releasePlatformDescription()
67{
68    return m_platformDescription;
69}
70
71ContextMenuItemType ContextMenuItem::type() const
72{
73    return m_platformDescription.type;
74}
75
76void ContextMenuItem::setType(ContextMenuItemType type)
77{
78    m_platformDescription.type = type;
79}
80
81ContextMenuAction ContextMenuItem::action() const
82{
83    return m_platformDescription.action;
84}
85
86void ContextMenuItem::setAction(ContextMenuAction action)
87{
88    m_platformDescription.action = action;
89}
90
91String ContextMenuItem::title() const
92{
93    return m_platformDescription.title;
94}
95
96void ContextMenuItem::setTitle(const String& title)
97{
98    m_platformDescription.title = title;
99}
100
101
102PlatformMenuDescription ContextMenuItem::platformSubMenu() const
103{
104    return &m_platformDescription.subMenuItems;
105}
106
107void ContextMenuItem::setSubMenu(ContextMenu* menu)
108{
109    m_platformDescription.subMenuItems = *menu->platformDescription();
110}
111
112void ContextMenuItem::setSubMenu(Vector<ContextMenuItem>&)
113{
114    // FIXME: Implement
115}
116
117void ContextMenuItem::setChecked(bool on)
118{
119    m_platformDescription.checked = on;
120}
121
122bool ContextMenuItem::checked() const
123{
124    // FIXME - Implement
125    return false;
126}
127
128void ContextMenuItem::setEnabled(bool on)
129{
130    m_platformDescription.enabled = on;
131}
132
133bool ContextMenuItem::enabled() const
134{
135    return m_platformDescription.enabled;
136}
137
138}
139// vim: ts=4 sw=4 et
140