· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Glade-KLDP

You are not allowed to 'Keywords'

ÀÌ°÷¿¡¼­ °¡Àå ÃÖ±Ù ¹öÀüÀÇ ¼Ò½º¸¦ ´Ù¿î·ÎµåÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ°÷¿¡´Â ¹Ì¸® ¸¸µé¾îÁø binary¸¦ ÆÑŰ¡ÇÑ RedHat RPM, Debian, Slackware, NetBsd packageµéµµ ¸¶·ÃµÇ¾î ÀÖ´Ù. ±ÞÇϽŠºÐÀº ÀÌ·± binaryÀÇ ÆÑŰ¡À» ¼±ÅÃÇÒ ¼öµµ ÀÖ°Ú´Ù.

¹®¼­

¾ÆÁ÷ °ø½Ä ¹èÆ÷µÇ´Â ¹®¼­´Â ¾ø´Ù. ±×·¯³ª ´ÙÀ½°ú °°Àº ³»¿ëµéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ°Ú´Ù:

1.3 GLADE ¼³Ä¡

¼³Ä¡¸¦ À§Çؼ­ ÇÊ¿äÇÑ °Íµé(requirements)

GLADE¸¦ ¼³Ä¡ÇÏ·Á¸é ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÇÊ¿äÇÏ´Ù.

binary package ¼³Ä¡

RPM µî°ú °°Àº binaryÇüÅÂÀÇ ÆÑÅ°Áö´Â ±× ¼³Ä¡°¡ ¿ëÀÌÇÏ´Ù. ¿¹¸¦ µé¾î¼­ RPMÀº ´ÙÀ½°ú °°ÀÌ ¼³Ä¡ÇÑ´Ù:

rpm -Uvh glade-0.5.7-2.i386.rpm

¼Ò½º·Î ¼³Ä¡

¼Ò½º·Î ¼³Ä¡Çϱâ À§Çؼ­´Â automake 1.4¿Í autoconf 2.13ÀÌ ÇÊ¿äÇÏ´Ù. À̵éÀº ´ëºÎºÐÀÇ linux¿¡ ¼³Ä¡µÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ¾ø´Ù¸é ã¾Æ¼­ ¼³Ä¡ÇØÁÖÀÚ. ±×¸®°í ¼Ò½º·Î ¼³Ä¡ÇÏ´Â °ÍÀº ´ÙÀ½°ú °°ÀÌ, ¸®´ª½º ¼Ò½º ¼³Ä¡ÀÇ ÀüÇüÀûÀÎ ¹æ¹ýÀ» µû¸£¸ç, ±×·¸°Ô ¾î·Á¿î °ÍÀÌ ¾Æ´Ï´Ù:

  1. ¸Ç¸ÕÀú ÇØ¾ß ÇÒ ÀÏÀº ´Ù¿î ·Îµå ¹ÞÀº ÆÄÀÏÀÇ ¾ÐÃàÀ» Ǫ´Â °ÍÀÌ´Ù.
    [simje@rurulala /usr/src/local/gtk]$ tar xvzf glade-0.5.5.tar.gz
    
  2. ´ÙÀ½Àº »õ·Î »ý¼ºµÈ µð·ºÅ丮·Î À̵¿Çؼ­ configure¸¦ ½ÇÇà½ÃŲ´Ù.
    [simje@rurulala /usr/src/local/gtk]$ cd glade-0.5.5
    [simje@rurulala /usr/src/local/gtk/glade-0.5.5]$ ./configure
    
    ¿©±â¼­ ƯÁ¤ µð·ºÅ丮¿¡ ¼³Ä¡µÉ °ÍÀ» °Ü³ÉÇÑ´Ù¸é ¾Æ½Ã´Â ¹Ù¿Í °°ÀÌ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê´Â °æ¿ì µðÆúÆ®·Î /usr/local¸¦ prefix·Î ¼³Á¤ÇÏ°Ô µÈ´Ù.
    [simje@rurulala /usr/src/local/gtk/glade-0.5.5]$ ./configure
    --prefix=/usr
    
  3. ´ÙÀ½Àº makeÀ» ½ÇÇà½ÃÄÑ ÄÄÆÄÀÏÇÏ´Â °ÍÀÌ´Ù.
    [simje@rurulala /usr/src/local/gtk/glade-0.5.5]$ make
    
  4. ÄÄÆÄÀÏÀÌ ³¡³ª¸é ´ÙÀ½°ú °°ÀÌ ¼³Ä¡ÇÑ´Ù.
    [simje@rurulala /usr/src/local/gtk/glade-0.5.5]$ su -c "make install"
    

2. GLADE¸¦ ÀÌ¿ëÇÑ ÅؽºÆ® ¿¡µðÅÍ °³¹ß - »çÀü ´Ü°è

¼³Ä¡°¡ Á¦´ë·Î µÇ¾ú´Â°¡? ±×·¸´Ù¸é ½ÇÇàÀ» Çغ¸ÀÚ. ÀÌ»ó¾øÀÌ ½ÇÇàµÇ¾ú´Ù¸é ÀÌÁ¦ ´Ü¼øÇÑ ¿¹Á¦ °³¹ßÀ» ÅëÇؼ­ GLADE¸¦ ÀÍÇô º¸µµ·Ï ÇÏÀÚ:

2.1 »çÀü Áö½Ä(preliminaries)

±×³É µå·¡±× ¾Ø µå¶øÀ¸·Î °³¹ßÇÒ ¼öµµ ÀÖÁö¸¸ ¿ÜÇüÀ» ¸¸µå´Â °Íº¸´Ù Á» ´õ ±í¼÷È÷ µé¾î°¥·Á¸é ´ÙÀ½°ú °°Àº »çÀü Áö½ÄÀÌ ÇÊ¿äÇÏ´Ù:

¶óÀ̺귯¸®

GLADE°¡ GUI¸¦ ¸¸µé±â À§Çؼ­ ¸¹ÀÌ »ç¿ëÇÏ´Â ¶óÀ̺귯µé·Î½á ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù:

GTK+

ÀÌ°ÍÀº °¡Àå ±âÃÊÀûÀÎ ±â¹Ý Áö½ÄÀ¸·Î½á ´ÙÀ½°ú °°Àº ¹®¼­¸¦ ÅëÇؼ­ ½±°Ô ÀÚ°¡ ÇнÀ ÇÒ ¼ö ÀÖ´Ù http://kldp.org/KoreanDoc/html/GtkTutorial/GtkTutorial.html. ±×·¯³ª Á» ´õ ÀÚ¼¼È÷ µé¿©´Ù º¸°Å³ª library APIµéÀ» º¸·Á¸é ´ÙÀ½ »çÀÌÆ®¸¦ ã¾Æ¾ß ÇÒ °ÍÀÌ´Ù. http://www.gtk.org. ÀÌ°÷¿¡´Â ¸¹Àº ¹®¼­µé°ú ·¹ÆÛ·±½ºµéÀÌ ÀÖ´Ù. ÀÌ ¶óÀ̺귯¸® °´Ã¼µéÀº ´ë°³ ÇÔ¼ö´Â gtk_xxx, ¸Þ¸ð¸® °´Ã¼´Â GtkXxx, ¸ÅÅ©·Î´Â GTK_XXX °ú °°Àº ÇüŸ¦ °¡Áø´Ù.

GDK

XlibÀÇ ²À´ë±â¿¡ ÀÖ´Â wrapper library·Î °í¾ÈµÈ ¶óÀ̺귯¸®ÀÌ´Ù. ÀÌ°ÍÀº GTK+°¡ ÇȽº¸ÊÀ̳ª ÆùÆ® Ä÷¯µîÀ» ´Ù·ê ¶§ »ç¿ëµÇ´Â °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ ¹®¼­µµ http://www.gtk.org¿¡ °¡¸é ãÀ» ¼ö ÀÖ´Ù. ÀÌ ¶óÀ̺귯¸® °´Ã¼µéÀº ´ë°³ ÇÔ¼ö´Â gdk_xxx, ¸Þ¸ð¸® °´Ã¼´Â GdkXxx, ¸ÅÅ©·Î´Â GDK_XXX °ú °°Àº ÇüŸ¦ °¡Áø´Ù.

Glib

ÀÌ°ÍÀº ¸Þ¸ð¸® ±¸Á¶(¸µÅ©µå ¸®½ºÆ®, ¸®½ºÆ®, Çؽ¬, ij½¬, Æ®¸®)³ª ŸÀ̸Ó, ÅؽºÆ® Ãâ·Â°ú °°Àº °ÍÀ» ´Ù·ê ¶§ »ç¿ëµÇ´Â °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ ¹®¼­µµ http://www.gtk.org¿¡ °¡¸é ãÀ» ¼ö ÀÖ´Ù. ÀÌ ¶óÀ̺귯¸® °´Ã¼µéÀº ´ë°³ ÇÔ¼ö´Â g_xxx, ¸Þ¸ð¸® °´Ã¼´Â gxxx, ¸ÅÅ©·Î´Â GXXX °ú °°Àº ÇüŸ¦ °¡Áø´Ù.

À̸¦ ±¸Á¶È­Çؼ­ ±×¸²À¸·Î ³ªÅ¸³½´Ù¸é ´ÙÀ½°ú °°´Ù( gnome ¾ÆÅ°ÅØÃÄ).

GTK+ Æ©Å͸®¾ó »ìÆ캸±â

½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯

