Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
172
Src/Wasabi/api/skin/widgets/sstatus.cpp
Normal file
172
Src/Wasabi/api/skin/widgets/sstatus.cpp
Normal file
|
@ -0,0 +1,172 @@
|
|||
#include <precomp.h>
|
||||
#include <api/wndmgr/layout.h>
|
||||
#include "sstatus.h"
|
||||
#include <api/core/api_core.h>
|
||||
|
||||
const wchar_t statusXuiStr[] = L"Status"; // This is the xml tag
|
||||
char statusXuiSvcName[] = "Status xui object"; // this is the name of the xuiservice
|
||||
XMLParamPair SStatus::params[] = {
|
||||
{SSTATUS_SETPLAYBITMAP, L"PLAYBITMAP"},
|
||||
{SSTATUS_SETSTOPBITMAP, L"STOPBITMAP"},
|
||||
{SSTATUS_SETPAUSEBITMAP, L"PAUSEBITMAP"},
|
||||
};
|
||||
|
||||
SStatus::SStatus() {
|
||||
getScriptObject()->vcpu_setInterface(statusGuid, (void *)static_cast<SStatus *>(this));
|
||||
getScriptObject()->vcpu_setClassName(L"Status");
|
||||
getScriptObject()->vcpu_setController(statusController);
|
||||
currentStatus = -666;
|
||||
xuihandle = newXuiHandle();
|
||||
CreateXMLParameters(xuihandle);
|
||||
|
||||
}
|
||||
|
||||
void SStatus::CreateXMLParameters(int master_handle)
|
||||
{
|
||||
//SSTATUS_PARENT::CreateXMLParameters(master_handle);
|
||||
int numParams = sizeof(params) / sizeof(params[0]);
|
||||
hintNumberOfParams(xuihandle, numParams);
|
||||
for (int i = 0;i < numParams;i++)
|
||||
addParam(xuihandle, params[i], XUI_ATTRIBUTE_IMPLIED);
|
||||
}
|
||||
|
||||
SStatus::~SStatus() {
|
||||
WASABI_API_MEDIACORE->core_delCallback(0, this);
|
||||
}
|
||||
|
||||
int SStatus::setXuiParam(int _xuihandle, int attrid, const wchar_t *name, const wchar_t *strval) {
|
||||
if (_xuihandle != xuihandle) return SSTATUS_PARENT::setXuiParam(_xuihandle, attrid, name, strval);
|
||||
switch (attrid) {
|
||||
case SSTATUS_SETPLAYBITMAP:
|
||||
setPlayBitmap(strval);
|
||||
break;
|
||||
case SSTATUS_SETSTOPBITMAP:
|
||||
setStopBitmap(strval);
|
||||
break;
|
||||
case SSTATUS_SETPAUSEBITMAP:
|
||||
setPauseBitmap(strval);
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int SStatus::getPreferences(int what) {
|
||||
if (what == SUGGESTED_W) return getWidth();
|
||||
if (what == SUGGESTED_H) return getHeight();
|
||||
return SSTATUS_PARENT::getPreferences(what);
|
||||
}
|
||||
|
||||
int SStatus::getWidth() {
|
||||
if (!playBitmap.getBitmap()) return 16;
|
||||
return playBitmap.getWidth();
|
||||
}
|
||||
|
||||
int SStatus::getHeight() {
|
||||
if (!playBitmap.getBitmap()) return 16;
|
||||
return playBitmap.getHeight();
|
||||
}
|
||||
|
||||
int SStatus::onInit() {
|
||||
SSTATUS_PARENT::onInit();
|
||||
WASABI_API_MEDIACORE->core_addCallback(0, this);
|
||||
currentStatus=WASABI_API_MEDIACORE->core_getStatus(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int SStatus::onPaint(Canvas *canvas) {
|
||||
PaintBltCanvas paintcanvas;
|
||||
if (canvas == NULL) {
|
||||
if (!paintcanvas.beginPaint(this)) return 0;
|
||||
canvas = &paintcanvas;
|
||||
}
|
||||
|
||||
SSTATUS_PARENT::onPaint(canvas);
|
||||
|
||||
RECT r;
|
||||
getClientRect(&r);
|
||||
|
||||
AutoSkinBitmap *rb = NULL;
|
||||
switch(currentStatus) {
|
||||
case -1: rb = &pauseBitmap; break;
|
||||
case 0: rb = &stopBitmap; break;
|
||||
case 1: rb = &playBitmap; break;
|
||||
}
|
||||
if (rb != NULL && rb->getBitmap() != NULL) rb->stretchToRect(canvas, &r);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int SStatus::corecb_onStarted() { currentStatus=1; invalidate(); return 0; }
|
||||
int SStatus::corecb_onStopped() { currentStatus=0; invalidate(); return 0; }
|
||||
int SStatus::corecb_onPaused() { currentStatus=-1; invalidate(); return 0; }
|
||||
int SStatus::corecb_onUnpaused() { currentStatus=1; invalidate(); return 0; }
|
||||
|
||||
void SStatus::setPlayBitmap(const wchar_t *name)
|
||||
{
|
||||
playBitmap=name;
|
||||
}
|
||||
|
||||
void SStatus::setPauseBitmap(const wchar_t *name) {
|
||||
pauseBitmap=name;
|
||||
}
|
||||
|
||||
void SStatus::setStopBitmap(const wchar_t *name) {
|
||||
stopBitmap=name;
|
||||
}
|
||||
|
||||
StatusScriptController _statusController;
|
||||
StatusScriptController *statusController=&_statusController;
|
||||
|
||||
// -- Functions table -------------------------------------
|
||||
function_descriptor_struct StatusScriptController::exportedFunction[] = {
|
||||
{L"fake", 0, (void*)SStatus::script_vcpu_fake },
|
||||
};
|
||||
|
||||
// --------------------------------------------------------
|
||||
|
||||
const wchar_t *StatusScriptController::getClassName() {
|
||||
return L"Status";
|
||||
}
|
||||
|
||||
const wchar_t *StatusScriptController::getAncestorClassName() {
|
||||
return L"GuiObject";
|
||||
}
|
||||
|
||||
ScriptObject *StatusScriptController::instantiate() {
|
||||
SStatus *st = new SStatus;
|
||||
ASSERT(st != NULL);
|
||||
return st->getScriptObject();
|
||||
}
|
||||
|
||||
void StatusScriptController::destroy(ScriptObject *o) {
|
||||
SStatus *st = static_cast<SStatus*>(o->vcpu_getInterface(statusGuid));
|
||||
ASSERT(st != NULL);
|
||||
delete st;
|
||||
}
|
||||
|
||||
void *StatusScriptController::encapsulate(ScriptObject *o) {
|
||||
return NULL; // no encapsulation for status yet
|
||||
}
|
||||
|
||||
void StatusScriptController::deencapsulate(void *o) {
|
||||
}
|
||||
|
||||
int StatusScriptController::getNumFunctions() {
|
||||
return sizeof(exportedFunction) / sizeof(function_descriptor_struct);
|
||||
}
|
||||
|
||||
const function_descriptor_struct *StatusScriptController::getExportedFunctions() {
|
||||
return exportedFunction;
|
||||
}
|
||||
|
||||
GUID StatusScriptController::getClassGuid() {
|
||||
return statusGuid;
|
||||
}
|
||||
|
||||
scriptVar SStatus::script_vcpu_fake(SCRIPT_FUNCTION_PARAMS, ScriptObject *o) {
|
||||
SCRIPT_FUNCTION_INIT
|
||||
RETURN_SCRIPT_VOID;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue