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

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

2) Form À§Á¬

¾ÕÀÇ ¼÷Á¦¸¦ ÇϼÌÀ¸¸é ´ÙÀ½À¸·Î ³Ñ¾î °©½Ã´Ù.
À̹ø¿¡ ¹è¿ï ³»¿ëÀº ¹Ù·Î Æû À§Á¬¿¡ °üÇÑ °ÍÀÔ´Ï´Ù.
¾ÕÀÇ ¿¹Á¦¿¡¼­ ½ÇÇàµÈ °ÍÀ» ¸¶¿ì½º¸¦ °¡Áö°í âÀÇ Å©±â¸¦ ´Ã·Áº¾½Ã´Ù.
âÀÇ Å©±â¸¦ ´Ã·Áµµ À§Á¬ÀÌ Ã¢ÀÇ Å©±â¿¡ ¸Â°Ô º¯ÇÏÁöµµ ¾Ê°í À§Ä¡°¡
¹Ù²îÁöµµ ¾Ê½À´Ï´Ù. µû¶ó¼­ âÀÇ Å©±â°¡ ¸Å¿ì Ä¿Áö°Å³ª ÇÏ¸é º¸±â°¡
ÁÁÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇØ ÁÖ´Â À§Á¬ÀÌ ¹Ù·Î ¶ÇÇϳªÀÇ
¸Å´ÏÁ® À§Á¬ÀÎ Æû À§Á¬ÀÔ´Ï´Ù.

´ÙÀ½ ¿¹Á¦¸¦ º¾½Ã´Ù.

ex10) form.c

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

XtAppContext context;
XmStringCharSet char_set=XmSTRING_DEFAULT_CHARSET;

Widget toplevel,label,scale,text,form,sep;

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],XmNheight,200); ac++;
       XtSetArg(al[ac],XmNwidth,200); ac++;
       XtSetValues(toplevel,al,ac);

       ac=0;
       form=XmCreateForm(toplevel,"form",al,ac);
       XtManageChild(form);

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

       ac=0;
       sep=XmCreateSeparator(form,"sep",al,ac);
       XtManageChild(sep);

       ac=0;
       XtSetArg(al[ac],XmNshowValue,True); ac++;
       XtSetArg(al[ac],XmNtitleString,
               XmStringCreate("New",char_set)); ac++;
       XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ac++;
       scale=XmCreateScale(form,"scale",al,ac);
       XtManageChild(scale);

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

       ac=0;
       XtSetArg(al[ac],XmNtopAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNrightAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNleftAttachment,XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNbottomAttachment,XmATTACH_POSITION);ac++;
       XtSetArg(al[ac],XmNbottomPosition,30); ac++;
       XtSetValues(label,al,ac);

       ac=0;
       XtSetArg(al[ac],XmNtopAttachment, XmATTACH_WIDGET); ac++;
       XtSetArg(al[ac],XmNtopWidget, label); ac++;
       XtSetArg(al[ac],XmNrightAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNleftAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNbottomAttachment, XmATTACH_NONE); ac++;
       XtSetValues(sep,al,ac);

       ac=0;
       XtSetArg(al[ac],XmNtopAttachment, XmATTACH_WIDGET); ac++;
       XtSetArg(al[ac],XmNtopWidget, sep); ac++;
       XtSetArg(al[ac],XmNrightAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNleftAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNbottomAttachment, XmATTACH_NONE); ac++;
       XtSetValues(scale,al,ac);

       ac=0;
       XtSetArg(al[ac],XmNtopAttachment, XmATTACH_WIDGET); ac++;
       XtSetArg(al[ac],XmNtopWidget,scale); ac++;
       XtSetArg(al[ac],XmNrightAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNleftAttachment, XmATTACH_FORM); ac++;
       XtSetArg(al[ac],XmNbottomAttachment, XmATTACH_FORM); ac++;
       XtSetValues(text,al,ac);

       XtRealizeWidget(toplevel);
       XtAppMainLoop(context);
}

À̹ø ¿¹Á¦´Â Á» ±æ±º¿ä. ±×·¯³ª Å« ƲÀº °è¼Ó ¶È°°ÀÌ À¯ÁöµÇ¹Ç·Î ¹Ù²ï
ºÎºÐÀ» Àß »ìÆ캸¸é ¾î¶² ³»¿ëÀÎÁö ´ëÃæ ÁüÀÛÇÏ½Ç °Ì´Ï´Ù.
¿ì¼± bbÀ§Á¬ ´ë½Å form À§Á¬À» ¸¸µé¾ú°í ±×°ÍÀ» toplevel¿¡ ºÙÀÎ ÈÄ¿¡
form À§Á¬¿¡ 4°³ÀÇ À§Á¬À» ºÙ¿´½À´Ï´Ù. label,separator,scale,textÀ§Á¬
µîÀ» °¢°¢ ¼³Á¤ÇØ ÁØ ÈÄ¿¡ ºÙ¿´½À´Ï´Ù.