À§ÀÇ GTK+ Æ©Å͸®¾ó ÆäÀÌÁö( http://kldp.org/KoreanDoc/html/GtkTutorial/GtkTutorial.html)¸¦ º¸¸é ¸¹Àº ±âÃÊÀûÀÎ ³»¿ëµé¿¡ ´ëÇÑ ¼³¸íÀÌ ÀÖ´Ù. À̵é Áß¿¡¼­ °¡Àå Áß¿äÇÏ´Ù ½ÍÀº °ÍÀº ½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯(À©µµ¿ìÁîÀÇ ¸Þ½ÃÁö ¸Ê, ¸Þ½ÃÁö Çڵ鷯 µî°ú À¯»çÇÑ °³³ä)À̶ó ÇÒ ¼ö ÀÖ°Ú´Ù. ÀÌ´Â ´ë°³ ÇÊ¿äÇÑ Ã¢À» main ÇÔ¼ö(À©µµ¿ìÁîÀÇ WinMain()ÇÔ¼ö)¾È¿¡¼­ »ý¼ºÇÏ°í µð½ºÇ÷¹ÀÌÇÑ ÈÄ, ¸Þ½ÃÁö ÆßÇÁ¿¡ ÇØ´çÇÏ´Â gtk_main() ÇÔ¼ö·Î ÁøÀÔÇÏ´Â µ¥, ÀÌ ¾È¿¡¼­ »ç¿ëÀÚ ¾×¼Ç¿¡ ´ëÇÑ ½Ã±×³ÎµéÀÌ »ý¼ºµÇ¾î¼­ ¾îÇø®ÄÉÀ̼ǿ¡°Ô Àü´ÞµÈ´Ù.

À̸¦ À§Çؼ­´Â »çÀü¿¡ ½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯¸¦ ¸ÊÇνÃÄÑÁÖ´Â Áغñ Á¶ÀÛÀ» ÇØÁÖ¾î¾ß ÇÏ´Â µ¥ ±× ¿ªÇÒÀ» ÇÏ´Â °ÍÀÌ gtk_signal_connect()¶ó´Â ÇÔ¼ö¸¦ ÅëÇؼ­ÀÌ´Ù. GLADE°¡ ¸¸µå´Â ¼Ò½º ÄÚµå´Â »ç¿ëÀÚ°¡ GLADE¸¦ ÅëÇؼ­ µî·ÏÇÏ´Â ½Ã±×³Îµé°ú ½Ã±×³Î Çڵ鷯°£ÀÇ ¸ÊÇÎÀ» ¾îÇø®ÄÉÀ̼ÇÀÇ ¸ÞÀΠâÀ» »ý¼ºÇÏ´Â ÇÔ¼öcreate_window1(ÀÌ À̸§Àº Àý´ëÀûÀÌÁö ¾ÊÀ» ¼ö ÀÖ´Ù) ¾È¿¡¼­ ÇÏ°í ÀÖÀ½À» ¾ÕÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¶ÇÇÑ ÀÌ ÇÔ¼ö ³»¿¡¼­´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ¸ÞÀΠâÀ§¿¡ ºÙ¿© ³õÀº ¸¹Àº À§Á¬µéÀ» »ý¼ºÇÏ°í ¼Ó¼º ¼³Á¤ÇÏ´Â µîÀÇ ÀÏÀ» °âÇÑ´Ù.

ÆÑÅ· ¹× ¼öÆò/¼öÁ÷/Å×ÀÌºí ¹Ú½º

´ÙÀ½À¸·Î ÆÑÅ·À̶ó´Â °³³äÀÎ µ¥ ÀÌ°ÍÀº À©µµ¿ìÁî¿¡´Â ¾ø´Â °³³äÀÌ´Ù(Ȥ½Ã MFC³»ºÎÀûÀ¸·Î ±¸ÇöµÇ¾î 󸮵ǴÂÁö´Â ¸ð¸£Áö¸¸ ¸»ÀÌ´Ù). ±×·¸°Ô ¾î·Á¿î °³³äÀº ¾Æ´Ï°í ¿©·¯°¡Áö À§Á¬À» »öÁ¾ÀÌ À߶ó ºÙÀ̱âó·³ ºÙ¿© ³ª°¥ ¶§ ¹Ø¿¡ ÀÖ´Â °Í°ú ±× À§¿¡ ÀÖ´Â °ÍÀÇ ¹ÙÅÁÀ¸·Î »ý°¢ÇÏ´Â °³³äÀ̸ç ÁÖ·Î ·¹À̾ƿô¿¡ ´ëÇÑ ±â´É Áö¿øÀ» ÇÑ´Ù. ÀÌ°ÍÀº À©µµ¿ìÁî º¸´Ù´Â ÀÚ¹Ù¿¡ ÀÖ´Â ÄÁÅ×ÀÌ³Ê ¹× ·¹À̾ƿô °³³ä°ú À¯»çÇÏ´Ù°í ÇÒ ¼ö ÀÖ°Ú´Ù.

GTK+¸¦ °ðÀÌ °ð´ë·Î ÇÁ·Î±×·¡¹ÖÇÑ´Ù¸é Á¶±Ý ²¨²ô·¯¿ï ¼ö ÀÖ°ÚÁö¸¸, GLADE¿¡¼­´Â ÀÌ°ÍÀ» ½Ã°¢ÀûÀ¸·Î ó¸®ÇØ ÁØ´Ù. ¼öÆò ¹Ú½º(ÀÚ¹Ù ¿ë¾î·Î ÇÑ´Ù¸é ÄÁÅ×À̳Ê) ¹× ¼öÁ÷ ¹Ú½º ±×¸®°í Å×ÀÌºí ¹Ú½º¸¦ Á¦°øÇÏ¸ç ¿©±â¿¡´Ù ¿©·¯°¡Áö °´Ã¼µé, Áï À§Á¬µéÀ» ¼Õ½±°Ô ºÙ¿´´Ù ¶¼¾ú´Ù ÇÒ ¼ö ÀÖ´Ù.

À§¿Í °°Àº °³³äÀ» °¡Áö°í ¸¸µé¾îÁø ¾îÇø®ÄÉÀ̼ÇÀº ´ÙÀ½ ±×¸² GTK·Î ¸¸µç ¾îÇø®ÄÉÀÌ¼Ç ³»ºÎ °èÃþ ±¸Á¶°ú °°Àº ³»ºÎ °èÃþ ±¸Á¶¸¦ °®´Â´Ù.

2.2 GLADE »ìÇDZâ

¼¼ °³ÀÇ µðÆúÆ® À©µµ¿ì

GLADE¸¦ ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº ¼¼°³ÀÇ Ã¢ÀÌ µðÆúÆ®·Î ¶á´Ù:

ÁÖ À©µµ¿ì(main glade window)

ÀÌ°ÍÀº ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ¸ðµç âµé°ú ´ëÈ­»óÀÚµéÀ» ´ã°í ÀÖ´Ù. À̵é ÁßÀÇ Çϳª¸¦ ´õºí Ŭ¸¯Çϸé ÀÌ¿¡ ´ëÀÀÇϴ âÀ̳ª ´ëÈ­»óÀÚ ÅÛÇø®Æ®°¡ ¶á´Ù. ±×¸®°í ÀÌ¿¡ ´ëÀÀÇϴ âÀ̳ª ´ëÈ­»óÀÚÀÇ ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÁ·ÎÆÛƼ ¿¡µðÅÍ °´Ã¼°¡ ÀÌ°ÍÀ¸·Î º¯°æµÈ´Ù.

À§Á¬ ÆÈ·¹Æ® À©µµ¿ì(widget palette window)

ÀÌ°ÍÀº °¡´ÉÇÑ ¸ðµç À§Á¬µéÀÇ µé¾î ÀÖ´Â ÆÈ·¹Æ®ÀÌ´Ù. »õ·Î¿î âÀ̳ª ´ëÈ­ »óÀÚ¸¦ ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡ÇÏ·Á¸é ÆÈ·¹Æ®¿¡ Àִ âÀ̳ª ´ëÈ­»óÀÚ¸¦ Ŭ¸¯Çϱ⸸ ÇϸéµÈ´Ù. ÀÌ·¸°Ô »ý¼ºµÈ âÀ̳ª ´ëÈ­»óÀÚ¿¡ À§Á¬À» ºÙÀÌ·Á¸é À§Á¬À» Ŭ¸¯Çؼ­ ¼±ÅÃÇÑ ´ÙÀ½ ´õÇÏ°íÀÚ ÇÏ´Â À§Ä¡¿¡ Ŭ¸¯ÇÏ¸é µÈ´Ù.

¼Ó¼º ÆíÁý±â À©µµ¿ì(property editor window)

ÀÌ°ÍÀº âÀ̳ª ´ëÈ­»óÀÚ, ±×¸®°í À̵é À§¿¡ ÀÖ´Â À§Á¬µéÀÇ Å©±â ¶Ç´Â ÅؽºÆ® µî°ú °°Àº ¼Ó¼ºµéÀ» º¯°æÇÒ ¶§ »ç¿ëÇÑ´Ù. ÁÖ À©µµ¿ì¿¡ Àִ âÀ̳ª ´ëÈ­»óÀÚ¸¦ Ŭ¸¯ÇÏ¿©, ¶Ç´Â âÀ̳ª ´ëÈ­»óÀÚ À§¿¡ ÀÖ´Â À§Á¬À» Ŭ¸¯Çؼ­, ÇÁ·ÎÆÛƼ¸¦ ¼³Á¤ÇÒ ´ë»ó °´Ã¼¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

±âŸ º¸Á¶ âµé

GLADE´Â ´ÙÀ½°ú °°Àº º¸Á¶ âµéÀ» °¡Áö°í ÀÖÀ¸¸ç ÁÖ·Î ¸Þ´º¸¦ ÅëÇؼ­ Á¢±ÙµÉ ¼ö ÀÖ´Ù:

¸Þ´º ÀÛ¼º À©µµ¿ì

ÀÌ°ÍÀº ÇÁ·ÎÁ§Æ® â¿¡ ¸Þ´º¸¦ Ãß°¡ÇÑ °æ¿ì ÀÌ ¸Þ´º¸¦ Ŭ¸¯ÇÑÈÄ ¼Ó¼º ÆíÁý±â À©µµ¿ì¿¡ ³ªÅ¸³ª´Â edit menu ¹öÆ°À» ´©¸£¸é ³ªÅ¸³­´Ù. ÀÌ°ÍÀ» ÅëÇؼ­ ¿©·¯ºÐÀº ÇÁ·ÎÁ§Æ®ÀÇ ¸Þ´º¸¦ ÆíÁýÇÒ ¼ö ÀÖ´Ù.

ÀÌ°÷¿¡¼­ »ý¼ºµÈ ¸Þ´º´Â ¼Ò½º¿¡ ÀÚµ¿À¸·Î µé¾î°¡°Ô µÈ´Ù.

add¸¦ ´©¸¥ ÈÄ¿¡ Stock Item ÄÞº¸¹Ú½º¸¦ ´­·¯¼­ ¹Ì¸® Á¤ÀǵÈ, ±×¸®°í ³Î¸® ¾²ÀÌ´Â ¸Þ´º¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ÀÌ ¶§ Handler°¡ ÀÌ¿¡ ¸ÂÃç Á¤ÇüÈ­µÈ ²Ã·Î ³ªÅ¸³ª°Ô µÇ¾î ÀÖ´Â µ¥, ÇѱÛÈ­µÈ ¹öÀüÀÇ °æ¿ì Çѱ۷ΠµÈ ÇÔ¼ö°¡ Handler°¡ µÇ¾î¼­ ¼Ò½º¿¡ ±úÁö°Å³ª ÇÑ±Û ºÎºÐÀÌ ¾ð´õ¶óÀÎÀ¸·Î ä¿öÁø ÇÔ¼ö°¡ ³ªÅ¸³ª°Ô µÈ´Ù. °í·Î Handler ºÎºÐÀº µÇµµ·ÏÀÌ¸é ¿µ¹®À¸·Î ¹Ù²ã ÁÖ´Â °ÍÀÌ ÁÁ°Ú´Ù.

À§Á¬ Æ®¸®(widget tree)

ÀÌ°ÍÀº ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëµÈ ¸ðµç À§Á¬µéÀÇ Æ®¸® ±¸Á¶¸¦ º¸¿©ÁÖ´Â À©µµ¿ìÀÌ´Ù. ÀÌ°ÍÀº ÁÖ À©µµ¿ìÀÇ View/Show WidgetTreeÀ» ¼±ÅÃÇؼ­ º¼ ¼ö ÀÖ´Ù.

2.3 ºÐ¼®/¼³°è - ÅؽºÆ® ¿¡µðÅÍ ±â´É

¿ì¸®°¡ ¸¸µé°íÀÚ ÇÏ´Â ÅؽºÆ® ¿¡µðÅÍ´Â ´Ü¼øÇÑ µ¥½ºÅ©Å¾ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î½á ¿ì¼± À©µµ¿ìÁîÀÇ notepad¸¦ ´à¾Ò´Ù°í »ý°¢ÇÏ½Ã¸é µÈ´Ù. ±×·¸´Ù¸é ÀÌ ¿¡µðÅÍ°¡ Áö¿øÇØ¾ß ÇÏ´Â ±×·¡¼­ ±¸ÇöÇØ¾ß ÇÏ´Â ±â´Éµé ¸®½ºÆ®¸¦ »ìÆ캸ÀÚ:

  • ÆíÁýâ¿¡ ¹®ÀÚ ÀÔ·Â, ¼±ÅÃ, º¹»ç, »èÁ¦, ºÙÀ̱⠱â´É
  • ÆíÁýµÈ ³»¿ëÀ» ÀúÀåÇÏ´Â ±â´É
  • ÆÄÀÏÀ» Àоî¿Í ÆíÁýâ¿¡ µð½ºÇ÷¹ÀÌ ÇÏ´Â ±â´É
  • Á¾·á ±â´É
  • about ´ëÈ­ »óÀÚ ±â´É

3. GLADE¸¦ ÀÌ¿ëÇÑ ÅؽºÆ® ¿¡µðÅÍ °³¹ß - ´Ü°èÀû Á¢±Ù

GLADE¸¦ ½ÇÇà½ÃÅ°¸é À§¿¡¼­ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ ¼¼°³ÀÇ Ã¢ÀÌ ¶á´Ù. ¿©±â¿¡¼­´Â ÀÌ·± »óȲ¿¡¼­ ´ÙÀ½°ú °°Àº ´Ü°èº° Á¢±ÙÀ¸·Î À§¿¡¼­ Á¤ÀÇµÈ ±â´ÉÀ» °¡Áø ÅؽºÆ® ¿¡µðÅ͸¦ °³¹ßÇÏ´Â ¸ð½ÀÀ» »ìÇǵµ·Ï ÇÑ´Ù:

3.1 °³¹ß ù¹ø° ´Ü°è - ¹ÙÅÁ À©µµ¿ì

¹ÙÅÁ À©µµ¿ì - »ý¼º

¿ì¼± ÅؽºÆ® ¿¡µðÅÍÀÇ ¹ÙÅÁÀÌ µÇ´Â âÀ» ¸¸µé¾î¾ß ÇÑ´Ù. ±×·²·Á¸é À§Á¬ ÆÈ·¹Æ® À©µµ¿ì¿¡¼­ ´ÙÀ½ ±×¸²ÀÇ ¿ÞÂÊ »ó´ÜÀÇ À§Á¬À» Ŭ¸¯Çؼ­ ¸¸µé ¼ö ÀÖ´Ù.

±×·¯¸é ´ÙÀ½ ±×¸²°ú °°Àº ¹ÙÅÁ âÀ» ¾ò´Â´Ù. ÀÌ ±×¸²À» ÀÚ¼¼È÷ º¸¸é »ç¼± °ÝÀÚµéÀÌ ÃÎÃÎÈ÷ ȸ»öÀ¸·Î ±×·ÁÁ® ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. ÀÌ·± Ç¥½Ã´Â ¾ÕÀ¸·Îµµ ³ª¿À°ÚÁö¸¸ ¹«¾ð°¡¸¦ ºÙÀÏ ¼ö ÀÖ´Â °÷À̶ó´Â ¾ê±âÀÌ´Ù. ¸¶Ä¡ Á¢Âø½Ä ¾Ù¹üÀÇ ºñ´ÒÀ» µé¾î ¿Ã¸®¸é ³ªÅ¸³ª´Â Á¢ÂøÁ¦ »ç¼±°ú °°Àº °ÍÀ̶ó°í »ý°¢ÇÒ ¼ö ÀÖ°Ú´Ù.

ÀÌÁ¦´Â ¿©±â¿¡´Ù ÇÊ¿äÇÑ À§Á¬µéÀ» ºÙ¿©¾ß µÇ°Ú´Ù. ¸ÕÀú ÇÊ¿äÇÑ °ÍµéÀ» »ý°¢Çغ¸¸é ¸Þ´º, Åø¹Ù, ÅؽºÆ® ¹Ú½º, ±×¸®°í »óÅ ¹Ù°¡ ÀÖ°Ú´Ù. ÀÌ°ÍÀ» ±×³É Çϳª¾¿ Çϳª¾¿ ºÙÀÏ ¼ö ÀÖÀ»±î. ¹Ù·Î À§ÀÇ ±×¸²À» ÀÚ¼¼È÷ º¸¸é ºÙÀÏ ¼ö ÀÖ´Â Á¢ÂøÁ¦ ºÎºÐÀº Ä¿´Ù¶þÁö¸¸ ±¸È¹ÀÌ ³ª´©¾îÁ® ÀÖÁö ¾Ê´Ù. Áï ÇϳªÀÇ °´Ã¼¸¸À» ºÙÀÏ ¼ö ÀÖ´Ù´Â ¾ê±â°¡ µÈ´Ù. ±×·¯¹Ç·Î ¾î¶»°Ô ÇØ¾ß ÇÒ ±î?

¹ÙÅÁ À©µµ¿ì - ¸Þ´º¹Ù À§Á¬ ºÙÀ̱â

´äÀº À§¿¡¼­ ¾ð±ÞÇÑ ¹Ù ÀÖ´Â, ´ÙÀ½ ±×¸²°ú °°Àº ¼öÁ÷ ¹Ú½º¶ó´Â À§Á¬À» »ç¿ëÇÏ¸é µÈ´Ù. ÀÌ°ÍÀ» ºÙÀÌ¸é ±× ±× À§¿¡ ¿©·¯°³ÀÇ Á¢Âø °¡´ÉÇÑ ±¸È¹ÀÌ »ý±â°Ô µÇ¾î ¿©·¯°¡Áö À§Á¬µéÀ» ºÙÀÏ ¼ö ÀÖ°Ô µÈ´Ù.

ÀÌ°ÍÀ» Ŭ¸¯ÇÏ¸é ¸¶¿ì½º°¡ ½ÊÀÚ°¡ ¸ð¾çÀ¸·Î ¹Ù²ï´Ù. ÀÌ ¶§ ÀÌ ¸¶¿ì½º Ä¿¼­¸¦ ¹ÙÅÁ À©µµ¿ì¿¡ ´ë°í Ŭ¸¯ÇÏ¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ ¸î °³ÀÇ ¼öÁ÷ ¹Ú½º¸¦ ¸¸µé °ÍÀΰ¡¸¦ ¹¯´Â ´ëÈ­»óÀÚ°¡ ³ªÅ¸³­´Ù.

¿©±â¼­ ¿ì¸®´Â 4¸¦ ÀÔ·ÂÇÏÀÚ. ¿Ö³Ä¸é ¹ÙÅÁ â¿¡ ºÙÀÌ°íÀÚ ÇÏ´Â °´Ã¼°¡ 4°³À̱⠶§¹®ÀÌ´Ù. OK¸¦ ´©¸£¸é ´ÙÀ½°ú °°ÀÌ ¹ÙÅÁ âÀÌ Æòµî ºÐÇÒµÇ¾î ³ªÅ¸³¯ °ÍÀÌ´Ù.

ÀÚ ÀÌÁ¦´Â ÀÌ ³×°³ÀÇ ±¸È¹ °¢°¢¿¡´Ù ¸Þ´º¹Ù, Åø¹Ù, ÅؽºÆ® ¹Ú½º, ±×¸®°í »óÅ ¹Ù¸¦ ºÙ¿© º¸µµ·Ï ÇÏÀÚ. ¸ÕÀú ¸Þ´º¹Ù¸¦ ºÙÀÌ·Á¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ »ý±ä ¸Þ´º¹Ù widgetÀ» À§Á¬ ÆÈ·¹Æ® À©µµ¿ì¿¡¼­ Ŭ¸¯ÇÏ¿© ¼±ÅÃÇÑ´Ù.

±×¸®°í ¹ÙÅÁ â ³× ±¸È¹ Áß °¡Àå À§¿¡ ÀÖ´Â ±¸È¹À» Ŭ¸¯ÇÑ´Ù. ±×·¯¸é ¹ÙÅÁ È­¸éÀº ´ÙÀ½°ú °°ÀÌ º¯ÇÑ´Ù.

ÀÌ°ÍÀ» ÀÚ¼¼È÷ º¸¸é Á¢ÂøÁ¦°¡ ¹ß¶óÁ® ÀÖ´Â ºÎºÐÀº 3°³·Î ÁÙ¾îµç °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. Á¶±Ý Àü¿¡ ÃÖ»ó´Ü¿¡ ºÙÀÎ ¸Þ´º ºÎºÐÀº Á¢ÂøÁ¦°¡ ¾Æ´Ñ °ÍÀ» ¶ÇÇÑ ¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª À̺κÐÀº º°·Î ¸Þ´º °°¾Æ º¸ÀÌÁö ¾Ê´Ù. ¿Ö³Ä¸é ½ÇÁ¦·Î ¸Þ´º¸¦ ÀÔ·ÂÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. ±×·¸´Ù¸é ¸Þ´º¸¦ ÀÌÁ¦ ³Ö¾î º¸ÀÚ.

¹ÙÅÁ À©µµ¿ìÀÇ Á¶±Ý Àü¿¡ ºÙÀÎ ¸Þ´º¸¦ Ŭ¸¯Çϸé ÇÁ·ÎÆÛƼ À©µµ¿ì°¡ ´ÙÀ½ ±×¸²Ã³·³ ³ªÅ¸³­´Ù. ÀÌ°÷À» ÀÚ¼¼È÷ º¸¸é ´Ù¸¥ À§Á¬À» Ŭ¸¯Çؼ­ ¼±ÅÃÇÒ ¶§¿Í´Â ´Ù¸£°Ô ¸Þ´º ÆíÁý(Edit Menus...)À̶ó´Â ¹öÆ°ÀÌ Çϳª ´õ ÀÖ´Ù. ÀÌ°ÍÀ» Ŭ¸¯ÇÏÀÚ.

±×·¯¸é À§¿¡¼­ º» ±×¸² 5¿Í °°Àº È­¸éÀÌ ¶á´Ù. ¿©±â¿¡ ´ÙÀ½ ±×¸²Ã³·³ ÆíÁýÇؼ­ ³Öµµ·Ï ÇÏÀÚ. ´Ü ¸ðµÎ ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â Stock ItemÀ» »ç¿ëÇؼ­ ¸¸µç °ÍÀÌ´Ù. ¸ÕÀú Add ¹öÆ°À» ´­·¯¼­ ÇϳªÀÇ ¾ÆÀÌÅÛÀ» ¸¸µç µÚ¿¡ Stock Item ÄÞº¸ ¹Ú½º¸¦ Ŭ¸¯Çؼ­ ¹Ì¸® ¸¶·ÃµÈ ¾ÆÀÌÅÛÀ» ¼±ÅÃÇϸé Á¶±Ý Àü¿¡ ¸¸µé¾îÁø °ÍÀÌ ¿øÇÏ´Â °ÍÀ¸·Î ¹Ù²ï´Ù. ±×¸®°í NameÀÌ Çѱ۷Π³ª¿Ã °æ¿ì, ÀÌ°ÍÀº ³ªÁß¿¡ ¾Ë°Ô µÇ°ÚÁö¸¸ ¼Ò½º »ý¼º ÈÄ ¼Ò½º ³»ºÎ¿¡¼­ ¸ðµÎ ±úÁö°Å³ª ¹ØÁٷΠǥ±âµÇ¾î ¹¹°¡ ¹ºÁö ¸ð¸£°Ô µÈ´Ù. ÀÌ ¶§´Â NameÀ» ÀûÀýÇÑ °ÍÀ¸·Î ¹Ù²ÙÀÚ. Áï »õ·Î¿îÀ̶ó¸é NewÀ¸·Î ¹Ù²ÙÀÚ. ±×·¯¸é ÀÚµ¿À¸·Î ±× ¾Æ·¡¿¡ ÀÖ´Â Handler°¡ ¹Ù²ï´Ù. Á¤¸» ÁÁ´Ù. ±×¸®°í ¿ÞÂÊ ¸®½ºÆ® â¿¡ ÀÖ´Â Label¿¡ ÇØ´çÇÏ´Â °ÍµéÀº ±× ¾Æ·¡¿¡ ÀÖ´Â ¹æÇ⼺ ÀÖ´Â È­»ìÇ¥ µîÀ¸·Î Á¦¾îµÇ´Â °ÍÀ¸·Î½á ¸Þ´ºÀÇ ±íÀÌ ¹× °èÃþ ±¸Á¶¸¦ ²Ù¹Ð ¶§ »ç¿ëµÈ´Ù.

¹ÙÅÁ À©µµ¿ì - Åø¹Ù À§Á¬ ºÙÀ̱â

ÀÚ ÀÌÁ¦´Â ¹ÙÅÁ À©µµ¿ì¿¡ ´ÙÀ½ ±×¸²°ú °°ÀÌ À§Á¬ ÆÈ·¹Æ®¿¡ ÀÖ´Â Åø¹Ù À§Á¬À» ºÙ¿© º¸µµ·Ï ÇÏÀÚ.

ÀÌ°ÍÀ» Ŭ¸¯ÇÏ¸é ¸¶¿ì½º Ä¿¼­°¡ ½ÊÀÚ°¡ ¸ð¾çÀ¸·Î º¯ÇÑ´Ù. ÀÌ°ÍÀ» ¿ì¸®°¡ ¿øÇÏ´Â À§Ä¡ÀÎ À§¿¡¼­ µÎ¹ø° Ä­¿¡ ³õ°í Ŭ¸¯ÇÑ´Ù. ±×·¯¸é ´ÙÀ½°ú °°ÀÌ ¸î°³ÀÇ Åø¹Ù¸¦ ¿øÇϴ°¡ÇÏ´Â ´ëÈ­ »óÀÚ°¡ ¶á´Ù.

¿©±â¿¡ ¿øÇÏ´Â °³¼ö(ÀÌ °æ¿ì´Â 4°³)¸¦ ÀÔ·ÂÇÏ°í OK¸¦ Ŭ¸¯ÇÏ¸é ´ÙÀ½ ±×¸² ó·³ µÎ¹ø° ÇàÀÌ 4°³ÀÇ »õ·Î¿î Á¢ÂøÆÇÀ» °¡Áø °ÍÀ¸·Î º¯°æµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.

ÀÚ ÀÌÁ¦´Â ÀÌ »õ·Î »ý±ä Á¶±×¸¸ 4°³ÀÇ Á¢ÂøÆÇ¿¡´Ù Åø¹Ù¹öÆ°µéÀ» Áý¾î ³Ö¾î¾ß ÇÑ´Ù. ±×·²·Á¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ À§Á¬ ÆÈ·¹Æ®¿¡¼­ ¹öÆ° À§Á¬À» ¼±ÅÃÇØ¾ß ÇÑ´Ù.

ÀÌ°ÍÀ» ¼±ÅÃÇÑ ÈÄ ¸¶¿ì½º¸¦ ¹ÙÅÁ À©µµ¿ì µÎ¹ø° Çà ù¹ø° Á¢ÂøÆÇÀ¸·Î °¡Á® °¡¸é Ä¿¼­°¡ ½ÊÀÚ°¡ ¸ð¾çÀ¸·Î º¯ÇÑ´Ù. ÀÌ°ÍÀ» Ŭ¸¯ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¹ÙÅÁ È­¸éÀÌ º¯ÇÑ´Ù.

ÀÌ ¶§ º¯°æµÈ ÇÁ·ÎÆÛƼ À©µµ¿ì¸¦ ÀÚ¼¼È÷ º¸¸é Icon ¿·¿¡ ¾Æ·¡¸¦ °¡¸£Å°´Â ÄÞº¸¹Ú½º ¹öÆ°ÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» ´©¸£¸é ´ÙÀ½°ú °°Àº ¹Ì¸® Á¤ÀÇµÈ Stock IconµéÀÌ ³ª¿Â´Ù.

¿©±â¿¡ º¸ÀÌ´Â °Í ¸»°íµµ ¾Æ·¡·Î ½ºÅ©·Ñ Çϸé Á¤¸» ¸¹°í ¿¹»Û ¾ÆÀÌÄܵéÀÌ ÁغñµÇ¾î ÀÖÀ½¿¡ ³î¶ö °ÍÀÌ´Ù. ÀÌ Áß¿¡ Çϳª¸¦ ¼±ÅÃÇÏÀÚ. ±×¸®°í ÇÁ·ÎÆÛƼ¿¡¼­ Label ºÎºÐÀ» ¾ÆÀÌÄÜ¿¡ ¸ÂÃß¾î ¹Ù²Ùµµ·Ï ÇÏÀÚ.. ±×¸®°í¼­ ³ª¸ÓÁö ¼¼°³ÀÇ Á¢ÂøÆǵ鿡 ¿øÇÏ´Â °ÍÀ» ³ÖÀ¸¸é µÇ°Ú´Ù. ±×·¯¸é ´ÙÀ½ ±×¸²°ú °°Àº °ÍÀ» ¾ò´Â´Ù.

¹ÙÅÁ À©µµ¿ì - ÅؽºÆ® ¹Ú½º À§Á¬ ºÙÀ̱â

´ÙÀ½Àº ¼¼¹ø° Çà¿¡´Ù ´ÙÀ½°ú °°ÀÌ À§Á¬ ÆÈ·¹Æ® À©µµ¿ì¿¡ ÀÖ´Â ÅؽºÆ® ¹Ú½º À§Á¬À» ¼±ÅÃÇÏ¿© ºÙ¿© º¸µµ·Ï ÇÏÀÚ.

ÀÌ°ÍÀ» Ŭ¸¯ÇÑ ÈÄ ¸¶¿ì½º¸¦ ¿¹ÀÇ ¹ÙÅÁ À©µµ¿ì ¼¼¹ø° ÇàÀ¸·Î ¿Å±â¸é Ä¿¼­°¡ ½ÊÀÚ°¡·Î ¹Ù²ï´Ù. Ŭ¸¯ÇÏÀÚ ±×·¯¸é ´ÙÀ½ ±×¸²Ã³·³ ¹ÙÅÁ À©µµ¿ì°¡ º¯ÇÑ´Ù.

±×·±µ¥ ÇÁ·ÎÆÛƼ À©µµ¿ì¸¦ º¸¸é EditableÀÌ µðÆúÆ®·Î NoÀ¸·Î µÇ¾î ÀÖ´Ù. ÀÌ°ÍÀº Yes·Î º¯°æÇؾ߸¸ ³ªÁß¿¡ ÅؽºÆ®¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. ±×·±µ¥ ÀüüÀûÀÎ Å©±â°¡ ¸¶À½¿¡ µéÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ±×·±µ¥ ³»ºÎÀÇ À§Á¬ Å©±â¸¦ º¯°æÇÏ´Â °Íº¸´Ù ¹Ù±ù ¹ÙÅÁ À©µµ¿ìÀÇ Å©±â¸¦ Á¶Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½ ±×¸² ó·³ ¹ÙÅÁ À©µµ¿ìÀÇ Å©±â ¼Ó¼ºÀ» º¯°æÇϵµ·Ï ÇÏÀÚ. ±×·¯¸é ³ªÁß¿¡ ½ÇÇà °á°ú°¡ ÀÌ¿¡ ¸ÂÃçÁú °ÍÀÌ¸ç ³ª¸ÓÁö ÀÌ ¹ÙÅÁ À©µµ¿ì°¡ Ç°°í ÀÖ´Â °´Ã¼µéÀÇ Å©±â´Â ÀûÀýÇÏ°Ô ¹èºÐµÉ °ÍÀÌ´Ù.

¹ÙÅÁ À©µµ¿ì - »óŹ٠À§Á¬ ºÙÀ̱â

ÀÚ ÀÌÁ¦´Â ¸¶Áö¸·À¸·Î ¹ÙÅÁ À©µµ¿ì¿¡ ´ÙÀ½ ±×¸²°ú °°Àº À§Á¬ ÆÈ·¹Æ® À©µµ¿ì¿¡ ÀÖ´Â »óŹ٠À§Á¬À» ¼±ÅÃÇؼ­ »óŹ٠À§Á¬À» ºÙ¿© º¸µµ·Ï ÇÏÀÚ.

ÀÌ°ÍÀ» ¼±ÅÃÇÑ ÈÄ ¸¶Áö¸· ³²Àº Á¢ÂøÆÇ À§¿¡ ¸¶¿ì½º¸¦ °¡Á®°¡¸é ¸¶Âù°¡Áö·Î ½ÊÀÚ°¡ ¸ð¾çÀ¸·Î Ä¿¼­°¡ º¯°æµÈ´Ù. Ŭ¸¯ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ¹ÙÅÁ À©µµ¿ì°¡ º¯ÇÑ´Ù.

¹ÙÅÁ À©µµ¿ì - ¸¸µç °ÍÀ» ÀúÀåÇÏ°í ¼Ò½º »ý¼º ±×¸®°í ½ÇÇà

ÀÌ·Î½á ¿ì¸®´Â ¹ÙÅÁ À©µµ¿ì¸¦ ¸¸µé°í ÀÌ À§¿¡ ¸î°¡Áö GUI °´Ã¼µéÀ» ºÙÀÌ°í ¾à°£ÀÇ Á¶Á¤À» Çغ¸¾Ò´Ù. ¾î¶²°¡? ±×·²µíÇÏÁö ¾Ê´Â°¡. ÀÌÁ¦´Â ´ÙÀ½ ±×¸² ó·³ GLADEÀÇ File¸Þ´º¿¡ ÀÖ´Â Save¸¦ ¼±ÅÃÇغ¸ÀÚ.

±×·¯¸é ´ÙÀ½ ±×¸²°ú °°Àº Project Options¶ó´Â ´ëÈ­»óÀÚ°¡ ¶á´Ù. ¿©±â¿¡ ÀûÀýÇÑ °ªÀ» ÀÔ·ÂÇÏ°í OK¸¦ ´©¸£¸é ÇÁ·ÎÁ§Æ®°¡ ÀúÀåµÈ´Ù. ´Ü, »ý¼ºµÉ ¾ð¾î·Î´Â C¸¦ ¼±ÅÃÇϵµ·Ï ÇÏÀÚ.

±×¸®°í À§¿¡¼­ º» File ¸Þ´ºÀÇ Build Source CodeÀ» ¼±ÅÃÇÏ¸é ´«¿¡ º¸ÀÌÁö ¾ÊÁö¸¸ ¼Ò½º°¡ »ý¼ºµÈ´Ù. À§ÀÇ ÇÁ·ÎÁ§Æ®¸¦ ÀúÀåÇÏ´Â °÷¿¡¼­ ÁöÁ¤ÇÑ µð·ºÅ丮¿¡ °¡º¸¸é src¶ó´Â µð·ºÅ丮°¡ ÀÖ´Â µ¥ ¿©±â¿¡ ¸ðµç ¼Ò½º°¡ »ý¼ºµÈ´Ù. ¾Æ½±°Ôµµ ¹Ù·Î ¹º°¡¸¦ Ŭ¸®Çؼ­ »ý¼ºµÈ ¼Ò½º¸¦ °¡Áö°í ½ÇÇà ÆÄÀÏÀ» ¸¸µå´Â ¹æ¹ýÀº ¾ÆÁ÷ ¾ø´Ù. ±×·¡¼­ ¾î¿¼ö ¾øÀÌ ½©À» ÅëÇؼ­ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¼ö¹Û¿¡ ¾ø´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ·çÆ® µð·ºÅ丮¸¦ ls·Î Ãâ·ÂÇغ¸°í ¿©±â¿¡ ¸¶·ÃµÈ autogen.sh¸¦ ½ÇÇàÇϸé ȯ°æ ¼³Á¤ÀÌ ÀÌ·ç¾îÁø´Ù.

±×¸®°í ³ª¼­ makeÀ» ½ÇÇàÇÏ¸é ¿øÇÏ´Â ½ÇÇà ÆÄÀÏÀ» ¾òÀ» ¼ö ÀÖ´Ù. makeÀÇ °á°ú´Â src¿¡ ÇÁ·ÎÁ§Æ® À̸§À» °¡Áø ½ÇÇà ÆÄÀÏÀÌ »ý±â´Â °ÍÀÌ´Ù. ÀÌ°ÍÀ» ½ÇÇàÇÑ °á°ú´Â ´ÙÀ½°ú °°´Ù.

¹ÙÅÁ À©µµ¿ì - ½ÇÇà ÈÄ Á×À̱â

ÀÌÁ¦ Á¾·áÇغ¸ÀÚ. º¸Åë ÇϵíÀÌ ¿À¸¥ÂÊ À§¿¡ ÀÖ´Â ´Ý±â ¹öÆ°À» ´­·¯µµ ¿ì¸®°¡ ¸¸µç ¾îÇø®ÄÉÀ̼ÇÀº Á×Áö ¾Ê´Â´Ù. ¾Æ»Ô»ç. ¿ì¸®´Â ºÒ»ç½ÅÀ» ¸¸µé¾î³½ °ÍÀÌ´Ù. ÀÌÁ¦ ÀÌ ºÒ»ç½ÅÀ» Á׿©º¸µµ·Ï ÇÏÀÚ. ±×·²·¯¸é ÀÌÀü¿¡ ¾ê±âÇÑ GTK Æ©Å͸®¾ó ¼½¼Ç¿¡ ÀÖ´Â ½Ã±×³ÎÀ» ¾Ë¾Æ¾ß ÇÏ°í °¡Àå ±âº»ÀûÀÎ delete_event¶ó´Â ½Ã±×³ÎÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. ÀÌ°ÍÀº ´Ù¸¥ °ÍÀÌ ¾Æ´Ï°í ½ÇÇà ÆÄÀÏÀÇ close ¸Þ´º

ÀÌ°ÍÀº â°ü¸®ÀÚ°¡ ºÙÀÎ ¸Þ´º¸¦ ¸»ÇÑ´Ù. ÀÌ°ÍÀº ¿ì¸®°¡ ¸¸µç ¾îÇø®ÄÉÀ̼ÇÀÇ ¸Þ´º¿Í ´Ù¸£´Ù
¸¦ ¼±ÅÃÇϰųª title bar¿¡¼­ ´Ý±â¸¦ ¼±ÅÃÇϸé X À©µµ¿ì °ü¸®ÀÚ°¡ ½ÇÇà ÆÄÀÏ¿¡°Ô ÀüÇÏ´Â À̺¥Æ®ÀÌ´Ù. ÀÌ°ÍÀ» ¹Þ¾Æ¼­ ó¸®ÇÏ·Á¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ ¹ÙÅÁ À©µµ¿ìÀÇ ÇÁ·ÎÆÛƼ À©µµ¿ìÀÇ ¿©·¯ Åǵé Áß¿¡¼­ ½Ã±×³Î ÅÇ¿¡¼­ ½Ã±×³Î Çڵ鷯 À̸§°ú ÇÔ²² µî·ÏÇØÁÖ¾î¾ß ÇÑ´Ù.

±×·¯¸é ´ÙÀ½ ±×¸²°ú °°ÀÌ µî·ÏµÉ °ÍÀÌ´Ù.

¿©±â¼­ ¿ì¸®´Â ÀÚµ¿À¸·Î ½Ã±×³Î Çڵ鷯 À̸§ÀÌ on_window1_delete_event°¡ µÇ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» ±×´ë·Î ¾²ÀÚ. À̰ͱîÁö ±×¸®°í »ý¼ºµÉ ³»ºÎ ¼Ò½º¿¡ ½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯¸¦ ¿¬°á½ÃÄÑÁÖ´Â °Í±îÁö´Â GLADE°¡ ÇØÁÖ´Â °ÍÀÌ´Ù. ÀÚ ÀÌÁ¦ À§ÀÇ ½ºÅÜó·³ ¼Ò½º¸¦ »ý¼ºÇغ¸ÀÚ. ±×¸®°í ÀÌ ½Ã±×³Î Çڵ鷯 ¾È¿¡¼­ ¿ì¸®´Â ÇØ¾ß ÇÒ ÀÏÀ» Çغ¸µµ·Ï ÇÏÀÚ. ´Ù¸¥ °ÍÀº ¾Æ´Ï°í ´ÙÀ½°ú °°ÀÌ src/callbacks.c¾È¿¡ ÀÖ´Â À§ÀÇ on_window1_delete_event ÇÔ¼ö ³»ºÎ¿¡ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÏ¸é µÈ´Ù.

gboolean
on_window1_delete_event (GtkWidget *widget, GdkEvent *event, 
                gpointer user_data)
{
        gtk_exit( 0 );
        return FALSE;
}
±×¸®°í¼­ makeÇÏ°í(´Ù½Ã autoget.sh¸¦ ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø´Ù. ±×·¯³ª Çѹø ¼Ò½º¸¦ Àç»ý¼ºÇÒ ¶§¸¶´Ù make½Ã ¸ðµç Äڵ尡 ÀçÄÄÆÄÀ쵃 °ÍÀÌ´Ù) ½ÇÇàÇغ¸µµ·Ï ÇÏÀÚ. ÀÌÁ¦ Á¾·áÇϸé Á¦´ë·Î Á¾·áµÉ °ÍÀÌ´Ù.

¾ÕÀ¸·Î ¿ì¸®´Â GLADE ÀÇ ÀÛ¾÷ ´ë»óÀÌ µÇ´Â °´Ã¼¸¦ Æû, ¶Ç´Â ÅÛÇø´À̶ó°í ºÎ¸£ÀÚ. ±×¸®°í ½ÇÁ¦ ½ÇÇàµÈ ÈÄÀÇ °á°ú´Â ±× °á°úÀÇ ¼Ó¼º´ë·Î ºÎ¸£±â·Î ÇÏÀÚ. ¿¹¸¦ µé¾î¼­ ¹ÙÅÁ À©µµ¿ì Æû ¿¡¼­ ¹«¾ù ¹«¾ùÀ» ÀÛ¾÷ÇÏ¸é ¹ÙÅÁ À©µµ¿ì¿¡ ¾î¶² ¾î¶² È¿°ú°¡ ³ªÅ¸³¯ °ÍÀÌ´Ù¶ó´Â ½ÄÀ¸·Î Ç¥ÇöÇϱâ·Î ÇÏÀÚ.

3.2 °³¹ß µÎ¹ø° ´Ü°è - about ´ëÈ­»óÀÚ

¸¹Àº gnome ÇÁ·Î±×·¥µéÀº Ç¥ÁØÈ­µÈ ·è¾ØÇÊÀ» °®´Â´Ù. ÀÌ Áß¿¡¼­µµ ¸Þ´º, Åø¹Ù, »óŹÙ, ±×¸®°í about ´ëÈ­ »óÀÚ°¡ µÎµå·¯Áø´Ù. ¹°·Ð ´Ù¸¥ °Íµµ ÀÖ´Ù. ¿¹¸¦ µé¸é »ö»óÇ¥ ´ëÈ­ »óÀÚ, ÆÄÀÏ ¼±Åñâ(À©µµ¿ìÁîÀÇ File Open, Save, Save As¿Í À¯»ç) µîÀÌ ±×°ÍÀÌ´Ù. ¿ì¸®´Â ¿©±â¼­ about ´ëÈ­ »óÀÚ¸¦ ¸¸µé°í ÀÌ°ÍÀ» ³Ö¾î º¸µµ·Ï ÇÏÀÚ.

about ´ëÈ­»óÀÚ - ´ëÈ­»óÀÚ ¸¸µé±â

´ëÈ­ »óÀÚ¸¦ ¸¸µé ¶§ GTK+°¡ Á¦°øÇÏ´Â ´ëÈ­»óÀÚ À§Á¬À» ±×´ë·Î »ç¿ëÇؼ­ ±× À§¿¡ ´Ù¸¥ ¿©·¯ À§Á¬µéÀ» ºÙ¿©¼­ ¸¸µé¾îµµ µÇ°í, gnomeÀÌ Á¦°øÇÏ´Â ´ÙÀ½°ú °°Àº À§Á¬À» »ç¿ëÇÏ¿© ´õ ½±°Ô ¸¸µé ¼öµµ ÀÖ´Ù. ¿ì¸®´Â ÀÌ°ÍÀ» ÅÃÇغ¸µµ·Ï ÇÏÀÚ.

ÀÌ°ÍÀ» ¼±ÅÃÇÏ¸é ´ÙÀ½°í °°Àº ´ëÈ­»óÀÚ°¡ ³ªÅ¸³­´Ù.

¿ì¸®´Â ÀÌ ¶§, °°ÀÌ º¯ÇÑ ÇÁ·ÎÆÛƼ À©µµ¿ìÀÇ Copyright, Author, Comments, ±×¸®°í Logo¸¦ ¹Ù²Ù¾î¼­ ÀÌ about ´ëÈ­»óÀÚ¸¦ ´ÜÀå½ÃÄÑ º¸µµ·Ï ÇÏÀÚ. ¸ÕÀú Copyright¿Í Author, Comments´Â ´ÙÀ½ ±×¸²Ã³·³ º¯°æÇÑ´Ù.

½ÇÁ¦ ¶È°°ÀÌ Çغ¸½Ã¸é ¾Ë°ÚÁö¸¸ ÀÌµé ³»¿ëÀÌ ¸¹¾ÆÁö¸é ´ëÈ­»óÀÚÀÇ Àüü Å©±â µîÀÌ ÀÚµ¿À¸·Î ´Ã¾îµé¾ú´Ù ÁÙ¾îµé¾ú´Ù ÇÑ´Ù.

±×¸®°í ¸¶Áö¸·À¸·Î Logo¸¦ ÁöÁ¤Çغ¸µµ·Ï ÇÏÀÚ. ÀÌ·¸°Ô ÇÏ·Á¸é Logo ¿·ÀÇ ÆíÁý¹Ú½º¿¡ Á÷Á¢ Æнº¸¦ ÀÔ·ÂÇصµ µÇ°í ±× ¿·¿¡ ÀÖ´Â »ý·«ÇüÀ» Ŭ¸¯Çؼ­ ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ¸¦ ºÒ·¯ ÀÌ°ÍÀ» ÅëÇؼ­ ¼±ÅÃÇصµ µÈ´Ù.

ÀÚ ÀÌÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ÀúÀåÇÑ´Ù.

about ´ëÈ­»óÀÚ - ´ëÈ­»óÀÚ ¶ç¿ì±â

ÇÁ·ÎÁ§Æ®¸¦ ÀúÀåÇÑ µÚ ¼Ò½º¸¦ ¸¸µé¾î ´Ù½Ã make¸¦ Çصµ ¿ì¸®´Â ÀÌ»óÇÑ °á°ú¸¦ ¸¸³­´Ù. Áï ¹ÙÅÁ À©µµ¿ì¿Í Á¶±Ý Àü¿¡ ¸¸µç about ´ëÈ­»óÀÚ°¡ µ¿½Ã¿¡ Æ¢¾î ³ª¿Â´Ù´Â °ÍÀÌ´Ù. ¾î¶»°Ô ÇÏ¸é µÇ°Ú´Â°¡? ¾îµð¿£°¡¿¡¼­ ¿ì¸®°¡ ¿øÄ¡ ¾Ê´Â ÀÌ·± ¾×¼ÇÀ» ¼öÇàÇÏ´Â Äڵ尡 ÀÖÀ» °ÍÀÌ´Ù. ´Ù¸§ ¾Æ´Ñ main.cÀÇ main() ÇÔ¼ö ³»ÀÌ´Ù. ±×·¸´Ù¸é ÀÌ°÷À» º¸°í ´ÙÀ½ ¼¼ ¶óÀÎÀ» ¾ø¾Ö º¸ÀÚ(Áö¿öµµ µÇ°í C commentó·³ ¸·¾Æµµ µÈ´Ù.)

GtkWidget *about1;
.......
about1 = create_about1 ();
gtk_widget_show (about1);

¿øÇÏ´Â ´ë·Î about ´ëÈ­»óÀÚ°¡ ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇÏÀÚ ¸¶ÀÚ ¶ß´Â ÀÏÀº ¾ø¾îÁ³´Ù. ±×·¡µµ ¹®Á¦´Â ³²´Â´Ù. ¾î¶»°Ô ¿øÇÒ °æ¿ì Áï, »ç¿ëÀÚ°¡ ¸Þ´º³ª Åø¹Ù¸¦ ÅëÇؼ­ about¸¦ ¼±ÅÃÇÒ °æ¿ì ¿ì¸®ÀÇ about ´ëÈ­»óÀÚ¸¦ ¶ç¿ì´Â ¹æ¹ýÀº ¹«¾ùÀΰ¡? ´ÙÀ½°ú °°Àº Äڵ带 ºñ¾î ÀÖ´Â ¸Þ´º About¿¡ ´ëÇÑ Çڵ鷯 on_About_activate(callbacks.c¿¡ Á¸Àç) ¾È¿¡ ³Ö¾î ÁÖ¸é µÈ´Ù.

GtkWidget *about1;

about1 = create_about1_dialog ();
gtk_widget_show (about1);
À§¿¡¼­ Áö¿ü´ø ÄÚµåÀÌ´Ù. ÀÌ°ÍÀ» ¿øÇÏ´Â °÷¿¡ ¿Å±ä°Å³ª ´Ù¸§¾ø´Ù. ÀÚ ÇÁ·ÎÁ§Æ®¸¦ ÀúÀåÇÏ°í makeÇÑ ÈÄ ½ÇÇà ÆÄÀÏÀ» ¸¸µé¾î È®ÀÎÇغ¸ÀÚ. About ¹öÆ°À» ´­·¶À» °æ¿ì¿¡µµ ÀÌ¿Í µ¿ÀÏÇÑ È¿°ú¸¦ ¾òÀ¸·Á¸é ¹ÙÅÁ À©µµ¿ìÀÇ Åø¹Ù¿¡¼­ About ¹öÆ°À» ¼±ÅÃÇÑ µÚ ÇÁ·ÎÆÛƼ À©µµ¿ìÀÇ ½Ã±×³Î ÅÇ¿¡¼­ À§¿Í °°ÀÌ ½Ã±×³Î Çڵ鷯¸¦ µî·ÏÇÏÀÚ(´ÙÀ½ ±×¸² ÂüÁ¶). ±×¸®°í ³ª¼­ ÀÌ Çڵ鷯 ¾È¿¡ ¸Þ´º¿Í µ¿ÀÏÇÑ Äڵ带 ³Ö¾î ÁÖ¸é µÈ´Ù(¾Æ´Ï¸é °øÅë ÇÔ¼ö¸¦ ¸¸µé¾î À̸¦ È£ÃâÇصµ µÇ°í).

±×·±µ¥ ÀÌ °ÍÀÌ Á¦´ë·Î ½ÇÇàµÈ´Ù ÇÏ´õ¶óµµ ÀÌ»óÇÑ Á¡ÀÌ ÀÖ´Ù. Áï ¿ì¸®°¡ ³Ö¾ú´ø ·Î°í°¡ Á¦´ë·Î Ãâ·ÂµÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ¿Ö ±×·²±î? GLADE´Â ¸¸µé¾îÁö´Â ¾îÇø®ÄÉÀ̼ÇÀÇ pixmap µð·ºÅ丮ÀÇ µðÆúÆ®¸¦ "/usr/share/pixmaps" ¾Æ·¡ ¾îÇø®ÄÉÀÌ¼Ç À̸§À¸·Î ¼³Á¤ÇÑ´Ù. Á¤È®ÇÏ°Ô ¸»Çϸé gnome-config --datadirÀÇ °á°ú°ªÀ» ¾ò¾î¼­

ÀÌ°ÍÀº ´ë°³ "/usr/share" ÀÌ´Ù
¿©±â¿¡ "pixmaps" ¿Í ¾îÇø®ÄÉÀÌ¼Ç À̸§À» µ¡ºÙÀÎ °ÍÀÌ ·Î°í µî ±×¸² ÆÄÀÏÀÌ ÀúÀåµÇ´Â À§Ä¡°¡ µÈ´Ù.

±×·¯¹Ç·Î »ç¿ëÀÚ°¡ º¹»ç¸¦ ÇϵçÁö ¾Æ´Ï¸é ·çÆ® ±ÇÇÑÀ¸·Î¼­ make install ÇÏ¸é ·Î°í µî ±×¸² ÆÄÀϵéÀÌ À§ÀÇ µð·¹Å丮·Î º¹»çÇÑ´Ù. ±×·¯¸é ¿©±â¿¡ ÀÖ´Â ÆÄÀÏÀÌ »ç¿ëµÇ¾î About ´ëÈ­»óÀÚÀÇ ±×¸²ÀÌ º¸ÀÌ°Ô µÉ °ÍÀÌ´Ù.

about ´ëÈ­»óÀÚ - ´ëÈ­»óÀÚ ¾ø¾Ö±â

ÀÌ·¸°Ô Çؼ­ ¸¸µé¾îÁø about ´ëÈ­»óÀÚ´Â »ç¿ëÀÚ°¡ ¸Þ´º³ª Åø¹Ù¸¦ ÅëÇؼ­ ¶ç¿ï ¼ö ÀÖ´Ù. ±×¸®°í ÀÌ ´ëÈ­»óÀÚÀÇ È®ÀÎ ¹öÆ°À» ´©¸£¸é ¾ðÁ¦µçÁö ´ÝÀ» ¼ö ÀÖ´Ù.

3.3 °³¹ß ¼¼¹ø° ´Ü°è - file open ´ëÈ­»óÀÚ

¸ÕÀú ´ÙÀ½ ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ À§Á¬À» "À§Á¬ À©µµ¿ì"-"GTK+ Basic ÆгÎ" ¿¡¼­ Ŭ¸¯Çϸé ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÈ´Ù.

ÀÌ·¸°Ô Çϸé ÀÚµ¿À¸·Î "src/interface.c"¿¡ create_fileselection1 ¶ó´Â ÇÔ¼ö°¡ »ý±â°í ¿©±â¿¡ ok_button1¿Í cancel_button1 ¹öÆ°µéÀÌ ¸¸µé¾îÁ® ºÙ¿©Áø´Ù.

ÀÌ ´ëÈ­»óÀÚ°¡ ÀûÀýÇÑ »ç¿ëÀÚ ¿ä±¸¿¡ ´ëÇؼ­ È­¸é¿¡ µð½ºÇ÷¹À̵ǵµ·Ï ¼³Á¤ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏÀÚ.

¸Þ´º¿Í ¿¬°áÇϱâ

¹ÙÅÁ À©µµ¿ì Æû¿¡¼­ ¸Þ´º¸¦ ¼±ÅÃÇÏÀÚ. ±×·¯¸é ÇÁ·ÎÆÛƼ À©µµ¿ìÀÇ Widget ÅÇ¿¡ Edit Menus... ¶ó´Â ¹öÆ°ÀÌ º¸ÀÏ °ÍÀÌ´Ù. ÀÌ°ÍÀ» Ŭ¸¯ÇÏ¿© Menu Editor À©µµ¿ì¸¦ ºÎ¸¥ µÚ File ¸Þ´ºÀÇ Open ¼­ºê ¸Þ´º¿¡ ´ëÇÑ Çڵ鷯 À̸§À» È®ÀÎÇÑ´Ù. ´ë°³ on_Open_activate ÀÏ °ÍÀÌ´Ù. ¿ì¸®´Â ÀÌ Çڵ鷯

callbacks.c ¿¡ ÀÖ´Ù
¾È¿¡ file open ´ëÈ­ »óÀÚ¸¦ ºÎ¸£´Â Äڵ带 ³Ö¾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ÇÏÀÚ.
void
on_Open_activate  ( GtkMenuItem   *menuitem,
                    gpointer      user_data)
{
    /* Ãß°¡ ½ÃÀÛ */
    GtkWidget *open_file;
    open_file = create_fileselection1();
    gtk_widget_show (open_file);
    /* Ãß°¡ ³¡   */
}

Åø¹Ù ¹öÆ°°ú ¿¬°áÇϱâ

¸ÞÀÎ À©µµ¿ìÀÇ Open ¹öÆ°À» Ŭ¸¯ÇÏ¿© ¼±ÅÃÇÑ ÈÄ ¼Ó¼º À©µµ¿ìÀÇ Signals ÅÇ¿¡¼­ clicked Çڵ鷯¸¦ µî·ÏÇÑ´Ù. ±×¸®°í Build ¹öÆ°À» ´©¸¥´Ù. ±×·¯¸é callbacks.c ¿¡ ÇØ´ç Çڵ鷯 ÇÔ¼öÀÇ ¹Ùµð¸¸ Ãß°¡µÉ °ÍÀÌ´Ù. ´ë°³ Open ¹öÆ°Àº Åø¹Ù¿¡¼­ µÎ¹ø°À̹ǷΠon_button2_clicked()

À̰͵µ callbacks.c ¿¡ ÀÖ´Ù
ÀÌ µÉ °ÍÀÌ´Ù. ¿©±â¿¡µµ À§ÀÇ Ç׸ñ°ú °°Àº ¼¼ ¶óÀÎÀ» Ãß°¡ÇÏÀÚ.

±×·¯¸é Open ¹öÆ°À» Ŭ¸¯ÇÒ ¶§¸¶´Ù ´ÙÀ½°ú °°Àº ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ°¡ ³ª¿Ã °ÍÀÌ´Ù.

ÀÚ ÀÌÁ¦´Â ÀÌ ´ëÈ­ »óÀÚ¿Í ÀÎÅÍÆäÀ̽º¸¦ ÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ È®ÀÎ ¹öÆ°À» ´©¸£¸é ÀÔ·ÂµÈ ÆÄÀÏÀ» °¡Á®¿À°í ´ëÈ­»óÀÚ¸¦ Á¾·áÇϸç, Ãë¼Ò ¹öÆ°À» ´©¸£¸é ±×³É ´ëÈ­»óÀÚ¸¦ Á¾·áÇÏÀÚ.

ÀÚ ÀÌÁ¦ °¢ ¹öÆ° ½Ã±×³Î Çڵ鷯µéÀ» µî·ÏÇغ¸ÀÚ.

¹®Á¦ ¹× »çÀü Áö½Ä

  1. ¹ÙÅÁ À©µµ¿ì¿¡¼­ »õ·Î¿î ´ëÈ­»óÀÚ¸¦ À§ÀÇ ÄÚµåó·³ »ý¼ºÇÏ¿´´Â µ¥, ±× °á°ú À§Á¬¿¡ ´ëÇÑ Á¤º¸, Áï À§Á¬ Æ÷ÀÎÅ͸¦ µû·Î ÀúÀåÇÏÁö ¾Ê¾Ò´Ù. ÀÌ °ÍÀ» ¾Ë¾Æ¾ß ¹ÙÅÁ À©µµ¿ì³ª Çڵ鷯¿¡¼­ ´ëÈ­»óÀÚ¸¦ ´Ý°Å³ª ¼±ÅÃµÈ ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾ò¾î ¿Ã ¼ö ÀÖ´Ù. °á°úÀûÀ¸·Î ´ëÈ­»óÀÚ¿¡ ´ëÇÑ Á¶ÀÛÀ» ó¸®ÇÒ ¶§, Àü¿ªº¯¼ö ´Ù¸¥ ¹æ¹ýÀ» ÅëÇؼ­ ´ëÈ­»óÀÚ Æ÷ÀÎÅ͸¦ ¾Ë¾Æ³»¾ß ÇÑ´Ù.
  2. ¼±ÅÃµÈ ÆÄÀÏÀº gtk_file_selection_get_filename (GTK_FILE_SELECTION(widget_pointer))) ÀÇ ¸®ÅÏ°ªÀÎ ¹®ÀÚ¿­ÀÌ´Ù.
  3. gtk_signal_connect() ÇÔ¼ö·Î ½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯¸¦ ¿¬°áÇÒ ¶§ ¸¶Áö¸· ÆĶó¹ÌÅÍ·Î void *¸¦ ¸»ÇÏ´Â gpointer Çü °ªÀ» ÁÙ ¼ö ÀÖ°í ¹Þ´Â ÂÊ, Áï ½Ã±×³Î Çڵ鷯 ÂÊ¿¡¼­µµ gpointer ÇüÀÇ °ªÀ» ¹Þ´Â´Ù.
  4. ½Ã±×³Î°ú ½Ã±×³Î Çڵ鷯¸¦ ¿¬°áÇÒ ¶§ gtk_signal_connect_object ¸¦ ¾µ ¼öµµ ÀÖ´Ù. ÀÌ ÇÔ¼ö´Â ´Ù¸¥ °´Ã¼ÀÇ Äݹé ÇÔ¼ö¸¦ ½Ã±×³Î Çڵ鷯·Î ¿¬°áÇÒ ¶§ »ç¿ëµÈ´Ù. ±×¸®°í ÀÌ ÇÔ¼ö´Â Ç¥ÁØ ÇÔ¼ö(¿¹: gtk_widget_show µî)¸¦ ½Ã±×³Î Çڵ鷯·Î ¿¬°áÇÒ ¶§ À¯¿ëÇÏ´Ù. ÀÌ ÇÔ¼öÀÇ ³×¹ø° ÆĶó¹ÌÅÍ´Â ¿¬°áµÇ´Â ½Ã±×³Î Çڵ鷯ÀÇ Ã¹¹ø° ÆĶó¹ÌÅÍ·Î Àü´ÞµÈ´Ù.
  5. GLADE ´Â ´ëÈ­»óÀÚÀÇ ¹öÆ°¿¡ ´ëÇÑ Çڵ鷯¸¦ °³¹ßÀÚ°¡ Ãß°¡ÇÒ ¶§ Data ¶Ç´Â Object ¸¦ ¾²Áö ¾ÊÀ¸¸é gtk_signal_connect() ¶ó´Â ÇÔ¼ö¸¸À» ½á¼­, ¸¶Áö¸· ÆĶó¹ÌÅͷδ ¹«Á¶°Ç NULL À» ÁÖ°í¼­ µî·ÏÇÑ´Ù. ±×·¯³ª Data ¸¦ »ç¿ëÇÏ¸é ¸¶Áö¸· ÆĶó¹ÌÅͷνá ÁöÁ¤µÈ °ªÀ» »ç¿ëÇÏ¿© »ý¼ºÇϸç Object ¸¦ »ç¿ëÇϸé gtk_signal_connect_object() ÇÔ¼ö¸¦ ¾²¸ç ¸¶Áö¸· ÆĶó¹ÌÅÍ·Î Object ¿¡¼­ ÁöÁ¤ÇÑ °ÍÀ» ¾´´Ù. ±×¸®°í After ¹öÆ°À» Ŭ¸¯Çϸé gtk_signal_connect_after() ¸¦ »ç¿ëÇÏ¿© ½Ã±×³ÎÀ» µî·ÏÇÑ´Ù.
  6. GLADE ´Â Ãë¼Ò ¹öÆ°À» µðÆúÆ®·Î ¸¸µç´Ù.

