237 lines
8.2 KiB
C++
237 lines
8.2 KiB
C++
#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();
|
||
}
|