»õ·Î Ãß°¡µÈ À§Á¬À» ¿ì¼± »ìÆ캾½Ã´Ù.
sep¶ó´Â ºÐ¸®ÀÚÀ§Á¬À» Çϳª Ãß°¡¸¦ Çß½À´Ï´Ù. À§Á¬À» ¸¸µå´Â ¹æ¹ýÀº ´Ù¸¥ À§Á¬
°ú °°Àº ¹æ¹ýÀ¸·Î XmCreate~ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ À§Á¬À» ¸¸µé°í
´Ù¸¥ À§Á¬°ú ¸¶Âù°¡Áö·Î XtManageChild ÇÔ¼ö¸¦ ½è½À´Ï´Ù.
ÀÌ À§Á¬À» Ãß°¡ÇÑ ÀÌÀ¯´Â ¶óº§ À§Á¬°ú scaleÀ§Á¬À» ±×³É ºÙÀÌ¸é ¾îµð±îÁö°¡
°æ°èÀÎÁö ¾Ë ¼ö ¾ø±â ¶§¹®¿¡ Ãß°¡ÇÑ °ÍÀÔ´Ï´Ù.

¶Ç »õ·Î¿î ³»¿ëÀº Åé·¹º§ÀÇ Å©±â¸¦ XtSetValuesÇÔ¼ö¸¦ ÀÌ¿ëÇØ ÀÎÀÚ¸¦
Àü´ÞÇß½À´Ï´Ù. °¡·Î 200 ¼¼·Î 200ÀÇ Å©±â·Î¿ä..

±× ´ÙÀ½ »õ·Î¿öÁø ³»¿ëÀº scaleÀ§Á¬ÀÇ ¼³Á¤ÀÔ´Ï´Ù.
XmNtitleStringÀº ¸» ±×´ë·Î À§Á¬ÀÇ Å¸ÀÌƲÀ» C½ºÆ®¸µÀ¸·Î ³ÖÀº °ÍÀÌ°í
±× °ªÀº XmStringCreateÇÔ¼ö·Î ¸ðƼÇÁ ½ºÆ®¸µÀ» ¹Þ¾Æ¼­ ¸®ÅÏÇÑ °ªÀÔ´Ï´Ù
XmNorientationÀº scaleÀ§Á¬ÀÇ ¹æÇâÀ» ¼³Á¤ÇÏ´Â °ÍÀε¥ ±âº»ÀûÀ¸·Î ¼¼·Î
¹æÇâÀÌÁö¸¸ ÀÌ ÇÁ·Î±×·¥¿¡¼­´Â °¡·Î ¹æÇâÀ¸·Î ¹Ù²ãÁÖ±â À§ÇØ »ç¿ëÇßÀ¾´Ï
´Ù. °ªÀº XmHORIZONTALÀ̶ó´Â °ªÀ» ³Ö¾ú±º¿ä..

ÀÚ ÀÌÁ¦ ¼Ò½ºÀÇ ¹Ý Á¤µµ¸¦ Â÷ÁöÇÏ°í ´Ü¼ø ¹Ýº¹ÀûÀÎ Äڵ忡 ´ëÇØ ¾Ë¾Æº¾½Ã
´Ù. ÅؽºÆ® À§Á¬À» ¸¸µç ÀÌÈÄÀÇ ³»¿ëÀº XtSetArgÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÀÎÀÚ¸¦
°¢ À§Á¬¿¡ Àü´ÞÇÑ °ÍÀÔ´Ï´Ù. ù´Ü¶ôÀº ¶óº§À§Á¬ÀÇ ÀÎÀÚÀÌ°í, µÎ ¹ø°
´Ü¶ôÀº ºÐ¸®ÀÚ(separator)À§Á¬ÀÇ ÀÎÀÚ, ...

