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

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   X-Windows Programming #5 1998/07/04 (16:29)
À̸§ ±èÈ¿¿ø
¹øÈ£ 44
Á¶È¸ 345
º»¹® ¡º¸®´ª½º Çдç-¸®´ª½º °­Á / ¿¬Àç (go LINUX)¡» 230¹ø
Á¦  ¸ñ:[°­Á 05] X ÇÁ·Î±×·¡¹Ö ±âÃÊ : Xlib                          
¿Ã¸°ÀÌ:geoman  (À̸¸¿ë  )    96/03/26 01:37    ÀÐÀ½:2350 °ü·ÃÀÚ·á ¾øÀ½
-----------------------------------------------------------------------------


/* Playing with Windows */


7) ¸¸µé¾î ³õÀº â °¡Áö°í ³î±â

¿À´ÃÀº ¿ì¸®°¡ ÀÌ¹Ì ¸¸µé¾î ³õÀº âµé¿¡ ´ëÇؼ­ À̸®Àú¸® ¸¶À½²¯ ³î¾Æº¸°Ú½À´Ï´Ù.
âÀÇ »ö±òÀ» ¹Ù²Û´ÙµçÁö, âÀÇ Å©±â¸¦ ¹Ù²Û´ÙµçÁö, ¾ø¾Ý´Ù°¡ ´Ù½Ã ³ªÅ¸³ª°Ô ÇÑ´Ù
µçÁö... ¹¹ ÀÌ·± ³îÀ̸¦ ÇÏ·Á°í ÇÕ´Ï´Ù.


7-1) ÀÌ¹Ì ¸¸µé¾î ³õÀº â »ö±ò ¹Ù²Ù±â


 À쫆 ̢À» ¸¸µå½Ç ¶§ ¹è°æ»ö°ú Å׵θ®»öÀ» °áÁ¤Çسõ±â´Â ÇßÁö¸¸, »ç¶÷À̶õ°Ô ¸¶À½
ÀÌ ´Þ¶óÁú ¶§µµ ÀÖ´Â °Í ¾Æ´Ï°Ú¾î¿ä? ÀÚ, ÀÌ¹Ì Ç¥½ÃµÇ¾î Àִ âÀ» ±×´ë·Î ³öµÐ ä
»ö±ò¸¸ ÇÑ ¹ø ¹Ù²Ù¾î º¾½Ã´Ù. ¿©·¯ºÐÀÌ ¸¶À½¿¡ µå´Â »öÀ» °ñ¶óº¸¼¼¿ä. ¹Ù·Î Àü ½Ã°£
¿¡ ¸»¾¸µå¸° »ö»ó Á¤º¸ ¾Ë¾Æ³»±â´Â ±â¾ïÇÏ°í °è½ÃÁÒ?

-1. Å׵θ®(Border)»ö º¯È­

XSetWindowBorder ( Display *d, Window w, unsigned long border_pixel );

-2. ¹è°æ(Background)»ö º¯È­

XSetWindowBackground ( Display *d, Window w, unsigned long background_pixel );

 ¼³¸íÀÌ ÇÊ¿äÇÑ°¡¿ä? Àμö·Î ÁÖ¾îÁö´Â Window Çü º¯¼ö´Â ¿ì¸®°¡ »öÀ» º¯È­½ÃÅ°°íÀÚ
ÇÏ´Â ´ë»ó âÀ» ³ªÅ¸³»´Â º¯¼ö¸¦ ¾²¸é µÇ°í¿ä, Çȼ¿°ªÀº ¿©·¯ºÐ²²¼­ ¿øÇϽô »öÀÇ
Çȼ¿°ªÀ» Àú¹ø °­ÀÇ¿¡¼­Ã³·³ ±¸Çϼż­ Àü´ÞÇÏ½Ã¸é µÇ°í...

