示例#1
0
            virtual std::string GenerateCode(gd::Instruction & instruction, gd::EventsCodeGenerator & codeGenerator, gd::EventsCodeGenerationContext & context)
            {
                std::string value1Code;
                {
                    gd::CallbacksForGeneratingExpressionCode callbacks(value1Code, codeGenerator, context);
                    gd::ExpressionParser parser(instruction.GetParameters()[0].GetPlainString());
                    if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || value1Code.empty()) value1Code = "0";
                }

                std::string value2Code;
                {
                    gd::CallbacksForGeneratingExpressionCode callbacks(value2Code, codeGenerator, context);
                    gd::ExpressionParser parser(instruction.GetParameters()[2].GetPlainString());
                    if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || value2Code.empty()) value2Code = "0";
                }

                std::string resultingBoolean = codeGenerator.GenerateBooleanFullName("conditionTrue", context)+".val";

                if ( instruction.GetParameters()[1].GetPlainString() == "=" || instruction.GetParameters()[1].GetPlainString().empty() )
                    return resultingBoolean + " = ("+value1Code+" == "+value2Code+");\n";
                else if ( instruction.GetParameters()[1].GetPlainString() == ">")
                    return resultingBoolean + " = ("+value1Code+" > "+value2Code+");\n";
                else if ( instruction.GetParameters()[1].GetPlainString() == "<")
                    return resultingBoolean + " = ("+value1Code+" < "+value2Code+");\n";
                else if ( instruction.GetParameters()[1].GetPlainString() == "<=")
                    return resultingBoolean + " = ("+value1Code+" <= "+value2Code+");\n";
                else if ( instruction.GetParameters()[1].GetPlainString() == ">=")
                    return resultingBoolean + " = ("+value1Code+" >= "+value2Code+");\n";
                else if ( instruction.GetParameters()[1].GetPlainString() == "!=")
                    return resultingBoolean + " = ("+value1Code+" != "+value2Code+");\n";

                return "";
            };
示例#2
0
void Save_Widget::widget_update()
{
    callbacks(false);

    try
    {
        if (_plugin)
        {
            String tmp;
            tmp = _plugin->option(
                _plugin->options()[Save::COLOR_PROFILE_OPTION]);
            tmp >> _options.color_profile;
            tmp = _plugin->option(_plugin->options()[Save::FILM_PRINT_OPTION]);
            tmp >> _options.film_print;
        }
    }
    catch (String) {}

    _color_profile_widget->set(_options.color_profile);
    _black_widget->set(_options.film_print.black);
    _white_widget->set(_options.film_print.white);
    _gamma_widget->set(_options.film_print.gamma);

    callbacks(true);
}
示例#3
0
void Save_Widget::widget_update()
{
    callbacks(false);

    try
    {
        if (_plugin)
        {
            String tmp;
            tmp = _plugin->option(
                _plugin->options()[Save::COLOR_PROFILE_OPTION]);
            tmp >> _options.color_profile;
            tmp = _plugin->option(_plugin->options()[Save::FILM_PRINT_OPTION]);
            tmp >> _options.film_print;
            tmp = _plugin->option(_plugin->options()[Save::VERSION_OPTION]);
            tmp >> _options.version;
            tmp = _plugin->option(_plugin->options()[Save::TYPE_OPTION]);
            tmp >> _options.type;
            tmp = _plugin->option(_plugin->options()[Save::ENDIAN_OPTION]);
            tmp >> _options.endian;
        }
    }
    catch (String) {}

    _color_profile_widget->set(_options.color_profile);
    _black_widget->set(_options.film_print.black);
    _white_widget->set(_options.film_print.white);
    _gamma_widget->set(_options.film_print.gamma);
    _version_widget->set(_options.version);
    _type_widget->set(_options.type);
    _endian_widget->set(_options.endian);

    callbacks(true);
}
示例#4
0
            virtual std::string GenerateCode(gd::Instruction & instruction, gd::EventsCodeGenerator & codeGenerator, gd::EventsCodeGenerationContext & context)
            {
                std::string expressionCode;
                {
                    gd::CallbacksForGeneratingExpressionCode callbacks(expressionCode, codeGenerator, context);
                    gd::ExpressionParser parser(instruction.GetParameters()[2].GetPlainString());
                    if (!parser.ParseStringExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || expressionCode.empty())
                        expressionCode = "\"\"";
                }

                std::string varGetter;
                {
                    VariableCodeGenerationCallbacks callbacks(varGetter, codeGenerator, context, VariableCodeGenerationCallbacks::LAYOUT_VARIABLE);
                    gd::VariableParser parser(instruction.GetParameters()[0].GetPlainString());
                    if ( !parser.Parse(callbacks) )
                        varGetter = "runtimeScene.getVariables().get(\"\")";
                }

                std::string op = instruction.GetParameters()[1].GetPlainString();
                if ( op == "=" )
                    return varGetter+".setString("+expressionCode+");\n";
                else if ( op == "+" )
                    return varGetter+".concatenate("+expressionCode+");\n";

                return "";
            };
