1/* 2 * Copyright (C) 2011 Samsung Electronics 3 * Copyright (C) 2012 Intel Corporation. All rights reserved. 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21#ifndef InputMethodContextEfl_h 22#define InputMethodContextEfl_h 23 24#include <Ecore_IMF.h> 25#include <Evas.h> 26#include <wtf/OwnPtr.h> 27#include <wtf/PassOwnPtr.h> 28 29class EwkView; 30 31namespace WebKit { 32 33class WebPageProxy; 34 35class InputMethodContextEfl { 36public: 37 static PassOwnPtr<InputMethodContextEfl> create(EwkView* viewImpl, Evas* canvas) 38 { 39 OwnPtr<Ecore_IMF_Context> context = createIMFContext(canvas); 40 if (!context) 41 return nullptr; 42 43 return adoptPtr(new InputMethodContextEfl(viewImpl, context.release())); 44 } 45 ~InputMethodContextEfl(); 46 47 void handleMouseUpEvent(const Evas_Event_Mouse_Up* upEvent); 48 void handleKeyDownEvent(const Evas_Event_Key_Down* downEvent, bool* isFiltered); 49 void updateTextInputState(); 50 51private: 52 InputMethodContextEfl(EwkView*, PassOwnPtr<Ecore_IMF_Context>); 53 54 static PassOwnPtr<Ecore_IMF_Context> createIMFContext(Evas* canvas); 55 static void onIMFInputSequenceComplete(void* data, Ecore_IMF_Context*, void* eventInfo); 56 static void onIMFPreeditSequenceChanged(void* data, Ecore_IMF_Context*, void* eventInfo); 57 58 EwkView* m_view; 59 OwnPtr<Ecore_IMF_Context> m_context; 60 bool m_focused; 61}; 62 63} // namespace WebKit 64 65#endif // InputMethodContextEfl_h 66