ÀÚ, ¿¹Á¦ 3)¹øÀÇ 10ÃÊ °£ Áö¿¬ ÇÔ¼ö(sleep) µÚ¿¡´Ù ¿©·¯ºÐ²²¼­ Çѹø ÀÌ ÇÔ¼öµéÀ»
ÀÌ¿ëÇؼ­ »ö»óÀ» ¹Ù²Ù¾îº¸½Ê½Ã¿ä. ÀØÁö ¸¶½Ç °ÍÀº XFlush¸¦ ÇØÁÖ¼Å¾ß ÇÑ´Ù´Â °ÍÀÔ
´Ï´Ù. XFlush¸¦ ÇØÁÖ½Ã°í ³ª¼­ ¶Ç ´Ù½Ã sleep ÇÔ¼ö¸¦ ¾²¼Å¾ß ±× °á°ú¸¦ È®ÀÎÇÏ½Ç ¼ö
ÀÖ°ÚÁö¿ä?

<< »ý°¢ Áß... >>

¿©·¯ºÐ, Á» ¾î·Á¿î°¡¿ä? ±×·¯¸é Á¦°¡ Çغ» °á°ú¸¦ º¸¿©µå¸®°Ú½À´Ï´Ù.

¿¹Á¦ 3)¿¡ Ãß°¡

------------------------------------------------------------------------------

sleep(10); ¹®Àå ´ÙÀ½ºÎÅÍÀÔ´Ï´Ù.

XAllocNamedColor( d, CMap, "green", &color, &ExactColor );
XSetWindowBorder( d, w, color.pixel );

XAllocNamedColor( d, CMap, "peachpuff", &color, &ExactColor );
XSetWindowBackground( d, w, color.pixel );

/* ??? */

XFlush ( d );

sleep(5);

µîµî...

------------------------------------------------------------------------------

¼³¸íÀ» µå¸®ÀÚ¸é, Àü¹ÝºÎ¿¡¼­´Â green »öÀÇ Çȼ¿°ªÀ» ¾Ë¾Æ³»¼­ Å׵θ®»öÀ» º¯È­½Ã
Ä×°í, ÈĹݺο¡¼­´Â peachpuff »öÀ¸·Î ¹è°æ»öÀ» ¹Ù²Ù¶ó°í Áö½ÃÇß½À´Ï´Ù.
±×¸®°í ²À ¹°³»¸®´Â °Í ÀØÁö ¸¶½Ê½Ã¿ä.(flush)

ÇÏÁö¸¸ ÀÌ·¸°Ô ÇÑ´Ù°í Çؼ­ ¿øÇÏ´Â °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ¾ÆÁ÷ ºÎÁ·
ÇÑ °ÍÀÌ Çϳª ÀÖ½À´Ï´Ù. ±×°ÍÀº ´ÙÀ½°ú °°Àº ÇÔ¼öÀÔ´Ï´Ù.

-3. â ¹è°æÀ» Áö¿ì´Â ÇÔ¼ö, ¾Æ´Ï ´Ù½Ã Ä¥ÇÏ´Â ÇÔ¼ö!!!

XClearWindow ( Display *d, Window w );

ÇÔ¼öÀÇ À̸§¿¡¼­ º¸À̵í, âÀ» Áö¿ì´Â, Á¤È®È÷ ¸»Çؼ­ âÀÇ ¹è°æÀ» Áö¿ì´Â ÇÔ¼öÀÔ
´Ï´Ù. ´õ¿í »ó¼¼È÷ ¸»¾¸µå¸®ÀÚ¸é, ÇöÀçÀÇ ¹è°æÀ» Áö¿ì°í, ÇöÀç âÀÇ Á¤º¸ Áß ¹è°æ»ö
¿¡ ÇØ´çÇÏ´Â »öÀ¸·Î ´Ù½Ã Ä¥ÇØÁÖ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ¹è°æÀ» ¹Ù²Ù½Ã°íÀÚ ÇÒ ¶§´Â
ÇÑ ¹ø âÀ» Áö¿öÁֽôø°¡ ¾Æ´Ï¸é ±×¿Í ¶È°°Àº È¿°ú¸¦ °®´Â ÀÏÀ» ÇØÁÖ½Ã¸é µË´Ï´Ù.
±×°ÍÀÌ ¹«¾ùÀ̳ı¸¿ä? âÀ» UnMap Çß´Ù°¡ ´Ù½Ã MapÇÏ½Ã¸é µË´Ï´Ù.

