USBDB::USBDB() { QString db = "/usr/share/hwdata/usb.ids"; /* on Fedora */ if (!QFile::exists(db)) db = KStandardDirs::locate("data", "kcmusb/usb.ids"); if (db.isEmpty()) return; QFile f(db); if (f.open(QIODevice::ReadOnly)) { QTextStream ts(&f); ts.setCodec("UTF-8"); QString line, name; int id=0, subid=0, protid=0; QRegExp vendor("[0-9a-fA-F]+ "); QRegExp product("\\s+[0-9a-fA-F]+ "); QRegExp cls("C [0-9a-fA-F][0-9a-fA-F]"); QRegExp subclass("\\s+[0-9a-fA-F][0-9a-fA-F] "); QRegExp prot("\\s+[0-9a-fA-F][0-9a-fA-F] "); while (!ts.atEnd()) { line = ts.readLine(); if (line.left(1) == "#" || line.trimmed().isEmpty()) continue; // skip AT lines if (line.left(2) == "AT") continue; if (cls.indexIn(line) == 0 && cls.matchedLength() == 4) { id = line.mid(2,2).toInt(0, 16); name = line.mid(4).trimmed(); _classes.insert(QString("%1").arg(id), name); } else if (prot.indexIn(line) == 0 && prot.matchedLength() > 5) { line = line.trimmed(); protid = line.left(2).toInt(0, 16); name = line.mid(4).trimmed(); _classes.insert(QString("%1-%2-%3").arg(id).arg(subid).arg(protid), name); } else if (subclass.indexIn(line) == 0 && subclass.matchedLength() > 4) { line = line.trimmed(); subid = line.left(2).toInt(0, 16); name = line.mid(4).trimmed(); _classes.insert(QString("%1-%2").arg(id).arg(subid), name); } else if (vendor.indexIn(line) == 0 && vendor.matchedLength() == 5) { id = line.left(4).toInt(0, 16); name = line.mid(6); _ids.insert(QString("%1").arg(id), name); } else if (product.indexIn(line) == 0 && product.matchedLength() > 5) { line = line.trimmed(); subid = line.left(4).toInt(0, 16); name = line.mid(6); _ids.insert(QString("%1-%2").arg(id).arg(subid), name); } } f.close(); } }
static bool subclass(java_lang_Class *cls1, java_lang_Class *cls2) { if (cls1 == cls2) return true; /* check interfaces */ for (int i = 0; i < cls1->interface_count; ++i) { java_lang_Class *iface = cls1->interfaces[i]; if (subclass(iface, cls2)) return true; } /* check superclass */ java_lang_Class *super = cls1->superclass; if (super != NULL) return subclass(super, cls2); else return false; }
void App::wm_create(HWND *window){ hwnd = *window; //kontrolki hctrl[0]=CreateWindowEx(WS_EX_CLIENTEDGE,WC_EDIT,"",WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL,0,20,window_w,20,hwnd,0,*hInst,0); //wiersz poleceñ hctrl[1]=CreateWindowEx(0,WC_STATIC,"",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,0,0,window_w,20,hwnd,0,*hInst,0); //konsola hctrl[2]=CreateWindowEx(0,WC_BUTTON,"Przechwytywanie klawiszy [F11]",WS_CHILD|WS_VISIBLE|BS_CHECKBOX,25,40,180,20,hwnd,(HMENU)1,*hInst,0); //groupbox1 hctrl[3]=CreateWindowEx(0,WC_BUTTON,"Akordy",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,10,60,window_w-20,150,hwnd,(HMENU)0,*hInst,0); for(int i=0; i<12; i++){ hctrl[4+i]=CreateWindowEx(0,WC_BUTTON,"",WS_CHILD|WS_VISIBLE,20+(i%3)*60,80+(i/3)*30,60,30,hwnd,(HMENU)(2+i),*hInst,0); } //groupbox2 hctrl[16]=CreateWindowEx(0,WC_BUTTON,"Rodzaj akordu",WS_CHILD|WS_VISIBLE|BS_GROUPBOX,10,215,window_w-20,140,hwnd,(HMENU)0,*hInst,0); hctrl[17]=CreateWindowEx(0,WC_BUTTON,"Pojedynczy dŸwiêk",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,230,160,20,hwnd,(HMENU)14,*hInst,0); hctrl[18]=CreateWindowEx(0,WC_BUTTON,"Power chord",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,250,160,20,hwnd,(HMENU)15,*hInst,0); hctrl[19]=CreateWindowEx(0,WC_BUTTON,"Akord molowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,270,160,20,hwnd,(HMENU)16,*hInst,0); hctrl[20]=CreateWindowEx(0,WC_BUTTON,"Akord durowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,290,160,20,hwnd,(HMENU)17,*hInst,0); hctrl[21]=CreateWindowEx(0,WC_BUTTON,"Akord molowy septymowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,310,160,20,hwnd,(HMENU)18,*hInst,0); hctrl[22]=CreateWindowEx(0,WC_BUTTON,"Akord durowy septymowy",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,30,330,160,20,hwnd,(HMENU)19,*hInst,0); //kapodaster hctrl[23]=CreateWindowEx(0,WC_STATIC,"Kapodaster",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,55,360,110,25,hwnd,0,*hInst,0); hctrl[24]=CreateWindowEx(0,WC_BUTTON,"-1",WS_CHILD|WS_VISIBLE,30,360,25,25,hwnd,(HMENU)20,*hInst,0); hctrl[25]=CreateWindowEx(0,WC_BUTTON,"+1",WS_CHILD|WS_VISIBLE,165,360,25,25,hwnd,(HMENU)21,*hInst,0); hctrl[26]=CreateWindowEx(0,WC_BUTTON,"-12",WS_CHILD|WS_VISIBLE,5,360,25,25,hwnd,(HMENU)22,*hInst,0); hctrl[27]=CreateWindowEx(0,WC_BUTTON,"+12",WS_CHILD|WS_VISIBLE,190,360,25,25,hwnd,(HMENU)23,*hInst,0); //g³oœnoœæ hctrl[28]=CreateWindowEx(0,WC_STATIC,"G³oœnoœæ",WS_CHILD|WS_VISIBLE|SS_CENTER|SS_CENTERIMAGE,60,390,100,25,hwnd,0,*hInst,0); hctrl[29]=CreateWindowEx(0,WC_BUTTON,"-",WS_CHILD|WS_VISIBLE,30,390,25,25,hwnd,(HMENU)24,*hInst,0); hctrl[30]=CreateWindowEx(0,WC_BUTTON,"+",WS_CHILD|WS_VISIBLE,165,390,25,25,hwnd,(HMENU)25,*hInst,0); //haki hExe = GetModuleHandle(NULL); hHookkb = SetWindowsHookEx(WH_KEYBOARD_LL, hpkb, hExe, 0); //ustawienia load_config(); //ustawienia pocz¹tkowe checkbox1_click(1); radiobutton1_click(2); kapodaster=0; capo_add(0); volume=100; volume_add(0); //czcionki fontsize=13; fontface="MS Shell Dlg 2"; for(int i=0; i<ctrls_num; i++){ change_font(hctrl[i]); } SetFocus(hctrl[0]); //subclassing subclass(0); //midi init midi_device=midi_init(); echo("wersja "+version); }
GhostTrap::GhostTrap(Math::Point pos, Pointer<Entity> parent, QString name) : LimitedLifetimeTrigger(parent, 20.0, name), mDetonated(false), mKillTimer(0), mKillCount(0) { subclass(); setPos(pos); setTriggerRegion(new TriggerRegionCircle(pos, 7)); mView = new CircleView(pointer(), 7, Qt::darkGreen, 0.5); setView(mView); setVisible(true); }
Ghost::Ghost(Math::Point pos, Pointer<Entity> parent, QString name) : Actor(parent, name), mKillCount(0) { subclass(); setPos(pos); setMaxSpeed(9.0); mPursue = new Pursue(pointer()); mWander = new Wander(pointer()); addSteeringBehavior(mPursue); addSteeringBehavior(mWander); PersonView* view = new PersonView(pointer(), Qt::green); //view->setColor(Qt::green); // HULK SMASH! -- 20070108 iank setView(view); setVisible(true); newTarget(); }
USBDB::USBDB() { #ifndef USBIDS_FILE QString db = "/usr/share/hwdata/usb.ids"; /* on Fedora */ if (!QFile::exists(db)) db = locate("data", "kcmusb/usb.ids"); #else QString db = USBIDS_FILE; #endif if (db.isEmpty()) return; _classes.setAutoDelete(true); _ids.setAutoDelete(true); QFile f(db); if (f.open(IO_ReadOnly)) { QTextStream ts(&f); QString line, name; int id=0, subid=0, protid=0; QRegExp vendor("[0-9a-fA-F]+ "); QRegExp product("\\s+[0-9a-fA-F]+ "); QRegExp cls("C [0-9a-fA-F][0-9a-fA-F]"); QRegExp subclass("\\s+[0-9a-fA-F][0-9a-fA-F] "); QRegExp prot("\\s+[0-9a-fA-F][0-9a-fA-F] "); while (!ts.eof()) { line = ts.readLine(); if (line.left(1) == "#" || line.stripWhiteSpace().isEmpty()) continue; // skip AT lines if (line.left(2) == "AT") continue; if (cls.search(line) == 0 && cls.matchedLength() == 4) { id = line.mid(2,2).toInt(0, 16); name = line.mid(4).stripWhiteSpace(); _classes.insert(QString("%1").arg(id), new QString(name)); } else if (prot.search(line) == 0 && prot.matchedLength() > 5) { line = line.stripWhiteSpace(); protid = line.left(2).toInt(0, 16); name = line.mid(4).stripWhiteSpace(); _classes.insert(QString("%1-%2-%3").arg(id).arg(subid).arg(protid), new QString(name)); } else if (subclass.search(line) == 0 && subclass.matchedLength() > 4) { line = line.stripWhiteSpace(); subid = line.left(2).toInt(0, 16); name = line.mid(4).stripWhiteSpace(); _classes.insert(QString("%1-%2").arg(id).arg(subid), new QString(name)); } else if (vendor.search(line) == 0 && vendor.matchedLength() == 5) { id = line.left(4).toInt(0,16); name = line.mid(6); _ids.insert(QString("%1").arg(id), new QString(name)); } else if (product.search(line) == 0 && product.matchedLength() > 5 ) { line = line.stripWhiteSpace(); subid = line.left(4).toInt(0,16); name = line.mid(6); _ids.insert(QString("%1-%2").arg(id).arg(subid), new QString(name)); } } f.close(); } }
void App::subclass(string name){ subclass(Controls::geti()->find_control(name)); }
void App::event_init(HWND *window){ main_window = *window; //parametry IO::geti()->get_args(); //katalog roboczy set_workdir(); //ustawienia Config::geti()->load_from_file(); //jeœli aplikacja jest ju¿ uruchomiona if(IO::geti()->args.size()==2 && instancja2!=NULL){//jeden dodatkowy parametr - nazwa pliku do otwarcia IO::geti()->log("Wysy³anie pliku do otwartej instancji aplikacji..."); for(unsigned int i=0; i<IO::geti()->args.at(1).length(); i++){ SendMessage(instancja2, 0x0319, 69, (char)IO::geti()->args.at(1)[i]); } SendMessage(instancja2, 0x0319, 69, 0); IO::geti()->log("Zamykanie zbêdnej instancji aplikacji..."); //SendMessage(main_window, WM_DESTROY, 0, 0); DestroyWindow(main_window); return; } //log if(Config::geti()->log_enabled){ IO::geti()->clear_log(); } //kontrolki IO::geti()->log("Tworzenie kontrolek..."); Controls::geti()->create_static_center("Plik:", 0, 0, 0, 0, "filename"); Controls::geti()->create_edit("", 0, 0, 0, 0, "filename_edit"); Controls::geti()->create_edit_center(Config::i()->find_edit_placeholder, 0, 0, 0, 0, "find_edit"); Controls::geti()->create_edit_center(Config::i()->replace_edit_placeholder, 0, 0, 0, 0, "replace_edit"); Controls::geti()->create_edit_center("", 0, 0, 0, 0, "autoscroll_interval"); Controls::geti()->create_edit_center("", 0, 0, 0, 0, "autoscroll_wait"); Controls::geti()->create_button("Autoscroll: off", 0, 0, 0, 0, "autoscroll"); Controls::geti()->create_button("Analizuj", 0, 0, 0, 0, "analyze"); for(int i=0; i<Config::geti()->cmd_outputs_num; i++){ stringstream ss; ss<<"cmd_output"<<i+1; Controls::geti()->create_static_center("", 0, 0, 0, 0, ss.str()); } Controls::geti()->create_edit("", 0, 0, 0, 0, "cmd"); //edytor IO::geti()->log("Tworzenie edytora tekstu..."); if(LoadLibrary("RICHED32.DLL")==NULL){ IO::geti()->critical_error("B³¹d: brak biblioteki RICHED32.DLL"); return; } HWND editor_handle = CreateWindowEx(WS_EX_CLIENTEDGE, RICHEDIT_CLASS, "", WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|ES_DISABLENOSCROLL, 0, 0, 0, 0, main_window, (HMENU)100, *hInst, 0); Controls::geti()->controls.push_back(new Control(editor_handle, "editor")); //tworzenie menu IO::geti()->log("Tworzenie menu..."); Menu* menu_plik = new Menu(); menu_plik->add_option("Nowy [Ctrl + N]", "new"); menu_plik->add_separator(); menu_plik->add_option("Otwórz", "load"); menu_plik->add_option("Prze³aduj", "reload"); menu_plik->add_option("Zapisz [Ctrl + S]", "save"); menu_plik->add_separator(); menu_plik->add_option("Baza akordów [Ctrl + B]", "base"); menu_plik->add_separator(); menu_plik->add_option("Zakoñcz", "exit"); Menu* menu_edycja = new Menu(); menu_edycja->add_option("Analizuj i napraw", "analyze"); menu_edycja->add_separator(); menu_edycja->add_option("Cofnij [Ctrl + Z]", "undo"); menu_edycja->add_option("Szukaj [Ctrl + F]", "find"); menu_edycja->add_option("Zamieñ", "replace"); menu_edycja->add_option("Szybka zamiana tekstu [Ctrl + T]", "quick_replace"); menu_edycja->add_separator(); menu_edycja->add_option("Utwórz akord z zaznaczenia [Ctrl + D]", "add_chord"); menu_edycja->add_option("Usuñ akordy [Ctrl + Q]", "remove_chords"); menu_edycja->add_option("Usuñ alternatywne wersje akordów", "remove_alt"); menu_edycja->add_separator(); menu_edycja->add_option("Zapisz schemat akordów [Ctrl + W]", "save_pattern"); menu_edycja->add_option("Wstaw schemat akordów [Ctrl + E]", "insert_pattern"); Menu* menu_widok = new Menu(); menu_widok->add_option("Zwiêksz czcionkê [Ctrl +]", "font++"); menu_widok->add_option("Zmniejsz czcionkê [Ctrl -]", "font--"); menu_widok->add_separator(); menu_widok->add_option("Formatuj tekst [Ctrl + R]", "format_text"); menu_widok->add_option("Przewiñ na pocz¹tek [F1]", "scroll_to_begin"); menu_widok->add_option("Przewiñ na koniec", "scroll_to_end"); menu_widok->add_separator(); menu_widok->add_option("Pe³ny ekran [F10, F11]", "fullscreen"); Menu* menu_autoscroll = new Menu(); menu_autoscroll->add_option("W³¹cz z opóŸnieniem [F7]", "autoscroll_wait"); menu_autoscroll->add_option("W³¹cz bez opóŸnienia [F8]", "autoscroll_nowait"); menu_autoscroll->add_option("Wy³¹cz", "autoscroll_off"); menu_autoscroll->add_separator(); menu_autoscroll->add_option("Zwolnij przewijanie [F5]", "autoscroll_slower"); menu_autoscroll->add_option("Przyspiesz przewijanie [F6]", "autoscroll_faster"); Menu* menu_transpozycja = new Menu(); menu_transpozycja->add_option("Transponuj 5 pó³tonów w górê", "transpose+5"); menu_transpozycja->add_option("Transponuj 1 pó³ton w górê [Ctrl + prawo]", "transpose++"); menu_transpozycja->add_separator(); menu_transpozycja->add_option("Transponuj 1 pó³ton w dó³ [Ctrl + lewo]", "transpose--"); menu_transpozycja->add_option("Transponuj 5 pó³tonów w dó³", "transpose-5"); menu_transpozycja->add_separator(); menu_transpozycja->add_option("Oryginalna tonacja [Ctrl + 0]", "transpose0"); menu_transpozycja->add_separator(); menu_transpozycja->add_option("Dodaj alternatywn¹ tonacjê", "alt"); Menu* menu_ustawienia = new Menu(); menu_ustawienia->add_option("Plik konfiguracyjny", "config"); menu_ustawienia->add_option("Wiersz poleceñ [Ctrl + `]", "cmd_toggle"); menu_ustawienia->add_option("Dziennik zdarzeñ", "log"); menu_ustawienia->add_option("Skojarz pliki .crd z programem", "associate_files"); Menu* menu_pomoc = new Menu(); menu_pomoc->add_option("Polecenia i skróty klawiszowe", "help"); menu_pomoc->add_option("O programie", "info"); //g³ówny pasek menu Menu* menu_bar = new Menu(); menu_bar->add_menu(menu_plik, "Plik"); menu_bar->add_menu(menu_edycja, "Edycja"); menu_bar->add_menu(menu_widok, "Widok"); menu_bar->add_option("Pasek narzêdzi", "toolbar_toggle"); menu_bar->add_menu(menu_autoscroll, "Autoscroll"); menu_bar->add_menu(menu_transpozycja, "Transpozycja"); menu_bar->add_menu(menu_ustawienia, "Ustawienia"); menu_bar->add_menu(menu_pomoc, "Pomoc"); SetMenu(main_window, menu_bar->handle); //autoscroll edits IO::geti()->log("Wype³nianie kontrolek, zmiana czcionek..."); Controls::geti()->set_text("autoscroll_interval", Config::geti()->autoscroll_interval); Controls::geti()->set_text("autoscroll_wait", Config::geti()->autoscroll_wait); //czcionki controls_fonts_set(); Controls::geti()->set_focus("editor"); //subclassing IO::geti()->log("Subclassing..."); for(unsigned int i=0; i<Controls::geti()->controls.size(); i++){ subclass(Controls::geti()->controls.at(i)); } //pasek schowany przy starcie if(!Config::geti()->toolbar_show){ toolbar_switch(0); } //baza akordów na start (jeœli nie by³ otwierany wybrany plik) if(Config::geti()->chordsbase_on_startup && IO::geti()->args.size()<=1){ chordsbase_start(); SetForegroundWindow(main_window); } //okno na po³owie ekranu if(Config::geti()->halfscreen==1){ IO::geti()->log("Rozmieszczanie okna na po³owie ekranu..."); RECT workArea; SystemParametersInfo(SPI_GETWORKAREA, 0, &workArea, 0); int offset_x = - GetSystemMetrics(SM_CXSIZEFRAME); int w = (workArea.right - workArea.left) / 2 - offset_x*2; int h = workArea.bottom - workArea.top + GetSystemMetrics(SM_CYSIZEFRAME); SetWindowPos(main_window, HWND_TOP, workArea.left + offset_x, workArea.top, w, h, 0); } event_resize(); //drag & drop IO::geti()->log("Uaktywanianie funkcji drag & drop..."); DragAcceptFiles(main_window, true); Controls::geti()->set_text("editor", ""); //wczytanie pliku zadanego parametrem if(IO::geti()->args.size()==2){ //jeden dodatkowy parametr - nazwa pliku do otwarcia open_chords_file(IO::geti()->args.at(1)); } update_title(); refresh_text(); IO::geti()->echo("Gotów do pracy - wersja "+version); }
jboolean _Jv_IsInstanceOf(jobject obj, java_lang_Class *cls) { if (obj == NULL) return true; return subclass(obj->vptr->rtti, cls); }