Exemplo n.º 1
0
void GuiText::SetText(const char * t)
{
	if(origText)
		free(origText);
	if(text)
		delete[] text;

	if(textDynNum > 0)
	{
		for(int i=0; i < textDynNum; i++)
			if(textDyn[i])
				delete[] textDyn[i];
	}

	origText = NULL;
	text = NULL;
	textDynNum = 0;
	textScrollPos = 0;
	textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;

	if(t)
	{
		origText = strdup(t);
		text = charToWideChar(t);
	}
}
Exemplo n.º 2
0
/**
 * Constructor for the GuiText class, uses presets
 */
GuiText::GuiText(const char * t)
{
	origText = NULL;
	text = NULL;
	size = presetSize;
	color = presetColor;
	alpha = presetColor.a;
	style = presetStyle;
	maxWidth = presetMaxWidth;
	wrap = false;
	textDynNum = 0;
	textScroll = SCROLL_NONE;
	textScrollPos = 0;
	textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;
	textScrollDelay = TEXT_SCROLL_DELAY;

	alignmentHor = presetAlignmentHor;
	alignmentVert = presetAlignmentVert;

	if(t)
	{
		origText = strdup(t);
		text = charToWideChar(t);
	}

	for(int i=0; i < 20; i++)
		textDyn[i] = NULL;
}
Exemplo n.º 3
0
/**
 * Constructor for the GuiText class.
 */
