示例#1
0
long DccDialog::onTableChanged(FXObject*, FXSelector, void *ptr)
{
    FXTablePos *tp = (FXTablePos*)ptr;
    m_contents->recalc();
    m_path->setText(dxirc::instance()->getDccFilesList()[tp->row].path);
    m_ip->setText(dxirc::instance()->getDccFilesList()[tp->row].ip);
    m_port->setText(FXStringVal(dxirc::instance()->getDccFilesList()[tp->row].port));
    m_nick->setText(dxirc::instance()->getDccFilesList()[tp->row].nick);
    return 1;
}
示例#2
0
/** Get a filesize in string
  *
  * \param filesize The filesize in bytes
  *
  * \return The string
  *
  */
FXString RainbruRPG::Gui::FtpClientWindow::filesizeToString(int filesize){

  FXString s;
  float fs;
  int mo=1024*1024;

  if (filesize>mo){
    fs=filesize/mo;
    s+=FXStringVal(fs, 2, FALSE);
    s+=" Mb";
  }
  else if (filesize>1024){
    fs=filesize/1024;
    s+=FXStringVal(fs, 2, FALSE);
    s+=" kb";
  }
  else{
    s+=FXStringVal(filesize, 10);
    s+=" b";
  }

  return s;
}
示例#3
0
文件: claseTS.cpp 项目: asolisi/PL
FXbool FXTabSim::intro(stEntrada reg) {
	FXint nFilas, nCols, i, j, npars;
	FXString id;
	FXint colFin, num;
	FXString strAux;
	FXint nuevoBlq;
	FXint indx, fin, posMarca;


	nFilas = getNumRows();

	if ( (tope+1) == nFilas )
		insertRows(nFilas);

	if ( reg.tipoTs == MARCA ) {
		numRegs++;
		tope++;

		posMarca = tope;

		setItemText(tope, COL_LEXEMA, "FIN_PARAMS");
		setItemText(tope, COL_TIPOTS, nomTiposTS[reg.tipoTs]);
		setItemText(tope, COL_NPAR, "<ACTIVOS>");

		// El bloque empieza en la posicion siguiente a la marca
		bloques->append(posMarca+1);

		// Copia de los parametros como variables locales
		indx = tope;
		fin = 0;

		do {

			nFilas = getNumRows();
			if ( (tope+1) == nFilas )
				insertRows(nFilas, 5);

			indx--;
			strAux = getItemText(indx, COL_TIPOTS);
			if ( strcmp(strAux.text(), "PAR_FORMAL") == 0 ) {
				tope++;
				strAux = getItemText(indx, COL_LEXEMA);
				setItemText(tope, COL_LEXEMA, strAux.text());
				setItemText(tope, COL_TIPOTS, "COPIA_PARAM");
				strAux = getItemText(indx, COL_TDATO);
				setItemText(tope, COL_TDATO, strAux.text());
			} else {
				fin = 1;
				}

		} while ( !fin );

				
		itemSelMin = posMarca;
		itemSelMax = tope+1;

		setSelTextColor(colores[NEW_FG]);
		setSelBackColor(colores[NEW_BG]);

		// selectRange(posMarca, tope, COL_LEXEMA, COL_NPAR);
		selectRange(posMarca, tope, COL_LEXEMA, COL_ETQ_ELSE);

		return true;
		}

	if ( reg.tipoTs == DESC_CTRL ) {

		tope++;
		numRegs++;

		setItemText(tope, COL_LEXEMA, reg.lexema);
		setItemText(tope, COL_TIPOTS, nomTiposTS[reg.tipoTs]);
		setItemText(tope, COL_NOM_CTRL, reg.nomVarCtrl);
		setItemText(tope, COL_ETQ_ENT, reg.etqtEnt);
		setItemText(tope, COL_ETQ_SAL, reg.etqtSal);
		setItemText(tope, COL_ETQ_ELSE, reg.etqtElse);

		itemSelMin = tope;
		itemSelMax = tope+1;

		setSelTextColor(colores[NEW_FG]);
		setSelBackColor(colores[NEW_BG]);
		selectRange(tope, tope, COL_LEXEMA, COL_ETQ_ELSE);

		return true;
		}

	// Si es un parametro formal buscamos si el simbolo
	// esta duplicado hasta el proc/funcion

	if ( reg.tipoTs == PAR_FORMAL ) {
		indx = tope;
		strAux = getItemText(indx, COL_TIPOTS);

		while ( compare(strAux.text(), "PAR_FORMAL") == 0 )
			{
			strAux = getItemText(indx, COL_LEXEMA);
			if ( compare(strAux.text(), reg.lexema) == 0 ) {
				// Simbolo duplicado => Lo marcamos
				setSelTextColor(colores[DUP_FG]);
				setSelBackColor(colores[DUP_BG]);

				//selectRange(indx, indx, COL_LEXEMA, COL_TDATO);
				selectRange(indx, indx, COL_LEXEMA, COL_ETQ_ELSE);
				return false;
				}

			strAux = getItemText(--indx, COL_TIPOTS);
			}

		// Solo queda comparar con el proc/funcion
		if ( compare(strAux.text(), "PROC") == 0 ) {
			strAux = getItemText(indx, COL_LEXEMA);
			if ( compare(strAux.text(), reg.lexema) == 0 ) {
				// Simbolo duplicado
				setSelTextColor(colores[DUP_FG]);
				setSelBackColor(colores[DUP_BG]);

				//selectRange(indx, indx, COL_LEXEMA, COL_TDATO);
				selectRange(indx, indx, COL_LEXEMA, COL_ETQ_ELSE);
				return false;
				}
			}

		// Ya podemos insertarlo
		tope++;
		setItemText(tope, COL_LEXEMA, reg.lexema);
		setItemText(tope, COL_TIPOTS, nomTiposTS[reg.tipoTs]);
		setItemText(tope, COL_TDATO, nomTiposDato[reg.tipoDato]);

		// Actualizamos num de parametros del proc
		setItemText(iniProc, COL_NPAR, FXStringVal(++numPar));

		// Seleccionamos nuevo simbolo
		setSelTextColor(colores[NEW_FG]);
		setSelBackColor(colores[NEW_BG]);

		// Otra forma: seleccionar SIEMPRE la fila entera
		//selectRange(tope, tope, COL_LEXEMA, COL_TDATO);
		selectRange(tope, tope, COL_LEXEMA, COL_ETQ_ELSE);

		return true;
		}
				

	// Verificamos que el simbolo NO ha sido declarado previamente
	// => Hasta encontrar MARCA !!!!

	if ( bloques->no() > 0 )
		j = (*bloques)[bloques->no()-1];
	else
		j = 0;


	while ( (j <= tope) && (tope != -1) ) {

		strAux = getItemText(j, COL_TIPOTS);

		/************   Ya no hace falta
		if ( strcmp(strAux.text(), "MARCA") == 0 )
			j++;
		********************************/


		if ( strcmp(reg.lexema, getItemText(j, COL_LEXEMA).text()) == 0 ) {
			// Simbolo ya declarado... Lo Marcamos
			printf("Simbolo repetido: %s y %s\n"
				, getItemText(j, COL_LEXEMA).text(), reg.lexema);

			itemSelMin = j;
			itemSelMax = j+1;

			setSelTextColor(colores[DUP_FG]);
			setSelBackColor(colores[DUP_BG]);

			// selectRange(j, j, COL_LEXEMA, COL_TDATO);
			selectRange(j, j, COL_LEXEMA, COL_ETQ_ELSE);
			return false;
		
		} else {
			j++;
			}

		}

	// Si no lo hemos encontrado podemos insertarlo
	
	numRegs++;
	tope++;

	FXTable::setItemText(tope, COL_LEXEMA, reg.lexema);
	FXTable::setItemText(tope, COL_TIPOTS, nomTiposTS[reg.tipoTs]);
	// FXTable::setItemText(tope, COL_TDATO, nomTiposDato[reg.tipoDato]);

	if ( reg.tipoTs == PROC ) {
		FXTable::setItemText(tope, COL_NPAR, "0");
		iniProc = tope;
		numPar = 0;
		colFin = COL_NPAR;

		/*******************************
		blqAnt = (bloque == -1)?0:bloque;
		bloque = tope;
		nuevoBlq = tope;
		bloques->append(nuevoBlq);
		printf(">> Ini BLOQUE: %d\n", (*bloques)[bloques->no()-1]);
		************************************************************/

	} else if ( reg.tipoTs == PAR_FORMAL ) {
		FXTable::setItemText(tope, COL_TDATO, nomTiposDato[reg.tipoDato]);
		FXTable::setItemText(iniProc, COL_NPAR, FXStringVal(++numPar));
		colFin = COL_TDATO;
	} else {
		FXTable::setItemText(tope, COL_TDATO, nomTiposDato[reg.tipoDato]);
		colFin = COL_TDATO;
		}


	// Seleccionamos nuevo simbolo

	setSelTextColor(colores[NEW_FG]);
	setSelBackColor(colores[NEW_BG]);

	// Otra forma: seleccionar SIEMPRE la fila entera
	// selectRange(tope, tope, COL_LEXEMA, colFin);
	selectRange(tope, tope, COL_LEXEMA, COL_ETQ_ELSE);

	itemSelMin = tope;
	itemSelMax = tope+1;

	return true;
	}