void Application_Message_Dialog::widget_update()
{
    callbacks(false);

    _widget->set(String_Util::join(_list, "\n"));

    callbacks(true);
}
void Application_Message_Dialog::dialog_update()
{
    callbacks(false);

    _show_widget->set(_show);

    callbacks(true);
}
示例#7
0
 static Wrapped wrap(CallbackArray<NbEvents>& callbacks, Func&& func)
 {
     callbacks[Idx] = std::unique_ptr<CallbackHandler<Func>>( new CallbackHandler<Func>( std::forward<Func>( func ) ) );
     return [](void* opaque, Args... args) -> Ret {
         auto boxed = BoxOpaque<NbEvents, Strategy>( opaque, std::forward<Args>( args )... );
         assert(boxed.callbacks()[Idx] != nullptr );
         auto cbHandler = static_cast<CallbackHandler<Func>*>( boxed.callbacks()[Idx].get() );
         return cbHandler->func( boxed, std::forward<Args>(args)... );
     };
 }
示例#8
0
            virtual std::string GenerateCode(gd::Instruction & instruction, gd::EventsCodeGenerator & codeGenerator, gd::EventsCodeGenerationContext & context)
            {
                std::string outputCode;

                std::vector<std::string> realObjects = codeGenerator.ExpandObjectsName(instruction.GetParameter(0).GetPlainString(), context);
                for (unsigned int i = 0;i<realObjects.size();++i)
                {
                    context.SetCurrentObject(realObjects[i]);
                    context.ObjectsListNeeded(realObjects[i]);

                    std::string newX, newY;

                    std::string expression1Code;
                    {
                        gd::CallbacksForGeneratingExpressionCode callbacks(expression1Code, codeGenerator, context);
                        gd::ExpressionParser parser(instruction.GetParameters()[2].GetPlainString());
                        if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || expression1Code.empty())
                            expression1Code = "0";
                    }

                    std::string expression2Code;
                    {
                        gd::CallbacksForGeneratingExpressionCode callbacks(expression2Code, codeGenerator, context);
                        gd::ExpressionParser parser(instruction.GetParameters()[4].GetPlainString());
                        if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || expression2Code.empty())
                            expression2Code = "0";
                    }

                    std::string op1 = instruction.GetParameter(1).GetPlainString();
                    if ( op1 == "=" || op1.empty() )
                        newX = expression1Code;
                    else if ( op1 == "/" || op1 == "*" || op1 == "-" || op1 == "+" )
                        newX = codeGenerator.GetObjectListName(realObjects[i], context)+"[i].getX() "+op1 + expression1Code;
                    else
                        return "";
                    std::string op2 = instruction.GetParameter(3).GetPlainString();
                    if ( op2 == "=" || op2.empty() )
                        newY = expression2Code;
                    else if ( op2 == "/" || op2 == "*" || op2 == "-" || op2 == "+" )
                        newY = codeGenerator.GetObjectListName(realObjects[i], context)+"[i].getY() "+op2 + expression2Code;
                    else
                        return "";

                    std::string call = codeGenerator.GetObjectListName(realObjects[i], context)+"[i].setPosition("+newX+","+newY+")";

                    outputCode += "for(var i = 0, len = "+codeGenerator.GetObjectListName(realObjects[i], context)+".length ;i < len;++i) {\n";
                    outputCode += "    "+call+";\n";
                    outputCode += "}\n";

                    context.SetNoCurrentObject();
                }

                return outputCode;
            };