µû¶ó¼­ Á¦°¡ À§¿¡¼­ /* ??? */ ¶ó°í ÇÑ ºÎºÐ¿¡ ´ÙÀ½°ú °°ÀÌ ½á³Ö¾îÁֽʽÿä.

XClearWindow ( d , w );

 Ã¢ÀÇ Å׵θ®¿Í ¹è°æ»öÀ» ¹Ù²Ù´Â ÇàÀ§´Â â Á¶ÀÛ¿¡ À־ ¾ÆÁÖ ±âº»ÀûÀÎ ÇàÀ§ÀÓÀº
¹°·ÐÀÌ°Å´Ï¿Í ¾ÆÁÖ Áß¿äÇÑ ÇàÀ§À̱⵵ ÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ X À©µµ¿ì ÇÁ·Î±×·¥¿¡¼­ ¸Å
ÀÏ º¸½Ã´Â ¹öÆ°µéÀ» º¸¼¼¿ä. Æ÷ÀÎÅ͸¦ °¡Á®´Ù ´ë¸é Å׵θ®³ª ±× ÀÚü »öÀÌ º¯ÇÏ´Â
°ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù. °á±¹¿¡´Â ±× ¹öÆ°µµ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Ã¢À¸·Î ÀÌ·ç¾îÁ®
ÀÖ´Â °Í¿¡ ºÒ°úÇÕ´Ï´Ù. ¸Þ´ºµµ ±×·¯ÇÏ°í¿ä. X À©µµ¿ì´Â ±×¾ß¸»·Î ¾ÆÁÖ Âزô¸¸ âºÎ
ÅÍ ½ÃÀÛÇؼ­ Å͹̳Πâ°ú °°Àº Å« âµéÀ» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù.


7-2) â¿¡ ´ëÇÑ ¿©·¯ Á¤º¸¸¦ ¾Ë¾Æ³À½Ã´Ù.


 ¸¹Àº ºÐµé²²¼­ geometry¶ó´Â ´Ü¾î¸¦ º¸½Å ÀûÀÌ ÀÖÀ» °Ì´Ï´Ù. Ãʺ¸ºÐµéÀ̽öó¸é
Á¦ fvwm °­Á¿¡¼­ -geometry ¶ó´Â ¿É¼Ç¿¡ ´ëÇؼ­ Àá±ñ ¾ð±ÞÇÑ °ÍÀ» ±â¾ïÇÏ½Ç ºÐµé
µµ °è½Ç °Í °°±º¿ä.

 Geometry¶ó ÇÔÀº â¿¡ ´ëÇÑ ´ÙÀ½°ú °°Àº Á¤º¸¸¦ ¸»ÇÕ´Ï´Ù.
âÀÇ ÁÂÇ¥(¹°·Ð âÀÇ ¿ÞÂÊ À­±¸¼® ÁÂÇ¥¸¦ ¸»ÇÏ°ÚÁÒ?), Æø°ú ³ôÀÌ, Å׵θ® µÎ²² µî.

 »ç°¢Çü âÀÇ ±âº» ¿ä¼ÒµéÀ̶ó°í ÇÒ ¼ö ÀÖ´Â °ÍÀÌÁÒ. ¿©·¯ºÐ²²¼­ fvwm °­Á¿¡¼­
FvwmIdent¶ó°í ÇÏ´Â °ÍÀ» Á¢ÇϽŠÀûÀÌ ÀÖÀ» °Ì´Ï´Ù. ±× ³à¼®ÀÌ Ã¢ Àü¹Ý¿¡ ´ëÇÑ Á¤
º¸¸¦ °¡Á®´Ù ÁÖÁö¿ä. ÀÚ, ±×·± ¿ªÇÒÀ» ÇÏ´Â ÇÔ¼ö Çϳª¸¦ ¸ÕÀú ¼Ò°³ÇÏ°Ú½À´Ï´Ù.