long FXTransferManager::onProgress(FXObject*,FXSelector,void*) {
    bool addtimeout=false;
    FXint timeout=0;
    FXint response;
    FXTransferStatus progress;
    transfer->status(progress);

    if (getApp()->hasTimeout(this,FXWindow::ID_SHOW)) {
        timeout = getApp()->remainingTimeout(this,FXWindow::ID_SHOW);
        getApp()->removeTimeout(this,FXWindow::ID_SHOW);
        addtimeout=true;
    }

    switch(progress.code) {
    case STATUS_DONE:
        transfer->join();
        getApp()->stopModal(this,FALSE);
        hide();
        fxmessage("Joining...\n");
        close(FALSE);
        break;
    case STATUS_FATAL:
        transfer->join();
        FXMessageBox::error(this,MBOX_OK,"Fatal Error","%s",progress.error.text());
        //getApp()->stopModal(this,FALSE);
        hide();
        close(FALSE);
        break;
    case STATUS_OVERWRITE:
        response = FXMessageBox::question(this,MBOX_YES_NO_CANCEL,"Overwrite File?","File already exists. Overwrite?\nCopying file: %s\nto:%s",progress.srcfile.text(),progress.dstfile.text());
        if (response==MBOX_CLICKED_CANCEL) {
            transfer->respondOverwrite(FALSE,MAYBE,TRUE);
            transfer->join();
            //getApp()->stopModal(this,FALSE);
            hide();
            close(FALSE);
        }
        else if (response==MBOX_CLICKED_YES) {
            transfer->respondOverwrite(TRUE,MAYBE,FALSE);
            if (addtimeout)
                getApp()->addTimeout(this,FXWindow::ID_SHOW,timeout);
        }
        else {
            transfer->respondOverwrite(FALSE,MAYBE,FALSE);
            if (addtimeout)
                getApp()->addTimeout(this,FXWindow::ID_SHOW,timeout);
        }
        break;
    case STATUS_DELETE:
        response = FXMessageBox::question(this,MBOX_YES_NO,"Error Deleting File","Unable to remove file:\n%s\nContinue deleting remaining files?",progress.srcfile.text());
        if (response==MBOX_CLICKED_NO) {
            transfer->respondDelete(FALSE);
            transfer->join();
            //getApp()->stopModal(this,FALSE);
            hide();
            close(FALSE);
        }
        else {
            transfer->respondDelete(TRUE);
            if (addtimeout)
                getApp()->addTimeout(this,FXWindow::ID_SHOW,timeout);
        }
        break;
    default:
        text_count->setText(FXStringVal(progress.num));
        text_file->setText(progress.srcfile);
        if (progress_bar) {
            progress_bar->setTotal(progress.total);
            progress_bar->setProgress(progress.current);
        }
        if (addtimeout)
            getApp()->addTimeout(this,FXWindow::ID_SHOW,timeout);
        break;
    }
    return 1;
}
示例#5
0
void DccDialog::updateTable()
{
    FXbool canceled = FALSE;
    FXbool finished = FALSE;
    if(!dxirc::instance()->getDccFilesList().no())
    {
        m_buttonClear->disable();
        m_buttonCanceled->disable();
        m_table->removeRows(0, m_table->getNumRows());
        m_group->hide();
        m_contents->recalc();
        return;
    }
    if(!shown())
        return;
    if(m_table->getNumRows() < dxirc::instance()->getDccFilesList().no())
        m_table->insertRows(0, dxirc::instance()->getDccFilesList().no()-m_table->getNumRows());
    if(m_table->getNumRows() > dxirc::instance()->getDccFilesList().no())
        m_table->removeRows(0, m_table->getNumRows()-dxirc::instance()->getDccFilesList().no());
    for(FXint i=0; i<dxirc::instance()->getDccFilesList().no(); i++)
    {
        if(dxirc::instance()->getDccFilesList()[i].type == DCC_IN  || dxirc::instance()->getDccFilesList()[i].type == DCC_PIN)
        {
            if(dxirc::instance()->getDccFilesList()[i].currentPosition >= dxirc::instance()->getDccFilesList()[i].size)
            {
                if(dxirc::instance()->getDccFilesList()[i].canceled)
                {
                    m_table->setItemIcon(i, 0, ICO_CANCEL);
                    canceled = TRUE;
                }
                else
                {
                    m_table->setItemIcon(i, 0, ICO_FINISH);
                    finished = TRUE;
                }
                m_table->setItemIconPosition(i, 0, FXTableItem::BEFORE);
                m_table->setItemJustify(i, 0, FXTableItem::LEFT);
            }
            else
            {
                if(dxirc::instance()->getDccFilesList()[i].canceled)
                {
                    m_table->setItemIcon(i, 0, ICO_CANCEL);
                    canceled = TRUE;
                }
                else m_table->setItemIcon(i, 0, ICO_DOWN);
                m_table->setItemIconPosition(i, 0, FXTableItem::BEFORE);
                m_table->setItemJustify(i, 0, FXTableItem::LEFT);
            }
        }
        else
        {
            if(dxirc::instance()->getDccFilesList()[i].finishedPosition >= dxirc::instance()->getDccFilesList()[i].size)
            {
                if(dxirc::instance()->getDccFilesList()[i].canceled)
                {
                    m_table->setItemIcon(i, 0, ICO_CANCEL);
                    canceled = TRUE;
                }
                else
                {
                    m_table->setItemIcon(i, 0, ICO_FINISH);
                    finished = TRUE;
                }
                m_table->setItemIconPosition(i, 0, FXTableItem::BEFORE);
                m_table->setItemJustify(i, 0, FXTableItem::LEFT);
            }
            else
            {
                if(dxirc::instance()->getDccFilesList()[i].canceled)
                {
                    m_table->setItemIcon(i, 0, ICO_CANCEL);
                    canceled = TRUE;
                }
                else m_table->setItemIcon(i, 0, ICO_UP);
                m_table->setItemIconPosition(i, 0, FXTableItem::BEFORE);
                m_table->setItemJustify(i, 0, FXTableItem::LEFT);
            }
        }
        m_table->setItemText(i, 0, dxirc::instance()->getDccFilesList()[i].path.rafter(PATHSEP));
        m_table->setItemText(i, 1, utils::instance().getFileSize(dxirc::instance()->getDccFilesList()[i].size));
        if(dxirc::instance()->getDccFilesList()[i].currentPosition < dxirc::instance()->getDccFilesList()[i].size)
        {
            m_table->setItemText(i, 2, utils::instance().getFileSize(dxirc::instance()->getDccFilesList()[i].currentPosition));
            m_table->setItemText(i, 3, utils::instance().getPercentPosition(dxirc::instance()->getDccFilesList()[i].size, dxirc::instance()->getDccFilesList()[i].currentPosition));
        }
        else
        {
            m_table->setItemText(i, 2, utils::instance().getFileSize(dxirc::instance()->getDccFilesList()[i].size));
            m_table->setItemText(i, 3, "100%");
        }
        if(dxirc::instance()->getDccFilesList()[i].currentPosition >= dxirc::instance()->getDccFilesList()[i].size || dxirc::instance()->getDccFilesList()[i].canceled)
        {
            m_table->setItemText(i, 4, "--:--");
            m_table->setItemText(i, 5, "--:--");
        }
        else
        {
            if(!dxirc::instance()->getDccFilesList()[i].currentPosition)
            {
                m_table->setItemText(i, 4, "--:--");
                m_table->setItemText(i, 5, "--:--");
            }
            else
            {
                m_table->setItemText(i, 4, utils::instance().getSpeed(dxirc::instance()->getDccFilesList()[i].speed));
                m_table->setItemText(i, 5, utils::instance().getRemaining(dxirc::instance()->getDccFilesList()[i].size-dxirc::instance()->getDccFilesList()[i].currentPosition, dxirc::instance()->getDccFilesList()[i].speed));
            }
        }
    }
    if(finished) m_buttonClear->enable();
    else m_buttonClear->disable();
    if(canceled) m_buttonCanceled->enable();
    else m_buttonCanceled->disable();
    m_path->setText(dxirc::instance()->getDccFilesList()[m_table->getCurrentRow()].path);
    m_ip->setText(dxirc::instance()->getDccFilesList()[m_table->getCurrentRow()].ip);
    m_port->setText(FXStringVal(dxirc::instance()->getDccFilesList()[m_table->getCurrentRow()].port));
    m_nick->setText(dxirc::instance()->getDccFilesList()[m_table->getCurrentRow()].nick);
    m_group->show();
    m_contents->recalc();
}