void Save_Widget::plugin_update()
{
    callbacks(false);

    if (_plugin)
    {
        String tmp;
        tmp << _options.codec;
        _plugin->option(_plugin->options()[Save::CODEC], &tmp);
    }

    callbacks(true);
}
示例#10
0
void Save_Widget::plugin_update()
{
    callbacks(false);

    if (_plugin)
    {
        String tmp;
        tmp << _options.compression;
        _plugin->option(_plugin->options()[Save::COMPRESSION_OPTION], &tmp);
    }

    callbacks(true);
}
void AttachedDetachedInvocation::dispatch(Element* element)
{
    switch (m_which) {
    case CustomElementLifecycleCallbacks::AttachedCallback:
        callbacks()->attached(element);
        break;
    case CustomElementLifecycleCallbacks::DetachedCallback:
        callbacks()->detached(element);
        break;
    default:
        ASSERT_NOT_REACHED();
    }
}
示例#12
0
void Window::frame_update()
{
    DJV_DEBUG(String_Format("Window::frame_update(%%)").arg(int64_t(this)));
    DJV_DEBUG_PRINT("frame = " << _frame);

    callbacks(false);

    _slider->set(_frame);

    _widget->set(_movie.image(_frame));
    _widget->redraw();

    callbacks(true);
}
示例#13
0
std::set < std::string > EventsVariablesFinder::FindArgumentsInInstructions(const gd::Platform & platform,
    const gd::Project & project, const gd::Layout & layout, const vector < gd::Instruction > & instructions,
    bool instructionsAreConditions, const std::string & parameterType, const std::string & objectName)
{
    std::set < std::string > results;

    for (unsigned int aId = 0;aId < instructions.size();++aId)
    {
        std::string lastObjectParameter = "";
        gd::InstructionMetadata instrInfos = instructionsAreConditions ? MetadataProvider::GetConditionMetadata(platform, instructions[aId].GetType()) :
                                                                         MetadataProvider::GetActionMetadata(platform, instructions[aId].GetType());
        for (unsigned int pNb = 0;pNb < instrInfos.parameters.size();++pNb)
        {
            //The parameter has the searched type...
            if ( instrInfos.parameters[pNb].type == parameterType )
            {
                //...remember the value of the parameter.
                if (objectName.empty() || lastObjectParameter == objectName)
                    results.insert(instructions[aId].GetParameter(pNb).GetPlainString());
            }
            //Search in expressions
            else if (instrInfos.parameters[pNb].type == "expression")
            {
                CallbacksForSearchingVariable callbacks(results, parameterType, objectName);

                gd::ExpressionParser parser(instructions[aId].GetParameter(pNb).GetPlainString());
                parser.ParseMathExpression(platform, project, layout, callbacks);
            }
            //Search in string expressions
            else if (instrInfos.parameters[pNb].type == "string"||instrInfos.parameters[pNb].type == "file" ||instrInfos.parameters[pNb].type == "joyaxis" ||instrInfos.parameters[pNb].type == "color"||instrInfos.parameters[pNb].type == "layer")
            {
                CallbacksForSearchingVariable callbacks(results, parameterType, objectName);

                gd::ExpressionParser parser(instructions[aId].GetParameter(pNb).GetPlainString());
                parser.ParseStringExpression(platform, project, layout, callbacks);
            }
            //Remember the value of the last "object" parameter.
            else if (gd::ParameterMetadata::IsObject(instrInfos.parameters[pNb].type))
            {
                lastObjectParameter = instructions[aId].GetParameter(pNb).GetPlainString();
            }
        }

        if ( !instructions[aId].GetSubInstructions().empty() )
            FindArgumentsInInstructions(platform, project, layout, instructions[aId].GetSubInstructions(),
                instructionsAreConditions, parameterType);
    }

    return results;
}
示例#14
0
void File_Browser::widget_update()
{
    //DJV_DEBUG("File_Browser::widget_update");
    //DJV_DEBUG_PRINT("value = " << _value);
    //DJV_DEBUG_PRINT("value seq = " << _value.seq());

    callbacks(false);

    _value_widget->set(_value);

    _seq_widget->set(_seq);

    callbacks(true);
}
示例#15
0
void Save_Widget::plugin_update()
{
    callbacks(false);

    if (_plugin)
    {
        String tmp;
        tmp << _options.color_profile;
        _plugin->option(_plugin->options()[Save::COLOR_PROFILE_OPTION], &tmp);
        tmp << _options.film_print;
        _plugin->option(_plugin->options()[Save::FILM_PRINT_OPTION], &tmp);
    }

    callbacks(true);
}
示例#16
0
SceneExtension::SceneExtension()
{
    gd::BuiltinExtensionsImplementer::ImplementsSceneExtension(*this);

    #if defined(GD_IDE_ONLY)
    GetAllExpressions()["Random"].SetFunctionName("GDpriv::CommonInstructions::Random").SetIncludeFile("GDCpp/Extensions/Builtin/CommonInstructionsTools.h");
    GetAllStrExpressions()["CurrentSceneName"].SetFunctionName("GetSceneName").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllConditions()["DepartScene"].SetFunctionName("SceneJustBegins").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["Scene"].SetFunctionName("ReplaceScene").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["PushScene"].SetFunctionName("PushScene").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["PopScene"].SetFunctionName("PopScene").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["Quit"].SetFunctionName("StopGame").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["SceneBackground"].SetFunctionName("ChangeSceneBackground").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");
    GetAllActions()["DisableInputWhenFocusIsLost"].SetFunctionName("DisableInputWhenFocusIsLost").SetIncludeFile("GDCpp/Extensions/Builtin/RuntimeSceneTools.h");

    GetAllConditions()["Egal"].codeExtraInformation
        .SetCustomCodeGenerator([](gd::Instruction & instruction, gd::EventsCodeGenerator & codeGenerator, gd::EventsCodeGenerationContext & context) {
            gd::String value1Code;
            {
                gd::CallbacksForGeneratingExpressionCode callbacks(value1Code, codeGenerator, context);
                gd::ExpressionParser parser(instruction.GetParameters()[0].GetPlainString());
                if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || value1Code.empty()) value1Code = "0";
            }

            gd::String value2Code;
            {
                gd::CallbacksForGeneratingExpressionCode callbacks(value2Code, codeGenerator, context);
                gd::ExpressionParser parser(instruction.GetParameters()[2].GetPlainString());
                if (!parser.ParseMathExpression(codeGenerator.GetPlatform(), codeGenerator.GetProject(), codeGenerator.GetLayout(), callbacks) || value2Code.empty()) value2Code = "0";
            }

            if ( instruction.GetParameters()[1].GetPlainString() == "=" || instruction.GetParameters()[1].GetPlainString().empty() )
                return "conditionTrue = ("+value1Code+" == "+value2Code+");\n";
            else if ( instruction.GetParameters()[1].GetPlainString() == ">")
                return "conditionTrue = ("+value1Code+" > "+value2Code+");\n";
            else if ( instruction.GetParameters()[1].GetPlainString() == "<")
                return "conditionTrue = ("+value1Code+" < "+value2Code+");\n";
            else if ( instruction.GetParameters()[1].GetPlainString() == "<=")
                return "conditionTrue = ("+value1Code+" <= "+value2Code+");\n";
            else if ( instruction.GetParameters()[1].GetPlainString() == ">=")
                return "conditionTrue = ("+value1Code+" >= "+value2Code+");\n";
            else if ( instruction.GetParameters()[1].GetPlainString() == "!=")
                return "conditionTrue = ("+value1Code+" != "+value2Code+");\n";

            return gd::String("");
        });
    #endif
}
示例#17
0
// CAPPFIX_WEB_HTML5: Request Animation Frame
void ScriptedAnimationController::serviceScriptedAnimations(DOMTimeStamp time)
{
    if (!m_callbacks.size() || m_suspendCount)
        return;

    // First, generate a list of callbacks to consider.  Callbacks registered from this point
    // on are considered only for the "next" frame, not this one.
    CallbackList callbacks(m_callbacks);

    // Invoking callbacks may detach elements from our document, which clears the document's
    // reference to us, so take a defensive reference.
    RefPtr<ScriptedAnimationController> protector(this);

    for (size_t i = 0; i < callbacks.size(); ++i) {
        RequestAnimationFrameCallback* callback = callbacks[i].get();
        if (!callback->m_firedOrCancelled) {
            callback->m_firedOrCancelled = true;
            callback->handleEvent(time);
         }
    }

    // Remove any callbacks we fired from the list of pending callbacks.
    for (size_t i = 0; i < m_callbacks.size();) {
        if (m_callbacks[i]->m_firedOrCancelled)
            m_callbacks.remove(i);
        else
            ++i;
    }

    if (m_callbacks.size())
        scheduleAnimation();
}
示例#18
0
void DOMFileSystemBase::copy(const EntryBase* source,
                             EntryBase* parent,
                             const String& newName,
                             EntryCallback* successCallback,
                             ErrorCallbackBase* errorCallback,
                             SynchronousType synchronousType) {
  if (!fileSystem()) {
    reportError(errorCallback, FileError::kAbortErr);
    return;
  }

  String destinationPath;
  if (!verifyAndGetDestinationPathForCopyOrMove(source, parent, newName,
                                                destinationPath)) {
    reportError(errorCallback, FileError::kInvalidModificationErr);
    return;
  }

  std::unique_ptr<AsyncFileSystemCallbacks> callbacks(EntryCallbacks::create(
      successCallback, errorCallback, m_context, parent->filesystem(),
      destinationPath, source->isDirectory()));
  callbacks->setShouldBlockUntilCompletion(synchronousType == Synchronous);

  fileSystem()->copy(createFileSystemURL(source),
                     parent->filesystem()->createFileSystemURL(destinationPath),
                     std::move(callbacks));
}
示例#19
0
void File_Browser::type_update()
{
    //DJV_DEBUG("File_Browser::type_update");

    callbacks(false);

    //! \todo What about image save plugins?

    const List<Plugin *> & plugins =
        Image_Load_Factory::global()->plugins();

    _type_glob  = glob      (plugins);
    _type_label = glob_label(plugins);

    callbacks(true);
}
示例#20
0
inline windows_named_mutex::windows_named_mutex
   (open_or_create_t, const char *name, const permissions &perm)
   : m_mtx_wrapper()
{
   named_mut_callbacks callbacks(m_mtx_wrapper);
   m_named_sync.open_or_create(DoOpenOrCreate, name, perm, callbacks);
}
示例#21
0
void DOMFileSystemBase::getDirectory(const EntryBase* entry,
                                     const String& path,
                                     const FileSystemFlags& flags,
                                     EntryCallback* successCallback,
                                     ErrorCallbackBase* errorCallback,
                                     SynchronousType synchronousType) {
  if (!fileSystem()) {
    reportError(errorCallback, FileError::kAbortErr);
    return;
  }

  String absolutePath;
  if (!pathToAbsolutePath(m_type, entry, path, absolutePath)) {
    reportError(errorCallback, FileError::kInvalidModificationErr);
    return;
  }

  std::unique_ptr<AsyncFileSystemCallbacks> callbacks(EntryCallbacks::create(
      successCallback, errorCallback, m_context, this, absolutePath, true));
  callbacks->setShouldBlockUntilCompletion(synchronousType == Synchronous);

  if (flags.createFlag())
    fileSystem()->createDirectory(createFileSystemURL(absolutePath),
                                  flags.exclusive(), std::move(callbacks));
  else
    fileSystem()->directoryExists(createFileSystemURL(absolutePath),
                                  std::move(callbacks));
}
示例#22
0
inline windows_named_semaphore::windows_named_semaphore
   (open_or_create_t, const char *name, unsigned int initial_count, const permissions &perm)
   : m_sem_wrapper()
{
   named_sem_callbacks callbacks(m_sem_wrapper, initial_count);
   m_named_sync.open_or_create(DoOpenOrCreate, name, perm, callbacks);
}
void JamomaExpressionComposition::firstResultCallback(bool first_result)
{
  bool result = do_evaluation(first_result, mSecondExpression->evaluate());
  
  for (auto callback : callbacks())
    callback(result);
}
void JamomaExpressionComposition::secondResultCallback(bool second_result)
{
  bool result = do_evaluation(mFirstExpression->evaluate(), second_result);
  
  for (auto callback : callbacks())
    callback(result);
}
示例#25
0
void ScriptedAnimationController::serviceScriptedAnimations(DOMTimeStamp time)
{
    if (!m_callbacks.size() || m_suspendCount)
        return;
    // We want to run the callback for all elements in the document that have registered
    // for a callback and that are visible.  Running the callbacks can cause new callbacks
    // to be registered, existing callbacks to be cancelled, and elements to gain or lose
    // visibility so this code has to iterate carefully.

    // FIXME: Currently, this code doesn't do any visibility tests beyond checking display:

    // First, generate a list of callbacks to consider.  Callbacks registered from this point
    // on are considered only for the "next" frame, not this one.
    CallbackList callbacks(m_callbacks);

    // Firing the callback may cause the visibility of other elements to change.  To avoid
    // missing any callbacks, we keep iterating through the list of candiate callbacks and firing
    // them until nothing new becomes visible.
    bool firedCallback;

    // Invoking callbacks may detach elements from our document, which clear's the document's
    // reference to us, so take a defensive reference.
    RefPtr<ScriptedAnimationController> protector(this);
    do {
        firedCallback = false;
        // A previous iteration may have detached this Document from the DOM tree.
        // If so, then we do not need to process any more callbacks.
        if (!m_document)
            continue;

        // A previous iteration may have invalidated style (or layout).  Update styles for each iteration
        // for now since all we check is the existence of a renderer.
        m_document->updateStyleIfNeeded();
        for (size_t i = 0; i < callbacks.size(); ++i) {
            RequestAnimationFrameCallback* callback = callbacks[i].get();
            if (!callback->m_firedOrCancelled && (!callback->m_element || callback->m_element->renderer())) {
                callback->m_firedOrCancelled = true;
                InspectorInstrumentationCookie cookie = InspectorInstrumentation::willFireAnimationFrame(m_document, callback->m_id);
                callback->handleEvent(time);
                InspectorInstrumentation::didFireAnimationFrame(cookie);
                firedCallback = true;
                callbacks.remove(i);
                break;
            }
        }
    } while (firedCallback);

    // Remove any callbacks we fired from the list of pending callbacks.
    for (size_t i = 0; i < m_callbacks.size();) {
        if (m_callbacks[i]->m_firedOrCancelled)
            m_callbacks.remove(i);
        else
            ++i;
    }

    if (m_callbacks.size())
        scheduleAnimation();
}
void IDBFactoryBackendProxy::deleteDatabase(const String& name, PassRefPtr<IDBCallbacks> prpCallbacks, const String& databaseIdentifier, ExecutionContext* context)
{
    RefPtr<IDBCallbacks> callbacks(prpCallbacks);
    WebSecurityOrigin origin(context->securityOrigin());
    if (!allowIndexedDB(context, name, origin, callbacks))
        return;

    m_webIDBFactory->deleteDatabase(name, new WebIDBCallbacksImpl(callbacks), databaseIdentifier);
}
void IDBFactoryBackendProxy::getDatabaseNames(PassRefPtr<IDBCallbacks> prpCallbacks, const String& databaseIdentifier, ExecutionContext* context)
{
    RefPtr<IDBCallbacks> callbacks(prpCallbacks);
    WebSecurityOrigin origin(context->securityOrigin());
    if (!allowIndexedDB(context, "Database Listing", origin, callbacks))
        return;

    m_webIDBFactory->getDatabaseNames(new WebIDBCallbacksImpl(callbacks), databaseIdentifier);
}
示例#28
0
    virtual bool OnSubTextExpression(const gd::Platform & platform, const gd::Project & project, const gd::Layout & layout, gd::Expression & expression)
    {
        CallbacksForSearchingVariable callbacks(results, parameterType, objectName);

        gd::ExpressionParser parser(expression.GetPlainString());
        parser.ParseStringExpression(platform, project, layout, callbacks);

        return true;
    }
void IDBFactoryBackendProxy::open(const String& name, int64_t version, int64_t transactionId, PassRefPtr<IDBCallbacks> prpCallbacks, PassRefPtr<IDBDatabaseCallbacks> prpDatabaseCallbacks, const String& databaseIdentifier, ExecutionContext* context)
{
    RefPtr<IDBCallbacks> callbacks(prpCallbacks);
    RefPtr<IDBDatabaseCallbacks> databaseCallbacks(prpDatabaseCallbacks);
    WebSecurityOrigin origin(context->securityOrigin());
    if (!allowIndexedDB(context, name, origin, callbacks))
        return;

    m_webIDBFactory->open(name, version, transactionId, new WebIDBCallbacksImpl(callbacks), new WebIDBDatabaseCallbacksImpl(databaseCallbacks), databaseIdentifier);
}
示例#30
0
void Save_Widget::widget_update()
{
    callbacks(false);

    try
    {
        if (_plugin)
        {
            String tmp;
            tmp = _plugin->option(_plugin->options()[Save::COMPRESSION_OPTION]);
            tmp >> _options.compression;
        }
    }
    catch (String) {}

    _compression_widget->set(_options.compression);

    callbacks(true);
}