blob: dac5137d52d250fa8a9ae76296ef30bf3277b493 [file] [log] [blame]
/*
* Copyright (C) 2012 Igalia S.L.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#if !defined(__WEBKIT_H_INSIDE__) && !defined(WEBKIT2_COMPILATION)
#error "Only <wpe/webkit.h> can be included directly."
#endif
#ifndef WebKitInputMethodContext_h
#define WebKitInputMethodContext_h
#include <glib-object.h>
#include <wpe/WebKitDefines.h>
#include <wpe/WebKitColor.h>
#include <wpe/wpe.h>
G_BEGIN_DECLS
#define WEBKIT_TYPE_INPUT_METHOD_CONTEXT (webkit_input_method_context_get_type())
#define WEBKIT_INPUT_METHOD_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_INPUT_METHOD_CONTEXT, WebKitInputMethodContext))
#define WEBKIT_INPUT_METHOD_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_INPUT_METHOD_CONTEXT, WebKitInputMethodContextClass))
#define WEBKIT_IS_INPUT_METHOD_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_INPUT_METHOD_CONTEXT))
#define WEBKIT_IS_INPUT_METHOD_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_INPUT_METHOD_CONTEXT))
#define WEBKIT_INPUT_METHOD_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_INPUT_METHOD_CONTEXT, WebKitInputMethodContextClass))
#define WEBKIT_TYPE_INPUT_METHOD_UNDERLINE (webkit_input_method_underline_get_type())
/**
* WebKitInputPurpose:
* @WEBKIT_INPUT_PURPOSE_FREE_FORM: Editable element expects any characters
* @WEBKIT_INPUT_PURPOSE_DIGITS: Editable element expects digits
* @WEBKIT_INPUT_PURPOSE_NUMBER: Editable element expects a number
* @WEBKIT_INPUT_PURPOSE_PHONE: Editable element expects a telephone
* @WEBKIT_INPUT_PURPOSE_URL: Editable element expects a URL
* @WEBKIT_INPUT_PURPOSE_EMAIL: Editable element expects an email
* @WEBKIT_INPUT_PURPOSE_PASSWORD: Editable element expects a password
*
* Enum values used to describe the primary purpose of the active editable element.
*
* Since: 2.28
*/
typedef enum {
WEBKIT_INPUT_PURPOSE_FREE_FORM,
WEBKIT_INPUT_PURPOSE_DIGITS,
WEBKIT_INPUT_PURPOSE_NUMBER,
WEBKIT_INPUT_PURPOSE_PHONE,
WEBKIT_INPUT_PURPOSE_URL,
WEBKIT_INPUT_PURPOSE_EMAIL,
WEBKIT_INPUT_PURPOSE_PASSWORD
} WebKitInputPurpose;
/**
* WebKitInputHints:
* @WEBKIT_INPUT_HINT_NONE: No special behavior suggested
* @WEBKIT_INPUT_HINT_SPELLCHECK: Suggest spell checking
* @WEBKIT_INPUT_HINT_LOWERCASE: Suggest to not autocapitlize
* @WEBKIT_INPUT_HINT_UPPERCASE_CHARS: Suggest to capitalize all text
* @WEBKIT_INPUT_HINT_UPPERCASE_WORDS: Suggest to capitalize the first character of each word
* @WEBKIT_INPUT_HINT_UPPERCASE_SENTENCES: Suggest to capitalize the first word of each sentence
* @WEBKIT_INPUT_HINT_INHIBIT_OSK: Suggest to not show an onscreen keyboard
*
* Enum values used to describe hints that might be taken into account by input methods.
*
* Since: 2.28
*/
typedef enum {
WEBKIT_INPUT_HINT_NONE = 0,
WEBKIT_INPUT_HINT_SPELLCHECK = 1 << 0,
WEBKIT_INPUT_HINT_LOWERCASE = 1 << 1,
WEBKIT_INPUT_HINT_UPPERCASE_CHARS = 1 << 2,
WEBKIT_INPUT_HINT_UPPERCASE_WORDS = 1 << 3,
WEBKIT_INPUT_HINT_UPPERCASE_SENTENCES = 1 << 4,
WEBKIT_INPUT_HINT_INHIBIT_OSK = 1 << 5
} WebKitInputHints;
typedef struct _WebKitInputMethodContext WebKitInputMethodContext;
typedef struct _WebKitInputMethodContextClass WebKitInputMethodContextClass;
typedef struct _WebKitInputMethodContextPrivate WebKitInputMethodContextPrivate;
typedef struct _WebKitInputMethodUnderline WebKitInputMethodUnderline;
struct _WebKitInputMethodContext {
GObject parent;
/*< private >*/
WebKitInputMethodContextPrivate *priv;
};
struct _WebKitInputMethodContextClass {
GObjectClass parent_class;
/* Signals */
void (* preedit_started) (WebKitInputMethodContext *context);
void (* preedit_changed) (WebKitInputMethodContext *context);
void (* preedit_finished) (WebKitInputMethodContext *context);
void (* committed) (WebKitInputMethodContext *context,
const char *text);
void (* delete_surrounding) (WebKitInputMethodContext *context,
int offset,
guint n_chars);
/* Virtual functions */
void (* set_enable_preedit) (WebKitInputMethodContext *context,
gboolean enabled);
void (* get_preedit) (WebKitInputMethodContext *context,
gchar **text,
GList **underlines,
guint *cursor_offset);
gboolean (* filter_key_event) (WebKitInputMethodContext *context,
struct wpe_input_keyboard_event *key_event);
void (* notify_focus_in) (WebKitInputMethodContext *context);
void (* notify_focus_out) (WebKitInputMethodContext *context);
void (* notify_cursor_area) (WebKitInputMethodContext *context,
int x,
int y,
int width,
int height);
void (* notify_surrounding) (WebKitInputMethodContext *context,
const gchar *text,
guint length,
guint cursor_index,
guint selection_index);
void (* reset) (WebKitInputMethodContext *context);
void (*_webkit_reserved0) (void);
void (*_webkit_reserved1) (void);
void (*_webkit_reserved2) (void);
void (*_webkit_reserved3) (void);
void (*_webkit_reserved4) (void);
void (*_webkit_reserved5) (void);
void (*_webkit_reserved6) (void);
void (*_webkit_reserved7) (void);
};
WEBKIT_API GType
webkit_input_method_context_get_type (void);
WEBKIT_API void
webkit_input_method_context_set_enable_preedit (WebKitInputMethodContext *context,
gboolean enabled);
WEBKIT_API void
webkit_input_method_context_get_preedit (WebKitInputMethodContext *context,
char **text,
GList **underlines,
guint *cursor_offset);
WEBKIT_API gboolean
webkit_input_method_context_filter_key_event (WebKitInputMethodContext *context,
struct wpe_input_keyboard_event *key_event);
WEBKIT_API void
webkit_input_method_context_notify_focus_in (WebKitInputMethodContext *context);
WEBKIT_API void
webkit_input_method_context_notify_focus_out (WebKitInputMethodContext *context);
WEBKIT_API void
webkit_input_method_context_notify_cursor_area (WebKitInputMethodContext *context,
int x,
int y,
int width,
int height);
WEBKIT_API void
webkit_input_method_context_notify_surrounding (WebKitInputMethodContext *context,
const gchar *text,
int length,
guint cursor_index,
guint selection_index);
WEBKIT_API void
webkit_input_method_context_reset (WebKitInputMethodContext *context);
WEBKIT_API GType
webkit_input_method_underline_get_type (void);
WEBKIT_API WebKitInputMethodUnderline *
webkit_input_method_underline_new (guint start_offset,
guint end_offset);
WEBKIT_API WebKitInputMethodUnderline *
webkit_input_method_underline_copy (WebKitInputMethodUnderline *underline);
WEBKIT_API void
webkit_input_method_underline_free (WebKitInputMethodUnderline *underline);
WEBKIT_API void
webkit_input_method_underline_set_color (WebKitInputMethodUnderline *underline,
WebKitColor *color);
WEBKIT_API WebKitInputPurpose
webkit_input_method_context_get_input_purpose (WebKitInputMethodContext *context);
WEBKIT_API void
webkit_input_method_context_set_input_purpose (WebKitInputMethodContext *context,
WebKitInputPurpose purpose);
WEBKIT_API WebKitInputHints
webkit_input_method_context_get_input_hints (WebKitInputMethodContext *context);
WEBKIT_API void
webkit_input_method_context_set_input_hints (WebKitInputMethodContext *context,
WebKitInputHints hints);
G_END_DECLS
#endif