È®ÀÎ ¹öÆ° ½Ã±×³Î Çڵ鷯

¸ÕÀú ´ëÈ­»óÀÚ(¿©±â¼­´Â fileselection1) ÅÛÇø´ÀÌ È­¸é¿¡ ¶°ÀÖÁö ¾ÊÀ¸¸é GLADE ¸ÞÀÎ À©µµ¿ì¿¡¼­ ÇØ´ç ´ëÈ­»óÀÚ¸¦ ´õºíŬ¸¯ÇÏ¿© È­¸é¿¡ ¶ç¿î´Ù. ±×¸®°í ÇÁ·ÎÆÛƼ À©µµ¿ì¸¦ ¶ç¿îµÚ, ´ëÈ­»óÀÚÀÇ È®ÀÎ ¹öÆ°À» ´©¸£¸é ÀÌ ¹öÆ°¿¡ ´ëÇÑ ÇÁ·ÎÆÛƼ¸¦ º¸¿©ÁÙ °ÍÀÌ´Ù. ÀÌ ÇÁ·ÎÆÛƼ À©µµ¿ìÀÇ ½Ã±×³Î ÅÇ¿¡¼­ ´ÙÀ½ ±×¸²Ã³·³ Çڵ鷯¸¦ Ãß°¡ÇÏÀÚ. ±×¸®°í Data ºÎºÐ¿¡ fileselection1 À» ³Öµµ·Ï ÇÏÀÚ(´ÙÀ½ ±×¸² ÂüÁ¶). ±×·¯¸é gtk_signal_connect() ÇÔ¼ö ³×¹ø° ÆĶó¹ÌÅÍ¿¡ ÀÌ °ªÀ» GLADE °¡ ³ÖÀ» °Í