ÇÔ¼öÀÇ ¿øÇü : <X11/Xlib.h>¿¡ ¼±¾ð

 Status XGetGeometry ( Display *display,
Window drawable_object,
Window root_ID,
int *x,
int *y,
unsigned *width,
unsigned *height,
unsigned *border_width,
unsigned *depth
      )
ÇÔ¼ö¿¡ ´ëÇÑ ¼³¸í :

 Geometry Á¤º¸¸¦ °¡Á®¿À´Â(Get) ÇÔ¼öÀÔ´Ï´Ù. ù¹ø° Display Çü Æ÷ÀÎÅÍ´Â ÇöÀç ÀÛ
¾÷ ÁßÀÎ µð½ºÇ÷¹ÀÌ IDÀÌ°í, µÎ¹ø° Window Çü º¯¼ö´Â ¹Ù·Î ¿ì¸®°¡ geometry Á¤º¸
¸¦ ¾Ë¾Æ³»°íÀÚ ÇÏ´Â ´ë»ó âÀÇ IDÀÔ´Ï´Ù. ±× ´ÙÀ½ º¯¼öµéÀº Çϳª°°ÀÌ Æ÷ÀÎÅÍ º¯¼ö
µéÀÔ´Ï´Ù. ¿©·¯ºÐµµ C ÇÁ·Î±×·¡¹ÖÀ» Çغ¸¼Å¼­ ¾Æ½Ã°ÚÁö¸¸, ¾î¶² ÇÔ¼öµç ¹Ýȯ°ªÀº
Çϳª ¹Û¿¡ ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ±× ÇÔ¼ö¸¦ ÅëÇØ ¿©·¯ °³ÀÇ ¹Ýȯ°ªÀ» °¡Áö°íÀÚ ÇÒ ¶§
¾²´Â ±â¼úÀÌ ¹Ù·Î ±× ÇÔ¼ö¿¡°Ô ÁÖ¼Ò ÁöÁ¤ ¹æ½ÄÀÇ È£Ãâ(Call by Reference), Áï Æ÷
ÀÎÅÍ·Î º¯¼ö¸¦ Àü´ÞÇØÁÖ´Â ¹æ½ÄÀÔ´Ï´Ù. ±× ÇÔ¼ö¿¡¼­ ±× º¯¼öÀÇ ³»¿ë¿¡ ¾Ë¸Â´Â °ªÀ»
½áÁÖ¸é µÇ´Ï±î¿ä. ±×·¸½À´Ï´Ù. ¼¼¹ø° º¯¼öµéºÎÅÍ´Â ¿ì¸®°¡ ¾Ë°í ½ÍÀº Á¤º¸µéÀ»
°¡Áö°í ¿Ã º¯¼öµéÀÔ´Ï´Ù. ¼¼¹ø° WindowÇü º¯¼ö´Â µÎ¹ø° Àμö¿¡¼­ ÁÖ¾îÁø ID¸¦ °®
´Â âÀÌ ¼ÓÇÑ ROOT âÀÇ ID¸¦ ¹ÝȯÇÕ´Ï´Ù. Àú·Î¼­´Â ¾ÆÁ÷µµ ¿Ö ¼¼¹ø° Àμö¸¦ ÁÖ¾î
¾ß ÇÏ´ÂÁö ±× Çʿ伺À» ÀÌÇØÇÒ ¼ö´Â ¾øÁö¸¸, È¥µ¿Çϼż­´Â ¾ÈµÇ´Â °ÍÀº ¾î¶² âÀÌ
¼ÓÇÏ´Â ÀÚ½ÅÀÇ ºÎ¸ðâ ID°¡ ¹ÝȯµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó Àý´ëÀûÀ¸·Î ROOT âÀÇ ID°¡ ¹Ýȯ
µÈ´Ù´Â »ç½ÇÀÔ´Ï´Ù. ³×¹ø° Àμö´Â x ÁÂÇ¥, ´Ù¼¸¹ø° Àμö´Â y ÁÂÇ¥, ±× ´ÙÀ½Àº Æø,
³ôÀÌ, Å׵θ® µÎ²²ÀÔ´Ï´Ù.  ±×¸®°í ¸¶Áö¸·Àº Depth Áï ±íÀ̸¦ ¸»Çϴµ¥, ÀÌ°ÍÀº Çö
Àç â¿¡¼­ »ö±òÀ» ±¸ÇöÇϴµ¥ ÀÖ¾î ¸î ºñÆ®¸¦ »ç¿ëÇÏ°í Àִ°¡¸¦ ¸»ÇØÁÝ´Ï´Ù.
ÀÌ ¼ýÀÚ°¡ 8À̸é 8 ºñÆ® Ä®¶ó(8bpp) Áï 256 Ä®¶ó°¡ µÇ°ÚÁÒ? 16 bpp´Â 65536 Ä®¶ó,
24 bpp´Â 16¸¸ 7õ Ä®¶ó(16,777,216)¸¦ ¸»ÇÕ´Ï´Ù.

 ÀÚ, ¿ô±â´Â »ç½ÇÀº À§¿¡¼­ ¾Ë¾Æ³¾ ¼ö ÀÖ´Â x, y ÁÂÇ¥´Â ±× âÀÌ ¼ÓÇÑ ºÎ¸ðâÀÇ
