Example #1
0
void NUbyteComboProp::Init()
{
	ubyte byVal;
	m_pvarBloc->GetValue(m_dwvarIdx, 0.0f, byVal);

	//Make menu items
	NVarsBlocDesc* pbd = m_pvarBloc->GetValueDesc(m_dwvarIdx);

	NString str;
	str = pbd->pszDefValue;

	NString word;
	udword i=3;
	do
	{
		i = str.ExtractToken(i, word, ",]");
		if (i!=-1)
		{
			m_carrayStringsList.AddItem(word);
			i+=word.Length()+1;
		}

	} while (i!=-1);

	//Create menu button
	ubyte val = byVal;
	word = "?";
	if (val<(ubyte)m_carrayStringsList.Count())
		word = m_carrayStringsList[val].Buffer();

	m_button.Create(word.Buffer(), NRect(0,0,0,0), m_pParent, 0);
	m_button.OnChanged = FDelegate(this, (TDelegate)&NUbyteComboProp::OnValueChanged);

	//Add items to menu
	for (udword i=0; i<m_carrayStringsList.Count(); i++)
	{
		m_button.GetMenu()->AddItem(m_carrayStringsList[i].Buffer(), i+1, 0);
	}

}
Example #2
0
void WriteTGA(NBitmap* _bmp, NString _path, NString _suffix) 
{
  TGAHeader header;
  header.idlength=0;
  header.colourmaptype=0;
  header.datatypecode=2;
  header.colourmaporigin=0;
  header.colourmaplength=0;
  header.colourmapdepth=0;
  header.x_origin=0;
  header.y_origin=0;
  header.width = (short)_bmp->GetWidth();
  header.height = (short)_bmp->GetHeight();
  header.bitsperpixel= 32;
  header.imagedescriptor=0;

  udword length = _path.Length();
  if (length>=4 && _path.Buffer()[length-4] == '.' && 
                   _path.Buffer()[length-3] == 't' && 
                   _path.Buffer()[length-2] == 'g' && 
                   _path.Buffer()[length-1] == 'a')
  {
    _path.SetLength(length-4);
  }

  if (_suffix.Length() > 0)
  {
    _path += "_";
    _path += _suffix.Buffer();
  }

  _path += ".tga";

  FILE* tgaf = fopen(_path.Buffer(),"wb");
  fwrite(&header.idlength, 1, 1, tgaf);
  fwrite(&header.colourmaptype, 1, 1, tgaf);
  fwrite(&header.datatypecode, 1, 1, tgaf);
  fwrite(&header.colourmaporigin, 2, 1, tgaf);
  fwrite(&header.colourmaplength, 2, 1, tgaf);
  fwrite(&header.colourmapdepth, 1, 1, tgaf);
  fwrite(&header.x_origin, 2, 1, tgaf);
  fwrite(&header.y_origin, 2, 1, tgaf);
  fwrite(&header.width, 2, 1, tgaf);
  fwrite(&header.height, 2, 1, tgaf);
  fwrite(&header.bitsperpixel, 1, 1, tgaf);
  fwrite(&header.imagedescriptor, 1, 1, tgaf);

  NRGBA* pixels = _bmp->GetPixels();

  char* offset=0;
  for(int y=header.height-1;y>=0;y--) {
    offset = (char*) pixels + y*header.width*4;
    for(int x=0;x<header.width;x++) {
      fwrite(offset+2, 1, 1, tgaf);
      fwrite(offset+1, 1, 1, tgaf);
      fwrite(offset, 1, 1, tgaf);
      fwrite(offset+3, 1, 1, tgaf);
      offset += 4;
    }
  }

  fclose(tgaf);
}