WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
Table of contents


»ùÇà À̺¥Æ® ÇÁ·Î½ÃÀú:¶óº§Æí



¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ¶óº§·Î Çϱ⿡´Â

À̺¥Æ® ÇÁ·Î½ÃÀú¿¡ À־ °¡Àå ±âº»ÀûÀÎ ¸¶¿ì½ºÀÇ µ¿ÀÛ¿¡ ¹ÝÀÀÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ »ùÇÃÀÔ´Ï´Ù. ¶óº§À§¿¡¼­ ¸¶¿ì½º°¡ Ŭ¸¯µÉ¶§¸¶´Ù ¼ýÀÚ°¡ ¿Ã¶ó°¡°ÔµÇ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇغ¾½Ã´Ù.

// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å(trigger)·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù.
public class chop {
  protected static void chop(WSCbase object){
    //(0)¸¶¿ì½º ´ÜÃß1¿Ü´Â µÇµ¹¾Æ°¨
    if ((Mwt.WSGIappMouse().getMouseStatus() & Mwt.WS_MOUSE_BTN1) == 0){
      return;
    }

    // (A)userValue  ¼Ó¼º¿¡ ±â¾ïµÇ¿©ÀÖ´Â ¼ýÀÚ¸¦ Ãëµæ
    WSCvariant value = object.getProperty("userValue");
    // (B)±× ¼ýÀÚ¸¦ ¼¼¾î ¿Ã¸²
    long val = value.getLong() + 1;
    // (C)±× ¼ýÀÚÀÇ Ç¥½Ã
    object.setProperty("labelString",val);
    // (D) userValue  ¼Ó¼º¿¡ ¿Ã¸° ¼ýÀÚ¸¦ ±â¾ï½ÃÅ´
    object.setProperty("userValue",val);
  }
}

ÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú´Â WSCvbtn,WSCvlabel µîÀÇ labelString ¼Ó¼ºÀ» °¡Áö´Â °´Ã¼¿¡ MOUSE-PRESS Æ®¸®°Å(trigger)·Î ¼³Á¤ÇÕ´Ï´Ù. °´Ã¼À§¿¡¼­ ¸¶¿ì½º°¡ Ŭ¸¯µÉ¶§¸¶´Ù ÀÌ ÇÔ¼ö´Â ±âµ¿µË´Ï´Ù. À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¸é (0)¿¡¼­ ¸¶¿ì½º ´ÜÃßÀÇ ÆÇÁ¤À» ½ÇÇàÇÏ°í ¸¶¿ì½º ´ÜÃß1¿ÜÀÇ ´ÜÃß¿´´õ¶ó¸é µÇµ¹¸³´Ï´Ù. ¸¶¿ì½º ´ÜÃß ÆÇÁ¤ÀÇ Âü°í·Î ÇØ ÁֽʽÿÀ.

´ÙÀ½¿¡ (A)·Î userValue¼Ó¼º¿¡ ±â¾ïµÇ¿©ÀÖ´Â ¼ýÀÚ¸¦ ÃëµæÇÕ´Ï´Ù. userValue ¼Ó¼ºÀÇ ÃʱâÄ¡´Â 0À¸·Î, »ç¿ëÀÚ°¡ °ªÀ» ÀÚÀ¯·ÎÈ÷ ÁöÁ¤Çؼ­ º¸ÁöÇÒ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ °´Ã¼¿¡ ±â¾ï½ÃÄѳõÀº°ÍÀº ´Ù¼öÀÇ °´Ã¼¿¡ ºÙ¿©³õ¿´À»¶§ °¢°¢ÀÇ ¶óº§ÀÇ ¼ýÀÚ°¡ ¼¯¿©ÁöÁö¾Êµµ·Ï ÇϱâÀ§Çؼ­ÀÔ´Ï´Ù. ¹Ý´ë·Î Á¤Àû º¯¼öµî¿¡¼­ º¸ÁöÇϵµ·Ï ÀÛ¼ºÇÏ¸é ¸ðµç ¶óº§¿¡¼­ ÇϳªÀÇ ¼ýÀÚ¸¦ »ç¿ëÇÑ Ç¥½Ã¸¦ ÇÒ¼öÀÖ½À´Ï´Ù.

