void infinite_taunt0(struct mtwist_state *mt, char *buffer, int buflen) { snprintf(buffer, buflen, "%s %s %s %s %s", you(mt), action(mt), like(mt), adjective(mt), beast(mt)); }
GameSession::ExitStatus GameSession::run() { Menu::set_current(0); current_ = this; int fps_cnt = 0; update_time = last_update_time = st_get_ticks(); // Eat unneeded events SDL_Event event; while (SDL_PollEvent(&event)) {} draw(); float overlap = 0.0f; while (exit_status == NONE) { /* Calculate the movement-factor */ double frame_ratio = ((double)(update_time-last_update_time))/((double)FRAME_RATE); if(!frame_timer.check()) { frame_timer.start(25); ++global_frame_counter; } /* Handle events: */ world->get_tux()->input.old_fire = world->get_tux()->input.fire; process_events(); process_menu(); // Update the world state and all objects in the world // Do that with a constante time-delta so that the game will run // determistic and not different on different machines if(!game_pause && !Menu::current()) { frame_ratio *= game_speed; frame_ratio += overlap; while (frame_ratio > 0) { // Update the world check_end_conditions(); if (end_sequence == ENDSEQUENCE_RUNNING) action(.5f); else if(end_sequence == NO_ENDSEQUENCE) action(1.0f); frame_ratio -= 1.0f; } overlap = frame_ratio; } else { ++pause_menu_frame; SDL_Delay(50); } draw(); /* Time stops in pause mode */ if(game_pause || Menu::current()) { continue; } /* Set the time of the last update and the time of the current update */ last_update_time = update_time; update_time = st_get_ticks(); /* Pause till next frame, if the machine running the game is too fast: */ /* FIXME: Works great for in OpenGl mode, where the CPU doesn't have to do that much. But the results in SDL mode aren't perfect (thought the 100 FPS are reached), even on an AMD2500+. */ if(last_update_time >= update_time - 12) { SDL_Delay(10); update_time = st_get_ticks(); } /* Handle time: */ if (!time_left.check() && world->get_tux()->dying == DYING_NOT) world->get_tux()->kill(Player::KILL); /* Handle music: */ if(world->get_tux()->invincible_timer.check() && !end_sequence) { world->play_music(HERRING_MUSIC); } /* are we low on time ? */ else if (time_left.get_left() < TIME_WARNING && !end_sequence) { world->play_music(HURRYUP_MUSIC); } /* or just normal music? */ else if(world->get_music_type() != LEVEL_MUSIC && !end_sequence) { world->play_music(LEVEL_MUSIC); } /* Calculate frames per second */ if(show_fps) { ++fps_cnt; fps_fps = (1000.0 / (float)fps_timer.get_gone()) * (float)fps_cnt; if(!fps_timer.check()) { fps_timer.start(1000); fps_cnt = 0; } } } return exit_status; }
static int analyse_elf(struct pkg *pkg, const char *fpath, int (action)(void *, struct pkg *, const char *, const char *, bool), void *actdata) { Elf *e = NULL; GElf_Ehdr elfhdr; Elf_Scn *scn = NULL; Elf_Scn *note = NULL; Elf_Scn *dynamic = NULL; GElf_Shdr shdr; Elf_Data *data; GElf_Dyn *dyn, dyn_mem; struct stat sb; int ret = EPKG_OK; size_t numdyn = 0; size_t sh_link = 0; size_t dynidx; const char *osname; const char *shlib; bool shlibs = false; bool autodeps = false; bool developer = false; bool is_shlib = false; pkg_config_bool(PKG_CONFIG_AUTODEPS, &autodeps); pkg_config_bool(PKG_CONFIG_SHLIBS, &shlibs); pkg_config_bool(PKG_CONFIG_DEVELOPER_MODE, &developer); int fd; if ((fd = open(fpath, O_RDONLY, 0)) < 0) { return (EPKG_FATAL); } if (fstat(fd, &sb) != 0) pkg_emit_errno("fstat() failed for %s", fpath); /* ignore empty files and non regular files */ if (sb.st_size == 0 || !S_ISREG(sb.st_mode)) { ret = EPKG_END; /* Empty file: no results */ goto cleanup; } if ((e = elf_begin(fd, ELF_C_READ, NULL)) == NULL) { ret = EPKG_FATAL; pkg_emit_error("elf_begin() for %s failed: %s", fpath, elf_errmsg(-1)); goto cleanup; } if (elf_kind(e) != ELF_K_ELF) { close(fd); return (EPKG_END); /* Not an elf file: no results */ } if (developer) pkg->flags |= PKG_CONTAINS_ELF_OBJECTS; if (!autodeps && !shlibs) { ret = EPKG_OK; goto cleanup; } if (gelf_getehdr(e, &elfhdr) == NULL) { ret = EPKG_FATAL; pkg_emit_error("getehdr() failed: %s.", elf_errmsg(-1)); goto cleanup; } while ((scn = elf_nextscn(e, scn)) != NULL) { if (gelf_getshdr(scn, &shdr) != &shdr) { ret = EPKG_FATAL; pkg_emit_error("getshdr() for %s failed: %s", fpath, elf_errmsg(-1)); goto cleanup; } switch (shdr.sh_type) { case SHT_NOTE: note = scn; break; case SHT_DYNAMIC: dynamic = scn; sh_link = shdr.sh_link; numdyn = shdr.sh_size / shdr.sh_entsize; break; } if (note != NULL && dynamic != NULL) break; } /* * note == NULL usually means a shared object for use with dlopen(3) * dynamic == NULL means not a dynamically linked elf */ if (dynamic == NULL) { ret = EPKG_END; goto cleanup; /* not a dynamically linked elf: no results */ } if (note != NULL) { data = elf_getdata(note, NULL); osname = (const char *) data->d_buf + sizeof(Elf_Note); if (strncasecmp(osname, "freebsd", sizeof("freebsd")) != 0) { ret = EPKG_END; /* Foreign (probably linux) ELF object */ goto cleanup; } } else { if (elfhdr.e_ident[EI_OSABI] != ELFOSABI_FREEBSD) { ret = EPKG_END; goto cleanup; } } data = elf_getdata(dynamic, NULL); /* First, scan through the data from the .dynamic section to find any RPATH or RUNPATH settings. These are colon separated paths to prepend to the ld.so search paths from the ELF hints file. These always seem to come right after the NEEDED shared library entries. NEEDED entries should resolve to a filename for installed executables, but need not resolve for installed shared libraries -- additional info from the apps that link against them would be required. Shared libraries are distinguished by a DT_SONAME tag */ rpath_list_init(); for (dynidx = 0; dynidx < numdyn; dynidx++) { if ((dyn = gelf_getdyn(data, dynidx, &dyn_mem)) == NULL) { ret = EPKG_FATAL; pkg_emit_error("getdyn() failed for %s: %s", fpath, elf_errmsg(-1)); goto cleanup; } if (dyn->d_tag == DT_SONAME) is_shlib = true; if (dyn->d_tag != DT_RPATH && dyn->d_tag != DT_RUNPATH) continue; shlib_list_from_rpath(elf_strptr(e, sh_link, dyn->d_un.d_val), dirname(fpath)); break; } /* Now find all of the NEEDED shared libraries. */ for (dynidx = 0; dynidx < numdyn; dynidx++) { if ((dyn = gelf_getdyn(data, dynidx, &dyn_mem)) == NULL) { ret = EPKG_FATAL; pkg_emit_error("getdyn() failed for %s: %s", fpath, elf_errmsg(-1)); goto cleanup; } if (dyn->d_tag != DT_NEEDED) continue; shlib = elf_strptr(e, sh_link, dyn->d_un.d_val); /* When running in DEVELOPER_MODE check that shlib names conform to the correct pattern. Only issue a warning on mismatch -- shlibs may belong to a different package. */ if (developer) warn_about_name_format(pkg, fpath, shlib); action(actdata, pkg, fpath, shlib, is_shlib); } cleanup: rpath_list_free(); if (e != NULL) elf_end(e); close(fd); return (ret); }
static void ioSimpleActionHandler(void *data) { io_simpleaction_t action = (io_simpleaction_t)data; if (action) action(); }
void Do::update() { action(); timelinePtr->next(); }
// // This is the LmUtility.nativeUtils method. It takes one string as // input and produces one string as output. The output string gets // written to the first element of the String[] array object passed in // as the jobjectArray parameter. // // Although we do not document this method for customers, there is // nothing preventing customer code from calling this method. So don't // put anything in the method that you wouldn't want customers // doing. Currently this function just serves as an entry point to // various systems calls such as TMF operations and getting/setting // environment variables. There is nothing here that customers could // not do on their own if they wanted to. // JNIEXPORT void JNICALL Java_org_trafodion_sql_udr_LmUtility_nativeUtils (JNIEnv * env, jclass jc, jstring js, jobjectArray joa) { const char *input = env->GetStringUTFChars(js, NULL); if (input == NULL) { // OutOfMemory error already thrown return; } NAString action(input); TrimNAStringSpace(action); short error; NAString result("OK"); static MXStatement staticStmt; if (action.compareTo("GetTxName", NAString::ignoreCase) == 0) { Int64 transid; error = GETTRANSID((short *) &transid); if (error) { if (error == 75) { result = "No active transaction"; } else { result = "GETTRANSID returned "; result += LongToNAString((Lng32) error); } Throw(env, result.data()); } else { short actualLen; char text[256]; error = TRANSIDTOTEXT(transid, text, 255, &actualLen); if (error) { result = "TRANSIDTOTEXT returned "; result += LongToNAString((Lng32) error); Throw(env, result); } else { text[actualLen] = 0; result = text; } } } // GetTxName else if (action.compareTo("BeginTx", NAString::ignoreCase) == 0) { Int32 tag; error = BEGINTRANSACTION(&tag); if (error) { result = "BEGINTRANSACTION returned "; result += LongToNAString((Lng32) error); Throw(env, result); } } // BeginTx else if (action.compareTo("CommitTx", NAString::ignoreCase) == 0) { error = ENDTRANSACTION(); if (error) { if (error == 75) { result = "No active transaction"; } else { result = "ENDTRANSACTION returned "; result += LongToNAString((Lng32) error); } Throw(env, result); } } // CommitTx else if (action.compareTo("RollbackTx", NAString::ignoreCase) == 0) { error = ABORTTRANSACTION(); if (error) { if (error == 75) { result = "No active transaction"; } else { result = "ABORTTRANSACTION returned "; result += LongToNAString((Lng32) error); } Throw(env, result); } } // RollbackTx else if (action.compareTo("GetProcessId", NAString::ignoreCase) == 0) { Lng32 pid = GETPID(); result = LongToNAString(pid); } // GetProcessId else if (action.index("GetEnv ", 0, NAString::ignoreCase) == 0) { NAString name = action; name.remove(0, str_len("GetEnv ")); TrimNAStringSpace(name); char *value = getenv(name.data()); if (value != NULL) { result = value; } else { result = ""; } } // GetEnv else if (action.index("PutEnv ", 0, NAString::ignoreCase) == 0) { NAString nameAndValue = action; nameAndValue.remove(0, str_len("PutEnv ")); TrimNAStringSpace(nameAndValue); Int32 retcode = putenv((char *) nameAndValue.data()); if (retcode != 0) { result = "putenv returned "; result += LongToNAString((Lng32) retcode); Throw(env, result); } } // PutEnv else if (action.index("LmDebug ", 0, NAString::ignoreCase) == 0) { NAString name = action; name.remove(0, str_len("LmDebug ")); LM_DEBUG0(name.data()); } // LmDebug else if (action.index("ExecSql ", 0, NAString::ignoreCase) == 0) { NAString stmtText = action.remove(0, str_len("ExecSql ")); MXStatement s; const char *status = "OK"; Lng32 retcode = 0; retcode = s.init(status); if (retcode == 0) { retcode = s.prepare(stmtText.data()); if (retcode != 0) { status = "PREPARE failed"; } } if (retcode == 0) { retcode = s.execute(); if (retcode != 0) { status = "EXECUTE failed"; } } if (retcode == 0) { retcode = s.fetchEOD(); if (retcode != 0) { status = "FETCH failed"; } } if (retcode == 0) { retcode = s.close(); if (retcode != 0) { status = "CLOSE failed"; } } if (retcode != 0) { char msg[256]; sprintf(msg, "[UdrSqlException %d] %s", retcode, status); Throw(env, msg); } } // ExecSql else if (action.index("FetchSql ", 0, NAString::ignoreCase) == 0) { // The incoming string is SQL statement text. The code below will // prepare and execute the statement then fetch only the first // row. It will build one long multi-line string containing all // column values, one on each line. The multi-line string can be // split by the Java caller into an array of Strings with the // split("\n") method. Lng32 i; NAString stmtText = action.remove(0, str_len("FetchSql ")); MXStatement s; const char *status = "OK"; Lng32 retcode = 0; retcode = s.init(status); if (!retcode) { retcode = s.prepare(stmtText.data()); if (retcode) status = "PREPARE failed"; } if (!retcode) { retcode = s.execute(); if (retcode) status = "EXECUTE failed"; } Lng32 numOutColumns = s.getNumOutColumns(); NABoolean stringsAllocated = FALSE; char **argv = NULL; if (!retcode && numOutColumns > 0) { argv = new char *[numOutColumns]; Lng32 bufLen = 1000; for (i = 0; i < numOutColumns; i++) argv[i] = new char[bufLen + 1]; stringsAllocated = TRUE; retcode = s.fetchStrings(argv, bufLen); if (retcode) status = "FETCH STRINGS failed"; if (!retcode) { result = argv[0]; for (i = 1; i < numOutColumns; i++) { result += "\n"; result += argv[i]; } } } if (!retcode) { retcode = s.fetchEOD(); if (retcode) status = "FETCH EOD failed"; } if (!retcode) { retcode = s.close(); if (retcode) status = "CLOSE failed"; } if (stringsAllocated) { for (i = 0; i < numOutColumns; i++) delete [] argv[i]; delete [] argv; } if (retcode) { char msg[256]; sprintf(msg, "[UdrSqlException %d] %s", retcode, status); Throw(env, msg); } } // FetchSql else if (action.index("Prepare ", 0, NAString::ignoreCase) == 0) { NAString stmtText = action.remove(0, str_len("Prepare ")); const char *status = "OK"; Lng32 retcode = 0; retcode = staticStmt.init(status); if (retcode == 0) { retcode = staticStmt.prepare(stmtText.data()); if (retcode != 0) { status = "PREPARE failed"; } } if (retcode) { char msg[256]; sprintf(msg, "[UdrSqlException %d] %s", retcode, status); Throw(env, msg); } } // Prepare else if (action.index("ExecUsingString ", 0, NAString::ignoreCase) == 0) { NAString data = action.remove(0, str_len("ExecUsingString ")); const char *status = "OK"; Lng32 retcode = 0; if (retcode == 0) { retcode = staticStmt.executeUsingString(data.data(), (Lng32) data.length()); if (retcode != 0) { status = "EXECUTE failed"; } } if (retcode == 0) { retcode = staticStmt.fetchEOD(); if (retcode != 0) { status = "FETCH failed"; } } if (retcode == 0) { retcode = staticStmt.close(); if (retcode != 0) { status = "CLOSE failed"; } } if (retcode != 0) { char msg[256]; sprintf(msg, "[UdrSqlException %d] %s", retcode, status); Throw(env, msg); } } // ExecUsingString else if (action.index("FetchUsingString ", 0, NAString::ignoreCase) == 0) { NAString data = action.remove(0, str_len("FetchUsingString ")); const char *status = "OK"; Lng32 retcode = 0; Int32 i = 0; if (!retcode) { retcode = staticStmt.executeUsingString(data.data(), (Lng32) data.length()); if (retcode) status = "EXECUTE failed"; } Lng32 numOutColumns = staticStmt.getNumOutColumns(); NABoolean stringsAllocated = FALSE; char **argv = NULL; if (!retcode && numOutColumns > 0) { argv = new char *[numOutColumns]; Lng32 bufLen = 1000; for (i = 0; i < numOutColumns; i++) argv[i] = new char[bufLen + 1]; stringsAllocated = TRUE; retcode = staticStmt.fetchStrings(argv, bufLen); if (retcode) status = "FETCH STRINGS failed"; if (!retcode) { result = argv[0]; for (i = 1; i < numOutColumns; i++) { result += "\n"; result += argv[i]; } } } if (!retcode) { retcode = staticStmt.fetchEOD(); if (retcode) status = "FETCH EOD failed"; } if (!retcode) { retcode = staticStmt.close(); if (retcode) status = "CLOSE failed"; } if (stringsAllocated) { for (i = 0; i < numOutColumns; i++) delete [] argv[i]; delete [] argv; } if (retcode) { char msg[256]; sprintf(msg, "[UdrSqlException %d] %s", retcode, status); Throw(env, msg); } } // FetchUsingString else { // // Over time other operations can be supported // result = "Invalid action: "; result += action; Throw(env, result); } // // Create the Java output string // if (env->ExceptionCheck() == JNI_FALSE) { jobject j = env->NewStringUTF(result.data()); env->SetObjectArrayElement(joa, 0, j); } }
boost::shared_ptr<MWWorld::Action> Container::activate (const MWWorld::Ptr& ptr, const MWWorld::Ptr& actor) const { if (!MWBase::Environment::get().getWindowManager()->isAllowed(MWGui::GW_Inventory)) return boost::shared_ptr<MWWorld::Action> (new MWWorld::NullAction ()); if(actor.getClass().isNpc() && actor.getClass().getNpcStats(actor).isWerewolf()) { const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore(); const ESM::Sound *sound = store.get<ESM::Sound>().searchRandom("WolfContainer"); boost::shared_ptr<MWWorld::Action> action(new MWWorld::FailedAction("#{sWerewolfRefusal}")); if(sound) action->setSound(sound->mId); return action; } const std::string lockedSound = "LockedChest"; const std::string trapActivationSound = "Disarm Trap Fail"; MWWorld::Ptr player = MWBase::Environment::get().getWorld ()->getPlayerPtr(); MWWorld::InventoryStore& invStore = player.getClass().getInventoryStore(player); bool needKey = ptr.getCellRef().getLockLevel() > 0; bool hasKey = false; std::string keyName; // make key id lowercase std::string keyId = ptr.getCellRef().getKey(); Misc::StringUtils::toLower(keyId); for (MWWorld::ContainerStoreIterator it = invStore.begin(); it != invStore.end(); ++it) { std::string refId = it->getCellRef().getRefId(); Misc::StringUtils::toLower(refId); if (refId == keyId) { hasKey = true; keyName = it->getClass().getName(*it); } } if (needKey && hasKey) { MWBase::Environment::get().getWindowManager ()->messageBox (keyName + " #{sKeyUsed}"); unlock(ptr); // using a key disarms the trap ptr.getCellRef().setTrap(""); } if (!needKey || hasKey) { if(ptr.getCellRef().getTrap().empty()) { boost::shared_ptr<MWWorld::Action> action (new MWWorld::ActionOpen(ptr)); return action; } else { // Activate trap boost::shared_ptr<MWWorld::Action> action(new MWWorld::ActionTrap(actor, ptr.getCellRef().getTrap(), ptr)); action->setSound(trapActivationSound); return action; } } else { boost::shared_ptr<MWWorld::Action> action(new MWWorld::FailedAction); action->setSound(lockedSound); return action; } }
AddTabDesignerAction::AddTabDesignerAction() : AbstractAction(QCoreApplication::translate("TabViewToolAction","Add Tab...")) { connect(action(), SIGNAL(triggered()), this, SLOT(addNewTab())); }
QAccessibleInterface *QAccessibleMenuItem::child(int index) const { if (index == 0 && action()->menu()) return new QAccessibleMenu(action()->menu()); return 0; }
void TriggerMng::buildJson(rapidjson::Document &document, cocostudio::CocoLoader *pCocoLoader, cocostudio::stExpCocoNode *pCocoNode) { int count = pCocoNode[13].GetChildNum(); int length = 0; int num = 0; int size = 0; int extent = 0; int border = 0; std::string key0; stExpCocoNode *pTriggersArray = pCocoNode[13].GetChildArray(pCocoLoader); document.SetArray(); rapidjson::Document::AllocatorType& allocator = document.GetAllocator(); for (int i0 = 0; i0 < count; ++i0) { rapidjson::Value vElemItem(rapidjson::kObjectType); border = pTriggersArray[i0].GetChildNum(); stExpCocoNode *pTriggerArray = pTriggersArray[i0].GetChildArray(pCocoLoader); for (int i1 = 0; i1 < border; ++i1) { std::string key1 = pTriggerArray[i1].GetName(pCocoLoader); const char *str1 = pTriggerArray[i1].GetValue(pCocoLoader); if (key1.compare("actions") == 0) { rapidjson::Value actionsItem(rapidjson::kArrayType); length = pTriggerArray[i1].GetChildNum(); stExpCocoNode *pActionsArray = pTriggerArray[i1].GetChildArray(pCocoLoader); for (int i2 = 0; i2 < length; ++i2) { rapidjson::Value action(rapidjson::kObjectType); num = pActionsArray[i2].GetChildNum(); stExpCocoNode *pActionArray = pActionsArray[i2].GetChildArray(pCocoLoader); for (int i3 = 0; i3 < num; ++i3) { std::string key2 = pActionArray[i3].GetName(pCocoLoader); const char *str2 = pActionArray[i3].GetValue(pCocoLoader); if (key2.compare("classname") == 0) { if (str2 != nullptr) { action.AddMember("classname", rapidjson::Value(str2,allocator), allocator); } } else if (key2.compare("dataitems") == 0) { rapidjson::Value dataitems(rapidjson::kArrayType); size = pActionArray[i3].GetChildNum(); stExpCocoNode *pDataItemsArray = pActionArray[i3].GetChildArray(pCocoLoader); for (int i4 = 0; i4 < size; ++i4) { rapidjson::Value dataitem(rapidjson::kObjectType); extent = pDataItemsArray[i4].GetChildNum(); stExpCocoNode *pDataItemArray = pDataItemsArray[i4].GetChildArray(pCocoLoader); for (int i5 = 0; i5 < extent; ++i5) { std::string key3 = pDataItemArray[i5].GetName(pCocoLoader); const char *str3 = pDataItemArray[i5].GetValue(pCocoLoader); if (key3.compare("key") == 0) { if (str3 != nullptr) { dataitem.AddMember("key", rapidjson::Value(str3,allocator), allocator); } } else { rapidjson::Type type = pDataItemArray[i5].GetType(pCocoLoader); if (type == rapidjson::kStringType) { dataitem.AddMember("value", rapidjson::Value(str3,allocator), allocator); } else { int nV = atoi(str3); float fV = utils::atof(str3); if (fabs(nV - fV) < 0.0000001) { dataitem.AddMember("value", nV, allocator); } else { dataitem.AddMember("value", fV, allocator); } } } } dataitems.PushBack(dataitem, allocator); } action.AddMember("dataitems", dataitems, allocator); } } actionsItem.PushBack(action, allocator); } vElemItem.AddMember("actions", actionsItem, allocator); } else if (key1.compare("conditions") == 0) { rapidjson::Value condsItem(rapidjson::kArrayType); length = pTriggerArray[i1].GetChildNum(); stExpCocoNode *pConditionsArray = pTriggerArray[i1].GetChildArray(pCocoLoader); for (int i6 = 0; i6 < length; ++i6) { rapidjson::Value cond(rapidjson::kObjectType); num = pConditionsArray[i6].GetChildNum(); stExpCocoNode *pConditionArray = pConditionsArray[i6].GetChildArray(pCocoLoader); for (int i7 = 0; i7 < num; ++i7) { std::string key4 = pConditionArray[i7].GetName(pCocoLoader); const char *str4 = pConditionArray[i7].GetValue(pCocoLoader); if (key4.compare("classname") == 0) { if (str4 != nullptr) { cond.AddMember("classname", rapidjson::Value(str4,allocator), allocator); } } else if (key4.compare("dataitems") == 0) { rapidjson::Value dataitems(rapidjson::kArrayType); size = pConditionArray[i7].GetChildNum(); stExpCocoNode *pDataItemsArray = pConditionArray[i7].GetChildArray(pCocoLoader); for (int i8 = 0; i8 < size; ++i8) { rapidjson::Value dataitem(rapidjson::kObjectType); extent = pDataItemsArray[i8].GetChildNum(); stExpCocoNode *pDataItemArray = pDataItemsArray[i8].GetChildArray(pCocoLoader); for (int i9 = 0; i9 < extent; ++i9) { std::string key5 = pDataItemArray[i9].GetName(pCocoLoader); const char *str5 = pDataItemArray[i9].GetValue(pCocoLoader); if (key5.compare("key") == 0) { if (str5 != nullptr) { dataitem.AddMember("key", rapidjson::Value(str5,allocator), allocator); } } else { rapidjson::Type type = pDataItemArray[i9].GetType(pCocoLoader); if (type == rapidjson::kStringType) { dataitem.AddMember("value", rapidjson::Value(str5,allocator), allocator); } else { int nV = atoi(str5); float fV = utils::atof(str5); if (fabs(nV - fV) < 0.0000001) { dataitem.AddMember("value", nV, allocator); } else { dataitem.AddMember("value", fV, allocator); } } } } dataitems.PushBack(dataitem, allocator); } cond.AddMember("dataitems", dataitems, allocator); } } condsItem.PushBack(cond, allocator); } vElemItem.AddMember("conditions", condsItem, allocator); } else if (key1.compare("events") == 0) { rapidjson::Value eventsItem(rapidjson::kArrayType); length = pTriggerArray[i1].GetChildNum(); stExpCocoNode *pEventsArray = pTriggerArray[i1].GetChildArray(pCocoLoader); for (int i10 = 0; i10 < length; ++i10) { rapidjson::Value event(rapidjson::kObjectType); stExpCocoNode *pEventArray = pEventsArray->GetChildArray(pCocoLoader); std::string key6 = pEventArray[0].GetName(pCocoLoader); const char *str6 = pEventArray[0].GetValue(pCocoLoader); if (key6.compare("id") == 0 && str6 != nullptr) { event.AddMember("id", atoi(str6), allocator); eventsItem.PushBack(event, allocator); } } vElemItem.AddMember("events", eventsItem, allocator); } else if (key1.compare("id") == 0) { if (str1 != nullptr) { vElemItem.AddMember("id", atoi(str1), allocator); } } } document.PushBack(vElemItem, allocator); } }
void ItemView::updateZoomActions() { action("view_zoom_in")->setEnabled(canZoomIn()); action("view_zoom_out")->setEnabled(canZoomOut()); action("view_actual_size")->setEnabled(m_zoomLevel != 1.0); }
void OpHotlistView::HandleMouseEvent(OpTreeView* widget, HotlistModelItem* item, INT32 pos, MouseButton button, BOOL down, UINT8 nclicks) { BOOL shift = GetWidgetContainer()->GetView()->GetShiftKeys() & SHIFTKEY_SHIFT; BOOL ctrl = GetWidgetContainer()->GetView()->GetShiftKeys() & SHIFTKEY_CTRL; // single or double click mode BOOL click_state_ok = (IsSingleClick() && !down && nclicks == 1 && !shift) || nclicks == 2; if (IsContacts()) { ViewSelectedContactMail(click_state_ok, ctrl); } else if (IsNotes()) { if (nclicks == 2) { if (item->GetUrl().HasContent()) { g_application->GoToPage(item->GetUrl().CStr()); } else if (GetWorkspace() && GetWorkspace()->GetActiveDesktopWindow() && GetWorkspace()->GetActiveDesktopWindow()->GetRecentKeyboardChildInputContext()) { if(!item->GetIsTrashFolder()) { OpInputContext* input_context = GetWorkspace()->GetActiveDesktopWindow()->GetRecentKeyboardChildInputContext(); OpString name; name.Set(item->GetName()); if (strcmp(input_context->GetInputContextName(),"Edit Widget")==0) { OpInputAction action(OpInputAction::ACTION_INSERT); action.SetActionDataString(name.CStr()); input_context->OnInputAction(&action); } else if (item->IsNote()) { OpString empty; OpString name; name.Set(item->GetName()); MailTo mailto; mailto.Init(empty, empty, empty, empty, name); // set mail body (message) to content of name MailCompose::ComposeMail(mailto); return; } input_context->SetFocus(FOCUS_REASON_OTHER); } } else if (item->IsNote()) { OpString empty, name; name.Set(item->GetName()); MailTo mailto; mailto.Init(empty, empty, empty, empty, name); // set mail body (message) to content of name MailCompose::ComposeMail(mailto); } } } #ifdef WEBSERVER_SUPPORT else if (IsUniteServices() && item->IsUniteService() && nclicks == 2 ) { static_cast<UniteServiceModelItem*>(item)->GoToPublicPage(); } else if (IsUniteServices() && item->IsUniteService()) // not nclicks == 2 { if(widget->GetType() == WIDGET_TYPE_TREEVIEW && pos != -1 && ((OpTreeView*)widget)->IsHoveringAssociatedImageItem(pos)) { OpInputAction action(OpInputAction::ACTION_EDIT_PROPERTIES); INT32 state = g_input_manager->GetActionState(&action, this); if (state & OpInputAction::STATE_ENABLED) { // Show dialog g_input_manager->InvokeAction(OpInputAction::ACTION_EDIT_PROPERTIES, 1); } } } #endif }