Ejemplo n.º 1
0
Tray::Tray(QObject *parent) :
    QObject(parent)
{
    //创建图标
    QIcon icon = QIcon("TrayIcon.png");
    trayIcon = new QSystemTrayIcon(this);
    trayIcon->setIcon(icon);
    trayIcon->setToolTip(tr("气象数据下载器"));
    trayIcon->show();
    //气泡提示
    QString titlec=tr("气象数据下载器");
    QString textc=tr("程序已转到后台服务");
    trayIcon->showMessage(titlec,textc,QSystemTrayIcon::Information,5000);
    //添加单/双击鼠标相应
    connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
            this,SLOT(trayiconActivated(QSystemTrayIcon::ActivationReason)));
    //创建动作
    minimizeAction = new QAction(tr("最小化"), this);
    connect(minimizeAction, SIGNAL(triggered()), SIGNAL(signal_hide()));
    restoreAction = new QAction(tr("还原"), this);
    connect(restoreAction, SIGNAL(triggered()),SIGNAL(signal_showNormal()));
    quitAction = new QAction(tr("退出"), this);
    connect(quitAction, SIGNAL(triggered()),SIGNAL(signal_quit()));

    //创建右键弹出菜单
    trayIconMenu = new QMenu;
    trayIconMenu->addAction(minimizeAction);
    trayIconMenu->addAction(restoreAction);
    trayIconMenu->addSeparator();//分隔
    trayIconMenu->addAction(quitAction);
    trayIcon->setContextMenu(trayIconMenu);
}
void sdl_application::execute(window& win)
{
	signal_init();

	SDL_GL_SetSwapInterval(1);

#ifdef EMSCRIPTEN

	emscripten_set_main_loop_arg(update_c_function, this, -1, 1);

#else

	SDL_GL_SetSwapInterval(0);

	while (running)
	{
		glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
		update_c_function(this);
		SDL_GL_SwapWindow(win.m_window);
	}

#endif

	signal_quit();
}
Ejemplo n.º 3
0
int		gere_key(int keycode, t_all *str_all)
{
  t_fen		*last;

  last = str_all->fen;
  if (keycode == XK_Escape)
    {
      if (!last)
	signal_quit(str_all, NULL);
      while (last->next)
	last = last->next;
      if (last->prev)
	last->prev->next = NULL;
      else
	str_all->fen = NULL;
      del_fen(last, str_all);
      gere_expose(str_all);
    }
  else if (str_all->fen && str_all->fen->type == FENTYPE_SAVE)
    key_fensave(str_all, keycode);
  else if (keycode == XK_s)
    str_all->fen = new_fen_save(str_all, get_winsave_param(str_all));
  return (0);
}
Ejemplo n.º 4
0
/** Handle interrupt signal */
static void signal_interrupt() {
    debug("%s", __FUNCTION__);
    signal_quit();
}