18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
29e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block * Copyright 2010, The Android Open Source Project
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  * Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  * Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
169e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
269e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#ifndef SearchPopupMenuAndroid_h
279e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#define SearchPopupMenuAndroid_h
289e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "SearchPopupMenu.h"
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore {
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
331caed8e3c0af63e20009e74642e2574e1185c38eLeon Scrogginsclass IntRect;
341caed8e3c0af63e20009e74642e2574e1185c38eLeon Scrogginsclass PopupMenu;
359e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockclass FrameView;
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
371caed8e3c0af63e20009e74642e2574e1185c38eLeon Scrogginsclass DummyPopup : public PopupMenu {
381caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins public:
391caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins     virtual ~DummyPopup() {}
401caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins     virtual void show(const IntRect&, FrameView*, int index) { }
411caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins     virtual void hide() { }
421caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins     virtual void updateFromElement() { }
431caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins     virtual void disconnectClient() { }
441caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins};
451caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins
469e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockclass SearchPopupMenuAndroid : public SearchPopupMenu {
479e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockpublic:
481caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins    SearchPopupMenuAndroid() : m_popup(adoptRef(new DummyPopup)) { }
499e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block    virtual PopupMenu* popupMenu() { return m_popup.get(); }
509e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block    virtual void saveRecentSearches(const AtomicString&, const Vector<String>&) { }
519e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block    virtual void loadRecentSearches(const AtomicString&, Vector<String>&) { }
529e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block    virtual bool enabled() { return false; }
539e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block
549e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Blockprivate:
551caed8e3c0af63e20009e74642e2574e1185c38eLeon Scroggins    RefPtr<PopupMenu> m_popup;
569e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block};
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
580bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch}
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
609e4593fcc93d1bf0b5d5aa00b17ed2177c8eed06Steve Block#endif // SearchPopupMenuAndroid_h
61