ÁÂÇ¥°è¸¦ ±âÁØÀ¸·Î ÇÑ´Ù´Â »ç½ÇÀÔ´Ï´Ù. ¸¸¾à ·çƮâÀÌ A âÀ» Æ÷ÇÔÇÏ°í, A âÀÌ
´Ù½Ã B âÀ» Æ÷ÇÔÇÑ´Ù°í ÇսôÙ. B â¿¡ ´ëÇÏ¿© XGetGeometry ÇϽøé, ¼¼¹ø° Àμö
¿¡´Â ROOTâÀÇ ID°¡, x, y º¯¼ö¿¡´Â A âÀÇ ¿ÞÂÊ À­±¸¼®À» (0,0)À¸·Î ÇÏ´Â ÁÂÇ¥°è
¸¦ ¾²´Â »ó´ëÀûÀÎ B âÀÇ ÁÂÇ¥°è°¡ ¹ÝȯµÇ¾î ¿É´Ï´Ù.

µ¡ºÙÀÌ´Â ¸» ÇÑ ¸¶µð :

 ¸¶Áö¸·À¸·Î µ¡ºÙÀÌ°íÀÚ ÇÏ´Â »ç½ÇÀº ÀÌ·¸½À´Ï´Ù. ¿©·¯ºÐ²²¼­ Xlib.h È­ÀÏ¿¡¼­
XGetGeometry ÇÔ¼ö¸¦ ã¾Æ¼­ ½ÇÁ¦ ³»¿ëÀ» º¸½Ã¸é µÎ¹ø° º¯¼öÀÇ ÀÚ·áÇüÀº Window
ÇüÀÌ ¾Æ´Ï¶ó ½ÇÁ¦·Î´Â Drawable Áï ¹«¾ùÀΰ¡¸¦ ±×¸± ¼ö ÀÖ´Â ´ë»óÀ¸·Î µÇ¾î ÀÖ´Ù
´Â °ÍÀ» ¹ß°ßÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù. ±×°Í¿¡ ´ëÇÑ ¼³¸íÀº ´Ù½Ã µÚ·Î ¹Ì·ì´Ï´Ù. ¾îÂî µÇ
¾úµç Drawable Çü ÀÚ·á¿¡´Â Window ÇüÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù.


7-3) ÀÌÁ¦´Â âÀÇ geometry¸¦ ¹Ù²Ù¾î º¾½Ã´Ù.

 Ã¢ÀÇ geometry¸¦ ¹Ù²Ù´Â ÇÔ¼öµéÀ» ¿©±â¿¡ ¼Ò°³ÇÕ´Ï´Ù.

