#include <WScom.h>
#include <WSCfunctionList.h>
#include <WSCbase.h>
#include <WSCvlabel.h>
//----------------------------------------------------------
//Function for the event procedure
//----------------------------------------------------------

//表示ラベルの外部アクセス宣言
extern WSCvlabel* newvlab_001;

void numbtnep(WSCbase* object){
  //do something...
  //数字ボタンの表示文字列プロパティから数字を取り出す
  WSCvariant val = object->getProperty(WSNlabelString);
 
  //数字を表示ラベルに表示する
  //直前の入力が、数字かどうか判断
  long numpushed = (long)newvlab_001->getUserData("num-input");

  //入力中に、ドットがおされて小数点モードになっているか判断
  long dotpushed = (long)newvlab_001->getUserData("dot-input");

  //現在の表示文字列を取得する
  WSCvariant val2 = newvlab_001->getProperty(WSNlabelString);

  //表示文字列の長さが長い場合、キャンセル。
  if (strlen((char*)val2) > 13){
    return;
  }

  //数字であった場合、数字を追加
  if (numpushed == 1){ 
    double value = val2;
    if (value == (double)0){
      WSCstring tmp;
      if (dotpushed == 1){
        tmp << "0." << val;
      }else{
        tmp << val;
      }
      newvlab_001->setProperty(WSNlabelString,(char*)tmp);
    }else{
      WSCstring tmp = val2;
      if (dotpushed == 1){
        if (tmp.isExist(".") == -1){
          tmp << ".";
        }
      }
      tmp << val;
      newvlab_001->setProperty(WSNlabelString,(char*)tmp);
    }
  }else{
    WSCstring tmp;
    if (dotpushed == 1){
      tmp << "0.";
    }
    tmp << val;
    newvlab_001->setProperty(WSNlabelString,tmp);
  }
  //数字ボタンを押したことを覚えさせておく。
  newvlab_001->setUserData("num-input",(void*)1);


}
static WSCfunctionRegister  op("numbtnep",(void*)numbtnep);
