¸®´ª½º ±âŸ ÀÚ·á

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   gtk Tutorial Index 1998/07/10 (17:47)
À̸§ ±èÈ¿¿ø
¹øÈ£ 101
Á¶È¸ 359
º»¹®
¡º¸®´ª½º Çдç-¹ø¿ª¹° (go LINUX)¡» 197¹ø
Á¦  ¸ñ:[¹ø¿ª] gtk Tutorial, ³»ÀϺÎÅÍ ¿Ã¸³´Ï´Ù.                     
¿Ã¸°ÀÌ:Áß¾ÓÀÚ´ë(ÀÌÈÆ    )    98/03/10 16:43    ÀÐÀ½:282 E[7m°ü·ÃÀÚ·á ÀÖÀ½(TL)E[0m
-----------------------------------------------------------------------------

 ====================================================================
 |      GTK Tutorial                                                |
 |      Written By                                                  |
 |      Ian Main, slow@intergate.bc.ca                              |
 |      January 24, 1998.                                           |
 |                                                                  |
 |      Translated and Rewritten By                                 |
 |      Seo Joo-tai, liberta@cau.ac.kr                              |
 |      March ??, 1998.                                             |
 ====================================================================

 Áö³­ 2¿ù ¸»ºÎÅÍ Á¶±Ý¾¿ ¹ø¿ªÇØ º» GTK TutorialÀÔ´Ï´Ù.  Ãâó´Â GTK+ÀÇ °ø½Ä
ȨÆäÀÌÁöÀÎ http://www.gimp.org/gtk ÀÔ´Ï´Ù.  ¹ø¿ªÀ» ´ëÃæ ³¡¸¶Ä£ Áö±Ý(3/??),
ÀÌ TutorialÀº 1998/1/24 ³¯Â¥·Î ¿Ã¶ó¿Â °ÍÀÌ °¡Àå »õ·Î¿î °ÍÀ̳׿ä.  ¹°·Ð ÀÌ
¹ø¿ª¹°µµ ±×°ÍÀ» ±âÁØÀ¸·Î Çß½À´Ï´Ù.  ¶Ç ÀçÈ°¿ë¼º(?)À» À§ÇÏ¿© óÀ½ºÎÅÍ ³¡±îÁö
ÀϹÝÀûÀÎ ÅؽºÆ®(plane text)ÀÇ Æ÷¸ËÀ» À¯ÁöÇß½À´Ï´Ù.

 GTK+ TutorialÀº ¸ðµÎ 24°³ÀÇ Àå(Chapter)À¸·Î ÀÌ·ç¾îÁ³°í, 19Àå(Writing Your
Own Widgets)Àº ¾ÆÁ÷ ¹ø¿ª ÁßÀÔ´Ï´Ù.  ±×¸®°í 24Àå(Copying)À» ºñ·ÔÇÑ ¸î¸îÀº
¿ÀÈ÷·Á ¿ø¹®À» ±×´ë·Î Âü°íÇÏ´Â °ÍÀÌ ÁÁÀ» °ÍÀ̶ó°í ÆÇ´Ü, °ÅÀÇ ¹ø¿ªÇÏÁö ¾Ê¾Ò½À
´Ï´Ù.  ±×¸®°í Á¦°¡ ¹ø¿ªÇß´Ù°í ÁÖÀå(?)ÇÏ´Â ³ª¸ÓÁö Àåµéµµ, ¿ø·¡ »ó½ÄÀÌÇÏÀÇ
¿µ¾î½Ç·Â°ú ¼öÁØÀÌÇÏÀÇ Xlib/Widget Programming °æÇèÀ¸·Î ÀÎÇØ ²Ï³ª ¾îÁö·´°Ô
¾µ ¼ö¹Û¿¡ ¾ø¾ú½À´Ï´Ù.  ÇÏÁö¸¸ ³ª¸§´ë·Î ½Å°æÀº ½èÀ¸´Ï±ñ, ¾Ë¾Æ¼­ ¹Þ¾ÆµéÀ̽ñæ
¹Ù¶ø´Ï´Ù.  :)  ¹ø¿ªÇÑ ³»¿ëÀÇ Á¤È®¼º¿¡ ´ëÇؼ­µµ Ã¥ÀÓ ¸ø Áý´Ï´Ù.  ¶ÇÇÑ ´õ
È¿°úÀûÀÎ ÀÌÇظ¦ À§Çؼ­ ¿¹Á¦¸¦ Á÷Á¢ ÄÄÆÄÀÏ/½ÇÇàÇØ º¸½Ç °ÍÀ» ±ÇÇÕ´Ï´Ù.

 ÀÌ Tutorial ¹ø¿ª¹®À» º¸´Â µ¥ À־, ¾îÁö·¯¿òÀ» Á¶±ÝÀ̳ª¸¶ ´ú¾î µå¸®±â
À§ÇØ ÀüüÀûÀÎ À±°ûÀ» ¼Ò°³ÇÕ´Ï´Ù.

==> tut01.txt <==
***********
*** 1. ¼Ò°³
***********
GTK(GTK+)ÀÇ ¼³°è¿Í ¼Ò°³ÀÔ´Ï´Ù.  ÀÌ¹Ì ³ª¿ì ¸®µ¿(go linux) ¹ø¿ª¹°
°Ô½ÃÆÇ¿¡ ¿Ã¸° GTK+ FAQÀÌ Âü°í°¡ µÉ °ÍÀÔ´Ï´Ù.

==> tut02.txt <==
*****************
*** 2. ½ÃÀÛÇϸ鼭
*****************
GTK ¾îÇÃÀÇ ÀüÇüÀûÀÎ ±¸Á¶¿Í, ±× À¯¸íÇÑ helloworld.c ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
±×¸®°í ´Ùµé °ñÄ¡¾ÆÆÄ ÇÏ´Â ÄÄÆÄÀÏ ¿É¼Çµµ °£´ÜÈ÷ ¼³¸íµÇ¾î ÀÖÁÒ.  Áß¿äÇÑ ÀÌ·Ð,
Áï ½Ã±×³Î(signal)°ú ÇÔ¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ(callback function)¸¦ GTK°¡ ÀÌ¿ëÇÏ´Â
¹æ½Ä¿¡ ´ëÇؼ­µµ ´Ù·ì´Ï´Ù.

==> tut03.txt <==
**********************
*** 3. ¾ÕÀ¸·Î ³ª¾Æ°¡¸ç
**********************
helloworld.c¸¦ Á¶±Ý °³¼±Çϸ鼭 ÀÚ·áÇüµé¿¡ ´ëÇÑ ÀܼҸ® ÂɱÝ, ±×¸®°í
½Ã±×³Î Çڵ鷯¿¡ ´ëÇÑ º¸Ãæ¼³¸íÀÌ ÀÖ½À´Ï´Ù.  ½Ã±×³Î, Áß¿äÇÑ °ÅÁÒ.

==> tut04.txt <==
******************
*** 4. ÆÐÅ· Widget
******************
ÆÐÅ·(packing)À̶ó´Â Áß¿äÇÑ °³³ä¿¡ ´ëÇØ(Àúµµ Áö±ßÁö±ßÇØÁ³½À´Ï´Ù` :)
¿¹Á¦¿Í ÇÔ²² ¼³¸íÇÏ°í ÀÖ½À´Ï´Ù.  ÆÐÅ·Àº »ç°¢ÇüÀÇ ¾î¶² ¿µ¿ª¿¡ ¹º°¡¸¦ ³Ö¾î
µÐ´Ù´Â Àǹ̷Î, GTK+ó·³ À©µµ, °´Ã¼¸¦ ´Ù·ç´Â °³¹ß¹æ½Ä¿¡¼­ ±²ÀåÈ÷ ±âº»ÀûÀÌ°í
"ÀÚÁÖ ³ª¿À´Â" ³ðÀÔ´Ï´Ù.  ¿©±â¼­´Â Çϳª¾¿ ÆÐÅ·Çϱâ À§ÇÑ ¹Ú½º(box)°³³ä°ú,
¿©·¯°³¸¦ ÇѲ¨¹ø¿¡ ÆÐÅ·Çϱâ À§ÇÑ Å×À̺í(table)°³³äÀ» Â÷·Ê´ë·Î ¼Ò°³ÇÕ´Ï´Ù.

==> tut05.txt <==
********************
*** 5. WidgetÀÇ °³¿ä
********************
FAQ¿¡¼­µµ ¾ð±ÞÇß°í, ÀÌ ¹®¼­ÀÇ º»¹®¿¡µµ ¿©·¯¹ø °­Á¶µÆÁö¸¸, GTK+Àº
C¾ð¾îÀÇ typedef struct{...} WidgetObject; °°Àº ÀÌ¿ëÀ¸·Î "°´Ã¼ÁöÇâ±â¹ý"À»
Ãß±¸ÇÏ°í ÀÖ½À´Ï´Ù.  ¹°·Ð C++¿¡¼­ÀÇ public member functionÀ» Èä³»³»±â À§ÇØ
return_type (*func_pointer)(parameters,...) À¸·Î ¼±¾ðµÇ´Â callback ÇÔ¼ö¸¦
¾¹´Ï´Ù.  ¿©±â¼­ func_pointerÀÇ Á¤Ã¼¸¦ ¾Ë°í, ±×¸®°í Àß ½á¸ÔÀ» ¼ö ÀÖÀ» Á¤µµÀÇ
"C¾ð¾î ½Ç·Â(?)"¸¸ ÀÖ´Ù¸é GTK¸¦ °ñ·Á°¡¸ç ÀÌ±æ ¼ö ÀÖÀ» °Ì´Ï´Ù.  GTK+Àº ÀÌ·¸°Ô
±×´ÙÁö ¾î·Á¿î °Ô ¾Æ´Õ´Ï´Ù. :)
ÀÌ Àå¿¡¼­´Â GTK+ ObjectÀÇ ÀüºÎ³ª ´Ù¸§¾ø´Â widget¿¡ ´ëÇØ, ÀÏÁ¾ÀÇ
°ø°Ý ÀÛÀü¼³¸íÀ» ÇØÁÖ°í ÀÖ½À´Ï´Ù.  ÀÌ¹Ì ´Ù¸¥ Widget Áý´ÜÀ» ½áº» °æÇè ȤÀº
ÃÖ¼ÒÇÑ Xlib¸¦ ´Ù·ïº» °æÇèÀÌ ÀÖ´Ù¸é C¾ð¾î¿¡ ´ÉÅëÇÑ °Í¸¸Å­À̳ª Å« µµ¿òÀÌ µÉ
°ÍÀÔ´Ï´Ù.  Âü, ÀÌ Àå¿¡´Â Gtk widget objectµéÀÇ °èÃþ±¸Á¶µµ ÁÙÁÙÀÌ ¼Ò°³µÇ¾î
ÀÖ½À´Ï´Ù.  ¸Å¿ì ¿ä±äÇÑ Á¤º¸ÁÒ.

==> tut06.txt <==
******************
*** 6. ¹öÆ° widget
******************
¿ì¼± Á¦ÀÏ ¸¸¸¸ÇÑ widgetÀ¸·Î ¹öÆ°À» ÇØÄ¡¿ì°í ÀÖ½À´Ï´Ù.  ±×³É ¹öÆ°,
ÀÌ»Û ¹öÆ°(ÇȽº¸ÊÀÌ ºÙÀº~*), ƯÀÌÇÑ ¹öÆ°(Åä±Û, üũ, ¶óµð¿À,..) µî ¿ì¸®°¡
À©µµ¿ë ÀÀ¿ë¾îÇõ鿡¼­ ¸¹ÀÌ ÀÌ¿ëÇØ ¿Â ¸ðµç(?) Á¾·ùÀÇ ¹öÆ°µéÀ» ÆÄÇìĨ´Ï´Ù.

==> tut07.txt <==
**********************
*** 7. ´Ù¾çÇÑ widgetµé
**********************
ÀÚ±â È¥ÀÚ ¾²À̱⺸´Ù ´Ù¸¥ widgetÀ» ²Ù¹Ì±â À§ÇØ ¾²ÀÌ´Â °æÇâÀÌ ÀÖ´Â
¸î°¡Áö Àâ´ÙÇÑ widgetÀ» ¼Ò°³ÇÕ´Ï´Ù.  ¶óº§(label), dz¼±µµ¿ò¸»(tooltip), ÁøÇà
¸·´ë(progress bar), ´ëÈ­»óÀÚ(dialog box), ÇȽº¸Ê(pixmap) µîÀÔ´Ï´Ù.  Æ¯È÷
ÇȽº¸Ê¿¡ ´ëÇؼ­´Â ²Ï ±æ°í ÀÚ»óÇÏ°Ô(?) ´Ù·ð±º¿ä.
TooltipÀ» dz¼±µµ¿ò¸»À̶ó°í Çؼ®ÇÑ °Ç, MacOS(ÇѱÛÆÇ)¿¡¼­ ±×·± °É
dz¼±µµ¿ò¸»À̶ó ºÎ¸£´Â µ¥ Àͼ÷ÇØÁ³±â ¶§¹®ÀÔ´Ï´Ù.  ¶Ç´Ù¸¥ Ç¥ÇöÀº ¸ô¶ó¿ä. :)

==> tut08.txt <==
**********************
*** 8. ÄÁÅ×ÀÌ³Ê widget
**********************
³ëÆ®ºÏ(notebook)°ú ½ºÅ©·ÑµÈ À©µµ(scrolled window)¸¦ ´Ù·ì´Ï´Ù.
À̵éÀº °á°úÀûÀ¸·Î º¸¿©Áö°Ô µÉ ´Ù¸¥ widgetµéÀ» Á¶Á÷ÀûÀ¸·Î °ü¸®ÇÏ´Â widget
µéÀÔ´Ï´Ù.  À¥½áÄ¡¿£Áø(Yahoo,Altavista,..)À¸·Î ÈçÇÑ ´Ü¾î, ¿¹¸¦µé¾î "girl"À»
°Ë»öÇغ¸¸é ´Ùµé ¾Ë´Ù½ÃÇÇ ¹«Áö¸·ÁöÇÑ °¹¼öÀÇ ¸µÅ©°¡ ½ñ¾ÆÁöÁÒ?  À̶§ È­¸éÀ»
°ü¸®Çϱâ À§ÇØ À¥ºê¶ó¿ìÀú À©µµ´Â ½ºÅ©·ÑµË´Ï´Ù.  Áï, ½ºÅ©·Ñ¹Ù(scroll bar)°¡
»ý±âÁÒ.  ÇÏÁö¸¸ "girl"ÀÇ °æ¿ìó·³ ¼öõ ¼ö¸¸ °³ÀÇ ¸µÅ©¸¦ °¡Á³´Ù¸é ½ºÅ©·Ñ¹Ù
·Îµµ °¨´ç¸øÇÏÁÒ?  ±×·¡¼­ ±× ÆäÀÌÁöÀÇ Á¦ÀÏ ¾Æ·¡ÂÊ¿¡ ³»·Á¿Íº¸¸é Àüü ¸µÅ©¸¦
1ºÎÅÍ 20±îÁö, ±×¸®°í <´õ ÀÖÀ½(NEXT)>À̶ó´Â, ÆäÀÌÁö(page)·Î °ü¸®ÇÏ°í ÀÖÀ½À»
¾Ë ¼ö ÀÖ½À´Ï´Ù.  ÀÌ·¸°Ô ÆäÀÌÁö¸¦ °ü¸®ÇÏ´Â °Ô ³ëÆ®ºÏÀÔ´Ï´Ù.

==> tut09.txt <==
********************
*** 9. ¸®½ºÆ® widget
********************
ÆÄÀϸŴÏÀú(file manager)°¡ °¡Àå ÁÁÀº ¿¹°¡ µÇ°Ú³×¿ä.  M$À©µµ±×ÀÇ
Ž»ö±â(explorer)³ª TkDeskÀÇ ÆÄÀÏ°ü¸®Ã¢À» º¸¸é, °¢ ÆÄÀÏÀÇ À̸§°ú ¼Ó¼ºµéÀ»
¾ÆÀÌÅÛ(item)À¸·Î ÇÏ´Â ¸®½ºÆ®(list)·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù.  ÀÌ Àå¿¡¼­ ´Ù·ç´Â
°ÍÀº ÀÌ·± ¸®½ºÆ®¸¦ ¸¸µå´Â ¹æ¹ý°ú, ¸¶¿ì½º¹öÆ°ÀÇ Á¿ìŬ¸¯À» ÀûÀýÈ÷ ³¢¿ö¸ÂÃç
¼±ÅÃ(selection)À» °ü¸®ÇÏ´Â ¹æ¹ý µîÀÔ´Ï´Ù.  °£´ÜÇÑ ¿¹Á¦ ÇÁ·Î±×·¥ÀÌ ÀÖÀ¸´Ï
Âü°íÇϼ¼¿ä.

==> tut10.txt <==
*****************
*** 10. ÆÄÀÏ ¼±ÅÃ
*****************
°£´ÜÇϸ鼭µµ °ÅÀÇ ¸ðµç ¾îÇõ鿡¼­ ¿ä±äÇÏ°Ô ¾²ÀÏ ÆÄÀϼ±Åà ¹Ú½º°¡
¼Ò°³µÇ¾î ÀÖ½À´Ï´Ù.  ±×³É '½¬¾î°¡´Â ÆäÀÌÁö' Á¤µµ µÉ µí Çϳ׿ä.  :)  ¿¹Á¦¸¦
ÄÄÆÄÀÏÇؼ­ ½ÇÇàÇØ º¸¸é, ¿Ö ³Êµµ³ªµµ ÅøŶ(toolkit)À» ã´ÂÁö ¾Ë ¼ö ÀÖÀ»
°Ì´Ï´Ù.

==> tut11.txt <==
*******************
*** 11. ¸Þ´º widget
*******************
¸Þ´º(menu)¸¦ ¸¸µå´Â ¹æ¹ýÀ» ¼Ò°³ÇÏ°í ÀÖ½À´Ï´Ù.  GTK+ ¿ª½Ã ÇϳªÀÇ
ÅøŶÀ̴ϱñ ³ª¸§´ë·Î ¸Þ´º Çϳª ¸¸µé¾î ÁÖ´Â ÇÔ¼ö ÂëÀº Á¦°øÇÕ´Ï´Ù.  ±×¸®°í
¼¶¼¼ÇÔ¿¡¼± ¾à°£ ¶³¾îÁöÁö¸¸, ¸Þ´º¸¦ ¿Õâ ´ë·®»ý»êÇØÁÖ´Â °øÀå(factory)µµ
Á¦°øÇÕ´Ï´Ù.  ¸Þ´º¿¡´Â Ç®´Ù¿î(pull-down)°ú Æ˾÷(pop-up) µÎ°¡Áö°¡ ÀÖÁÒ.
±×¸®°í ½¬¿î ¹æ¹ý°ú "´õ" ½¬¿î ¹æ¹ý(¸Þ´º°øÀå)À» °¢°¢ ÀÌÇØÇÒ ¼ö ÀÖµµ·Ï µÎ
¿¹Á¦ ÇÁ·Î±×·¥ÀÌ ¼Ò°³µÇ¾ú½À´Ï´Ù.

==> tut12.txt <==
********************************
*** 12. ¹®¼­È­µÇÁö ¾ÊÀº widgetµé
********************************
'ÀÌ·± °Íµé¿¡ ´ëÇؼ­´Â ¾ÆÁ÷ Æ©Å丮¾óÀÌ ¾øÀ¸´Ï ´ç½ÅÀÌ ÇÑ ¹ø
¸¸µé¾î ºÁ!' -> ÀÌ·¯´Â±º¿ä. :)  ´©°¡ º»º¸±â·Î Preview¶ó´Â widget¿¡ ´ëÇØ
½á³ù´Ù¸ç ±× ¹®¼­¸¦ ÀοëÇß´õ±º¿ä.  ÇÏÁö¸¸ Àü ±× ºÎºÐÀ» °ú°¨È÷(?!) »èÁ¦ÇÏ°í
ÀÌ Àå Àüü¸¦ ºñ¿öµ×½À´Ï´Ù.  (Á˼Û~*)  www.gimp.org/gtk¿¡ ÀÖ´Â ¿ø¹®À» Âü°í
Çϼ¼¿ä.

==> tut13.txt <==
*************************
*** 13. À̺¥Æ®¹Ú½º widget
*************************
gtk+970916.tar.gz ÀÌÈÄÀÇ ¹èÆ÷º»¿¡¼­¸¸ Áö¿øÇÏ´Â widgetÀ̶ó´Â±º¿ä.
¸Þ´ºµµ ¾Æ´Ï°í ¹öÆ°µµ ¾Æ´Ï°í, ¾î·µç °á°úÀûÀ¸·Î À¯¿ëÇÏ°Ô(?) ¾²Àδٳ׿ä. :)

==> tut14.txt <==
********************************
*** 14. WidgetÀÇ ¼Ó¼ºÀ» ¼¼ÆÃÇϱâ
********************************
Á¦¸ñÀº ±×·²µíÇÏÁö¸¸, ½ÇÁ¦·Î ÀÌ ÀåÀ» ¿­¾îº¸´Ï ÇÔ¼ö¿øÇü(prototype)
¸î °³ »ÓÀÌ´õ±º¿ä.  ÇÏÁö¸¸ GTK+¿¡¼­µµ ¿ª½Ã ±ä ÇÔ¼öÀ̸§Àº ±× ÀÚü°¡ ¼³¸íÀÔ
´Ï´Ù.  Ã¹ ºÎºÐ¿¡ ¹«½¼ ÀܼҸ®°¡ ÀÖ´øµ¥, ±×³É ÀÖ´Â ±×´ë·Î Çؼ®ÇØ µ×½À´Ï´Ù.
°¢ widget objectµéÀÇ ¼Ó¼º(property)À» °ü¸®Çϱâ À§ÇÑ ÇÔ¼öµéÀÔ´Ï´Ù.

==> tut15.txt <==
******************************************
*** 15. ŸÀӾƿô, ±×¸®°í I/O¿Í Idle ÇÔ¼öµé
******************************************
ÁÖ¾îÁø ½Ã°£(milliseconds)¸¶´Ù È£ÃâµÇ´Â ÇÔ¼ö, ±×³É ´ë±âÇÏ´Â ÇÔ¼ö,
µ¥ÀÌÅÍÀÇ À̵¿À» °¨½ÃÇÏ´Â(monitoring) ÇÔ¼ö µîÀÌ ¼Ò°³µÇ¾î ÀÖ½À´Ï´Ù.  ¿¹Á¦´Â
¾øÁö¸¸ ´ëÃæ º¸¸é °¨ÀÌ ÀâÈú °Ì´Ï´Ù. ^^;

==> tut16.txt <==
**************************
*** 16. Selection °ü¸®Çϱâ
**************************
´ëºÎºÐÀÇ Å͹̳ÎÀ̳ª ¿¡µðÅÍ(editor)´Â ¸¶¿ì½º·Î º»¹®À» Âï ±ÜÀ¸¸é
±× ¼±ÅÃµÈ ¿µ¿ªÀÌ ¹ÝÀüµÇ°í, ¸Þ´º¿¡¼­ ±× ¿µ¿ª¿¡ ´ëÇØ Ä«ÇÇ(copy), ÄÆ(cut),
ÆäÀ̽ºÆ®(paste) µîÀÇ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ½À´Ï´Ù.  ±×·±µ¥ ¾î¶² ¿¡µðÅÍ¿¡¼­ ¹º°¡
±Ü¾î³õ°í °ð¹Ù·Î ´Ù¸¥ ¿¡µðÅÍÀÇ ¶Ç ÇÑ ¿µ¿ªÀ» ±ÜÀ¸¸é º¸Åë ¾î¶»°Ô µÇ´ø°¡¿ä?
Á¦°¡ ±â¾ïÇÏ´Â °ÅÀÇ ¸ðµç ¾îÇÃÀÇ °æ¿ì, ¸ÕÀú ±Ü¾ú´ø ³»¿ëÀº '¹«½Ã'µÇ´õ±º¿ä.
ÀÌ·± ¹®Á¦¸¦ selectionÀÌ °ü¸®ÇÕ´Ï´Ù.  ±²ÀåÈ÷ ¾î·Á¿î ´Ü¾îµµ ÀÖ°í Çؼ­, °Ü¿ì
¹ø¿ªÇß½À´Ï´Ù.  (¿ø¹®Àº ²Ï ÀоîÁÙ ¸¸ Çߴµ¥, Á¦°¡ ¹ø¿ªÇÑ °Ç ³ªµµ ÀбⰡ
½È³×¿ä. :)

==> tut17.txt <==
************
*** 17. glib
************
GTK+ FAQ¿¡¼­µµ °£´ÜÈ÷ ¹àÇûÁö¸¸, GTK+´Â ±âÁ¸ÀÇ libc°¡ ¾Æ´Ñ, glib¸¦
ÀÌ¿ëÇÕ´Ï´Ù.  ´çÀå °¢ Ç÷§Æû¿¡¼­ ÀÌ »õ·Î¿î ¹öÀüÀÇ C ¶óÀ̺귯¸®¸¦ ¼³Ä¡Çؾß
ÇÒ »Ó¸¸ ¾Æ´Ï¶ó, ¸î°¡Áö Ç¥ÁØÇÔ¼öµéÀÌ glib¿¡¼­ ¾î¶»°Ô º¯Çß´ÂÁö ´ëÃæ ¾Ë¾Æ³ö¾ß
ÇÏ°ÚÁÒ.  (ÀϹÝÀûÀÎ »ç¿ëÀÚ ÀÔÀå¿¡¼­´Â º°·Î º¯ÇÑ °Ô ¾ø½À´Ï´Ù, ¿ø·¡ printf°¡
g_print·Î ¹Ù²ï ½ÄÀ̴ϱñ¿ä. ;)
ÀÌ Àå¿¡¼­´Â ±âÁ¸ÀÇ libc¿¡¼­´Â Á¦°øÇÏÁö ¾Ê´Â »õ·Î¿î °ÍµéÀ» À§ÁÖ·Î,
°£´ÜÇÑ ¼³¸íÀ» ÇÏ°í ÀÖ½À´Ï´Ù.  °¢ ÀÚ·áÇü¸¶´ÙÀÇ ±ØÇÑ°ª(extrema)°ú, ¾ÆÅ°ÅØÃÄ
(architecture)¿¡ °ü°è¾øÀÌ typedefµÈ ÁÖ¿ä ÀÚ·áÇü(data type)µé, ±×¸®°í ¸»ÀÌ
³ª¿Â ±è¿¡ ÁÙÁÙÀÌ ¿¬°á¸®½ºÆ®(linked list)µµ ¼Ò°³ÇØ ³ù±º¿ä.  ±âÁ¸ÀÇ ¸Þ¸ð¸®
°ü¸® ÇÔ¼ö ´ë½Å ¾²¶ó¸é¼­ g_malloc/g_free¸¦ ºñ·ÔÇÑ, glibÆÇÀÇ ¸Þ¸ð¸®ÇÔ¼öµéµµ
ÀÖÀ¸¸ç, ½Ã½ºÅÛ Å¸À̸Ó(timer)ÇÔ¼ö, ¹®ÀÚ¿­(string)ÇÔ¼ö±îÁö Àֳ׿ä.  ±×¸®°í
³¡À¸·Î À¯Æ¿¸®Æ¼ ¹× ¿¡·¯ÇÔ¼öµéÀ» ¼Ò°³Çß½À´Ï´Ù.

==> tut18.txt <==
*********************
*** 18. GTKÀÇ rc ÆÄÀÏ
*********************
À¯´Ð½º °è¿­ÀÇ ¿î¿µÃ¼Á¦¸¦ ÀÌ¿ëÇÏ´Â ºÐÀ̶ó¸é ²Þ¿¡¼­µµ ÀÌ rcÆÄÀÏÀ»
ÆíÁýÇÏÁö³ª ¾ÊÀ»Áö ¸ð¸£°Ú³×¿ä. ^^;  ÀÌ Àå¿¡¼­´Â ¿ì¸®°¡ Àͼ÷ÇØÁø ¾îÇõéó·³,
¶È°°Àº ¹ÙÀ̳ʸ®(binary,executable)¸¦ °¢ »ç¿ëÀÚÀÇ ÀÔ¸À¿¡ ¸Â°Ô 'ȯ°æ¼³Á¤'À»
Çؼ­ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °É ¼Ò°³ÇÕ´Ï´Ù.  GTK+ÀÇ rcÆÄÀÏÀº ´Ù¸¥ ´ëºÎºÐÀÇ X¿ë
¾îÇõé°ú ºñ½ÁÇÑ, ÀÏ°ü¼º ÀÖ´Â ½Éº¼(simbol)À» ÀÌ¿ëÇÕ´Ï´Ù.  ¸¶Áö¸· ºÎºÐ¿¡
¿¹Á¦ rcÆÄÀÏÀÌ ÀÖÀ¸´Ï Âü°íÇϼ¼¿ä.

==> tut19.txt <==
******************************
*** 19. ÀڽŸ¸ÀÇ widget ¸¸µé±â
******************************
À½... Á˼ÛÇÏ°Ôµµ ÀÌ ÀåÀº ¾ÆÁ÷ ³¡³»Áö ¸øÇß½À´Ï´Ù.  ÀԴ븦 ÇÑ´Þ
¾ÕµÎ°í ÁÖÃ¥¾øÀÌ »õ³»±âµé »õÅÍ¿¡ µû¶ó°¡°í, ¸çÄ¥µ¿¾È ¼ú¿¡ Àý¾ú´Ù°¡, Áý¿¡
¿Í¼­´Â Á¤½Å¾øÀÌ ºñµð¿À¸¦ º¸´À¶ó... ÀÌ·¸°Ô µÇ¾úÁÒ. :)  Á» Á¤¸®°¡ µÇ´Â´ë·Î
¸¶Àú ¿Ã¸®°Ú½À´Ï´Ù.  ±Ùµ¥ ÆÄÀÏ Å©±â°¡ Àå³­ÀÌ ¾Æ´Ñ°É¿ä?  ¿¡±Ã...

==> tut20.txt <==
**********************************
*** 20. ³«¼­Àå, °£´ÜÇÑ ±×¸®±â ¿¹Á¦
**********************************
»ó´çÈ÷ ¹æ´ëÇÏ°í Àâ´ÙÇÑ(?) ³»¿ëÀ» ´Ù·ç´Â ÀåÀÔ´Ï´Ù.  GIMPó·³, ÁøÂ¥
±×¸²À» ´Ù·ç±â À§Çؼ­ ¾Ë¾Æ¾ß ÇÒ °ÍµéÀ̶ó°í Çϴ±º¿ä.
¸ÕÀú ¸¶¿ì½º¿Í Å°º¸µåÀÇ ¹Ì¹¦ÇÑ Àú¼öÁØ À̺¥Æ®(low-level event)¸¦
´Ù·ç°í ÀÖ½À´Ï´Ù.  Xlib¿¡¼­ Á¢ÇÒ ¼ö ÀÖµíÀÌ ¿©·¯ #define »ó¼öµéÀ» ºñÆ®¿¬»ê
(bitwise operation)½ÃÅ°´Â °ÅÁÒ.  ÀÌ »ó¼öµéÀº Å°º¸µå¿Í ¸¶¿ì½º¿¡¼­ ÀϾ´Â
¿©·¯°¡Áö À̺¥Æ®µéÀ» ¼¶¼¼ÇÏ°Ô ±¸º°Çϱâ À§ÇÑ °ÍÀÌ°ÚÁÒ?  µÚ¸¦ ÀÕ´Â ³ðµéÀº
³«¼­¸¦ ÇÒ µµÈ­Áö¸¦ °ü¸®ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.  ´ëºÎºÐÀÇ widget°ú ÇÔ¼öµéÀº GTKÀÇ
º£À̽º(base)¸¦ ÀÌ·ç´Â GDK(General Drawing Kits) ¶óÀ̺귯¸®¿¡¼­ ¿Â °Íµé
ÀÔ´Ï´Ù.  À©µµ¿¡ Á÷Á¢ ±×¸®´Â °Íº¸´Ù, ÇȽº¸ÊÀ̶ó´Â °¡»óÀÇ µµÈ­Áö¿¡ ±×·Á³õ°í
±× ³»¿ëÀ» ÇÊ¿äÇÒ ¶§ À©µµ·Î º¹»çÇØ ÁÖ´Â ¹æ½ÄÀ» ¾²ÁÒ, Xlib¿¡¼­Ã³·³.
´ÙÀ½¿£ ÇȽº¸Ê¿¡ ±×¸²À» ±×¸®´Â µµ±¸µé¿¡ ´ëÇØ ÀܼҸ®°¡ À̾îÁý´Ï´Ù.
Xlib¿¡¼­ GC(Graphics Context)¶õ ³ðÀ» ±¸°æÇØ ºÃ´Ù¸é ´õ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ»
°Ì´Ï´Ù.  ¿¹¸¦µé¾î »ç°¢ÇüÀ» Çϳª ±×¸®´Â µµ±¸´Â gdk_draw_rectangle()À̶õ ³ð
Àε¥, »ç°¢ÇüÀ» ÀÌ·ç´Â ¼±ÀÇ ±½±â, »ö±ò, Á¾·ù(½Ç¼±/Á¡¼±/¼â¼±) µî ±âº»ÀûÀÎ
¼Ó¼ºµéÀ» GC¿¡ ÀúÀåÇØ ³õ°í, ½ÇÁ¦·Î ±×¸± ¶§´Â gdk_draw_rectangleÀ̶õ ÇÔ¼öÀÇ
ÀÎÀڷμ­ ÇØ´çÇÏ´Â ¼Ó¼ºÀ» °¡Áö°í ÀÖ´Â GC¸¦ ³Ñ°ÜÁÝ´Ï´Ù.  ¹°·Ð GTK+´Â ÃæºÐÈ÷
°´Ã¼ÁöÇâÀûÀ̱⠶§¹®¿¡ ±âº»¸¸ ÀÌÇØÇÑ´Ù¸é Xlib¿¡¼­º¸´Ù ´õ Á÷°üÀûÀ¸·Î Áñ±æ ¼ö
ÀÖÀ» °Ì´Ï´Ù.
¾ÆÁ÷ ³¡³ªÁö ¾Ê¾Ò±º¿ä! -_-;  ÀÌ Àå¿¡¼­´Â ´õ ¼¶¼¼ÇÑ ±×¸²À» ±×¸®±â
À§ÇØ ¸¶¿ì½ºº¸´Ù ´õ ÁÁÀº(´õ ºñ½Ñ?) ÀÔ·ÂÀåÄ¡¸¦ ÀÌ¿ëÇÒ °ÍÀ», Àº±ÙÈ÷ ºÎÃß±â°í
ÀÖ½À´Ï´Ù.  Drawing tablet°°Àº, Ư¼öÇÑ ÀÔ·ÂÀåÄ¡¿¡¼­ ¹ß»ýÇÏ´Â ¶Ç´Ù¸¥ À̺¥Æ®
µéÀ» ´Ù·ç±â À§ÇØ È®ÀåÀ̺¥Æ®(extended event)¸¦ Á¦°øÇÑ´Ù°í Çϳ׿ä.  ¸¶¿ì½º
¿¡¼­ ¹ß»ýÇÏ´Â ¸î°¡Áö À̺¥Æ®¸¸À¸·Îµµ ¸Ó¸®°¡ ¾Æǵ¥ ¸»ÀÔ´Ï´Ù.  :)  ¾î·µç
ÀÌ ÀåÀÇ ¸¶Áö¸·¿¡¼­´Â, ¸¶¿ì½ºº¸´Ù ´õ ÁÁÀº ÀåÄ¡(device)ÀÇ ±â´ÉÀ» ÀÌ¿ëÇÏ´Â
¹æ¹ý¿¡ ´ëÇØ À̾߱âÇÏ°í ÀÖ½À´Ï´Ù.

==> tut21.txt <==
******************************
*** 21. GTK ¾îÇÃÀ» °³¹ßÇÏ´Â ÆÁ
******************************
³Ê¹« Áß¿äÇÑ ³»¿ëÀ̶ó ²À Á÷Á¢ º¸¶ó°í¹Û¿¡´Â ¸»ÇÒ ¼ö ¾ø³×¿ä. ;)

==> tut22.txt <==
********************
*** 22. Contributing
********************
¿ª½Ã ¸Å¿ì Áß¿äÇÑ °Ì´Ï´Ù.

==> tut23.txt <==
***************
*** 23. Credits
***************
ÀÌ ¹®¼­¸¦ Á¦ÀÛÇÏ´Â µ¥ µµ¿òÀÌ µÈ »ç¶÷µé¿¡°Ô °¨»çÀÇ ¸»À» ÀüÇÏ´Â,
¿ª½Ã ¾ÆÁÖ Áß¿äÇÑ ÀåÀÔ´Ï´Ù.  ÀϺΠ¿ø¹®À» ±×´ë·Î µ×½À´Ï´Ù.

==> tut24.txt <==
***************
*** 24. Copying
***************
GPL¿¡ ÀÇÇÑ ¸ðµç ¹®¼­¿¡¼­ º¼ ¼ö ÀÖ´Â, Á¤¸» Áß¿äÇÑ ±ÛÀÔ´Ï´Ù.
ÀϺη¯ ¿ø¹®À» ±×´ë·Î ³öµ×½À´Ï´Ù.


            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$ ÀÌ ¹®¼­¿Í, °ü·ÃµÈ ¹ø¿ª¹°¿¡ ´ëÇÑ ÀúÀÛ±Ç $$$$$$$$$$$$$$
            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ÀüÀûÀ¸·Î GPL¿¡ µû¸¨´Ï´Ù.  ´©±¸µçÁö ¹«´ÜÀ¸·Î(!) Àοë/¼öÁ¤/¹èÆ÷ÇÒ
¼ö ÀÖ½À´Ï´Ù.  ¹°·Ð "ÇнÀ"À» ¸ñÀûÀ¸·Î ÇÒ °æ¿ìÁÒ.


liberta@zeus.phys.cau.ac.kr
liberta@cau.ac.kr

HomePage Backward Forward Post Reply List
1998 by swindler