edivc/ediv/trazador/trazadorwindow.cpp
2002-09-09 16:12:29 +00:00

150 lines
5.1 KiB
C++
Raw Blame History

#include <stdio.h>
#include <stdlib.h>
#include <qlayout.h>
#include <qlabel.h>
#include <qlistview.h>
#include <qpixmap.h>
#include <qpushbutton.h>
#include <qmultilineedit.h>
#include <qmessagebox.h>
#include <qfont.h>
#include "trazadorwindow.h"
TrazadorWindow::TrazadorWindow( QWidget* parent, const char* name, WFlags f )
: QMainWindow( parent, name, f )
{
buffer_listado=0;
setCaption("eDIV - Trazador de programas");
QBoxLayout *vlayout1 = new QVBoxLayout(this,2);
QGridLayout *glayout1 = new QGridLayout(vlayout1,0,0,10);
//vlayout1->addLayout(glayout1);
QLabel *labNumProcesos = new QLabel(this);
glayout1->addWidget(labNumProcesos,0,0);
labNumProcesos->setText("0/0 Procesos");
QLabel *labIdProceso = new QLabel(this);
glayout1->addWidget(labIdProceso,0,1);
labIdProceso->setText("Id Proceso: 0 Normal");
QListView *listProcesos = new QListView(this);
listProcesos->addColumn("Proceso");
listProcesos->addColumn("Id");
listProcesos->addColumn("Estado");
listProcesos->addColumn("Frame");
glayout1->addWidget(listProcesos,1,0);
QBoxLayout *vlayout2 = new QVBoxLayout(this,3);
glayout1->addLayout(vlayout2,1,1);
QLabel *labNombreProceso = new QLabel(this);
vlayout2->addWidget(labNombreProceso,0);
labNombreProceso->setText("NombreProceso");
labNombreProceso->setFrameShape(QFrame::Panel);
labNombreProceso->setFrameShadow(QFrame::Sunken);
QBoxLayout *hlayout1 = new QHBoxLayout(this,3);
vlayout2->addLayout(hlayout1,1);
QLabel *labSprite = new QLabel(this);
hlayout1->addWidget(labSprite,0);
labSprite->setBackgroundColor(Qt::black);
labSprite->setMinimumSize(128,128);
labSprite->setMaximumSize(128,128);
QLayoutItem *spacer1 = new QSpacerItem(50,128,QSizePolicy::Fixed,QSizePolicy::Fixed);
hlayout1->addItem(spacer1);
QBoxLayout *vlayout3 = new QVBoxLayout(this,2);
hlayout1->addLayout(vlayout3,2);
QPushButton *btnVerDatos = new QPushButton("Ver datos",this);
vlayout3->addWidget(btnVerDatos,0);
btnVerDatos->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
QLabel *labInfoProceso = new QLabel(this);
vlayout3->addWidget(labInfoProceso,1);
labInfoProceso->setText("x=0\ny=0\npantalla\nnormal");
labInfoProceso->setAlignment(Qt::AlignCenter);
QBoxLayout *hlayout2 = new QHBoxLayout(this,3);
vlayout2->addLayout(hlayout2,2);
//QLayoutItem *spacer2 = new QSpacerItem(2,2,QSizePolicy::Maximum,QSizePolicy::Preferred);
//hlayout2->addItem(spacer2);
QPushButton *btnPerfiles = new QPushButton("Perfiles",this);
hlayout2->addWidget(btnPerfiles,0);
btnPerfiles->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
QPushButton *btnEjecProceso = new QPushButton("Ejecutar Proceso",this);
hlayout2->addWidget(btnEjecProceso,1);
btnEjecProceso->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
QPushButton *btnSigFrame = new QPushButton("Siguiente Frame",this);
hlayout2->addWidget(btnSigFrame,2);
btnSigFrame->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
QBoxLayout *hlayout3 = new QHBoxLayout(this,2);
vlayout1->addLayout(hlayout3,1);
QBoxLayout *vlayout4 = new QVBoxLayout(this,8);
hlayout3->addLayout(vlayout4,0);
QLabel *labIdProceso2 = new QLabel(this);
vlayout4->addWidget(labIdProceso2,0);
labIdProceso2->setText("0");
labIdProceso2->setFrameShape(QFrame::Panel);
labIdProceso2->setFrameShadow(QFrame::Sunken);
QLayoutItem *spacer3 = new QSpacerItem(2,10,QSizePolicy::Fixed,QSizePolicy::Fixed);
vlayout4->addItem(spacer3);
QPushButton *btnIrA = new QPushButton("Ir a...",this);
vlayout4->addWidget(btnIrA);
QPushButton *btnRuptura = new QPushButton("Ruptura",this);
vlayout4->addWidget(btnRuptura);
QPushButton *btnAqui = new QPushButton("<EFBFBD>Aqu<EFBFBD>!",this);
vlayout4->addWidget(btnAqui);
QPushButton *btnTrazar = new QPushButton("Trazar",this);
vlayout4->addWidget(btnTrazar);
QPushButton *btnPaso = new QPushButton("Paso",this);
vlayout4->addWidget(btnPaso);
QLayoutItem *spacer4 = new QSpacerItem(2,10,QSizePolicy::Fixed,QSizePolicy::Expanding);
vlayout4->addItem(spacer4);
listado = new QTextView(this);
hlayout3->addWidget(listado,1);
listado->setFont(QFont("courier",10));
//listado->setReadOnly(TRUE);
}
TrazadorWindow::~TrazadorWindow()
{
if(buffer_listado) free(buffer_listado);
}
int TrazadorWindow::CargaListado(char* archivo)
{
FILE* f;
int tam;
if((f=fopen(archivo,"r"))==NULL) {
QString mensaje="No se encuentra ";
mensaje += archivo;
QMessageBox *mb = new QMessageBox("Error",mensaje,QMessageBox::Critical,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
mb->exec();
return 0;
}
fseek(f,0,SEEK_END);
tam=ftell(f);
fseek(f,0,SEEK_SET);
if((buffer_listado=(char*)malloc(tam))==NULL) {
fclose(f);
QMessageBox *mb = new QMessageBox("Error","Memoria insuficiente",QMessageBox::Critical,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
mb->exec();
return 0;
}
fread(buffer_listado,1,tam,f);
fclose(f);
listado->setText(buffer_listado);
return tam;
}