edivc/ediv/ideQT/ideqtwindow.cpp
2002-09-06 00:56:54 +00:00

237 lines
8.2 KiB
C++
Raw Blame History

#include "ideqtwindow.h"
#include <qapplication.h>
#include <qworkspace.h>
#include <qmenubar.h>
#include <qtoolbar.h>
#include <qtoolbutton.h>
#include <qpopupmenu.h>
#include <qaction.h>
#include <qplatinumstyle.h>
#include <qmessagebox.h>
#include <qiconset.h>
#include "gif/ediv_icon.h"
#include "gif/b_file.h"
#include "gif/b_open.h"
#include "gif/b_disk.h"
#include "gif/prop.h"
#include "gif/print.h"
#include "gif/dooropen.h"
#include "gif/b_person.h"
#include "gif/cdaudio.h"
#include "gif/calculat.h"
#include "gif/mail.h"
#include "gif/b_twist.h"
#include "gif/vcrplay.h"
#include "gif/gears.h"
#include "gif/vcrfsfor.h"
#include "gif/tools.h"
#include "gif/library.h"
#include "gif/sound.h"
#include "gif/comppc1.h"
#include "gif/helpindx.h"
#include "gif/help.h"
#include "gif/bookopen.h"
#include "gif/emini.h"
#include "main.h"
#include "nuevoimpl.h"
#include "about.h"
QPixmap* _pillagif(unsigned char* datos, int tamano)
{
QByteArray *bm=new QByteArray(tamano);
CHECK_PTR(bm);
bm->assign((char*)datos,tamano);
QPixmap* ret=new QPixmap(*bm);
CHECK_PTR(ret);
return ret;
}
ideQTWindow::ideQTWindow( QWidget* parent, const char* name, WFlags f )
: QMainWindow( parent, name, f )
{
setCaption("eDIV");
QPixmap *iconoe=pillagif(ediv_icon);
setIcon(*iconoe);
qApp->setStyle( new QPlatinumStyle );
mdi = new QWorkspace( this, "workspace" );
mdi->setBackgroundMode( PaletteDark );
QPopupMenu *mnuArchivo = new QPopupMenu( this );
CHECK_PTR(mnuArchivo);
mnuArchivo->insertTearOffHandle();
mnuArchivo->insertItem(icono(b_file_gif), "&Nuevo...", this, SLOT(fileNew()), CTRL+Key_N );
mnuArchivo->insertItem(icono(b_open_gif), "&Abrir...", this, 0, CTRL+Key_O);
mnuArchivo->insertItem("&Cerrar",this,0);
mnuArchivo->insertItem(icono(b_disk_gif), "&Guardar", this, 0, CTRL+Key_S );
mnuArchivo->insertItem("Guardar c&omo...",this,0);
mnuArchivo->insertSeparator();
mnuArchivo->insertItem(icono(prop_gif), "&Propiedades...",this,0);
mnuArchivo->insertItem("Con&figurar impresora...",this,0);
mnuArchivo->insertItem(icono(print_gif), "&Imprimir",this,0);
mnuArchivo->insertSeparator();
mnuArchivo->insertItem(icono(dooropen_gif), "&Salir",this,SLOT(ConfirmaSalir()),CTRL+Key_Q);
QPopupMenu *mnuHerramientas = new QPopupMenu(this);
CHECK_PTR(mnuHerramientas);
mnuHerramientas->insertTearOffHandle();
mnuHerramientas->insertItem("&Fusionador de paletas",this,0);
mnuHerramientas->insertItem("&Generador de explosiones",this,0);
mnuHerramientas->insertItem(icono(b_person_gif), "Generador de &sprites",this,0);
mnuHerramientas->insertItem("Generador de &texturas",this,0);
mnuHerramientas->insertItem(icono(cdaudio_gif), "&CDiv Player",this,0);
mnuHerramientas->insertItem(icono(calculat_gif), "C&alculadora",this,0);
mnuHerramientas->insertSeparator();
mnuHerramientas->insertItem("&Navegador web",this,0);
mnuHerramientas->insertItem(icono(mail_gif), "E-&Mail",this,0);
mnuHerramientas->insertItem(icono(b_twist_gif), "eDIV &EnchufingNET",this,0);
mnuHerramientas->insertSeparator();
mnuHerramientas->insertItem("<EFBFBD>Estoy enc&hufad@!",this,0);
mnuHerramientas->setCheckable(TRUE);
QPopupMenu *mnuCompilar = new QPopupMenu(this);
CHECK_PTR(mnuCompilar);
mnuCompilar->insertTearOffHandle();
mnuCompilar->insertItem(icono(vcrplay_gif),"&Ejecutar",this,0,Key_F10);
mnuCompilar->insertItem(icono(gears_gif),"&Compilar",this,0,Key_F11);
mnuCompilar->insertItem(icono(vcrfsfor_gif),"&Trazar programa",this,0,Key_F12);
mnuCompilar->insertItem("Crear &distribuci<63>n...",this,0);
QPopupMenu *mnuSistema = new QPopupMenu(this);
CHECK_PTR(mnuSistema);
mnuSistema->insertTearOffHandle();
mnuSistema->insertItem(icono(tools_gif),"&Preferencias...",this,0);
mnuSistema->insertItem(icono(library_gif),"&Gestor de librer<65>as",this,0);
mnuSistema->insertItem(icono(sound_gif),"&Ajustar volumen...",this,0);
mnuSistema->insertItem(icono(comppc1_gif),"&Informaci<63>n del sistema",this,0);
mnuVentana = new QPopupMenu(this);
CHECK_PTR(mnuVentana);
//mnuVentana->setCheckable( TRUE );
connect( mnuVentana, SIGNAL( aboutToShow() ),
this, SLOT( MuestraMenuVentana() ) );
QPopupMenu *mnuAyuda = new QPopupMenu(this);
CHECK_PTR(mnuAyuda);
mnuAyuda->insertTearOffHandle();
mnuAyuda->insertItem(icono(helpindx_gif),"&Contenido",this,0,CTRL+Key_H);
mnuAyuda->insertItem("&Buscar ayuda sobre...",this,0,CTRL+SHIFT+Key_H);
mnuAyuda->insertItem(icono(help_gif),"&Ayuda sensible",this,0,Key_F1);
mnuAyuda->insertItem(icono(bookopen_gif),"B&iblioteca eTK",this,0);
mnuAyuda->insertSeparator();
mnuAyuda->insertItem("&Sion Entertainment en la Red",this,0);
mnuAyuda->insertItem("&eDivCentral.com",this,0);
mnuAyuda->insertSeparator();
mnuAyuda->insertItem(icono(emini_gif),"Acerca &de...",this,SLOT(muestra_about()));
//QToolBar *menutb=new QToolBar(this);
//CHECK_PTR(menutb);
QMenuBar *menu=new QMenuBar(this);
CHECK_PTR(menu);
menu->insertItem("&Archivo", mnuArchivo);
menu->insertItem("&Herramientas", mnuHerramientas);
menu->insertItem("&Compilar",mnuCompilar);
menu->insertItem("&Sistema",mnuSistema);
menu->insertItem("&Ventana",mnuVentana);
menu->insertItem("A&yuda",mnuAyuda);
QToolBar *maintb=new QToolBar("principal",this,QMainWindow::Top,TRUE);
CHECK_PTR(maintb);
QToolButton *tbNuevo=new QToolButton (*pillagif(b_file_gif), "Nuevo", QString::null, this, SLOT(fileNew()), maintb);
QToolButton *tbAbrir=new QToolButton (*pillagif(b_open_gif), "Abrir", QString::null, this, 0, maintb);
QToolButton *tbGuardar=new QToolButton (*pillagif(b_disk_gif), "Guardar", QString::null, this, 0, maintb);
maintb->addSeparator();
QToolButton *tbProp=new QToolButton (*pillagif(prop_gif), "Propiedades", QString::null, this, 0, maintb);
QToolButton *tbImprimir=new QToolButton (*pillagif(print_gif), "Imprimir", QString::null, this, 0, maintb);
QToolBar *compilartb=new QToolBar(this);
CHECK_PTR(compilartb);
QToolButton *tbEjecutar=new QToolButton (*pillagif(vcrplay_gif), "Ejecutar", QString::null, this, 0, compilartb);
QToolButton *tbTrazar=new QToolButton (*pillagif(vcrfsfor_gif), "Trazar programa", QString::null, this, 0, compilartb);
QToolButton *tbCompilar=new QToolButton (*pillagif(gears_gif), "Compilar", QString::null, this, 0, compilartb);
QToolBar *ayudatb=new QToolBar(this);
CHECK_PTR(ayudatb);
QToolButton *tbContenido=new QToolButton (*pillagif(helpindx_gif), "Temas de ayuda", QString::null, this, 0, ayudatb);
QToolButton *tbAyuda=new QToolButton (*pillagif(help_gif), "Ayuda sensible", QString::null, this, 0, ayudatb);
setCentralWidget( mdi );
}
void ideQTWindow::fileNew()
{
// Use your own documentclass
/*QMessageBox("a","a",QMessageBox::NoIcon,QMessageBox::Ok,QMessageBox::NoButton,QMessageBox::NoButton);
QWidget *doc = new QWidget( mdi, "$MSDEVPROJECTNAME document" );
doc->setCaption( tr("Document%1").arg( mdi->windowList().count()+1 ) );
doc->show();*/
//QWidget *dialognew = new Nuevo(0,0,TRUE);
//dialognew->show();
QWidget *dialognew = new Nuevo(0,0,TRUE,0,this);
dialognew->show();
}
void ideQTWindow::ConfirmaSalir()
{
QMessageBox mb( "Salir de eDIV",
"<EFBFBD>Seguro que deseas salir?",
QMessageBox::NoIcon,
QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No | QMessageBox::Escape,
QMessageBox::NoButton);
mb.setButtonText(QMessageBox::Yes,"S<EFBFBD>");
if ( mb.exec() == QMessageBox::Yes ) qApp->quit();
}
void ideQTWindow::MuestraMenuVentana()
{
mnuVentana->clear();
int cascadeId = mnuVentana->insertItem("&Cascada", mdi, SLOT(cascade() ) );
int tileId = mnuVentana->insertItem("&Mosaico", mdi, SLOT(tile() ) );
if ( mdi->windowList().isEmpty() ) {
mnuVentana->setItemEnabled( cascadeId, FALSE );
mnuVentana->setItemEnabled( tileId, FALSE );
}
mnuVentana->insertSeparator();
QWidgetList windows = mdi->windowList();
for ( int i = 0; i < int(windows.count()); ++i ) {
int id = mnuVentana->insertItem(windows.at(i)->caption(),
this, SLOT( MenuVentanaActivado( int ) ) );
mnuVentana->setItemParameter( id, i );
mnuVentana->setItemChecked( id, mdi->activeWindow() == windows.at(i) );
}
}
void ideQTWindow::MenuVentanaActivado( int id )
{
QWidget* w = mdi->windowList().at( id );
if ( w ) {
w->showNormal();
w->setFocus();
}
}
void ideQTWindow::muestra_about()
{
QWidget *dialogabout = new About(0,0,WType_Modal,this);
dialogabout->show();
}