¹°·Ð GLADE ¸ÞÀÎ À©µµ¿ì¿¡¼­ Build ¸¦ Ŭ¸¯ÇØ¾ß ÇÑ´Ù
ÀÌ´Ù.

ÀÌÈÄ interface.c ¿¡ ´ÙÀ½°ú °°Àº ¶óÀÎÀÌ Ãß°¡µÊÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.


gtk_signal_connect (GTK_OBJECT (ok_button1), "clicked",
                    GTK_SIGNAL_FUNC(on_ok_button1_clicked),
                    fileselection1);

Ãë¼Ò ¹öÆ° ½Ã±×³Î Çڵ鷯

Ãë¼Ò ¹öÆ° ½Ã±×³Î Çڵ鷯´Â È®ÀÎ ¹öÆ° ½Ã±×³Î Çڵ鷯¿Í ºñ½ÁÇÏ°Ô µî·ÏÇ쵂 ÇÁ·ÎÆÛƼ À©µµ¿ì/½Ã±×³Î ÅÇÀÇ ½Ã±×³Î Çڵ鷯 µî·Ï ÄÞº¸(´ÙÀ½ ±×¸² ÂüÁ¶)¸¦ Ŭ¸¯ÇÏ¿© gtk_widget_destroy() ¶ó´Â ½ºÅå(Ç¥ÁØ, ³»Àå) Çڵ鷯¸¦ ¼±ÅÃÇÏ¿© µî·ÏÇÏÀÚ. ±×¸®°í Object ºÎºÐ¿¡´Â fileselection1 À» ³Öµµ·Ï ÇÏÀÚ(´ÙÀ½ ±×¸² ÂüÁ¶). ÀÌ·¸°Ô Çϸé gtk_signal_connect() ÇÔ¼ö ´ë½Å¿¡ gtk_signal_connect_object() ¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇϸç ÀÌ ÇÔ¼öÀÇ ³×¹ø° ÆĶó¹ÌÅÍ¿¡ NULL ¾Æ´Ñ Á¶±Ý Àü¿¡ ³Ö¾îÁØ °ªÀ» GLADE °¡

