예제 #1
0
void TimeGuard::closeEvent(QCloseEvent *event)
{
  // TODO save that info to file
  static bool messageShown = false;
  if(closeFromTrayMenu)
  {
    closeFromTrayMenu = false;
    if(!loggedAsAdmin)
      adminLoginDialog->exec();
    if(loggedAsAdmin)
      emit programQuit();
    else
      event->ignore();
  }
  else if(!messageShown)
  {
    trayIcon->showMessage(tr("Program is still working"),
                          tr("Program has been minimized to tray. "
                             "Click icon to maximize it"));
    messageShown = true;
  }
}
예제 #2
0
/////////////////////////////////////////////////////////////////////////////
//#include <pmessage.hpp>
SIGNED MyMainFrame::Message(const PegMessage &msg)
{
    bool ok;
	switch(msg.wType)
    {
        //case PM_ADD:   
        //	addWindow( (PegWindow*)msg.pSource );
        //	break;

		case PM_DRAW:
			Invalidate();
			Draw();
			break;

        case HM_SYS_KEYBOARD:
            toggleKeypad();
            break;

		//case HM_SYS_RESUME:
		//	break;

		case HM_SYS_ZOOM:
			if(m_allowResizeKey) setFullScreenApp(!m_fullScreen);
			break;

        case HM_SYS_CLEAR:
			if(m_activeWin && m_activeWin->onClearKeyPressed()) 
				removeWindow(m_activeWin);
            break;

		case PM_FIRST_START:
			if(m_activeWin) Presentation()->MoveFocusTree(m_activeWin);
			break;

 		case SIGNAL(DEF_MENU_QUIT, PSF_CLICKED):
			programQuit();
			break;

		case MYMF_SEND_SIGNAL:
			((MyWindow*)msg.pSource)->onSignal(msg.iData);
			break;
		
       default:
			ok = false;
			if(m_activeWin)	m_otherWin.Insert(m_activeWin);
			ent ptr2;
			CPListIterator it2(&m_otherWin);	
			for(ptr2 = it2.Head(); ptr2!=NULL; ptr2 = it2.Next())
			{
				ent ptr;
				CPListIterator it( ((MyWindow*)ptr2)->handledSignalsList() );
				for(ptr = it.Head(); ptr!=NULL; ptr = it.Next())
				{
					if( msg.wType == *((WORD*)ptr) )
					{
						prepareSignal((MyWindow*)ptr2, msg.wType);
						ok=true;
						break;
					}
				}
			}
		
			m_otherWin.Remove(m_activeWin);

			if(!ok) return PegWindow::Message(msg);
    }
    return 0;
}