[Uim] Please review Uim Developer's Document

James Su suzhe at tsinghua.org.cn
Thu Jun 24 17:12:16 EEST 2004


Hi,
  You need to use scim-0.99.0 and scim-uim-0.1.1 and uim 0.3.9. I don't 
know if the deb packages of scim 0.99.0 are ready. If it's possible, 
could you please try to compile from source code. You can download the 
source packages from http://freedesktop.org/~suzhe/download.html.
  The xim support of scim should be better, it's support virtually any 
languages and locales (If system and X support them). And scim itself is 
locale independent.

Regards
James Su

Paul Hampson wrote:

>On Thu, Jun 24, 2004 at 11:22:38AM +0900, Kazuki Ohta wrote:
>  
>
>>Hi, Paul.
>>    
>>
>
>  
>
>>Thank you for your work:-D
>>    
>>
>
>  
>
>>I don't decide nothing about the plan in detail, but I think 
>>of the cooperating with other project in GUI panel, systray 
>>or so, This will give unified user-interface to the users.
>>    
>>
>
>  
>
>>I'm now in the phase of searching the way to cooperate.
>>Now, I read SCIM's socket system, but it seems to depend on 
>>SCIM's own Signal/Slot mechanism and written in C++,..
>>    
>>
>
>I was going to try SCIM on top of uim, but the Debian scim and uim
>packages don't seem to acknowledge each other (scim only offers
>English, even though it has Japanese tables loaded in the config)
>and the scim toolbar's not particularly helpful since it disappers
>if there's any windows between my window and the helper... This
>is of course also true of the UIM helper, but I'm more interested
>in having the current mode visible as I change windows... I might
>not bother having it clickable at all, initially. :-)
>
>I've been trying to work out why no-one else has this problem,
>and it's of course because I'm using sloppy focus. Duh. I can't
>for the life of me think of a better way, either. Might have
>to change focus models...
>
>The only compelling reason for SCIM for me is if it has better
>XIM support than uim, but apart from a recent prime/ruby issue
>of some kind which caused uim to die until ruby was updated, I
>have been quite satisfied with uim-xim, and will remain so until
>I resume my Chinese studies. :-)
>
>  
>
>>Would you point at the concreate weird points of helper 
>>related functions? I'll change the API according to your 
>>advice.
>>    
>>
>
>] /* API for input method user side */
>] int  uim_helper_init_client_fd(void (*disconnect_cb)(void));
>] void uim_helper_close_client_fd(int );
>] void uim_helper_read_proc(int fd);
>] char *uim_helper_send_message(int fd, const char *message);
>
>These four functions work with fd stored on the user side.
>init and close also keep the static uim_fd up to date.
>
>] void uim_helper_client_focus_in(uim_context uc);
>] void uim_helper_client_focus_out(uim_context uc);
>
>These two are only used by the input method clients, and
>the helpers _receive_ the messages. They send over the
>static uim_fd.
>
>] void uim_helper_client_get_prop_list(void);
>
>This call sends a message to get the useful data for the
>display... Using the static uim_fd.
>
>] char *uim_helper_get_message(void);
>
>This uses a static buffer, filled by uim_helper_read_proc.
>
>To my mind, it should be consitently either the static fd
>in uim-helper-client.c, or a user-kept fd (which makes more
>sense so it can be 'selected' on.)
>
>Also, uim_helper_read_proc seems unneccessary as a function
>compared to uim_helper_get_message(int fd);
>
>In fact, given that the messages appear to be fairly discrete
>and well deliminated, I would expect the read routine could
>just pull data until it sees two \n's, and block otherwise.
>
>(I could be wrong about this last bit, I've not delved too
>deeply into the IPC stuff. :-)
>
>Just in case I'm doing it wrong, here's the stub helper I
>knocked up last night so I could see what was coming out,
>based on looking at helper-toolbar-common-gtk. As it happens,
>the hard part looks like the blackbox slit thingy.
>
>#include <uim/uim.h>
>#include <uim/uim-helper.h>
>
>int main (void)
>{
>	int uim_fd = -1;
>	char *tmp;
>	uim_fd = uim_helper_init_client_fd(NULL);
>	if (uim_fd < 0) {
>		printf("Barf\n");
>		return -1;
>	}
>	uim_helper_client_get_prop_list();
>	while (1) {
>		uim_helper_read_proc(uim_fd);
>		while ((tmp = uim_helper_get_message())) {
>			printf("%s\n", tmp);
>			free(tmp);
>		}
>	}
>	uim_helper_close_client_fd(uim_fd);
>}
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>uim mailing list
>uim at freedesktop.org
>http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/uim
>  
>





More information about the uim mailing list