´ÙÀ½¿¡ (B)¿¡¼­ ±× ¼ýÀÚ¸¦ ¼¼¾î ¿Ã·Á (C)¿¡¼­ Ç¥½ÃÇÕ´Ï´Ù. (D)·Î Ç¥½ÃÇÑ ¼ýÀÚ¸¦ userValue¼Ó¼º¿¡ º¸ÁöÇÏ¿©, ´ÙÀ½¹øÀÇ À̺¥Æ® ÇÁ·Î½ÃÀú ±âµ¿¿¡ ÁغñÇÕ´Ï´Ù.

Ȥ½Ã ÀÌ ÇÁ·Î½ÃÀú°¡ Æ®¸®°Å(trigger),MOUSE-IN ·Î ºÙ¿©³õÀÎ °æ¿ì´Â, ¸¶¿ì½º°¡ ÃâÀÔÇÑ È¸¼ö¸¦ Ç¥½ÃÇϰԵ˴ϴÙ.



¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ¶óº§·Î Çϱ⿡´Â

´ÙÀ½Àº ¼±Åð¡´ÉÇÑ ¶óº§À» ÀÛ¼ºÇغ¾½Ã´Ù. ¶óº§ÀÌ ¼±ÅõȰÍó·³ º¸À̵µ·Ï »öÀ» º¯È­½ÃÄѺ¾½Ã´Ù. ¿©±â¼­´Â userValue ¼Ó¼ºÀÇ ´ë½Å set/getVariantData() ÇÔ¼ö¸¦ ½á¼­ ¼±ÅûóŸ¦ º¸ÁöÇÕ´Ï´Ù.

// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù.
public class chop {
  protected static void chop(WSCbase object){
    //(A) getVariantData()  ·Î ±â¾ïÇÏ´Â °ªÀ» Ãëµæ
    WSCvariant value =  object.getVariantData("STATUS");
    //(B) value  °¡ 0À̸ç´Â ¼±ÅûóÅ·Î, 1À̸ç´Â ¿ø·¡ Ç¥½Ã»óÅ·ΠµÇµ¹¸°´Ù
    if (value.getLong() == 0){
      //(C)¿ù·¡»ö±ò¸íĪ(¹®ÀÚ¿­)À» userString ·Î ±â¾ïÇسõ´Ù
      WSCvariant color = object.getProperty("backColor");
      object.setProperty("userString",color);
      //(D)¼±ÅûöÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù
      object.setProperty("backColor","slategray4");
      //(E)»óŸ¦ ±â¾ïÇÑ´Ù
      object.setVariantData("STATUS",1);
    }else{
      //(F)¿ø·¡»öÀ» ²¨³½´Ù
      WSCvariant color =  object.getProperty("userString");
      //(G)¿ø·¡»öÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù
      object.setProperty("backColor",color);
      //(H)»óŸ¦ ±â¾ïÇÑ´Ù
      object.setVariantData("STATUS",0);
    }
  }
}

ÀÌ À̺¥Æ® ÇÁ·Î½ÃÀú´Â WSCvbtn,WSCvlabel µîÀÇ labelString ¼Ó¼ºÀ» °¡Áö´Â °´Ã¼¿¡ MOUSE-PRESS Æ®¸®°Å(trigger)·Î ¼³Á¤ÇÕ´Ï´Ù.

À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¸é (A)¿¡¼­ setVariantData() ÇÔ¼ö°¡ ±â¾ïÇÏ´Â ¼ýÀÚ¸¦ ÃëµæÇÕ´Ï´Ù. set/getVariantData() ÇÔ¼öÀÇ ÃʱâÄ¡´Â0À¸·Î »ç¿ëÀÚ°¡ °ªÀ» ÀÚÀ¯·ÎÈ÷ ÁöÁ¤Çؼ­ º¸ÁöÇÒ¼öÀÖ½À´Ï´Ù. ÁÁÀº À̸§À» ºÙ¿©¼­ ÀÓÀÇÀÇ °ªÀ» void* ÇüÀ¸·Î º¸ÁöÇÒ¼ö°¡ ÀÖ½À´Ï´Ù.

