IGUIDocument* GUISystem::LoadDocument(const char* file, const char* id) { assert(m_pContext); // Check for an existing document with this ID Rocket::Core::ElementDocument* pExisting = m_pContext->GetDocument(id); Rocket::Core::ElementDocument* pED = m_pContext->LoadDocument(file); if (pED) { if (pExisting) { // Delete existing document now that new one has been successfully loaded pExisting->Hide(); m_pContext->UnloadDocument(pExisting); } pED->SetId(id); return InstanceDocument(pED, true); } return NULL; }
Handle<Value> EDHide(const Arguments& args) { Rocket::Core::ElementDocument* v = UnwrapElementDocument(args.This()); v->Hide(); return Undefined(); }
void Rocket_DocumentAction(const char* name, const char* action) { if (!Q_stricmp(action, "show") || !Q_stricmp(action, "open")) { Rocket::Core::ElementDocument* document = menuContext->GetDocument(name); if (document) { document->Show(); } } else if (!Q_stricmp("close", action)) { if (!*name) // If name is empty, hide active { if (menuContext->GetFocusElement() && menuContext->GetFocusElement()->GetOwnerDocument()) { menuContext->GetFocusElement()->GetOwnerDocument()->Close(); } return; } Rocket::Core::ElementDocument* document = menuContext->GetDocument(name); if (document) { document->Close(); } } else if (!Q_stricmp("goto", action)) { Rocket::Core::ElementDocument* document = menuContext->GetDocument(name); if (document) { Rocket::Core::ElementDocument* owner = menuContext->GetFocusElement()->GetOwnerDocument(); if (owner) { owner->Close(); } document->Show(); } } else if (!Q_stricmp("load", action)) { Rocket_LoadDocument(name); } else if (!Q_stricmp("blur", action) || !Q_stricmp("hide", action)) { Rocket::Core::ElementDocument* document = nullptr; if (!*name) // If name is empty, hide active { if (menuContext->GetFocusElement() && menuContext->GetFocusElement()->GetOwnerDocument()) { document = menuContext->GetFocusElement()->GetOwnerDocument(); } } else { document = menuContext->GetDocument(name); } if (document) { document->Hide(); } } else if (!Q_stricmp("blurall", action)) { for (int i = 0; i < menuContext->GetNumDocuments(); ++i) { menuContext->GetDocument(i)->Hide(); } } else if (!Q_stricmp("reload", action)) { Rocket::Core::ElementDocument* document = nullptr; if (!*name) // If name is empty, hide active { if (menuContext->GetFocusElement() && menuContext->GetFocusElement()->GetOwnerDocument()) { document = menuContext->GetFocusElement()->GetOwnerDocument(); } } else { document = menuContext->GetDocument(name); } if (document) { Rocket::Core::String url = document->GetSourceURL(); document->Close(); document = menuContext->LoadDocument(url); document->Show(); } } }