¸®´ª½º °ü·Ã °­Á¶õ

HomePage Backward Forward Post Reply List
Delete Modify
  Á¦¸ñ   Motif #5 1999/01/02 (15:24)
À̸§ ±èÈ¿¿ø
¹øÈ£ 82
Á¶È¸ 486
º»¹® -----------------------------------------------------------------------------
--------------------------------------------------------------------
[°­ÁÂ5] Motif Programming for X windows Using Lesstif
--------------------------------------------------------------------

9. Toplevelshell ¿¡ widget ¿©·¯°³ ºÙÀ̱â

Àú¹ø½Ã°£¿¡ widgetÀ» ¿©·¯°³ ºÙÀÌ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¸¶ó°í Çߴµ¥ »ý°¢À»
ÇØ º¸¼Ì´ÂÁö¿ä.. Á¦°¡ ¿¹Àü¿¡ »ý°¢ÇÑ ¹æ¹ýÀº ÀÌ·¸½À´Ï´Ù.

ex8) alwidget.c
#include<Xm/Xm.h>
#include<Xm/Label.h>
#include<Xm/Scale.h>
#include<Xm/Text.h>

XtAppContext context;
XmStringCharSet char_set=XmSTRING_DEFAULT_CHARSET;

Widget toplevel,label,scale,text;

main(int argc,char *argv[])
{
       Arg al[10];
       int ac;
       toplevel=XtAppInitialize(&context,"",NULL,0,&argc,argv,NULL,
                               NULL,0);
       ac=0;

       XtSetArg(al[ac],XmNlabelString,
               XmStringCreateLtoR("Hello World",char_set)); ac++;
       label=XmCreateLabel(toplevel,"label",al,ac);
       XtManageChild(label);

       ac=0;
       XtSetArg(al[ac],XmNshowValue,True); ac++;
       scale=XmCreateScale(toplevel,"scale",al,ac);
       XtManageChild(scale);

       ac=0;
       XtSetArg(al[ac],XmNeditMode,XmMULTI_LINE_EDIT); ac++;
       text=XmCreateText(toplevel,"text",al,ac);
       XtManageChild(text);

       XtRealizeWidget(toplevel);
       XtAppMainLoop(context);
}

º»ÀÎÀÌ »ý°¢ÇϽŠ°Í°ú °°ÀºÁö ¸ð¸£°Ú³×¿ä. Àú´Â À§¿Í °°ÀÌ »ý°¢ÇßÀ¾´Ï´Ù.
¹°·Ð ¾Õ¿¡¼­ ¼³¸íÇÑ°ÍÀÌ ¸Â´Ù¸é ÀÌ ¿¹Á¦°¡ ¸ÂÀ»°Ì´Ï´Ù.
ÀÚ ÄÄÆÄÀÏ ÇØ º¾½Ã´Ù. Á¦´ë·Î ³ª¿É´Ï±î?
Àú´Â 200x200Å©±âÀÇ Hello World ¶ó°í ÂïÈù ¶óº§ À§Á¬ ¹Û¿¡ ¾È³ª¿À³×¿ä..
ÀÌÁ¦ ¿Ö ÇѲ¨¹ø¿¡ À§Á¬ÀÌ Ç¥½Ã°¡ ¾ÈµÇ¾ú´ÂÁö »ìÆì º¾½Ã´Ù.
Toplevel ShellÀº ¿øÄ¢ÀûÀ¸·Î ÇϳªÀÇ À§Á¬¸¸ ÀÚ½ÄÀ¸·Î °¡Áú¼ö ÀÖÀ¾´Ï´Ù.
µû¶ó¼­ Toplevel shell¿¡ ºÙÀϼö ÀÖ´Â À§Á¬Àº ´Ü Çϳª°¡ µË´Ï´Ù.
±×·¸Áö¸¸ ÇÁ·Î±×·¥µéÀ» º¸¸é ÇϳªÀÇ Ã¢¿¡ ¶óº§µµ ÀÖ°í, ½½¶óÀÌ´õµµ ºÙ¾î
ÀÖ°í ÅؽºÆ®µµ ºÙ¾î Àִ°ÍÀ» º¸½Ç¼ö ÀÖÀ¾´Ï´Ù.
¿©·¯°³ÀÇ À§Á¬À» ºÙÀ̱â À§Çؼ­´Â, ¿©·¯°³ÀÇ À§Á¬À» ÀÚ½ÄÀ¸·Î °¡Áú¼ö ÀÖ´Â À§
Á¬À» Toplevel¿¡ ºÙ¿©¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ À§Á¬À» ¸Å´ÏÁ® À§Á¬À̶ó°í ÇÕ´Ï
´Ù.

¿À´Ã ¹è¿ï ³»¿ëÀº ¹Ù·Î ¸Å´ÏÁ® À§Á¬¿¡ °üÇÑ °ÍÀÔ´Ï´Ù.

1) Bulltin Board À§Á¬

ex9) bulltinb.c

#include<Xm/Xm.h>
#include<Xm/Label.h>
#include<Xm/Scale.h>
#include<Xm/Text.h>
#include<Xm/BulletinB.h>

XtAppContext context;
XmStringCharSet char_set=XmSTRING_DEFAULT_CHARSET;

Widget toplevel, label, scale, text, bb;

main(int argc,char *argv[])
{
       Arg al[10];
       int ac;
       toplevel=XtAppInitialize(&context,"",NULL,0,&argc,argv,NULL,
                               NULL,0);
       ac=0;
       bb=XmCreateBulletinBoard(toplevel,"bb",al,ac);
       XtManageChild(bb);

       ac=0;
       XtSetArg(al[ac],XmNlabelString,
               XmStringCreateLtoR("Hello World",char_set)); ac++;
       label=XmCreateLabel(bb,"label",al,ac);
       XtManageChild(label);

       ac=0;
       XtSetArg(al[ac],XmNshowValue,True); ac++;
       scale=XmCreateScale(bb,"scale",al,ac);
       XtManageChild(scale);

       ac=0;
       XtSetArg(al[ac],XmNeditMode,XmMULTI_LINE_EDIT); ac++;
       text=XmCreateText(bb,"text",al,ac);
       XtManageChild(text);

       XtRealizeWidget(toplevel);
       XtAppMainLoop(context);
}

¾ÕÀÇ ¿¹Á¦¿Í ´Þ¶óÁø °ÍÀº bulletin board À§Á¬À» Toplevel¿¡ ºÙÀÌ°í
³ª¸ÓÁö À§Á¬À» bulletin board À§Á¬¿¡ ºÙ¿´´Ù´Â Á¡ÀÔ´Ï´Ù.
Çì´õ ÆÄÀÏ¿¡ BulletinB.h¶ó´Â ÆÄÀÏÀ» include ÇÏ¿´°í,
Widget ŸÀÔÀ¸·Î bb¸¦ ¼±¾ðÇß½À´Ï´Ù.
Toplevel shellÀ» ¸¸µç ´ÙÀ½¿¡ BulletinBoard À§Á¬À» »ý¼ºÇÏ°í,
³ª¸ÓÁö À§Á¬À» ¸¸µå´Â XmCreate~ÇÔ¼ö¿¡ toplevel ´ë½Å bb·Î ¹Ù²Û °ÍÀ»
º¸½Ç ¼ö ÀÖ½À´Ï´Ù.

±»ÀÌ ±×¸²À¸·Î ±×·Áº»´Ù¸é ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÔ´Ï´Ù

               Toplevel
                   |
                   |
            Bulletin Board
                   |
          +--------+-------+
          |        |       |
      ¶óº§     ½ºÄÉÀÏ    ÅؽºÆ®

½ÇÇàÀ» ½ÃÄѺ¸¸é ¶óº§À§Á¬,½ºÄÉÀÏ À§Á¬,ÅؽºÆ® À§Á¬ÀÌ µÚÁ×¹ÚÁ×À¸·Î
³õ¿© ÀÖÀ» °ÍÀÔ´Ï´Ù.

À̵éÀ» Àß ¹è¿­ÇØ º¾½Ã´Ù.
¹æ¹ýÀº XtSetArgÇÔ¼ö¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù.
ÇÔ¼ö °¢°¢ÀÇ µÎ ¹ø° ÆĶó¹ÌÅÍ¿¡ XmNx,XmNy¶ó´Â °ªÀ» ³Ö°í ¼¼ ¹ø° ÆĶó¹Ì
ÅÍ¿¡ À§Á¬ÀÌ ³õÀÏ x,yÁÂÇ¥¸¦ ³ÖÀ¸½Ã¸é µË´Ï´Ù.

XtSetArg(al[ac],XmNx,10); ac++;
XtSetArg(al[ac],XmNy,20); ac++;
ÀÌ·± ½ÄÀ¸·Î¿ä..


HomePage Backward Forward Post Reply List
1998 by swindler