ÇÔ¼öÀÇ ¿øÇü : <X11/Xlib.h>¿¡ ¼±¾ð

XMoveWindow ( Display *display, Window w, int x, int y );
XResizeWindow ( Display *display, Window w,
unsigned int width, unsigned int height );
XSetWindowBorderWidth ( Display *display, Window w,
unsigned int border_width );

ù¹ø° ÇÔ¼ö´Â âÀÇ À§Ä¡¸¦ ÁÖ¾îÁø x, y ÁÂÇ¥°ª¿¡ µû¶ó À̵¿½ÃÅ°´Â ³à¼®ÀÔ´Ï´Ù.
¹°·Ð ÁÂÇ¥´Â ºÎ¸ðâ ÁÂÇ¥°è¸¦ ±âÁØÀ¸·Î ÇÕ´Ï´Ù. µÎ¹ø° ÇÔ¼ö´Â Resize Áï Å©±â º¯
È­½ÃÅ°´Â ÇÔ¼ö·Î¼­ ÁÖ¾îÁø Æø&³ôÀÌ °ª¿¡ µû¶ó Å©±â¸¦ º¯È­½Ãŵ´Ï´Ù. ¼¼¹ø°´Â ¹«½¼
ÀÏÀ» ÇÏ´ÂÁö ¼³¸íÇصå·Á¾ß Çϳª¿ä? ³×, ¸Â½À´Ï´Ù. Å׵θ® ÆøÀ» º¯È­½Ãŵ´Ï´Ù.

 ¿À´ÃÀÇ ¸ðµç ³»¿ëÀ» ´ã°í ÀÖ´Â ¿¹Á¦¸¦ Àû¾îµå¸®°í ¿À´Ã °­ÀǸ¦ ¸¶Ä¥±î ÇÕ´Ï´Ù.
ÇÑ ¹ø ¿©·¯ºÐµé²²¼­ ºÐ¼®Çغ¸¼¼¿ä.

¿¹Á¦ 6)

/* âÀÇ »ö»ó º¯È­¿Í Geometry º¯È­ */

#include <X11/Xlib.h>

/* ÇÔ¼ö ¼±¾ð */
unsigned long UsrColorPixel( Display*, char* );