ÀÌ ¸ðµç ÀÎÀÚµéÀº ÆûÀ§Á¬À» ÀÌ¿ëÇ߱⠶§¹®¿¡ ÇÊ¿äÇÑ ÀÎÀÚµéÀÔ´Ï´Ù.
ù ¹ø° ¸®¼Ò½º XmNTopAttachment´Â ¸» ±×´ë·Î À§ÂÊÀ» ºÙÀÌ´Â °ÍÀÔ´Ï´Ù.
¾îµð¿¡ ºÙÀ̴°¡´Â ±× °ªÀÌ XmATTACH_FORM À̶ó°í µÇ¾îÀִ°ÍÀ» º¸´Ï
ÆûÀ§Á¬¿¡ ºÙÀÌ´Â °ÍÀ̱º¿ä.
µÎ ¹ø° ¸®¼Ò½º XmNrightAttachment´Â ¿À¸¥ÂÊ¿¡, ¼¼ ¹ø° ¸®¼Ò½º
XmNleftAttachment´Â À§Á¬ ¿ÞÂÊÀ» ºÙÀ̶ó´Â ¼Ò¸®ÀÔ´Ï´Ù.
¸ðµÎ XmATTACH_FORMÀ̶ó°í µÇ¾îÀÖÀ¸´Ï À§, ¿À¸¥ÂÊ, ¿ÞÂÊ ¸ðµÎ ÆûÀ§Á¬¿¡
ºÙÀÌ°í ÀÖ½À´Ï´Ù.
³× ¹ø° ¸®¼Ò½º XmNbottomAttachment´Â ¾Æ·¡ÂÊ¿¡ À§Á¬À» ºÙÀÌ´Â °ÍÀε¥ ¿©±â
¼­´Â ¾Æ·¡ÂÊ¿¡ Ưº°ÇÑ À§Á¬À» ºÙÀÌÁö ¾Ê°í À§Ä¡¸¸ Á¤ÇØÁÖ·Á°í
XmATTACH_POSITIONÀ̶ó´Â °ªÀ» Àü´ÞÇß½À´Ï´Ù. ±×¸®°í ¹Ù·Î ¾Æ·¡ ÁÙ¿¡
XmNbottomPositonÀÇ °ªÀ¸·Î 30À» Àü´ÞÇߴµ¥ ÀÌ°ÍÀº À§¿¡¼­ºÎÅÍ 30%ÀÇ À§Ä¡
·Î Ç϶ó´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î ÀÌ·¯ÇÑ °ªµéÀ» labelÀ§Á¬¿¡ Àü´ÞÇß
À¾´Ï´Ù.
µû¶ó¼­ ¶óº§À§Á¬ÀÇ À§ÂÊ, ¿À¸¥ÂÊ, ¿ÞÂÊÀ» ÆûÀ§Á¬(Áï Toplevel°ú °°Àº Å©±â°¡
µÇ°ÚÁö¿ä)¿¡ ºÙÀÌ°í, À§¿¡¼­ºÎÅÍ 30%¸¦ ¶óº§À§Á¬ÀÌ Â÷ÁöÇÏ°í ÀÖ´Ù´Â ¸»ÀÌ
µË´Ï´Ù. ÀÌÇØ°¡ °¡½Ã´ÂÁö¿ä..

´ÙÀ½Àº sepÀ§Á¬¿¡ °ªÀ» Àü´ÞÇÑ °ÍÀ» º¾½Ã´Ù.
ù ¹ø° ¸®¼Ò½º XmNtopAttachment¿¡´Â XmATTACH_WIDGETÀ̶ó´Â °ªÀ» Àü´ÞÇß´Â
µ¥ ÀÌ°ÍÀº À§ÂÊÀ» ¾î¶² À§Á¬¿¡ ºÙÀÌ°Ú´Ù´Â ¶æÀÔ´Ï´Ù. ±× À§Á¬ÀÇ À̸§Àº ¹Ù·Î
¾Æ·¡ ÁÙ¿¡ XmNtopWidgetÀ̶ó´Â ¸®¼Ò½º¿¡ labelÀ̶ó´Â °ªÀ» Àü´ÞÇÔÀ¸·Î½á
sepÀ§Á¬ÀÇ À§ÂÊ ºÎºÐÀ» labelÀ§Á¬¿¡ ºÙÀÌ°Ú´Ù´Â ¶æÀÌ µÇ°ÚÁö¿ä.
³ª¸ÓÁö´Â ¾Õ¿¡¼­ ¼³¸íÇßµíÀÌ sepÀ§Á¬ÀÇ ¿À¸¥ÂÊ ¿ÞÂÊ ºÎºÐÀ» formÀ§Á¬¿¡ ºÙÀÎ
´Ù´Â ¶æÀÌ°í, XmNbottomAttachment¿¡´Â XmATTACH_NONEÀ̶ó´Â °ªÀ» ÁÜÀ¸·Î½á
¾Æ¹« À§Á¬¿¡µµ ºÙÀÌÁö ¾Ê¾Ò½À´Ï´Ù. ¾Æ·¡¿¡ ¶Ç´Ù¸¥ À§Á¬À» ºÙÀÌ·Á¸é ¾Æ·¡ºÎºÐÀº À§Á¬¿¡

ºÙÀÌÁö ¸»°í ºñ¿öµÖ¾ß ÇÏ°ÚÁö¿ä.

ÀÌ Á¤µµ ¼³¸íÀ» ÇßÀ¸¸é ¼Ò½ºÀÇ ³ª¸ÓÁö ºÎºÐÀº ¾Æ½Ã¸®¶ó ¹Ï½À´Ï´Ù.

¿À´ÃÀº ¿©±â±îÁö ¼³¸íÀ» ÇÏ°Ú½À´Ï´Ù. ¸Å´ÏÁ® À§Á¬ÀÌ ÀÌ µÎ °¡Áö¸¸ ÀÖ´Â °ÍÀº
¾Æ´ÏÁö¸¸ ³ª¸ÓÁö´Â º»ÀÎÀÌ Ã¥À» ã¾Æ¼­ Âü°íÇÏ½Ã°í ¿©·¯ °³ÀÇ À§Á¬À» ºÙÀÌ´Â
¹æ¹ýÀ» ¾Ë¾ÒÀ¸´Ï.. ´ÙÀ½ °³³äÀ¸·Î ³Ñ¾î°¡µµ·Ï ÇÏÁö¿ä..
´ÙÀ½½Ã°£¿¡´Â callback¿¡ ´ëÇؼ­ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.



HomePage Backward Forward Post Reply List
1998 by swindler