void DefaultNotificationLayer::loadSettings() { QSettings settings(QSettings::defaultFormat(), QSettings::UserScope, "qutim/qutim."+m_profile_name, "profilesettings"); QString sounds_theme = settings.value("gui/sounds", "").toString(); settings.beginGroup("notifications"); m_show_popup = settings.value("popup", true).toBool(); m_popup_width = settings.value("pwidth", 280).toInt(); m_popup_height = settings.value("pheight", 110).toInt(); m_popup_sec = settings.value("ptime", 6).toInt(); m_popup_position = settings.value("pposition", 3).toInt(); m_popup_style = settings.value("pstyle", 1).toInt(); m_show_balloon = settings.value("balloon", false).toBool(); m_balloon_sec = settings.value("bsecs", 5).toInt(); m_show_signon = settings.value("signon", true).toBool(); m_show_signoff = settings.value("signoff", true).toBool(); m_show_typing = settings.value("typing", true).toBool(); m_show_change_status = settings.value("statuschange", true).toBool(); m_show_message = settings.value("message", true).toBool(); settings.endGroup(); settings.beginGroup("sounds"); m_enable_sound = settings.value("enable",true).toBool(); QFile snd_file(sounds_theme); QDomDocument snd_doc("qutimsounds"); if ( !snd_file.open(QFile::ReadOnly | QFile::Text) || !snd_doc.setContent(&snd_file)) { for(int i=0;i<qutim_sdk_0_2::NotifyCount;i++) { QString file_name = settings.value("event"+QString::number(i), "-").toString(); m_sound_path[i] = (file_name.at(0) == '+') ? file_name.mid(1) : ""; } } else { for(int i=0;i<qutim_sdk_0_2::NotifyCount;i++) m_sound_path[i] = "-"; QDomElement rootElement = snd_doc.documentElement(); QDomNodeList soundsNodeList = rootElement.elementsByTagName("sounds"); if ( soundsNodeList.count() == 1 ) { QDomElement soundsElement = soundsNodeList.at(0).toElement(); soundsNodeList = soundsElement.elementsByTagName("sound"); QDomElement soundElement; QString eventName, soundFileName; QString snd_dir = QFileInfo(snd_file).absolutePath(); for (int i = 0; i < soundsNodeList.count(); i++) { soundElement = soundsNodeList.at(i).toElement(); eventName = soundElement.attribute("event"); if (eventName.isEmpty()) continue; if (!soundElement.elementsByTagName("file").count()) continue; soundFileName = snd_dir+"/"+soundElement.elementsByTagName("file").at(0).toElement().text(); if (!QFile::exists(soundFileName)) continue; m_sound_path[m_sndevents_nums.value(eventName)] = soundFileName; } } } snd_file.close(); Event popup_event(m_events->popup_enabled, 1, &m_show_popup); m_plugin_system->sendEvent(popup_event); Event sound_event(m_events->sound_enabled, 1, &m_enable_sound); m_plugin_system->sendEvent(sound_event); settings.endGroup(); }
int menubar_event(menubar_t *m,int event,int data) { int i,processed; #ifndef PS2 static int msx,msy; #endif load_event(&m->load,event,data); video_event(&m->video,event,data); input_event(&m->input,event,data); sound_event(&m->sound,event,data); gui_input_event(&m->guiinput,event,data); options_event(&m->options,event,data); paths_event(&m->paths,event,data); rom_info_event(&m->rom_info,event,data); tracer_event(&m->tracer,event,data); memory_viewer_event(&m->memory_viewer,event,data); about_event(&m->about,event,data); switch(event) { //mouse button pressed case E_MOUSEDOWN: case E_MOUSEDOWN2: if(mouseinrange(&m->info,data) == 0) return(0); //see if the click was on a menu for(processed=0,i=0;i<MAX_MENUS && m->menus[i].info.w;i++) { //send event to the menu and see if it processes it if(menu_event(&m->menus[i],event,data) > 0) processed = 1; } for(i=0;i<3;i++) { if(button_event(&m->buttons[i],event,data) > 0) processed = 1; } //if event was not processed by a menu or button, then move the window if(processed == 0) { m->ismoving = 1; #ifndef PS2 video_getwindowpos(&msx,&msy); #endif } break; case E_MOUSEUP: m->ismoving = 0; posx = newposx; posy = newposy; //send event off to children for(i=0;i<MAX_MENUS && m->menus[i].info.w;i++) menu_event(&m->menus[i],event,data); #ifndef PS2 for(i=0;i<3;i++) button_event(&m->buttons[i],event,data); #endif break; case E_MOUSEMOVE: #ifndef PS2 if(m->ismoving && config.windowed) { int x,y; mousemove_u mm; mm.data = data; video_getwindowpos(&x,&y); // break; log_message("window moving: ms x = %d, y = %d\n",msx,msy); log_message("window moving: window x = %d, y = %d\n",x,y); log_message("window moving: mouse x = %d, y = %d\n",mm.info.x,mm.info.y); log_message("window moving: mouse xrel = %d, yrel = %d\n",mm.info.xrel,mm.info.yrel); x += mm.info.xrel; y += mm.info.yrel; // SDL_GetRelativeMouseState(&newposx,&newposy); // newposx += posx; // newposy += posy; // newposx = mm.info.x * 3; // newposy = mm.info.y * 3; // if(newposx == posx || newposy == posy) // break; if(x == msx && y == msy) video_setwindowpos(x,y); break; } #endif //send event off to children for(i=0;i<MAX_MENUS && m->menus[i].info.w;i++) menu_event(&m->menus[i],event,data); break; } return(0); }