´ÙÀ½ ÀÌÀü Â÷·Ê

2. ¼Ò°³

GTK(GIMP Toolkit)Àº ¿ø·¡ GIMP(General Image Manipulation Program)À» ¸¸µé±â À§ÇÑ ÅøŶÀ¸·Î °³¹ßµÇ¾ú´Ù. GTK´Â XlibÀÇ ÇÔ¼öµé¿¡ ´ëÇÑ ±âº»ÀûÀÎ wrapperÀÎ GDK(GIMP Drawing Kit)¸¦ ±â¹ÝÀ¸·Î ÇÏ°í ÀÖ´Ù. ¿ø·¡ GIMP¸¦ ¸¸µé ¸ñÀûÀ¸·Î °³¹ßµÇ¾úÁö¸¸, Áö±ÝÀº ¸î °¡Áö ÇÁ¸® ¼ÒÇÁÆ®¿þ¾îÀÇ Á¦ÀÛ¿¡ ¾²ÀÌ°Ô µÇ¾ú´Ù. GTKÀÇ Á¦ÀÛÀÚµéÀº ´ÙÀ½°ú °°´Ù.

GTK´Â º»ÁúÀûÀ¸·Î °´Ã¼ÁöÇâÀûÀÎ ¾îÇà °³¹ßÀÚ È¯°æÀÌ´Ù(API, Application Programmers Interface). ºñ·Ï ¿ÏÀüÈ÷ C·Î ¾²¿©Á³Áö¸¸ Ŭ·¡½ºÀÇ °³³ä°ú callback ÇÔ¼ö(ÇÔ¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ)°¡ °®Ãß¾îÁø °ÍÀÌ´Ù.

¿©±â¿¡´Â ¿¬°á¸®½ºÆ®(linked list)¸¦ ´Ù·ç±â À§ÇÑ ¸î °¡Áö ÇÔ¼öµé°ú ÇÔ²², glib¶ó°í ºÒ¸®¿ì¸ç ¸î °¡Áö Ç¥ÁØÇÔ¼öµéÀ» ´ëÄ¡ÇÒ ¼ö ÀÖ´Â ÇÔ¼öµéµµ ¼¼¹ø° ¿ä¼Ò·Î Æ÷ÇԵǾî ÀÖ´Ù. g_strerror()ó·³, ¿©±â ¾²ÀÎ ¾î¶² ÇÔ¼öµéÀº ´Ù¸¥ À¯´Ð½ºµé¿¡ ´ëÇØ Ç¥ÁØÀÌ ¾Æ´Ï°Å³ª ¾²¿©Áú ¼ö ¾ø´Â °ÍÀ̱⠶§¹®¿¡, GTKÀÇ À̽ļºÀ» ³ôÀ̱â À§ÇØ ¿©±â¿¡ ´ëÇÑ ´ëÄ¡ÇÔ¼öµéµµ ¾²¿´´Ù. ¶ÇÇÑ g_mallocÀÌ µð¹ö±ë ±â´ÉÀ» °­È­ÇßµíÀÌ libcÀÇ ¹öÀü¿¡ º¸°­ÀÌ ÀÌ·ç¾îÁö±âµµ Çß´Ù.

ÀÌ ¹®¼­´Â ´ÜÁö GTK¸¦ À§ÇÑ Âü°í°¡ µÉ »ÓÀ̸ç, ¿ÏÀüÇÑ °ÍÀ» ÀǹÌÇÏÁö ¾Ê´Â´Ù. µ¶ÀÚ´Â C¾ð¾î¸¦ Àß ¾Ë¸ç CÇÁ·Î±×·¥À» ¾î¶»°Ô ¸¸µå´ÂÁö ¾Ë°í ÀÖÀ» °ÍÀ̶ó°í °¡Á¤ ÇÑ´Ù. ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ï°ÚÁö¸¸, µ¶ÀÚ°¡ ÀÌ¹Ì X ÇÁ·Î±×·¥¿¡ ´ëÇÑ °æÇèÀÌ ÀÖ´Ù¸é ¸Å¿ì Å« µµ¿òÀÌ µÉ °ÍÀÌ´Ù. ¸¸¾à ´ç½ÅÀÌ widget ¼¼Æ®¿¡ ´ëÇØ GTK°¡ óÀ½ Á¢ÇÑ °ÍÀ̶ó¸é, ÀÌ ¹®¼­¸¦ ¾î¶»°Ô ¹ß°ßÇÏ°Ô µÇ¾ú°í ¶Ç Ưº°È÷ Èûµç ºÎºÐÀº ¾î¶² °ÍÀ̶ó´Â °ÍÀ» ²À ¾Ë·ÁÁֱ⠹ٶõ´Ù. GTK¸¦ À§ÇØ C++ÀÇ Çü½Ä¿¡ µû¸¥ APIµµ ÀÖ´Ù´Â °ÍÀ» ÂüÁ¶ÇÒ °ÍÀ̸ç, ¸¸¾à C++À» ´õ ¼±È£ÇÑ´Ù¸é ÀÌ°Í ´ë½Å¿¡ ±×°É ¼±ÅÃÇϱ⠹ٶõ´Ù. ¶ÇÇÑ Objective C, Guile°úÀÇ ¹ÙÀεùµµ ÀÖÁö¸¸, ¾î·µç ¿©±â¼­´Â ±×°ÍµéÀ» µû¸£Áö ¾Ê°Ú´Ù.

´ç½ÅÀÌ ÀÌ ¹®¼­¸¦ ÅëÇØ GTK¸¦ °øºÎÇÏ´Â µ¥ À־ ¾î¶² ¹®Á¦¶óµµ ³ª¿¡°Ô ¾Ë·Á Áֱ⠹ٶó¸ç, ±×°ÍÀº ÀÌ ¹®¼­°¡ Çâ»óµÇ´Â °Í¿¡ Å« µµ¿òÀÌ µÉ °ÍÀ̶ó°í »ý°¢ÇÑ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê