return to first page linux journal archive
keywordscontents

Listing 1. khellotw.cpp


#include <qkeycode.h>
#include <kmsgbox.h>
#include <kstdaccel.h>
#include "khellotw.moc"
KHelloTW::KHelloTW (void)
{
  /**
    We'll get the standard KDE accelerator key<\n> 
    combinations from this.
    */
  KStdAccel *kkeys=new KStdAccel(<\n> 
kapp->getConfig());
  /**
    Create the pulldown menus for the menubar.
    */
  file = new QPopupMenu ();
  file->insertItem ("&Quit", this, SLOT<\n> 
	(slotQuit()), kkeys->quit());
  help=kapp->getHelpMenu(TRUE);
  help->insertSeparator();
  help->insertItem ("&About KHello...", this,<\n> 
	SLOT (slotAbout()));
  /**
    Set up the menubar.
    */
  menubar = new KMenuBar (this);
  menubar->insertItem ("File",file);
  menubar->insertSeparator (); //This<\n> 
        //pushes the Help menu to the far<\n> 
        //right when KDE is in Motif widget mode
  menubar->insertItem ("Help",help);
  /**
    Set up the toolbar.
    */
  toolbar = new KToolBar(this);
  QString buttonpicture;
  buttonpicture = 
kapp->kdedir()+"/share/toolbar/exclamation.xpm";
  toolbar->insertButton (QPixmap<\n> 
		(buttonpicture.data()),0,
			 SIGNAL (released()),
			 this, SLOT (slotHello()),TRUE,
			 "Press this to say hello");
  /**
    This label will fill the rest of our window<\n> 
    (the part not
    occupied by the menubar or toolbar).
    */
  label=new QLabel (this);
  label->setFont (QFont ("Helvetica",24));
  label->setAlignment (AlignCenter);
  /**
    Tell KTopWidget about our menubar, toolbar,<\n> 
	and label.
    */
  setMenu (menubar);
  addToolBar (toolbar);
  setView (label);
  /** 
    Drag and Drop.  URL's can be dragged from KFM<\n> 
    and dropped onto our QLabel. The URL will be 
    displayed.
    */
  dropzone = new KDNDDropZone (label, DndURL);
  	connect (dropzone, SIGNAL<\n> 
	(dropAction(KDNDDropZone *)),
   this, SLOT (slotDropped (KDNDDropZone *)));
}
void KHelloTW::slotQuit()
{
  close();
}
void KHelloTW::slotAbout()
{
  KMsgBox::message (this, "About KHello", 
"KHello\nCopyright (C) 1997\nBy David Sweet\n\
dsweet@physics.umd.edu");
}
void KHelloTW::slotHello()
{
  label->setText ("Hello world!\n");
}
void KHelloTW::slotDropped(KDNDDropZone *dz)
{
  QString url;
  url = dz->getURLList().first();
  label->setText (url.data());
}
void KHelloTW::closeEvent (QCloseEvent *)
{
  kapp->quit();
}