]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkimcontext.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkimcontext.h
index 6435c4eaf84748272331038f336e8f063fc57ff1..55fe53f8710171adc2a8131531412fc3134a81e6 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef __GTK_IM_CONTEXT_H__
 #define __GTK_IM_CONTEXT_H__
 
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gdk/gdk.h>
-#include <gtk/gtkobject.h>
-#include <pango/pango.h>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 #define GTK_TYPE_IM_CONTEXT              (gtk_im_context_get_type ())
-#define GTK_IM_CONTEXT(obj)              (GTK_CHECK_CAST ((obj), GTK_TYPE_IM_CONTEXT, GtkIMContext))
-#define GTK_IM_CONTEXT_CLASS(klass)      (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_IM_CONTEXT, GtkIMContextClass))
-#define GTK_IS_IM_CONTEXT(obj)           (GTK_CHECK_TYPE ((obj), GTK_TYPE_IM_CONTEXT))
-#define GTK_IS_IM_CONTEXT_CLASS(klass)   (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IM_CONTEXT))
-#define GTK_IM_CONTEXT_GET_CLASS(obj)    (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_IM_CONTEXT, GtkIMContextClass))
+#define GTK_IM_CONTEXT(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IM_CONTEXT, GtkIMContext))
+#define GTK_IM_CONTEXT_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_IM_CONTEXT, GtkIMContextClass))
+#define GTK_IS_IM_CONTEXT(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IM_CONTEXT))
+#define GTK_IS_IM_CONTEXT_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IM_CONTEXT))
+#define GTK_IM_CONTEXT_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IM_CONTEXT, GtkIMContextClass))
 
 
 typedef struct _GtkIMContext       GtkIMContext;
@@ -42,50 +41,86 @@ typedef struct _GtkIMContextClass  GtkIMContextClass;
 
 struct _GtkIMContext
 {
-  GtkObject object;
+  GObject parent_instance;
 };
 
 struct _GtkIMContextClass
 {
-  GtkObjectClass parent_class;
+  /*< private >*/
+  GObjectClass parent_class;
 
+  /*< public >*/
   /* Signals */
-  void (*preedit_start)   (GtkIMContext *context);
-  void (*preedit_end)     (GtkIMContext *context);
-  void (*preedit_changed) (GtkIMContext *context);
-  void (*commit)          (GtkIMContext *context, const gchar *str);
+  void     (*preedit_start)        (GtkIMContext *context);
+  void     (*preedit_end)          (GtkIMContext *context);
+  void     (*preedit_changed)      (GtkIMContext *context);
+  void     (*commit)               (GtkIMContext *context, const gchar *str);
+  gboolean (*retrieve_surrounding) (GtkIMContext *context);
+  gboolean (*delete_surrounding)   (GtkIMContext *context,
+                                   gint          offset,
+                                   gint          n_chars);
 
   /* Virtual functions */
-  void     (*set_client_window)  (GtkIMContext   *context,
-                                 GdkWindow      *window);
-  void     (*get_preedit_string) (GtkIMContext   *context,
-                                 gchar         **str,
-                                 PangoAttrList **attrs,
-                                 gint           *cursor_pos);
-  gboolean (*filter_keypress)    (GtkIMContext   *context,
-                                 GdkEventKey    *event);
-  void     (*focus_in)           (GtkIMContext   *context);
-  void     (*focus_out)          (GtkIMContext   *context);
-  void     (*reset)              (GtkIMContext   *context);
+  void     (*set_client_window)   (GtkIMContext   *context,
+                                  GdkWindow      *window);
+  void     (*get_preedit_string)  (GtkIMContext   *context,
+                                  gchar         **str,
+                                  PangoAttrList **attrs,
+                                  gint           *cursor_pos);
+  gboolean (*filter_keypress)     (GtkIMContext   *context,
+                                  GdkEventKey    *event);
+  void     (*focus_in)            (GtkIMContext   *context);
+  void     (*focus_out)           (GtkIMContext   *context);
+  void     (*reset)               (GtkIMContext   *context);
+  void     (*set_cursor_location) (GtkIMContext   *context,
+                                  GdkRectangle   *area);
+  void     (*set_use_preedit)     (GtkIMContext   *context,
+                                  gboolean        use_preedit);
+  void     (*set_surrounding)     (GtkIMContext   *context,
+                                  const gchar    *text,
+                                  gint            len,
+                                  gint            cursor_index);
+  gboolean (*get_surrounding)     (GtkIMContext   *context,
+                                  gchar         **text,
+                                  gint           *cursor_index);
+  /*< private >*/
+  /* Padding for future expansion */
+  void (*_gtk_reserved1) (void);
+  void (*_gtk_reserved2) (void);
+  void (*_gtk_reserved3) (void);
+  void (*_gtk_reserved4) (void);
+  void (*_gtk_reserved5) (void);
+  void (*_gtk_reserved6) (void);
 };
 
-GtkType       gtk_im_context_get_type           (void) G_GNUC_CONST;
-
-void          gtk_im_context_set_client_window  (GtkIMContext   *context,
-                                                GdkWindow      *window);
-void          gtk_im_context_get_preedit_string (GtkIMContext   *context,
-                                                gchar         **str,
-                                                PangoAttrList **attrs,
-                                                gint           *cursor_pos);
-gboolean      gtk_im_context_filter_keypress    (GtkIMContext   *context,
-                                                GdkEventKey    *event);
-void          gtk_im_context_focus_in           (GtkIMContext   *context);
-void          gtk_im_context_focus_out          (GtkIMContext   *context);
-void          gtk_im_context_reset              (GtkIMContext   *context);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+GType    gtk_im_context_get_type            (void) G_GNUC_CONST;
+
+void     gtk_im_context_set_client_window   (GtkIMContext       *context,
+                                            GdkWindow          *window);
+void     gtk_im_context_get_preedit_string  (GtkIMContext       *context,
+                                            gchar             **str,
+                                            PangoAttrList     **attrs,
+                                            gint               *cursor_pos);
+gboolean gtk_im_context_filter_keypress     (GtkIMContext       *context,
+                                            GdkEventKey        *event);
+void     gtk_im_context_focus_in            (GtkIMContext       *context);
+void     gtk_im_context_focus_out           (GtkIMContext       *context);
+void     gtk_im_context_reset               (GtkIMContext       *context);
+void     gtk_im_context_set_cursor_location (GtkIMContext       *context,
+                                            const GdkRectangle *area);
+void     gtk_im_context_set_use_preedit     (GtkIMContext       *context,
+                                            gboolean            use_preedit);
+void     gtk_im_context_set_surrounding     (GtkIMContext       *context,
+                                            const gchar        *text,
+                                            gint                len,
+                                            gint                cursor_index);
+gboolean gtk_im_context_get_surrounding     (GtkIMContext       *context,
+                                            gchar             **text,
+                                            gint               *cursor_index);
+gboolean gtk_im_context_delete_surrounding  (GtkIMContext       *context,
+                                            gint                offset,
+                                            gint                n_chars);
+
+G_END_DECLS
 
 #endif /* __GTK_IM_CONTEXT_H__ */