int main()
{
Display *d;
Window w0, w1, w2; /* One TopLevel Window & Two Child Windows */
unsigned long black_pixel;
int w_X1, w_Y1, w_X2, w_Y2;    /* µÎ ÀÚ½ÄâÀÇ À§Ä¡ ÁÂÇ¥ */
unsigned int width, height, I; /* ÀÚ½ÄâÀÇ Æø & ³ôÀÌ */

/* ¼­¹ö¿Í Á¢¼ÓÇϱ⠱׸®°í º¯¼öµéÀ» ÃʱâÈ­ */
d = XOpenDisplay ( NULL );

black_pixel = BlackPixel ( d, 0 );
width = 200; height = 100;
w_X1 = 10; w_Y1 = 10; w_X2 = width - 10; w_Y2 = height - 10;

/* ÀÚ, ½ÃÀÛÇغ¼±î¿ä? */
printf( "I will make windows.\n" );
sleep( 2 );


/* â Çϳª ±×¸®°í ÀÚ½Äâ 2°³ »ý¼º */
w0 = XCreateSimpleWindow ( d, DefaultRootWindow( d ),
         100, 100, width*2, height*2, 1,
 black_pixel, WhitePixel( d, 0 ) );
w1 = XCreateSimpleWindow ( d, w0, w_X1, w_Y1, width, height, 1,
 black_pixel, UsrColorPixel( d, "magenta" ) );
w2 = XCreateSimpleWindow ( d, w0, w_X2, w_Y2, width, height, 3,
 black_pixel, UsrColorPixel( d, "blue" ) );

/* â°ú ÀÚ½ÄâÀ» È­¸é»ó¿¡ Ç¥½Ã */
XMapWindow( d, w0 );
XMapSubwindows( d, w0 );
XFlush( d );

printf( "Unmap & Map.\n" );
sleep( 3 );



/* â Çϳª¸¦ UNMAP, MAP */
XUnmapWindow( d, w1 ); XFlush( d );
sleep( 1 );
XMapWindow( d, w1 ); XFlush ( d );
printf( "I will change the color of windows.\n" );
sleep( 3 );



/* â ÇϳªÀÇ »ö»óÀ» º¯°æ */
XSetWindowBorder( d, w2, UsrColorPixel( d, "red" ) );
XSetWindowBackground( d, w2, UsrColorPixel( d, "green" ) );
XClearWindow( d, w2 );
XFlush( d ); sleep( 1 );
XSetWindowBackground( d, w0, UsrColorPixel( d, "yellow" ) );
XClearWindow( d, w0 );
XFlush( d );
printf( "I will move windows.\n" );
sleep( 3 );



/* â Çϳª¾¿ À̵¿ */
for ( ; w_X1 < width - 10 ; )
{
XMoveWindow( d, w1, w_X1++, w_Y1 );
XFlush( d );
}
for ( ;  w_X1 > 10 ; )
{
XMoveWindow( d, w1, w_X1--, w_Y1 );
XFlush( d );
}
for ( ;  w_Y2 > 10 ; )
{
XMoveWindow( d, w2, w_X2, w_Y2-- );
XFlush( d );
}
for ( ;  w_Y2 < height - 10 ; )
{
XMoveWindow( d, w2, w_X2, w_Y2++ );
XFlush( d );
}
printf( "I will change the size of windows.\n" );
sleep( 3 );



/* âÀÇ Å©±â¸¦ È®Àå/Ãà¼Ò */
XResizeWindow ( d, w1, width + 100, height + 50 );
XMoveResizeWindow ( d, w2, w_X2 + 50, w_Y1 + 20,
width - 100, height - 50 );
/* XMoveResize !!! */
XFlush ( d );
printf( "At last, I will change the width of borders.\n" );
sleep( 3 );



/* âÀÇ Å׵θ® È®Àå */
for ( I = 1 ; I < 20 ; I++ )
{
XSetWindowBorderWidth ( d, w2, I );
XFlush( d );
}
printf( "Jobs done. Merci.\n" );
sleep( 3 );



/* â Æı« & ¼­¹ö¿ÍÀÇ Á¢¼Ó ÇØÁ¦ */
XUnmapWindow( d, w0 );
XUnmapSubwindows( d, w0 );
XDestroySubwindows( d, w0 );
XDestroyWindow( d, w0 );

XCloseDisplay( d );


return 0; /* ¼º°øÀûÀ¸·Î ÇÁ·Î±×·¥À» ¼öÇà */
}


/*

 UsrColorPixel() : ÁÖ¾îÁø À̸§ÀÇ »ö»ó¿¡ ´ëÇÑ ±âº» Ä÷¯¸ÊÀÇ Çȼ¿°ª ¹Ýȯ

*/

unsigned long UsrColorPixel( display, name )
Display *display;
char *name;
{
Colormap cmap;
XColor c0, c1;

cmap = DefaultColormap( display, 0 );

XAllocNamedColor( display, cmap, name, &c0, &c1 );
/* ¿©±â¼­ ¿ì¸®´Â c1 À» ¾ÆÁ÷ ÀÌ¿ëÇÏÁö ¾Ê½À´Ï´Ù. */

return ( c0.pixel );
}

¿©±â±îÁö°¡ ¿¹Á¦ 6)ÀÔ´Ï´Ù. ¸¶Áö¸·¿¡ »ç¿ëÀÚ Á¤ÀÇÇÔ¼ö UsrColorPixel()Àº ¹Ù·Î Àü
½Ã°£¿¡ Á¦°¡ ¹®Á¦·Î ³»µå·È´ø °Í¿¡ ´ëÇÑ ´ä Áß ÇϳªÀÔ´Ï´Ù. ¿©·¯ºÐµé²²¼­ °¢ÀÚ
ÀڽŸ¸ÀÇ Á¤ÀÇÇÔ¼ö¸¦ ¸¸µé¾î ³õÀ¸¼Ì°ÚÁö¿ä? Àú¶û ºñ±³ÇØ º¸½Ê½Ã¿ä.