¹°·Ð GLADE ¸ÞÀÎ À©µµ¿ì¿¡¼­ Build ¸¦ Ŭ¸¯ÇØ¾ß ÇÑ´Ù
³Ö´Â´Ù.

À§ÀÇ ±×¸²Àº ³»¿ëÀÌ ´Ù º¸À̶ó°í µðÆúÆ®·Î ³ª¿À´Â °ÍÀ» Á¶±Ý ´Ã¸° °ÍÀÌ´Ù.

±×·¯¸é interface.c ¿¡ ´ÙÀ½°ú °°Àº ¶óÀÎÀÌ Ãß°¡µÊÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.


gtk_signal_connect_object (GTK_OBJECT (cancel_button1), "clicked",
                           GTK_SIGNAL_FUNC (gtk_widget_destroy),
                           fileselection1);

Ãë¼Ò ¹öÆ°ÀÇ °æ¿ì´Â ±×´ë·Î ³öµÎ¾îµµ ¹«¹æÇÏÁö¸¸ È®ÀÎ ¹öÆ°ÀÇ °æ¿ì ½Ã±×³Î Çڵ鷯¿¡ Á¶±Ý Äڵ带 Ãß°¡ÇÏ¿©¾ß »ç¿ëÀÚ°¡ ¹«¾ùÀ» ¼±ÅÃÇß´ÂÁö¸¦ ÆľÇÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ Ãß°¡ÇÏ¸é µÈ´Ù:


void
on_ok_button1_clicked (GtkButton *button,
                       gpointer user_data )
{
    /* Ãß°¡ ½ÃÀÛ */
    GtkWidget *open_file = (GtkWidget *)user_data;
    g_print ("%s\n", gtk_file_selection_get_filename (GTK_FILE_SELECTION
             (open_file)));
    gtk_widget_destroy( (GtkWidget *)open_file );
    /* Ãß°¡ ³¡   */
}

¿ì¼±Àº ¼±ÅÃµÈ ÆÄÀÏÀ» ÅؽºÆ®·Î Å͹̳ο¡ Ãâ·ÂÇÏ´Â °ÍÀ¸·Î ÀÌ ¼½¼ÇÀÇ ¾ê±â¸¦ ³¡³»µµ·Ï ÇÏÀÚ. ³ªÁß¿¡ ÀÌ °ªÀ» È°¿ëÇϱâ·Î ÇÏ°í.

3.4 °³¹ß ³×¹ø° ´Ü°è - font selection ´ëÈ­»óÀÚ

¸ÕÀú ´ÙÀ½ ÆùÆ® ¼±Åà ´ëÈ­»óÀÚ À§Á¬À» "À§Á¬ À©µµ¿ì"-"GTK+ Basic ÆгÎ" ¿¡¼­ Ŭ¸¯Çϸé ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡µÈ´Ù.

À§¿¡¼­ º» ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ¿Í °ÅÀÇ ¸ðµç ¸é¿¡¼­ µ¿ÀÏÇϱ⠶§¹®¿¡ ¸¹Àº ºÎºÐÀ» »ý·«ÇÑ´Ù. ±×·¯³ª »ç¿ëÀÚ°¡ È®ÀÎÀ̳ª Àû¿ëÀ» ´­·¶À» °æ¿ì »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ³»¿ëÀ» ¾ò¾î¿À´Â ºÎºÐÀº ¿©±â¼­ ´Ù·ç±â·Î ÇÑ´Ù. ÀÌ·± ¿ªÇÒÀ» ÇÏ´Â ÇÔ¼ö´Â ÆÄÀϼ±Åðú´Â ´Þ¸® 1°³°¡ ¾Æ´Ï¶ó 3°³Á¤µµ ÀÖ´Ù.

  1. gtk_font_selection_dialog_get_font()
  2. gtk_font_selection_dialog_get_font_name()
  3. gtk_font_selection_dialog_get_preview_text()

¼¼¹ø°´Â Ư¼öÇÑ °æ¿ì¿¡(¿¹¸¦ µé¸é »ç¿ëÀÚ°¡ ±×¸²¿¡ ³ÖÀ» ÅؽºÆ®¸¦ ¼±ÅÃÇÏ´Â °æ¿ì µî) ¾²ÀÏ °ÍÀ¸·Î º¸ÀδÙ. ù¹ø°¿Í µÎ¹ø°´Â ÇÔ¼ö À̸§µéÀÌ °¡¸£ÄÑÁÖ´Â ¹Ù¿Í °°´Ù. ´Ù¸¸ ù¹ø°´Â GdkFont Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÏ°í µÎ¹ø°´Â À̸§¸¸ ¸®ÅÏÇÑ´Ù.

È®ÀÎ ¹öÆ°¿¡ ´ëÇؼ­ À§ÀÇ ¼½¼Ç¿¡¼­ ÇÑ °Í°ú ºñ½ÁÇÏ°Ô Ç쵂 ´ÙÀ½°ú °°ÀÌ ¼±Åà ´ë»ó Á¤º¸¸¦ ¾ò´Â ºÎºÐÀ» Ãß°¡ÇÏÀÚ.


void
on_ok_button2_clicked (GtkButton *button,
                               gpointer  user_data)
{
    /* Ãß°¡ ½ÃÀÛ */
    GtkWidget *font_select = (GtkWidget *)user_data;
    GdkFont *gdk_font = NULL;
    gdk_font = gtk_font_selection_dialog_get_font(
                   GTK_FONT_SELECTION_DIALOG(font_select));
    g_print ("type : %s\n", gdk_font->type ==
             GDK_FONT_FONT ? "font" : ( gdk_font->type ==
             GDK_FONT_FONTSET ?  "fontset" : "unkonwn") );
    g_print ("ascent : %d\n", gdk_font->ascent );
    g_print ("descent : %d\n", gdk_font->descent);
    g_print ( "name = %s\n", 
        gtk_font_selection_dialog_get_font_name( 
            GTK_FONT_SELECTION_DIALOG(font_select)) );
    gtk_widget_destroy( (GtkWidget *)font_select );
    /* Ãß°¡ ³¡  */
}

ÀÌ ÆùÆ® ¼±Åà ´ëÈ­»óÀÚ¸¦ ¶ç¿ì´Â ¸Þ´º¸¦ Çϳª Ãß°¡ÇÏ¿© ÀÌ ´ëÈ­»óÀÚ¸¦ ±¸µ¿½ÃÄѺ¸ÀÚ( ¸Þ´º ¿¡µðÅ͸¦ È°¿ëÇÏÀÚ).

½ÇÇàÈÄ °á°ú´Â ´ÙÀ½°ú °°´Ù(¿À¸¥ÂÊ Å͹̳ο¡ ÂïÈù ³»¿ëÀ» ÁÖ¸ñÇÏÀÚ).

3.5 °³¹ß ´Ù¼¸¹ø° ´Ü°è - text area Á¦¾î

ÀÚ ÀÌÁ¦ ÅؽºÆ® ¿µ¿ªÀ» Á¦¾îÇغ¸ÀÚ. ±âº»ÀûÀ¸·Î ÅؽºÆ® ¿µ¿ª À§Á¬ ÀÚü°¡ ÅؽºÆ® ÀÔ·Â ±â´É, ÀÔ·ÂµÈ ÅؽºÆ®ÀÇ ¼±Åà ±â´É, ¹æÇâÅ° ¹× ¹é½ºÆäÀ̽º Å° ±â´É µîÀ» Áö¿øÇÑ´Ù. ±×¸®°í Del Å°´Â Ä¿¼­ µÚ ¹®ÀÚ Çϳª¸¦ Áö¿ì¸ç ¸¶¿ì½º ¼±Åà ÈÄ Del Å°´Â ¼±ÅÃµÈ ¿µ¿ªÀ» ¸ðµÎ Áö¿î´Ù. ÀÌ°ÍÀº GtkText ¶ó´Â À§Á¬À¸·Î Áö¿øµÈ´Ù. ±×¸®°í ÀÌ À§Á¬Àº GtkEditable À§Á¬À¸·ÎºÎÅÍ ½Â°èµÈ °ÍÀÌ´Ù.

±×·¯¸é ¿©±â¿¡ º¹»ç/ÀÚ¸£±â/ºÙÀ̱⠱â´ÉÀ» ³Ö¾îº¸µµ·Ï ÇÏÀÚ.

º¹»ç

¿ì¸®´Â void gtk_editable_copy_clipboard(GtkEditable *editable); ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¼±ÅÃµÈ ¿µ¿ªÀ» Ŭ¸³º¸µå·Î º¹»çÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ ÆíÁý/º¹»ç ¸Þ´º¸¦ ¼±ÅÃÇßÀ» ¶§ ±¸µ¿µÇ´Â ½Ã±×³Î Çڵ鷯 on_Copy_activate() ¾È¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³Ö¾îº¸ÀÚ.


gtk_editable_copy_clipboard( (GtkEditable *)gTextArea );

±×·¯³ª ¸ÕÀú GtkText Æ÷ÀÎÅÍÇü Àü¿ª º¯¼ö gTextArea °¡ ¼±¾ðµÇ°í ¿ì¸®ÀÇ ¹ÙÅÁ À©µµ¿ì¿¡ ÀÖ´Â ÅؽºÆ® ¿µ¿ªÀ» °¡¸®Å°µµ·Ï Á¤ÀǵǾî ÀÖ¾î¾ß ÇÑ´Ù. ±×·¯¹Ç·Î callbacks.c ¿¡ GtkText *gTextArea ¶ó°í Àü¿ª º¯¼ö ¼±¾ðÀ» ÇÑ´Ù. ±×¸®°í callbacks.c ¿¡ focus_in_event ½Ã±×³Î¿¡ ´ëÇÑ Çڵ鷯¸¦ ¸¸µé°í ÀÌ ¾È¿¡ ´ÙÀ½°ú °°Àº Äڵ带 Ãß°¡ÇÏÀÚ

interface.c ¿¡ À§ÀÇ Àü¿ªº¯¼ö¸¦ ¼±¾ðÇϰųª ÀÌ Àü¿ªº¯¼ö ÃʱâÈ­¸¦ ³Ö´Â´Ù¸é ¹®Á¦°¡ ³¯ ¼ö ÀÖ´Ù. ¿Ö³Ä¸é GLADE ´Â interface.c ´Â ´ë°³ ÇÔ¼ö ¸öü Äڵ尡 µé¾î ÀÖ´Â create_xxx °ú °°Àº ÇÔ¼öµéÀ» ³Ö°í ÀÌ´Â °³¹ßÀÚ°¡ GLADE ¸ÞÀÎ À©µµ¿ìÀÇ Build ¸¦ ´©¸¦ ¶§¸¶ »õ·ÎÀÌ °»½ÅµÇ¾î °³¹ßÀÚ Ä¿½ºÅ͸¶ÀÌÁî Äڵ尡 À¯½ÇµÇ±â ¶§¹®ÀÌ´Ù. ´ë½Å callbacks.c ¿¡ ÀÖ´Â ³»¿ëµéÀº ÁÖ·Î ½Ã±×³Î Çڵ鷯µéÀ̸ç interface.c ¿¡ ºñÇؼ­ À¯½ÇµÇ´Â °ÍÀÌ °ÅÀÇ ¾ø´Ù. ±×·¡¼­ ÃßÈÄ GLADE ÀÇ Build ¿¡ ÀÇÇؼ­ ¼Ò½º°¡ »õ·Î °»½ÅµÉ ¶§, ¿µÇâÀ» ¹ÞÁö ¾Ê´Â °ÍÀ» ÇÊ¿ä·Î ÇÑ´Ù¸é callbacks.c ¿¡ ³Ö´Â °ÍÀÌ ÁÁ°Ú´Ù. ±×·¯³ª ½±°Ô ÇÏ´Â ¹æ¹ýÀÎ Àü¿ª º¯¼ö¸¦ ½á¾ß ÇÑ´Ù¸é Build ÇÏÁö ¾Ê´Â ¹æÇâÀ¸·Î Çصµ ÁÁ´Ù.
:


gboolean
on_text1_focus_in_event(GtkWidget *widget,
                        GdkEventFocus *event,
                        gpointer user_data)
{
        /* Ãß°¡ ½ÃÀÛ */
    g_print( "on_text1_focus_in_event() start\n" );
    if ( gTextArea == NULL )
        gTextArea = (GtkText *)user_data;
        /* Ãß°¡ ³¡   */
    return FALSE;
}

GTK ³»ºÎÀûÀ¸·Î ÅؽºÆ® ¿µ¿ªÀÇ ¼±Åà ¿µ¿ª º¹»ç¿¡ ´ëÇؼ­ Ctrl-C ¸¦ ´ÜÃàÅ°·Î ÇÒ´çÇØ ³õ°í ÀÖ´Ù.

ÀÚ¸£±â

¿ì¸®´Â void gtk_editable_cut_clipboard(GtkEditable *editable); ÇÔ¼ö¸¦ »ç¿ëÇؼ­ ¼±ÅÃµÈ ¿µ¿ªÀ» Ŭ¸³º¸µå·Î À߶ó ³ÖÀ» ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ ÆíÁý/ÀÚ¸£±â ¸Þ´º¸¦ ¼±ÅÃÇßÀ» ±¸µ¿µÇ´Â ½Ã±×³Î Çڵ鷯 on_Cut_activate() ¾È¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³Ö¾îº¸ÀÚ.


gtk_editable_cut_clipboard( (GtkEditable *)gTextArea );

GTK ³»ºÎÀûÀ¸·Î ÅؽºÆ® ¿µ¿ªÀÇ ¼±Åà ¿µ¿ª ÀÚ¸£±â¿¡ ´ëÇؼ­ Ctrl-X ¸¦ ´ÜÃàÅ°·Î ÇÒ´çÇØ ³õ°í ÀÖ´Ù.

ºÙÀ̱â

¿ì¸®´Â void gtk_editable_paste_clipboard(GtkEditable *editable); ÇÔ¼ö¸¦ »ç¿ëÇؼ­ Ŭ¸³º¸µå¿¡ ÀÖ´Â ³»¿ëÀ» ÇöÀç Ä¿¼­ À§Ä¡·Î ³ÖÀ» ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ ÆíÁý/ºÙÀ̱⠸޴º¸¦ ¼±ÅÃÇßÀ» ±¸µ¿µÇ´Â ½Ã±×³Î Çڵ鷯 on_Paste_activate() ¾È¿¡ ´ÙÀ½°ú °°Àº ³»¿ëÀ» ³Ö¾îº¸ÀÚ.