´ÙÀ½¿¡ (B)¿¡¼­ ±× °ªÀ» ÆǺ°ÇÏ´Ù°¡, (C)¿¡¼­ ´ÙÀ½¹ø¿¡ ¿ø·¡»öÀ¸·Î Ç¥½Ã¸¦ µÇµ¹¸®±â¿¡ ¼Ó¼º userString ·Î ±â¾ïÇسõ½À´Ï´Ù. ´ÙÀ½ (D) ¿¡¼­ ¼±ÅûöÀ¸·ÎÀÇ Ç¥½Ã»óÅ·ΠÇÏ´Ù°¡, (E)·Î¼­ ¼±ÅûóŸ¦ ´Ù½Ã º¸ÁöÇÕ´Ï´Ù.

¿ø·¡»öÀ¸·Î µÇµ¹¸®´Â ´Ü°è´Â (F)·Î¼­ º¸ÁöÇسõÀº ¿ø·¡ Ç¥½Ã»öÀ» ÃëµæÇؼ­ (G)·Î ±× »öÀ» ¹Ý¿µÇÕ´Ï´Ù. ±×·¡¼­ (H)¿¡¼­ ¶Ç ¼±ÅûóŸ¦ º¸ÁöÇÕ´Ï´Ù.

¸¶¿ì½º·Î °­Á¶Ç¥½ÃÇÏ´Â ¶óº§·Î Çϱ⿡´Â

¸¶¿ì½ºÀÇ ÃâÀÔÀ¸·Î °­Á¶Ç¥½ÃÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¸¸µé¾îº¾½Ã´Ù. °´Ã¼À§¿¡ ¸¶¿ì½º°¡ µé¾î¿À¸é °­Á¶Ç¥½ÃÇÏ°í, ¸¶¿ì½º°¡ ³ª°¡¸é µÇµ¹¾Æ°¡´Â À̺¥Æ® ÇÁ·Î½ÃÀú·Î µË´Ï´Ù.

¿©±â¼­ Áß¿äÇÑ°ÍÀº ¸¶¿ì½º°¡ µé¾î°£ °æ¿ì¿¡ ¹ß»ýÇÏ´Â Æ®¸®°Å(trigger)¿Í ¸¶¿ì½º°¡ ³ª°£ °æ¿ì¿¡ ¹ß»ýÇÏ´Â Æ®¸®°Å(trigger)¿¡ °¢°¢ À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÑ´Ù´Â Á¡¿¡ ÀÖ½À´Ï´Ù.

Áï ÃʱâÈ­·Î À̺¥Æ® ÇÁ·Î½ÃÀú°¡ ±âµ¿µÇ¿©, ±×¼Ó¿¡¼­ »õ·Î¿î À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ¼³Á¤ÇÔÀ¸·Î¼­ º¹¼öÀÇ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ¼³Á¤À» ÇϳªÀÇ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ¼³Á¤À¸·Î ½ÇÇöÇÏ´Â Á¡ÀÔ´Ï´Ù.

// in subop1.java
//¼­ºêEP1 // ¸¶¿ì½º µé¾î
public class subop1 {
  protected static void subop1(WSCbase object){
    //(A)¿ø·¡»ö ¸íĪÀ» userString  ¼Ó¼º¿¡ ±â¾ï½ÃŲ´Ù
    WSCvariant color = object.getProperty("backColor");
    object.setProperty("userString",color);
    //(B)¼±ÅûöÀÇ Ç¥½Ã»óÅ·ΠÇÑ´Ù
    object.setProperty("backColor","slategray4");
  }
}

// in subop2.java
//¼­ºêEP2 // ¸¶¿ì½º ³ª°¨
public class subop2 { 
  protected static void subop2(WSCbase object){ 
    //(C)¿ø·¡»ö ¸íĪÀ» ²¨³½´Ù
    WSCvariant color = object.getProperty("userString");
    //(D)¿ø·¡ Ç¥½Ã»óÅ·ΠÇÑ´Ù
    object.setProperty("backColor",color);
  } 
}