ÀÌ ¿¹Á¦¸¦ º¸½Ã¸é¼­ ÇÑ ÁÙ ÇÑ ÁÙÀÌ ¾î¶² ÀÏÀ» ÇÏ°Ô µÉ °ÍÀÎÁö ¹Ì¸® ¸Ó¸® ¼Ó¿¡¼­
±×·Áº¸½Ã°í, ¹ø°Å·Î¿ì½Ã´õ¶óµµ ²À ¿¹Á¦¸¦ Àڱ⠼ÕÀ¸·Î ŸÀÌÇÎÇϽø鼭( »ó´çÇÑ ³ë°¡
´ÙÁÒ? :) ) ÇÔ¼ö ÇϳªÇϳª¸¦ ÀÍÈ÷½Ã±â ¹Ù¶ø´Ï´Ù. ¸ðµç ÇÔ¼öµéÀÌ ¿Ö ±×·¸°Ô ¾º¿©Á®¾ß
Çϴ°¡, ¿Ö ±×·¸°Ô ¹Û¿¡ ¸¸µéÁö ¸øÇߴ°¡¿¡ ´ëÇؼ­µµ »ý°¢ÇØÁÖ½Ã¸é ´õ¿í ÁÁ±¸¿ä.
±× ´ÙÀ½, ÀÌ ¿¹Á¦ ¼Ó¿¡´Â Á¦°¡ ¼³¸íµå¸®Áö ¾ÊÀº ÇÔ¼ö°¡ ÀÖ½À´Ï´Ù. ±× ÇÔ¼ö´Â ¿©·¯ºÐ
²²¼­ ÈûµéÀÌÁö ¾Ê°í ±× ÀÇ¹Ì¿Í »ç¿ë¹ýÀ» ¾Æ½Ç ¼ö ÀÖÀ» °Å¶ó°í »ý°¢ÇÕ´Ï´Ù.

¿©·¯ºÐµµ Àß ¾Æ½Ç °Ì´Ï´Ù. ÇÁ·Î±×·¡¹ÖÀº Â¥Áõ³¯ Á¤µµ·Î ¸¹Àº ½Ç¼öµéÀÇ ¿¬¹ß ¼Ó¿¡¼­
±× ½Ç·ÂÀÌ ´Ã¾î°£´Ù´Â »ç½Ç, ±×¸®°í ¾û¶×ÇÑ ½Ç¼ö ¼Ó¿¡¼­ Áß¿äÇÑ ¹®Á¦µéÀ» ÆľÇÇØ
³ª°¥ ¼ö ÀÖ´Ù´Â »ç½Ç ¸»ÀÔ´Ï´Ù. ´ÙÀ½°ú °°Àº ¹®ÀåÀÌ ¿¹Á¦¿¡ ÀÖÁÒ?

XSetWindowBackground( d, w0, UsrColorPixel( d, "yellow" ) );

¿ä ¹®ÀåÀ» /* */À¸·Î ÁÖ¼®¹® ó¸®ÇϽðųª Áö¿ì½Å ´ÙÀ½ ÄÄÆÄÀÏÇÏ°í ½ÇÇà½ÃÄÑ
º¸¼¼¿ä. ÀÚ, ¾î¶² ÀÏÀÌ ÀϾ´Ï±î?

X À©µµ¿ì ÇÁ·Î±×·¡¹Ö º° °Í ¾Æ´Õ´Ï´Ù. âÀ» °¡Áö°í ³ë´Â Àå³­À̶ó°í³ª ÇÒ±î¿ä?
´ÙÀ½¿¡ ºË°Ú½À´Ï´Ù. ¾È³çÈ÷ °è½Ê½Ã¿ä.

HomePage Backward Forward Post Reply List
1998 by swindler