tuxpaint-0.9.15b(SDL-1.2.9 환경)에서 한글 입력하기

shockyhan의 이미지

7살 되는 우리 딸이 가끔씩 가지고 노는 tuxpaint라는 교육용 그림판 프로그램이 있는데, 원래 SDL 등의 Linux 기반 라이브러리를 사용한 이 프로그램은 아쉽게도 윈도우즈 XP에서 한글 입력이 안된다.

메시지도 잘 번역돼 있어서 한글 폰트를 다운받아 설치하면 화면에 한글 메시지가 출력은 되지만, 막상 그림에 한글 입력은 되지 않아서 늘 아쉬웠는데, 그만 실수로 딸아이에게 한글 입력이 되도록 아빠가 고쳐 주겠노라는 말을 하고 말았다.

이런...소스를 받아 봤는데, 오토마타 구현이 전혀 되있지 않은 것을 발견했고, 게다가 한/영 전환키는 인식도 하지 못한다. 어쩐다...

그래서 한 이틀을 고민 하다가 전부터 알고 있던 직결식 글꼴을 설치해 보았다.
기존의 한글 폰트는 그대로 둔채 직결식 ttf 폰트를 복사해 넣고 프로그램을 실행했더니, 만세~~

세벌식 자판 배열에 맞게 그냥 치기만 하면 한글이 나온다.
이제 할 일은 자판에 세벌식 스티커만 붙이면 끝...

본문에는 zip 파일이 첨부되지 않는 문제가 있어서 한글 입력이 되도록 수정한 실행파일소스를 댓글에 올렸습니다.

File attachments: 
첨부파일 크기
Image icon tuxpaint-direct.PNG107.46 KB
Image icon tuxpaint+SDL_im.PNG128.56 KB

댓글

johlim의 이미지

기존의 한글 폰트는 그대로 둔채 직결식 ttf 폰트를 복사해 넣고 프로그램을 실행했더니, ... 라고 하셨는데
기존의 ko.ttf는 그대로 두고 직결식 ttf폰트를 어느 디렉토리에 무슨 이름으로 복사해야하는지요 ? :)

혹시나 해서 직결식 ttf를 ko.ttf로 해보았는데
system menu가 모두 깨어져 보이더라구요.

A better tomorrow

lim jong hoan

A better tomorrow

shockyhan의 이미지

그냥 프로그램 설치하면 폰트 파일들이 들어가 있는 ~\Programs\TuxPaint\data\fonts\ 폴더에
direct.ttf 파일을 이름 그대로 복사한 후 프로그램을 다시 실행했습니다.

윈도우즈 에서요...
글꼴 아이콘에 [Aa] 대신 [ㅁ]자가 나타나더군요.
영문 상태에서 세벌식 최종 자판으로 쓰면 된답니다.

기존 한글 폰트는 그대로 ko.ttf로 두셔야 메뉴가 깨지지 않습니다.

===========================================================================
Shocky Han
BIM Consultant, Certified Information Systems Auditor
Seoul, Korea.
===========================================================================

shockyhan의 이미지

직결식 글꼴을 이용해서 일단 아쉬운 대로 한글을 입력하기는 했지만, 2% 부족한 것 같아서 다른 해결책을 찾아봤더니 SDL-im 이라는 것이 있더군요...

SDL-1.2.8 까지만 지원하는 것 같습니다만 윈도우즈/리눅스 다 지원되는 모양인데,
이번 주에 SDL-im을 시험해 보려합니다.

#include <locale.h>
setlocale(LC_CTYPE, "");
char buf[48];
wchar_t wbuf[24];   /* wchar_t can be replaced with Uint16 or Uint32 */
SDL_FlushIMString(buf);
mbstowcs(wbuf, buf, 24);

오토마타 구현할 필요 없이 ime 사용해서 한글을 입력하게 되길 바랄 뿐입니다. :)

===========================================================================
Shocky Han
BIM Consultant, Certified Information Systems Auditor
Seoul, Korea.
===========================================================================

johlim의 이미지

알려주신 대로
기존 한글폰트(별도설치)는 그대로 두고
dirtect.ttf 를 추가하니 [ㅁ]자 폰트가 생기고
입력이 되네요. 마침 세벌식 사용자라서 딱이네요.
그리고
알고 계실지 모르겠지만
은진체에도 직렬식 ttf 폰트가 있네요

감사합니다.

A better tomorrow

lim jong hoan

A better tomorrow

shockyhan의 이미지

tuxpaint-0.9.15b를 VisualStudio .Net 2003에서 빌드되도록 수정하고, SDL-1.2.9SDL_im-1.2.8을 patch한 것입니다.

tuxpaint-0.9.15b를 설치한 후에 한글 폰트를 받아 설치하세요.
한글 입력이 되도록 수정한 파일들을 tuxpaint 설치 폴더에 압축을 푸시면 됩니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon 917.67 KB

===========================================================================
Shocky Han
BIM Consultant, Certified Information Systems Auditor
Seoul, Korea.
===========================================================================

shockyhan의 이미지

tuxpaint-0.9.15b에서 SDL_im을 이용해 한글을 입력하고 수정할 수 있도록 수정한 소스코드 입니다.

SDL.dll은 SDL-1.2.9 에 SDL_im-1.2.8을 patch했고,
tuxpaint-0.9.15b 소스에 이 파일을 patch하면 됩니다.
/D "ENABLE_IM_EVENT" 옵션을 사용해야 하고 imm32.lib와 link 해야 합니다.
libintl3.dll과 libiconv2.dll은 GnuWin32 에서 개발용 라이브러리와 실행파일을 받아 사용했는데, 이 파일들을 사용하지 않고 원래 tuxpaint에 있는 파일을 사용하면 오류가 발생합니다.

댓글 첨부 파일: 
첨부파일 크기
Plain text icon 10.52 KB

===========================================================================
Shocky Han
BIM Consultant, Certified Information Systems Auditor
Seoul, Korea.
===========================================================================

neojijon의 이미지

tuxpaint를 찾다가 이글을 보았습니다.
tuxpaint-0.9.15b+SDL_im-1.2.9 소스라고 되어 있는데..
어디서 소스파일 받을 수 있나요.
만약에 여기서 받을수 없다면 소스 파일좀 올려주시면.. 고맙겠습니다.

열심히 하겠습니다. 많은 조언 부탁드립니다.

johlim의 이미지


직렬식으로 만족하고 있었는데
편리하게 수정놓으셨네요.
잘쓰겠습니다.

A better tomorrow

lim jong hoan

A better tomorrow

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.