// in chop.java
//WSEV_INIT(INITIALIZE)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÑ´Ù.
public class chop {
  protected static void chop(WSCbase object){
    //ÃʱâÈ­ Æ®¸®°Å(trigger)°¡ ¹ß»ýÇÏ¿© ½ÇÇàµÇ¸é
    //¼­ºêEP¸¦ °¢°¢ »õ·Î ¼³Á¤ÇÕ´Ï´Ù.
    //(E) À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ½Å±Ô ¼³Á¤  //¼­ºêEP1
    //OP¸íĪ="°­Á¶OP1"   ÇÔ¼ö=subop1    ±âµ¿ Æ®¸®°Å=WSEV_MOUSE_IN     
    object.addProcedure("¥Ï¥¤¥é¥¤¥ÈOP1","subop1.subop1",Mwt.WSEV_MOUSE_IN);
    //(F) À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ ½Å±Ô ¼³Á¤  //¼­ºêEP2
    //OP¸íĪ="°­Á¶OP2"     ÇÔ¼ö=subop2   ±âµ¿ Æ®¸®°Å=WSEV_MOUSE_OUT   
    object.addProcedure("¥Ï¥¤¥é¥¤¥ÈOP2","subop2.subop2",Mwt.WSEV_MOUSE_OUT);
  }
}

¼­ºêEP1´Â WSEV_MOUSE_INÀÇ Æ®¸®°Å(trigger)·Î ±âµ¿µÇ¿© ¶óº§ÀÇ ¹è°æÇ¥½Ã»öÀ» °­Á¶»öÀ¸·Î ÇÕ´Ï´Ù. ¼­ºêEP2´Â WSEV_MOUSE_OUTÀÇ Æ®¸®°Å(trigger)·Î ±âµ¿µÇ¿© ¶óº§ÀÇ ¹è°æÇ¥½Ã»öÀ» ¿ø·¡ »öÀ¸·Î µÇµ¹¸³´Ï´Ù. À̺¥Æ® ÇÁ·Î½ÃÀúº»Ã¼´Â ÃʱâÈ­ Æ®¸®°Å(trigger)·Î °´Ã¼¿¡ ¼³Á¤µÇ¿©ÀÖÀ¸¸ç (E),(F)¿¡¼­ ¼­ºêEP1,2¸¦ °´Ã¼¿¡ ¼³Á¤ÇÏ°íÀÖ½À´Ï´Ù. ÀÌÈÄ ¸¶¿ì½º°¡ ÃâÀÔÀ»ÇÏ¸é »õ·Î ÇÁ·Î±×·¥ÀÇ ¾È¿¡¼­ ¼³Á¤µÈ ¼­ºêEP°¡ ½ÇÇàµÇµµ·Ï µË´Ï´Ù.

¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ±×·ìÈ­µÈ ¶óº§·Î Çϱ⿡´Â

°°Àº ¿¡¸®¾îÀ§¿¡ ¹èÄ¡µÇ´Â ¶óº§À» ¸¶¿ì½º·Î ¼±Åð¡´ÉÇÑ ±×·ìÈ­µÈ ¶óº§¿¡ÇÏ´Â À̺¥Æ® ÇÁ·Î½ÃÀú¸¦ ½ÇÁ¤Çϱ⿡´Â ¸¶¿ì½º·Î ¼±ÅÃµÈ ¶óº§À» ÇÔ¸ôÇÑ »óÅ·ΠÇسõ°í ±× ¿¡¸®¾î¿¡ ¾î´À ¶óº§ÀÌ ¼±Åõǿ©Àִ°¡¸¦ º¸ÁöÇϵµ·ÏÇÕ´Ï´Ù.

