Esempio n. 1
0
static JSBool
HandleData(JSContext *cx, JSONParser *jp, JSONDataType type, const jschar *buf, uint32 len)
{
  JSBool ok = JS_FALSE;
 
  switch (type) {
    case JSON_DATA_STRING:
      ok = HandleString(cx, jp, buf, len);
      break;
 
    case JSON_DATA_KEYSTRING:
      jp->objectKey = JS_NewUCStringCopyN(cx, buf, len);
      ok = JS_TRUE;
      break;
 
    case JSON_DATA_NUMBER:
      ok = HandleNumber(cx, jp, buf, len);
      break;
 
    case JSON_DATA_KEYWORD:
      ok = HandleKeyword(cx, jp, buf, len);
      break;
 
    default:
      JS_NOT_REACHED("Should have a JSON data type");
  }
 
  js_FinishStringBuffer(jp->buffer);
  js_InitStringBuffer(jp->buffer);
 
  return ok;
}
Esempio n. 2
0
static JSBool
HandleData(JSContext *cx, JSONParser *jp, JSONDataType type)
{
  JSBool ok = JS_FALSE;

  if (!STRING_BUFFER_OK(jp->buffer))
      return JS_FALSE;

  switch (type) {
    case JSON_DATA_STRING:
      ok = HandleString(cx, jp, jp->buffer->base, STRING_BUFFER_OFFSET(jp->buffer));
      break;

    case JSON_DATA_KEYSTRING:
      js_AppendUCString(jp->objectKey, jp->buffer->base, STRING_BUFFER_OFFSET(jp->buffer));
      ok = STRING_BUFFER_OK(jp->objectKey);
      break;

    case JSON_DATA_NUMBER:
      ok = HandleNumber(cx, jp, jp->buffer->base, STRING_BUFFER_OFFSET(jp->buffer));
      break;

    case JSON_DATA_KEYWORD:
      ok = HandleKeyword(cx, jp, jp->buffer->base, STRING_BUFFER_OFFSET(jp->buffer));
      break;

    default:
      JS_NOT_REACHED("Should have a JSON data type");
  }

  js_FinishStringBuffer(jp->buffer);
  js_InitStringBuffer(jp->buffer);

  return ok;
}
Esempio n. 3
0
//重画函数
VOID CControlWnd::OnPaint()
{
	CPaintDC dc(this);

	//获取位置
	CRect rcClient;
	GetClientRect(&rcClient);

	//加载资源
	CImageHandle HandleControlL(&m_ImageControlL);
	CImageHandle HandleControlM(&m_ImageControlM);
	CImageHandle HandleControlR(&m_ImageControlR);
	CImageHandle HandleArrow(&m_ImageArrow);

	//创建缓冲
	CDC BufferDC;
	CBitmap BufferImage;
	BufferDC.CreateCompatibleDC(&dc);
	BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());

	//设置背景
	BufferDC.SetBkMode(TRANSPARENT);
	BufferDC.SelectObject(&BufferImage);

	//绘画背景
	m_ImageControlL.BitBlt(BufferDC,0,0);
	m_ImageControlR.BitBlt(BufferDC,rcClient.Width()-m_ImageControlR.GetWidth(),0);

	//加载资源
	CImageHandle HandleNumber(&m_ImageNumber);
	CImageHandle HandleNumDot(&m_ImageNumberDot);

	//变量定义
	LONG lScoreCurrent=m_lScoreCurrent;
	INT nNumberHeight=m_ImageNumber.GetHeight();
	INT nNumberWidht=m_ImageNumber.GetWidth()/10;
	INT nXItemPos=rcClient.Width()-m_ImageControlR.GetWidth();

	//绘画子项
	for (WORD i=0;i<m_wItemCount;i++)
	{
		//绘画背景
		nXItemPos-=m_SizeItem.cx;
		m_ImageControlM.BitBlt(BufferDC,nXItemPos,0);

		//绘画号码
		LONG lNumber=(LONG)(lScoreCurrent%10L);
		m_ImageNumber.BitBlt(BufferDC.m_hDC,nXItemPos,12,nNumberWidht,nNumberHeight,lNumber*nNumberWidht,0);

		//绘画逗号
		if( i != 0 && i%3 == 0 )
			m_ImageNumberDot.AlphaDrawImage( &BufferDC,nXItemPos+m_SizeItem.cx-4,4,RGB(255,0,255) );

		//当前焦点
		if( m_wCurrentItem == i )
			m_ImageArrow.AlphaDrawImage(&BufferDC,nXItemPos+6,4,RGB(255,0,255));

		//设置变量
		lScoreCurrent/=10L;
	}

	//绘画界面
	dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY);

	//清理资源
	BufferDC.DeleteDC();
	BufferImage.DeleteObject();

	return;
}