gtk_editable_paste_clipboard( (GtkEditable *)gTextArea );

GTK ³»ºÎÀûÀ¸·Î ÅؽºÆ® ¿µ¿ªÀÇ ¼±Åà ¿µ¿ª ºÙÀ̱⿡ ´ëÇؼ­ Ctrl-P ¸¦ ´ÜÃàÅ°·Î ÇÒ´çÇØ ³õ°í ÀÖ´Ù.

ÀÌÁ¦´Â ÆÄÀÏÀ» Àо ÅؽºÆ® ¿µ¿ªÀ¸·Î ÀоîµéÀÌ°í, ÆÄÀÏ¿¡ ÀúÀåÇغ¸µµ·Ï ÇÏÀÚ.

ÆÄÀÏ Àбâ

À§ÀÇ ÆÄÀÏ ¼±Åà ´ëÈ­ »óÀÚ ¼½¼Ç¿¡¼­ ¼±ÅÃµÈ ÆÄÀÏÀ» Àо ¿ì¸®ÀÇ ¾îÇø®ÄÉÀÌ¼Ç ÅؽºÆ® ¿µ¿ª¿¡´Ù µð½ºÇ÷¹ÀÌÇغ¸ÀÚ.

´ÙÀ½°ú °°ÀÌ ÆÄÀÏ Open ´ëÈ­»óÀÚ¸¦ ±¸µ¿ÇÑ ÈÄ »ç¿ëÀÚ°¡ È®ÀÎ ¹öÆ°À» ´­·¶À» ¶§ ÀÛµ¿µÇ´Â ½Ã±×³Î Çڵ鷯 on_ok_button1_clicked() ¿¡´Ù ÆÄÀÏÀ» Àо ÅؽºÆ® ¿µ¿ª¿¡ ³Ö´Â Äڵ带 Ãß°¡Çغ¸ÀÚ.


void
on_ok_button1_clicked (GtkButton *button,
                       gpointer user_data )
{
    /* Ãß°¡ ½ÃÀÛ */
    GtkWidget *open_file = (GtkWidget *)user_data;
    gchar *file_name =  gtk_file_selection_get_filename 
        (GTK_FILE_SELECTION(open_file));
    FILE *infile = NULL;

    g_print ("%s\n", file_name );
    /* ÅؽºÆ® ¿µ¿ª ¶ôÅ· */
    gtk_text_freeze (GTK_TEXT (text));
    infile = fopen(file_name, "r");
    if (infile) {
        char buffer[1024];
        int nchars;
         
        while (1) {
            nchars = fread(buffer, 1, 1024, infile);
            gtk_text_insert (GTK_TEXT (gTextArea), NULL, NULL,
                NULL, buffer, nchars);
             
            if (nchars < 1024)
                break;
        }
        fclose (infile);
     }

     /* ÅؽºÆ® ¿µ¿ª ¶ôÅ· ÇØÁ¦ */
     gtk_text_thaw (GTK_TEXT (text));

     gtk_widget_destroy( (GtkWidget *)open_file );
     /* Ãß°¡ ³¡   */
}

ÀÌ ÄÚµå´Â ÇöÀç »ðÀÔ Æ÷ÀÎÆ®(current insert point) µÚ¿¡´Ù ÅؽºÆ®¸¦ Ãß°¡ÇÏ´Â °ÍÀ̹ǷΠÆÄÀÏ ³»¿ëÀ» ³Ö±âÀü¿¡ ÅؽºÆ® ¿µ¿ª¿¡ ¾î¶² ³»¿ëÀÌ ÀÖ¾ú´Ù¸é ±× ÀÌÈÄ¿¡ ÆÄÀÏ ³»¿ëÀÌ µé¾î°¥ °ÍÀÌ´Ù.

À§¿¡¼­ »õ·Î »ç¿ëµÈ GTK ÇÔ¼ö´Â ´ÙÀ½°ú °°´Ù.

  1. gtk_text_insert() - ÅؽºÆ® ¿µ¿ªÀÇ ÇöÀç Ä¿¼­ ÀÌÈÄ¿¡ ÁÖ¾îÁø ¹öÆÛÀÇ ³»¿ëÀ» ä¿î´Ù.
  2. gtk_text_freeze(), gtk_text_thaw() - ÅؽºÆ® ¿µ¿ªÀ» ¶ôÅ·ÇÏ°í ¾ð¶ôÅ·ÇÑ´Ù.

ÆÄÀÏ ÀúÀå

ÀÌÁ¦´Â ÇöÀç ÅؽºÆ® ¿µ¿ªÀÇ ³»¿ëÀ» ÆÄÀÏ·Î ½áº¸ÀÚ. ±×·²·Á¸é ÅؽºÆ® ¿µ¿ª Àüü¸¦ ÃßÃâÇØ¾ß ÇÑ´Ù. ÅؽºÆ® ¿µ¿ª ÀϺθ¦ ÃßÃâÇÏ´Â ÇÔ¼ö´Â gtk_editable_get_chars( GtkText *editable, gint start_pos, gint end_pos); ÀÌ´Ù. ¿©±â¼­ start_pos, end_pos ´Â 0ºÎÅÍ ½ÃÀÛÇÏ´Â À§Ä¡ Á¤º¸ÀÌ´Ù. ±×¸®°í º¸Á¶ ÇÔ¼ö·Î½á ÅؽºÆ® ¿µ¿ªÀÇ Àüü ±æÀ̸¦ ±¸ÇÏ´Â ÇÔ¼ö gtk_text_get_length( GtkText *gtktext ); °¡ ÀÖ´Ù. À̵éÀ» ÀÌ¿ëÇؼ­ ÆÄÀÏ¿¡ ÀúÀåÇغ¸±â·Î ÇÏÀÚ.

¸ÕÀú Save ´ëÈ­ »óÀÚ¸¦ À§ÀÇ ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ¿¡¼­ Çß´ø °Íó·³ Ãß°¡ÇÏÀÚ. ±×¸®°í »ç¿ëÀÚ°¡ È®ÀÎ ¹öÆ°À» ´©¸£¸é ±¸µ¿µÇ´Â ½Ã±×³Î Çڵ鷯ÀÎ on_ok_button3_clicked() ÇÔ¼ö ¾È¿¡ ´ÙÀ½°ú °°Àº Äڵ带 ³Ö¾î º¸ÀÚ:


    GtkWidget *save_file = (GtkWidget *)user_data;
    gchar *file_name =  gtk_file_selection_get_filename 
        (GTK_FILE_SELECTION(save_file));
    FILE *outfile = NULL; 
    int ntotal = gtk_text_get_length( gTextArea );
    int nchars;
    gchar *buffer = NULL;
    gint nEnd = ntotal > 1024 ? 1024 : ntotal;
    gint nStart = 0;

    g_print ("save file name : %s\n", file_name );
    g_print ("ntotal =  %d\n", ntotal );

    /* ÅؽºÆ® ¿µ¿ª ¶ôÅ· */ 
    gtk_text_freeze (GTK_TEXT (gTextArea));
    outfile = fopen(file_name, "w+");
    if (outfile) {
        buffer = gtk_editable_get_chars( (GtkEditable *)gTextArea, 
                0, nEnd );
        nchars = fwrite(buffer, 1, nEnd, outfile);
        g_free( buffer );
        while (nEnd < ntotal) {
            nStart = nEnd;
            nEnd = (nEnd + 1024) < ntotal ? nEnd + 1024 : ntotal;
            buffer = gtk_editable_get_chars( (GtkEditable *)gTextArea, 
                nStart, nEnd );
            g_print( "when iter : nStart=%d:nEnd=%d:buffer=%s\n", 
                    nStart, nEnd, buffer );
            nchars = fwrite(buffer, 1, nEnd-nStart, outfile);
            g_free( buffer );
        }
        fclose (outfile);
     }
     /* ÅؽºÆ® ¿µ¿ª ¶ôÅ· ÇØÁ¦ */
     gtk_text_thaw (GTK_TEXT (gTextArea));

     gtk_widget_destroy( (GtkWidget *)save_file );

¿©±â¼­ ÇÑ°¡Áö ÁÖÀÇÇÒ °ÍÀº GTK °è¿­ÀÇ ÇÔ¼öµéÀÌ ÇѱÛÀ» ¸ðµÎ 2-byte ¹®ÀÚ°¡ ¾Æ´Ñ 1-byte ¹®ÀڷΠó¸®ÇÑ´Ù´Â °ÍÀÌ´Ù. ¹Ý¸é¿¡ fwrite ´Â 2-byte ¹®ÀÚ¸¦ 2-byte ±×´ë·Î ó¸®ÇÑ´Ù. ±×·¡¼­ ÀÌ·± ¿ÀÂ÷·Î ÇѱÛÀ» ÆÄÀÏ·Î ÀúÀåÇϸé À¯½ÇÀÌ ¹ß»ýÇÑ´Ù.

±×¸®°í g_free ÇÔ¼ö´Â gtk_editable_get_chars() ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ¾òÀº gchar Æ÷ÀÎÅÍ¿¡ ´ëÇؼ­ È£ÃâÇÏ¿© ¸®¼Ò½º¸¦ ¹ÝȯÇÏ´Â ÇÔ¼ö·Î½á ¹Ýµå½Ã ÀÌ·¸°Ô ¸®¼Ò½º¸¦ ¹ÝȯÇÏ¿©¾ß ÇÑ´Ù°í ÇÑ´Ù(GTK ¸Å´º¾ó ÂüÁ¶).

¸¶Áö¸·À¸·Î ÆùÆ®¸¦ ¹Ù²Ù¾î µð½ºÇ÷¹ÀÌ Çغ¸ÀÚ.

ÆùÆ® º¯°æ ÈÄ µð½ºÇ÷¹ÀÌ

ÆùÆ®¸¦ º¯°æÇؼ­ µð½ºÇ÷¹ÀÌÇÒ·Á¸é ¸ÕÀú ÆùÆ® ¼±Åà ´ëÈ­»óÀÚ¿¡¼­ È®ÀÎÀ» ´­·¶À» °æ¿ì ÀÌ¿¡ ´ëÇÏ¿© ±¸µ¿µÇ´Â ½Ã±×³Î Çڵ鷯¿¡¼­ ½ÃÀÛÇØ¾ß ÇÑ´Ù. ´ë·«ÀûÀ¸·Î ¼³¸íÇϸé ÀÌ Çڵ鷯¿¡¼­ ÇØ¾ß ÇÒ ÀÏÀº, Àüü ÅؽºÆ®¸¦ ¾ò°í ÅؽºÆ® ¿µ¿ªÀ» ¸ðµÎ Áö¿î ´ÙÀ½ »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ÆùÆ®¸¦ ÀÌ¿ëÇؼ­ gtk_text_insert() ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀÌ´Ù. ÀÌ ÇÔ¼öÀÇ ÆùÆ® ÆĶó¹ÌÅÍ¿¡´Ù NULLÀ» ÁÖ¸é µðÆúÆ® ÆùÆ®¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½ ¼Ò½º¸¦ ½Ã±×³Î Çڵ鷯(¿¹: on_ok_button2_clicked())ÀÇ ¿¹ÀÇ ¼Ò½º(À§ÀÇ ¼½¼Ç ÂüÁ¶)¸¶Áö¸·¿¡ Ãß°¡Çϵµ·Ï ÇÏÀÚ:


        ntotal = gtk_text_get_length( (GtkText *)gTextArea );
    /* ÅؽºÆ® ȹµæ */
    text_value = gtk_editable_get_chars( 
            (GtkEditable *)gTextArea, 0, ntotal );
    /* ÅؽºÆ® ¸ðµÎ Áö¿ì±â */
    gtk_editable_delete_text( (GtkEditable *)gTextArea, 0, ntotal );
    gtk_text_insert( (GtkText *)gTextArea, gdk_font, NULL, NULL,
            text_value, ntotal );
    g_free( text_value );

ÆùÆ® º¯°æÈÄÀÇ ½ÇÇàÈ­¸éÀº ´ÙÀ½°ú °°´Ù.

ÀÌÈÄ¿¡ ÀԷµǴ ¸ðµç ÅؽºÆ®°¡ ÁöÁ¤µÈ ÆùÆ®·Î µð½ºÇ÷¹À̵ȴÙ. ´Ü ÇÑ°¡Áö ¹®Á¦´Â Á¤È®ÇÑ threshold °ªÀº ¸ð¸£°ÚÁö¸¸ Ä¿´Ù¶õ ÆùÆ®(¿¹: 72pt)·Î µð½ºÇ÷¹ÀÌ°¡ ¾ÈµÈ´Ù.

3.6 °³¹ß ¿©¼¸¹ø° ´Ü°è - »óŹ٠Á¦¾î

»óŹٴ GLADE ·Î ºÙÀ̸é GtkStatusbar ¶ó´Â À§Á¬ÀÌ »ç¿ëµÈ´Ù. ¿©±â¿¡ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ·Á¸é guint gtk_statusbar_push(GtkStatusbar *statusbar, guint context_id, const gchar *text); ¶ó´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î¼­ ¸¶¿ì½º°¡ Åø¹Ù ¹öÆ° Áß Open ¹öÆ° À§¿¡ ÀÖÀ» ¶§ »óŹٿ¡ "ÆÄÀÏ Àбâ" ¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇغ¸ÀÚ. ±×¸®°í ¸¶¿ì½º°¡ ÀÌ ¹öÆ°À» ¶°³¯ ¶§ »óŹٿ¡¼­ ¸Þ½ÃÁö¸¦ Áö¿ìµµ·Ï ÇÏÀÚ.

¿ì¼± ÇØ¾ß ÇÒÀÏÀÌ ¸î°¡Áö ÀÖ´Ù. ù¹øÀç À§ÀÇ push ÇÔ¼öÀÇ Ã¹¹ø° ÆĶó¹ÌÅ͸¦ Àü¿ªº¯¼ö·Î °ü¸®ÇØ¾ß ÇÑ´Ù. ±×·²·Á¸é ´ÙÀ½°ú °°ÀÌ interface.c ¿¡´Ù Àü¿ªº¯¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÏ°í,


GtkStatusBar *gStatusBar = NULL;

create_window1() ÇÔ¼ö³»¿¡¼­ »óŹ٠»ý¼º ÈÄ »ý¼ºµÈ °Í¿¡´Ù ÀÌ Àü¿ªº¯¼ö¸¦ Á¤ÀÇÇÏÀÚ

¼ÖÁ÷È÷ ¾ê±âÇϸé Àü¿ªº¯¼ö¸¦ ¾È¾²°í »óŹÙÀÇ Æ÷ÀÎÅ͸¦ ȹµåÇÏ´Â ¹æ¹ýÀ» ã¾Æ¾ß ÇßÀ¸³ª °ÔÀ»·¯¼­ ³ªÁßÀ¸·Î ¹Ì·é´Ù. ´Ù¸¥ GNOME ±â¹Ý ¼Ò½ºµéÀ» º¸¸é ´ë°³ GLADE¸¦ ÀÌ¿ëÇÏÁö ¾ÊÀº µí º¸ÀÌ°í À̵éÀº Àü¿ªº¯¼ö°¡ ¾Æ´Ï¸é gnome »óŹٸ¦ ±×³É ¾²´Â °æ¿ì°¡ ¸¹¾Ò´Ù
.


