コード例 #1
0
static VALUE 
rg_initialize(VALUE self)
{
    G_INITIALIZE(self, gtk_im_context_simple_new());

    return Qnil;
}
コード例 #2
0
void scim_bridge_client_imcontext_initialize (ScimBridgeClientIMContext *imcontext, ScimBridgeClientIMContextClass *klass)
{
    scim_bridge_pdebugln (5, "scim_bridge_client_imcontext_initialize  ()");

    /* slave exists for using gtk+'s table based input method */
    imcontext->slave_preedit = FALSE;
    imcontext->slave = gtk_im_context_simple_new ();
    g_signal_connect(G_OBJECT(imcontext->slave),
                     "commit",
                     G_CALLBACK(gtk_im_slave_commit_cb),
                     imcontext);
    
    g_signal_connect(G_OBJECT(imcontext->slave),
                     "preedit-changed",
                     G_CALLBACK(gtk_im_slave_preedit_changed_cb),
                     imcontext);
    
    g_signal_connect(G_OBJECT(imcontext->slave),
                     "preedit-start",
                     G_CALLBACK(gtk_im_slave_preedit_start_cb),
                     imcontext);
    
    g_signal_connect(G_OBJECT(imcontext->slave),
                     "preedit-end",
                     G_CALLBACK(gtk_im_slave_preedit_end_cb),
                     imcontext);

    imcontext->preedit_shown = FALSE;
    imcontext->preedit_started = FALSE;
    
    imcontext->preedit_cursor_position = 0;
    imcontext->preedit_cursor_flicking = FALSE;

    imcontext->preedit_string = malloc (sizeof (char));
    imcontext->preedit_string[0] = '\0';
    imcontext->preedit_string_capacity = 0;

    imcontext->preedit_attributes = NULL;

    imcontext->commit_string = malloc (sizeof (char));
    imcontext->commit_string[0] = '\0';
    imcontext->commit_string_capacity = 0;

    imcontext->enabled = FALSE;

    imcontext->client_window = NULL;

    imcontext->id = -1;

    if (!scim_bridge_client_is_messenger_opened ()) {
        scim_bridge_perrorln ("The messenger is now down");
    } else if (scim_bridge_client_register_imcontext (imcontext)) {
        scim_bridge_perrorln ("Failed to register the IMContext");
    } else {
        scim_bridge_pdebugln (1, "IMContext registered: id = %d", imcontext->id);
    }
}
コード例 #3
0
ファイル: fcitximcontext-gio.c プロジェクト: eguopt/fcitx
static void
fcitx_im_context_init(FcitxIMContext *context)
{
    FcitxLog(LOG_LEVEL, "fcitx_im_context_init");
    context->client = NULL;
    context->area.x = -1;
    context->area.y = -1;
    context->area.width = 0;
    context->area.height = 0;
    context->use_preedit = TRUE;
    context->cursor_pos = 0;
    context->preedit_string = NULL;
    context->attrlist = NULL;
    context->capacity = CAPACITY_SURROUNDING_TEXT;

    context->slave = gtk_im_context_simple_new();
    gtk_im_context_simple_add_table(GTK_IM_CONTEXT_SIMPLE(context->slave),
                                    cedilla_compose_seqs,
                                    4,
                                    G_N_ELEMENTS(cedilla_compose_seqs) / (4 + 2));

    g_signal_connect(context->slave,
                     "commit",
                     G_CALLBACK(_slave_commit_cb),
                     context);
    g_signal_connect(context->slave,
                     "preedit-start",
                     G_CALLBACK(_slave_preedit_start_cb),
                     context);
    g_signal_connect(context->slave,
                     "preedit-end",
                     G_CALLBACK(_slave_preedit_end_cb),
                     context);
    g_signal_connect(context->slave,
                     "preedit-changed",
                     G_CALLBACK(_slave_preedit_changed_cb),
                     context);
    g_signal_connect(context->slave,
                     "retrieve-surrounding",
                     G_CALLBACK(_slave_retrieve_surrounding_cb),
                     context);
    g_signal_connect(context->slave,
                     "delete-surrounding",
                     G_CALLBACK(_slave_delete_surrounding_cb),
                     context);

    context->time = GDK_CURRENT_TIME;

    context->client = fcitx_client_new();
    g_signal_connect(context->client, "connected", G_CALLBACK(_fcitx_im_context_connect_cb), context);
    g_signal_connect(context->client, "enable-im", G_CALLBACK(_fcitx_im_context_enable_im_cb), context);
    g_signal_connect(context->client, "close-im", G_CALLBACK(_fcitx_im_context_close_im_cb), context);
    g_signal_connect(context->client, "forward-key", G_CALLBACK(_fcitx_im_context_forward_key_cb), context);
    g_signal_connect(context->client, "commit-string", G_CALLBACK(_fcitx_im_context_commit_string_cb), context);
    g_signal_connect(context->client, "delete-surrounding-text", G_CALLBACK(_fcitx_im_context_delete_surrounding_text_cb), context);
    g_signal_connect(context->client, "update-formatted-preedit", G_CALLBACK(_fcitx_im_context_update_formatted_preedit_cb), context);
}
コード例 #4
0
/* Class Implementations */
void scim_bridge_client_imcontext_static_initialize ()
{
    gdk_color_parse ("gray92", &preedit_normal_background);
    gdk_color_parse ("black", &preedit_normal_foreground);
    gdk_color_parse ("light blue", &preedit_active_background);
    gdk_color_parse ("black", &preedit_active_foreground);

    focused_imcontext = NULL;

    fallback_imcontext = gtk_im_context_simple_new ();
    fallback_commit_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "commit", G_CALLBACK (fallback_commit), NULL);
    fallback_preedit_changed_handler = g_signal_connect (G_OBJECT (fallback_imcontext), "preedit_changed", G_CALLBACK (fallback_preedit_changed), NULL);
}
コード例 #5
0
ファイル: compose.c プロジェクト: Azania/java-gnome
int
main
(
	int argc,
	char **argv
)
{
	GtkWindow* window;
	GtkDrawingArea* area;
	GtkIMContext* im;

	gtk_init(&argc, &argv);

	window = (GtkWindow*) gtk_window_new(GTK_WINDOW_TOPLEVEL);
	area = (GtkDrawingArea*) gtk_drawing_area_new();
        GTK_WIDGET_SET_FLAGS(area, GTK_CAN_FOCUS);

	gtk_container_add((GtkContainer*) window, (GtkWidget*) area);

	im = gtk_im_context_simple_new();

	g_signal_connect(area, "key-press-event", G_CALLBACK(keystroke_cb), im);
	g_signal_connect(area, "key-release-event", G_CALLBACK(keystroke_cb), im);
	g_signal_connect(im, "commit", G_CALLBACK(commit_cb), NULL);

	gtk_widget_show_all((GtkWidget*) window);

	/*
	 * Get the Window on screen and let GTK settle.
	 */

	while (gtk_events_pending()) {
		gtk_main_iteration();
	}

	/*
	 * Generate the compose sequence.
	 */

	gtk_test_widget_send_key((GtkWidget*) area, GDK_Multi_key, 0);
	gtk_test_widget_send_key((GtkWidget*) area, GDK_e, 0);
	gtk_test_widget_send_key((GtkWidget*) area, GDK_equal, 0);

	/*
	 * Will return if and only if commit is hit.
	 */

	gtk_main();

	return 0;
}
コード例 #6
0
JNIEXPORT jlong JNICALL
Java_org_gnome_gtk_GtkIMContextSimple_gtk_1im_1context_1simple_1new
(
	JNIEnv* env,
	jclass cls
)
{
	GtkIMContext* result;
	jlong _result;

	// call function
	result = gtk_im_context_simple_new();

	// translate return value to JNI type
	_result = (jlong) result;

	// cleanup return value
	if (result != NULL) {
		bindings_java_memory_cleanup((GObject*)result, TRUE);
	}

	// and finally
	return _result;
}