GuiText::GuiText(const char * t, int s, GXColor c)
{
	origText = NULL;
	text = NULL;
	size = s;
	color = c;
	alpha = c.a;
	style = FTGX_JUSTIFY_CENTER | FTGX_ALIGN_MIDDLE;
	maxWidth = 0;
	wrap = false;
	textDynNum = 0;
	textScroll = SCROLL_NONE;
	textScrollPos = 0;
	textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;
	textScrollDelay = TEXT_SCROLL_DELAY;

	alignmentHor = ALIGN_CENTRE;
	alignmentVert = ALIGN_MIDDLE;

	if(t)
	{
		origText = strdup(t);
		text = charToWideChar(t);
	}

	for(int i=0; i < 20; i++)
		textDyn[i] = NULL;
}
Exemplo n.º 4
0
void GuiText::SetText(const char * t) {
    if (origText)
        free(origText);
    if (text)
        delete[] text;

    if (textDynNum > 0) {
        for (int i = 0; i < textDynNum; i++)
            if (textDyn[i])
                delete[] textDyn[i];
    }

    origText = NULL;
    text = NULL;
    textDynNum = 0;
    textScrollPos = 0;
    textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;

    if (t) {
        origText = strdup(t);
        text = charToWideChar(gettext(t));
    }

    if (xe_texture) {
        TR;
        Xe_DestroyTexture(g_pVideoDevice, xe_texture);
    }
}
Exemplo n.º 5
0
void Text::SetText(const char * t)
{
	wchar_t * tmp = charToWideChar(t);
	if (!tmp) return;

	if (wText) delete wText;

	wText = new (std::nothrow) wString(tmp);
	if (!wText)
	{
		return;
	}

	if (wText->size() == 0)
	{
		wText->push_back(L' ');
		wText->push_back(0);
	}

	textWidth = (font ? font : fontSystem)->getWidth(wText->data(), currentSize);

	delete[] tmp;

	ClearDynamicText();
	CalcLineOffsets();
}
Exemplo n.º 6
0
void FT_DrawText( int16_t x, int16_t y, FT_UInt pixelSize, char *text, GXColor color, uint16_t textStyle )
{
  if( currFontSize != pixelSize )
  {
    ChangeFontSize( pixelSize );
    if( !fontSystem[pixelSize] )
    {
      fontSystem[pixelSize] = new FreeTypeGX( pixelSize );    
    }
    currFontSize = pixelSize;
  }
  
  fontSystem[pixelSize]->setVertexFormat( GX_VTXFMT1 );  

  wchar_t* wtext = charToWideChar( text );
  fontSystem[pixelSize]->drawText( x, y, wtext, color, textStyle );
  delete [] wtext;
}
Exemplo n.º 7
0
void GuiKeyboard::MoveText(int n)
{
    int LettDiff;
    LettDiff = CalcMaxLine(kbtextstr) - CurrentFirstLetter + n;

    CurrentFirstLetter = CalcMaxLine(kbtextstr);
    kbText->SetText(GetDisplayText(kbtextstr));
    TextPointerBtn->UpdateWidth();

    wchar_t *wstr = charToWideChar(kbtextstr);
    int strlength = fontSystem[20]->getWidth(wstr);
    delete(wstr);

    if(strlength > MAX_KEYBOARD_DISPLAY)
        TextPointerBtn->SetLetterPosition(TextPointerBtn->GetCurrentLetter());
    else
        TextPointerBtn->SetLetterPosition(TextPointerBtn->GetCurrentLetter()+LettDiff);
}
Exemplo n.º 8
0
int CalcMaxLine(char * t)
{
    int len = strlen(t);
    wchar_t *wt = charToWideChar(t);
    int w, startPos = 0;

    for(int i = 0; i < len; i++)
    {
        w = fontSystem[20]->getWidth(&wt[i]);
        if(w < MAX_KEYBOARD_DISPLAY)
            break;

        startPos++;
    }

    delete wt;
    return startPos;
}
Exemplo n.º 9
0
void GuiText::ResetText()
{
	if(!origText)
		return;
	if(text)
		delete[] text;

	text = charToWideChar(origText);

	for(int i=0; i < textDynNum; i++)
	{
		if(textDyn[i])
		{
			delete[] textDyn[i];
			textDyn[i] = NULL;
		}
	}

	textDynNum = 0;
	currentSize = 0;
}
Exemplo n.º 10
0
void GuiText::ResetText() {
    if (!origText)
        return;
    if (text)
        delete[] text;

    text = charToWideChar(gettext(origText));

    for (int i = 0; i < textDynNum; i++) {
        if (textDyn[i]) {
            delete[] textDyn[i];
            textDyn[i] = NULL;
        }
    }

    textDynNum = 0;
    currentSize = 0;

    if (xe_texture) {
        TR;
        Xe_DestroyTexture(g_pVideoDevice, xe_texture);
    }
}
Exemplo n.º 11
0
int CEmuMiiList::FilterList(const wchar_t * miiFilter)
{
	int cnt = 0;
	
	ResetFiltered();
	
	if (EmuMiisFull.empty() || need_refresh) Get();
	if (miiFilter) MiiFilter.assign(miiFilter);

	EmuMiisFiltered.clear();
	AvailableSearchChars.clear();

	for (u32 i = 0; i < EmuMiisFull.size(); ++i)
	{
		wchar_t *MiiName = charToWideChar((EmuMiisFull[i]->name).c_str());
		if (MiiName && *MiiFilter.c_str())
		{
			if (wcsnicmp(MiiName, MiiFilter.c_str(), MiiFilter.size()) != 0)
			{
				delete [] MiiName;
				continue;
			}
		}

		if (MiiName)
		{
			if (wcslen(MiiName) > MiiFilter.size() &&
				AvailableSearchChars.find(towupper(MiiName[MiiFilter.size()])) == std::string::npos &&
				AvailableSearchChars.find(towlower(MiiName[MiiFilter.size()])) == std::string::npos)
			{
				AvailableSearchChars.push_back(MiiName[MiiFilter.size()]);
			}

			delete [] MiiName;
		}

		if(i >= EmuMiisFiltered.size())
		{
			AddFilteredMii();
		}
		
		cnt = EmuMiisFiltered.size()-1;
		
		EmuMiisFiltered[cnt]->name.assign(EmuMiisFull[i]->name);
		EmuMiisFiltered[cnt]->creator.assign(EmuMiisFull[i]->creator);
		EmuMiisFiltered[cnt]->position = EmuMiisFull[i]->position;
		EmuMiisFiltered[cnt]->female = EmuMiisFull[i]->female;
		EmuMiisFiltered[cnt]->month = EmuMiisFull[i]->month;
		EmuMiisFiltered[cnt]->day = EmuMiisFull[i]->day;
		EmuMiisFiltered[cnt]->favColor = EmuMiisFull[i]->favColor;
	}

	AvailableSearchChars.push_back(L'\0');

	if (EmuMiisFiltered.size() < 2)
		AvailableSearchChars.clear();
	
	if (AvailableSearchChars.size() > 1)
		std::sort(AvailableSearchChars.begin(), AvailableSearchChars.end(), WCharSortCallback);

	return EmuMiisFiltered.size();
}
Exemplo n.º 12
0
void CustomBrowser::ParseDirEntries()
{
	if(!dir)
		return;
	
	char filename[MAXPATHLEN];
	struct stat filestat;
	struct dirent * dirent = NULL;
	
	int i = 0;
	
	std::string Path = currentpath;
	if(Path[Path.size()-1] == '/')
		Path.erase(Path.size()-1, 1);

	while ((dirent = readdir(dir)) != 0)
	{
		snprintf(filename, sizeof(filename), "%s/%s", Path.c_str(), dirent->d_name);
		
		if(stat(filename, &filestat) != 0)
			continue;
		
		//! Filter Files
		if((Filter & FILTER_PATH) && !(filestat.st_mode & S_IFDIR))
			continue;
		
		snprintf(filename, sizeof(filename), dirent->d_name);
		
		if(strcmp(filename,".") == 0)
			continue;
		
		//! Hide System Files
		if(filename[0] == '.' && strcmp(filename,"..") != 0)
			continue;
		else if(filename[0] == '$')
			continue;
		else if(strcasecmp(filename,"thumb.db") == 0)
			continue;
		
		char *fileext = strrchr(filename, '.');
		//! Other Filters
		if((Filter & FILTER_FONT) && !(filestat.st_mode & S_IFDIR) && (Settings.FileExtensions.CompareFont(fileext) != 0))
			continue;
		if((Filter & FILTER_LANG) && !(filestat.st_mode & S_IFDIR) && (Settings.FileExtensions.CompareLanguageFiles(fileext) != 0))
			continue;
		
		if(i >= (int)browserList.size())
			AddEntry();
		
		(browserList.at(i)->filename).assign(filename);
		(browserList.at(i)->displayname).assign(charToWideChar(filename));
		browserList.at(i)->ismii = (!(filestat.st_mode & S_IFDIR) && !(Settings.FileExtensions.CompareMiiFiles(fileext))) ? true : false;
		browserList.at(i)->issave = false;
		browserList.at(i)->isdatabin = false;
		browserList.at(i)->isNotInstalled = false;
		browserList.at(i)->isdir = (filestat.st_mode & S_IFDIR) ? true : false; //! flag this as a dir
		
		i++;
	}
	
	closedir(dir); //! close directory
	dir = NULL;
	
	std::sort(browserList.begin(), browserList.end(), FileSortCallback);
}