// WSEV_MOUSE_PRESS(MOUSE-PRESS)Æ®¸®°Å·Î ¶óº§¿¡ ¼³Á¤ÇÕ´Ï´Ù.
public class chop {
  protected static void chop(WSCbase object){
    //(A)userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â °ªÀ» ID·Î¼­ »ç¿ëÇÑ´Ù
    WSCvariant val = object.getProperty("userValue");
    //(B)¼±ÅÃµÈ »óÅÂ(ÇÔ¸ô°­ÅÂ)·Î ÇÑ´Ù
    object.setProperty("shadowType",Mwt.WS_SHADOW_IN);
    //(C)ºÎ¸ð°¡ ±â¿ÁÇÏ´Â ¼±Åõǿ©ÀÖ´ø °´Ã¼¸¦ ÃëµæÇÑ´Ù
    WSCbase parent = object.getParent();
    WSCvariant target_val = parent.getVariantData("SelectedItem");
    WSCbase target = target_val.getInstancePtr();
    //(D)±× ¼±Åõǿ©ÀÖ´ø °´Ã¼ÀÇ Ç¥½Ã»óŸ¦ ¿ø·¡»óÅÂ(µ¹Ãâ»óÅÂ)·Î µÇµ¹¸°´Ù
    if (Mwt.WSGIappObjectList().existInstance(target) != Mwt.False){
      target.setProperty("shadowType",Mwt.WS_SHADOW_OUT); 
    } 
    if (Mwt.WSGIappObjectList().existInstance(target) != Mwt.False &&
        target.getInstanceName() == object.getInstanceName()){
      //(E)¼±ÅÃÇÏ°íÀÖ´Â °´Ã¼¸¦ ´Ù½Ã Ŭ¸¯ÇÑ °æ¿ì
      // µÎ¹ø°ÀÇ °æ¿ì´Â ¿Ö¿ì°íÀÖ´ø ÀÚ½ÅÀ» 0À¸·ÎÇؼ­ Ä¡¿î´Ù
      parent.setVariantData("GroupValue",0);
      parent.setVariantData("SelectedItem",0);
    }else{
      //(F)ù¹ø°ÀÇ °æ¿ì´Â ÀÚ½ÅÀ» ºÎ¸ð¿¡ ±â¾ï½ÃÅ´.
      parent.setVariantData("GroupValue",val);     // ID
      // WSCbase ÀνºÅĽº 
      WSCvariant val_self = new WSCvariant(object);
      parent.setVariantData("SelectedItem",val_self);
    }
  }
}

±×·ìÈ­ÇÏ´Â ¶óº§µé¿¡ °¢°¢À» ½Äº°ÇÒ ID°¡ ÇÊ¿äÇÏÁö¸¸ userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â °ªÀ» ID ·Î »ç¿ëÇÏ´õ·Ï ÇսôÙ.

(A)¿¡¼­ userValue ¼Ó¼º¿¡ ¼³Á¤µÇ¿©ÀÖ´Â ID ¸¦ ÃëµæÇÕ´Ï´Ù.

(B)¿¡¼­´Â ¼±ÅõȰÍÀ» Ç¥½ÃÇϱâÀ§ÇØ ÇÔ¸ôƲ Ç¥½Ã·Î ÇÕ´Ï´Ù.

(C)·Î¼­ ¼±Åõǿ©ÀÖ´ø °´Ã¼¸¦ ÃëµæÇÕ´Ï´Ù. ¾î´À °´Ã¼³ª ¹®Á¦¾øÁö¸¸ ÀÌ ¿¹ÀÇ °æ¿ì, ±×·ìÈ­ÇÏ´Â ¶óº§µé¿¡ °øÅëÀÎ ºÎ¸ð°´Ã¼¿¡ ±â¾ï½ÃÅ°µµ·ÏÇÕ´Ï´Ù.

(D)´Â ¼±Åõǿ©ÀÖ´ø °´Ã¼ÀÇ Ç¥½Ã»óŸ¦ ¿ø·¡ÀÇ µ¹Ãâ»óÅ¿¡ µÇµ¹¸³´Ï´Ù.

(E)·Î ¼±Åõǿ©ÀÖ´ø °´Ã¼(target)¿Í »õ·Î ¼±ÅÃµÈ °´Ã¼(object)°¡ °°Àº°æ¿ì, Ãø µÎ¹ø ¼±ÅÃµÈ »óÅ·ΠµÈ °æ¿ì¿¡´Â ÇØÀúÇÕ´Ï´Ù. ºÎ¸ð¿¡ ±â¾ï½ÃŲ °ª°ú °´Ã¼¸¦ Ä¡¿ó´Ï´Ù.

(F)¿¡¼­´Â »õ·Î ¼±ÅÃµÈ °´Ã¼¿Í ±× °ªÀ» ºÎ¸ð¿¡ ±â¾ï½Ãŵ´Ï´Ù.

Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | Table of contents

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005