gStatusBar = statusbar1;

µÎ¹ø°·Î ÇØ¾ß ÇÒ ÀÏÀº ¸¶¿ì½º À̵¿À» ÁÖ½ÃÇؼ­ Open ¹öÆ° À§·Î ¿ÔÀ» ¶§ ¹ß»ýµÇ´Â enter ½Ã±×³ÎÀ» Àâ¾Æ ó¸®ÇÏ´Â ½Ã±×³Î Çڵ鷯¸¦ µî·ÏÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº À§¿¡¼­ ¸¹ÀÌ ÇØ º¸¾ÒÀ¸¹Ç·Î »ý·«ÇÑ´Ù. ±×¸®°í ¸¶¿ì½º°¡ ÀÌ ¹öÆ°À» ¶°³¯ ¶§µµ ½Ã±×³ÎÀ» Àâ¾Æ ½Ã±×³Î Çڵ鷯¸¦ µî·ÏÇØ¾ß ÇÑ´Ù. À̰͵µ ¿ª½Ã »ý·«ÇÑ´Ù.

µÎ°¡Áö ÀÏÀÌ ³¡³µ´Ù¸é ¸ÕÀú callbacks.c ¿¡ À§ÀÇ Àü¿ªº¯¼ö¸¦ extern À¸·Î ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÏÀÚ.


extern GtkStatusbar gStatusBar;

±×¸®°í ¸¶¿ì½º enter ½Ã±×³Î Çڵ鷯¿¡´Ù ´ÙÀ½°ú °°Àº Äڵ带 ³ÖÀÚ.


gtk_statusbar_push( gStatusbar, 1, "ÆÄÀÏ ¿ÀÇÂ" );

±×¸®°í leave ½Ã±×³Î Çڵ鷯¿¡´Ù ´ÙÀ½°ú °°Àº Äڵ带 ³ÖÀÚ.


gtk_statusbar_pop( gStatusbar, 1 );

½ÇÇà ÈÄ »óŹٿ¡ ¸Þ½ÃÁö°¡ ¶ß´Â ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù:

4. ¸¶¹«¸®

ºñ·Ï ´Ü¼øÇϳª¸¶ ¿ì¸®´Â GLADE¸¦ °¡Áö°í¼­ ÅؽºÆ® ¿¡µðÅ͸¦ ¸¸µé¾î º¸¾Ò´Ù. ¾î¶²°¡? À©µµ¿ìÁîÀÇ ºñÁÖ¾ó ½ºÆ©µð¿À¸¸Å­ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù. ±×·¯³ª ´Ù¼Ò ¹ÌÁøÇÑ ºÎºÐµéÀÌ À־ ¿©±â¿¡ ±×°ÍÀ» Á¤¸®ÇÏ°íÀÚ ÇÑ´Ù.

4.1 GLADE¿¡ ¾î¶² ±â´ÉÀÌ Ãß°¡µÇ¾î¾ß ÇÒ °ÍÀΰ¡?

GLADE´Â À¯±âÀûÀÎ »ý¸íüó·³ ÁøÈ­ÇÏ°í ÀÖ´Â °³Ã¼ÀÌ´Ù. »ý¸íüÀ̹ǷΠ°è¼ÓµÇ´Â ½ÅÁø´ë»ç°¡ ÀÖ¾î¾ß ÇÏ´Â °Í ¾Æ´Ï°Ú´Â°¡? ³ª´Â ±×·± Àǹ̿¡¼­ ´ÙÀ½°ú °°ÀÌ GLADE°¡ °¡Á³À¸¸é ÇÏ´Â ±â´ÉµéÀ» »Ì¾Æ º¸¾Ò´Ù. ÀÌ ¹®¼­¸¦ º¸½Ã´Â ºÐµé Áß¿¡ GLADE¿¡ ÀÌ·± ±â´Éµé ÁßÀÇ ÀϺθ¦ Á¦°øÇÒ ¼ö ÀÖ´Â ±âȸ°¡ µÇ½Ã´Â ºÐµéÀÌ ¸¹¾ÒÀ¸¸é ÇÑ´Ù.

µ¥ÀÌÅÍ º£À̽º ¿¬µ¿ ±â´É

ÀÌ°ÍÀº ¸®´ª½º°¡ »ó¾÷ÀûÀ¸·Î È°¿ëµÇ±â À§Çؼ­ °¡Àå ÇÊ¿äÇÑ ±â´ÉÀÌ´Ù. ´Ù¸¥ RAD Åø¿¡¼­ Á¦°øÇÏ´Â °Íó·³ ODBC, JDBC µî°ú °°Àº ¿¬µ¿ ä³ÎÀÌ °ø±ÞµÇ¾î¾ß Çϸç, À̸¦ ¹ÙÅÁÀ¸·Î ÇÑ ´Ù¾çÇÑ µ¥ÀÌÅÍ º£À̽º Çڵ鸵 À§Á¬µéÀÌ °ø±ÞµÇ¾î¾ß ÇÒ °ÍÀÌ´Ù.

±×·¡ÇÈ ±â´É

µ¿¿µ»óÀ̳ª Á¤Áö ¿µ»óÀ» ó¸® ¹× º¸¿©ÁÖ´Â À§Á¬ÀÌ Ãß°¡µÇ¾úÀ¸¸é ÇÑ´Ù.

Åë½Å ¹× ÀÎÅÍ³Ý ±â´É

½Ã¸®¾ó

¹°·Ð socket Àº Áö¿øÇÑ´Ù
±×¸®°í ´õ ³ª¾Æ°¡ ÀÎÅͳݱîÁö À̵éÀ» ó¸®ÇÏ°í º¸¿©ÁÖ´Â À§Á¬À» Ãß°¡µÇ¾úÀ¸¸é ÇÑ´Ù.

³í¿ÜÀÇ ¾ê±âÁö¸¸ GTK ÀÇ ¾Æų·¹½º°ÇÀº ¾ÆÁ÷ ÇѱÛÈ­¶ó°í º»´Ù. ¸ðµç GTK ¶óÀ̺귯¸® ÇÔ¼öµé¾È¿¡¼­ ÇѱÛÈ­°¡ Á¶¼ÓÈ÷ ÀÌ·ç¾îÁö±â¸¦ ¹Ù¶ó°í ³ªµµ °Å±â¿¡ µ¿ÂüÇÒ ¼ö ÀÖ´Â ±âȸ°¡ ÁÖ¾îÁø´Ù¸é Âü ÁÁ°Ú´Ù.



GLADE¸¦ »ç¿ëÇÑ ¸®´ª½º µ¥½ºÅ©Å¾ ¾îÇø®ÄÉÀÌ¼Ç °³¹ß

GLADE¸¦ »ç¿ëÇÑ ¸®´ª½º µ¥½ºÅ©Å¾ ¾îÇø®ÄÉÀÌ¼Ç °³¹ß

¼±Á¤ÇÊ simje@maninet.com

March 29th, 2000, ÃÖÁ¾ °»½Å : May 15th, 2000.
GLADE¶õ GNU General Public License(GPL)À» µû¸£´Â GTK+ User Interface BuilderÀÌ´Ù. ½±°Ô ¾ê±âÇϸé GTK+¶ó´Â ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇÏ¿© GUI »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µå´Â RAD(Rapid Application Development) ÅøÀÌ´Ù. ÀÌ°ÍÀÌ ¹«¾ùÀÎÁö ±×¸®°í À̸¦ ¾î¶»°Ô ±¸ÀÔ/¼³Ä¡ÇÏ´ÂÁö ±×¸®°í Á¶±×¸¸ ¾îÇÃÄÉÀÌ¼Ç »ùÇÃÀÎ ÅؽºÆ® ¿¡µðÅ͸¦ °³¹ßÇÏ´Â ±¸Ã¼ÀûÀÎ ´Ü°èµéÀÌ ¾î¶»°Ô µÇ´ÂÁö ¸®´ª½º ȯ°æÇÏ¿¡¼­, ¼Ò°³ ÇÏ°íÀÚ ÇÏ´Â °ÍÀÌ ÀÌ ¹®¼­ÀÇ ¸ñÀûÀÌ´Ù. ±×¸®°í GLADE°¡ ºÎÁ·ÇÑ ºÎºÐµé¿¡ ´ëÇÑ ³»¿ëÀ» ´ã°í ÀÖ´Ù. ÀÌ ¹®¼­¿¡ ´ëÇÑ Á¶¾ð/ºñÆÇ/¹®ÀÇ°¡ ÀÖÀ¸½Å ºÐÀº À̸ÞÀÏ·Î ¿¬¶ôÀ» Áֽñ⠹ٶõ´Ù. ´ÙÀ½ ¹öÀüÀº Á» ´õ ±í¼÷ÇÑ ³»¿ëÀ» ´Ù·ç¾îº¸µµ·Ï ÇÏ°Ú´Ù.

1. GLADE¿Í ±¸ÀÔ ¹× ¼³Ä¡

1.1 GLADE¶õ ¹«¾ùÀΰ¡?

GLADE ´Â ´Ù¸¥ À©µµ¿ìÁî(Windows NT/9x¸¦ ¾ÕÀ¸·Î ÀÌ·¸°Ô ºÎ¸£°Ú´Ù)Visual Studio¿Í ¸¹Àº ºÎºÐÀÌ À¯»çÇϸç Widget Template Palette(À©µµ¿ìÁî ¿ë¾î·Î ÇÑ´Ù¸é ControlÂë¿¡ ÇØ´çÇÏ°Ú´Ù) ÅÛÇø®Æ® ÆÈ·¹Æ®¿¡ ÀÖ´Â À§Á¬µéÀ» µå·¡±× ¾Ø µå·ÓÀ¸·Î GUI Æû°ú ±× À§ÀÇ GUI °´Ã¼µéÀ» »ý¼ºÇÏ°í À̵éÀÇ ÇÁ·ÎÆÛƼµéÀ» Á¶Á¤ÇÏ°í ½Ã±×³Î Çڵ鷯(À©µµ¿ìÁî·Î ÇÑ´Ù¸é ¸Þ½ÃÁö ¸Ê ÇÔ¼ö) µî·Ï/»èÁ¦/º¯°æÇÏ¿© C, C++ ¼Ò½º(C++ÀÇ °æ¿ì addonÀÎ glade--°¡ ÇÊ¿ä)¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â ÅëÇÕ °³¹ß ȯ°æÀÌ´Ù.

¾ÕÀ¸·Î C ¼Ò½º¸¦ »ý¼ºÇÏ´Â °Í¿¡¸¸ ÃÐÁ¡À» ¸ÂÃç¼­ ¾ê±âÇÏ°Ú´Ù.

1.2 GLADE¸¦ ¾îµð¼­ ±¸ÇÒ °ÍÀΰ¡?

Source¿Í Binary

GLADEÀº ÇöÀç 0.5.7¹öÀü±îÁö releaseµÇ¾úÀ¸¸ç °ø½Ä web site´Â http://glade.pn.orgÀÌ´Ù.

´ÙÀ½ ±×¸² GLADE °ø½Ä Ȩ »çÀÌÆ®Àº GLADE°ø½Ä Ȩ »çÀÌÆ® ¸ð½ÀÀÌ´Ù.

GLADE °ø½Ä Ȩ »çÀÌÆ® gnome ¾ÆÅ°ÅØÃÄ GTK·Î ¸¸µç ¾îÇø®ÄÉÀÌ¼Ç ³»ºÎ °èÃþ ±¸Á¶ GLADE ¸ÞÀÎ À©µµ¿ì GLADE À§Á¬ ÆÈ·¹Æ® À©µµ¿ì GLADE ¼Ó¼º ÆíÁý±â À©µµ¿ì GLADE ¸Þ´º ÀÛ¼º À©µµ¿ì GLADE À§Á¬ Æ®¸® À©µµ¿ì À§Á¬ ¹ÙÅÁ À©µµ¿ì ¼öÁ÷ ¹Ú½º À§Á¬ ¼öÁ÷ ¹Ú½º À§Á¬ °³¼ö¸¦ ¹¯´Â ´ëÈ­»óÀÚ ¼öÁ÷ ¹Ú½º¸¦ ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ¸ð½À ¸Þ´º À§Á¬ ¸Þ´º À§Á¬À» ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ¸Þ´º ÆíÁý ¹öÆ° ¸Þ´º ÆíÁý ¿¹Á¦ Åø¹Ù À§Á¬ Åø¹ÙÀÇ ¹öÆ° ¼ö¸¦ ¹¯´Â ´ëÈ­»óÀÚ Åø¹Ù¸¦ ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ¹öÆ° À§Á¬ ÇÑ°³ÀÇ ¹öÆ°À» ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ¹Ì¸® ÁغñµÈ ¹öÆ°µé Åø¹Ù¿¡ ¸ðµç ¹öÆ°µéÀ» ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ÅؽºÆ® ¹Ú½º À§Á¬ ÅؽºÆ® ¹Ú½º À§Á¬À» ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì ¹ÙÅÁ À©µµ¿ìÀÇ Å©±â Á¶Á¤ »óŹ٠À§Á¬ ¸ðµç À§Á¬µéÀ» ºÙÀÎ ÈÄÀÇ ¹ÙÅÁ À©µµ¿ì GLADEÀÇ ÆÄÀÏ ¸Þ´º GLADEÀÇ ÇÁ·ÎÁ§Æ® ¿É¼Ç ´ëÈ­»óÀÚ ls¸í·É°ú autogen.sh½ÇÇà È­¸é ù¹ø° ½ÇÇà °á°ú ¹ÙÅÁ À©µµ¿ì window1ÀÇ delete_event µî·Ï ÈÄÀÇ ¸ð½À GNOMEÀÇ About ´ëÈ­»óÀÚ À§Á¬ GNOMEÀÇ About ´ëÈ­»óÀÚ Ãʱ⠸ð½À GNOMEÀÇ About ´ëÈ­»óÀÚ ¼ÕÁúÈÄÀÇ ¸ð½À GNOMEÀÇ About ´ëÈ­»óÀÚ¿¡ ·Î°í¸¦ ³ÖÀº ¸ð½À About ¹öÆ°ÀÇ ½Ã±×³Î ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ ÄÁƲ·Ñ ½ÇÇàÈÄ ÆÄÀÏ ¼±Åà ´ëÈ­»óÀÚ È®ÀÎ ¹öÆ° ½Ã±×³Î Çڵ鷯 µî·Ï Ãë¼Ò ¹öÆ°¿¡ ´ëÇÑ Çڵ鷯 µî·Ï ÆùÆ® ¼±Åà ´ëÈ­»óÀÚ ÄÁƲ·Ñ ÆùÆ® ¼±Åà ´ëÈ­»óÀÚ ½ÇÇà È­¸é ÆùÆ® º¯°æ ÈÄÀÇ ½ÇÇàÈ­¸é ½ÇÇàÈÄ »óŹ٠¸ð½À
ID
Password
Join
He who spends a storm beneath a tree, takes life with a grain of TNT.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-11-18 18:09:11
Processing time 0.0015 sec