Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
143
Src/Wasabi/api/wnd/wndclass/embeddedxui.cpp
Normal file
143
Src/Wasabi/api/wnd/wndclass/embeddedxui.cpp
Normal file
|
@ -0,0 +1,143 @@
|
|||
#include "precomp.h"
|
||||
#include "embeddedxui.h"
|
||||
|
||||
EmbeddedXuiObject::EmbeddedXuiObject() {
|
||||
embedded = NULL;
|
||||
myxuihandle = newXuiHandle();
|
||||
getScriptObject()->vcpu_setInterface(embeddedXuiGuid, (void *)static_cast<EmbeddedXuiObject *>(this));
|
||||
getScriptObject()->vcpu_setClassName(L"ObjectEmbedded"); // this is the script class name
|
||||
getScriptObject()->vcpu_setController(embeddedXuiController);
|
||||
}
|
||||
|
||||
EmbeddedXuiObject::~EmbeddedXuiObject() {
|
||||
paramlist.deleteAll();
|
||||
}
|
||||
|
||||
void EmbeddedXuiObject::onNewContent() {
|
||||
embeddedxui_onNewEmbeddedContent();
|
||||
}
|
||||
|
||||
void EmbeddedXuiObject::embeddedxui_onNewEmbeddedContent() {
|
||||
embedded = NULL;
|
||||
const wchar_t *id = embeddedxui_getEmbeddedObjectId();
|
||||
if (id != NULL && *id) {
|
||||
GuiObject *myself = getGuiObject();
|
||||
embedded = myself->guiobject_findObject(id);
|
||||
if (embedded != NULL && embedded != myself) {
|
||||
foreach(paramlist)
|
||||
EmbeddedXuiObjectParam *p = paramlist.getfor();
|
||||
embedded->guiobject_setXmlParam(p->param, p->value);
|
||||
endfor;
|
||||
#ifdef WASABI_COMPILE_CONFIG
|
||||
syncCfgAttrib();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int EmbeddedXuiObject::onUnknownXuiParam(const wchar_t *xmlattributename, const wchar_t *value) {
|
||||
int r = EMBEDDEDXUIOBJECT_PARENT::onUnknownXuiParam(xmlattributename, value);
|
||||
paramlist.addItem(new EmbeddedXuiObjectParam(xmlattributename, value));
|
||||
if (embedded)
|
||||
r = embedded->guiobject_setXmlParam(xmlattributename, value);
|
||||
return r;
|
||||
}
|
||||
|
||||
int EmbeddedXuiObject::onInit()
|
||||
{
|
||||
int r = EMBEDDEDXUIOBJECT_PARENT::onInit();
|
||||
const wchar_t *id = embeddedxui_getContentId();
|
||||
if (id != NULL && *id)
|
||||
setContent(id);
|
||||
return r;
|
||||
}
|
||||
|
||||
#ifdef WASABI_COMPILE_CONFIG
|
||||
int EmbeddedXuiObject::onReloadConfig() {
|
||||
int r = EMBEDDEDXUIOBJECT_PARENT::onReloadConfig();
|
||||
syncCfgAttrib();
|
||||
return r;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WASABI_COMPILE_CONFIG
|
||||
void EmbeddedXuiObject::syncCfgAttrib()
|
||||
{
|
||||
if (embedded == NULL) return;
|
||||
CfgItem *item = getGuiObject()->guiobject_getCfgItem();
|
||||
const wchar_t *attrib = getGuiObject()->guiobject_getCfgAttrib();
|
||||
if (item != embedded->guiobject_getCfgItem() ||
|
||||
attrib != embedded->guiobject_getCfgAttrib()) {
|
||||
embedded->guiobject_setCfgAttrib(item, attrib);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
// Script Object
|
||||
|
||||
EmbeddedXuiScriptController _embeddedXuiController;
|
||||
EmbeddedXuiScriptController *embeddedXuiController = &_embeddedXuiController;
|
||||
|
||||
// -- Functions table -------------------------------------
|
||||
function_descriptor_struct EmbeddedXuiScriptController::exportedFunction[] = {
|
||||
{L"getEmbeddedObject", 0, (void*)EmbeddedXuiScriptController::EmbeddedXui_getEmbeddedObject},
|
||||
};
|
||||
|
||||
ScriptObject *EmbeddedXuiScriptController::instantiate() {
|
||||
EmbeddedXuiObject *ex = new EmbeddedXuiObject;
|
||||
ASSERT(ex != NULL);
|
||||
return ex->getScriptObject();
|
||||
}
|
||||
|
||||
void EmbeddedXuiScriptController::destroy(ScriptObject *o) {
|
||||
EmbeddedXuiObject *ex= static_cast<EmbeddedXuiObject *>(o->vcpu_getInterface(embeddedXuiGuid));
|
||||
ASSERT(ex != NULL);
|
||||
delete ex;
|
||||
}
|
||||
|
||||
void *EmbeddedXuiScriptController::encapsulate(ScriptObject *o) {
|
||||
return NULL; // no encapsulation for DropDownlist yet
|
||||
}
|
||||
|
||||
void EmbeddedXuiScriptController::deencapsulate(void *o) {
|
||||
}
|
||||
|
||||
int EmbeddedXuiScriptController::getNumFunctions() {
|
||||
return sizeof(exportedFunction) / sizeof(function_descriptor_struct);
|
||||
}
|
||||
|
||||
const function_descriptor_struct *EmbeddedXuiScriptController::getExportedFunctions() {
|
||||
return exportedFunction;
|
||||
}
|
||||
|
||||
|
||||
scriptVar EmbeddedXuiScriptController::EmbeddedXui_getEmbeddedObject(SCRIPT_FUNCTION_PARAMS, ScriptObject *o) {
|
||||
SCRIPT_FUNCTION_INIT
|
||||
EmbeddedXuiObject *ex = static_cast<EmbeddedXuiObject*>(o->vcpu_getInterface(embeddedXuiGuid));
|
||||
ScriptObject *_o = NULL;
|
||||
if (ex) {
|
||||
GuiObject *go = ex->embeddedxui_getEmbeddedObject();
|
||||
if (go != NULL)
|
||||
_o = go->guiobject_getScriptObject();
|
||||
}
|
||||
return MAKE_SCRIPT_OBJECT(_o);
|
||||
}
|
||||
|
||||
ScriptObject *EmbeddedXuiScriptController::cast(ScriptObject *o, GUID g) {
|
||||
EmbeddedXuiObject *exo = static_cast<EmbeddedXuiObject *>(o->vcpu_getInterface(embeddedXuiGuid));
|
||||
if (!exo) return NULL;
|
||||
GuiObject *go = exo->embeddedxui_getEmbeddedObject();
|
||||
if (go != NULL) {
|
||||
ScriptObject *eo = go->guiobject_getScriptObject();
|
||||
if (eo != NULL) {
|
||||
void *i = eo->vcpu_getInterface(g);
|
||||
if (i != NULL)
|
||||
return eo;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
ScriptObjectController *EmbeddedXuiScriptController::getAncestorController() { return WASABI_API_MAKI->maki_getController(guiObjectGuid); }
|
Loading…
Add table
Add a link
Reference in a new issue