//---------------------- Private ---------------------------------//
status_t
JoyWin::_AddToList(BListView *list, uint32 command, const char* rootPath,
	BEntry *rootEntry)
{
	BDirectory root;

	if ( rootEntry != NULL )
		root.SetTo( rootEntry );
	else if ( rootPath != NULL )
		root.SetTo( rootPath );
	else
		return B_ERROR;

	BEntry entry;
	while ((root.GetNextEntry(&entry)) > B_ERROR ) {
		if (entry.IsDirectory()) {
			_AddToList(list, command, rootPath, &entry);
		} else {
			BPath path;
			entry.GetPath(&path);
			BString str(path.Path());
			str.RemoveFirst(rootPath);
			list->AddItem(new PortItem(str.String()));
		}
	}
	return B_OK;
}
void VJSSharedWorkerClass::_Construct (VJSParms_construct &ioParms)
{
	if (!ioParms.CountParams()
	|| !ioParms.IsStringParam(1)
	|| (ioParms.CountParams() >= 2 && !ioParms.IsStringParam(2))) {
	
		XBOX::vThrowError(XBOX::VE_INVALID_PARAMETER);
		return;

	}

	XBOX::VJSContext	context(ioParms.GetContext());
	XBOX::VString		url, name;
	bool				reUseContext;
	VJSWorker			*outsideWorker;
	VJSWebWorkerObject	*workerProxy;	
#if USE_V8_ENGINE
	XBOX::VJSObject constructedObject = ioParms.fConstructedObject;
#else
	XBOX::VJSObject	constructedObject(context);
#endif


	ioParms.GetStringParam(1, url);
	if (ioParms.CountParams() == 2)

		ioParms.GetStringParam(2, name);

	outsideWorker = VJSWorker::RetainWorker(context);

	if (ioParms.CountParams() < 3 || !ioParms.IsBooleanParam(3) || !ioParms.GetBoolParam(3, &reUseContext))

		reUseContext = false;

	if ((workerProxy = VJSWebWorkerObject::_CreateWorker(context, outsideWorker, reUseContext, NULL, url, false, name)) != NULL) {

		constructedObject = VJSSharedWorkerClass::ConstructInstance(ioParms, workerProxy);
		workerProxy->fOnErrorPort->SetObject(outsideWorker, constructedObject);

		XBOX::VJSObject	messagePortObject(context);
		
		messagePortObject = VJSMessagePortClass::CreateInstance(context, workerProxy->fOnMessagePort);
		workerProxy->fOnMessagePort->SetObject(outsideWorker, messagePortObject);
		constructedObject.SetProperty("port", messagePortObject);

		_AddToList(context, "SharedWorker", constructedObject);

	}

	ioParms.ReturnConstructedObject(constructedObject);

	XBOX::ReleaseRefCountable<VJSWorker>(&outsideWorker);
}
Example #3
0
void
BDragger::AttachedToWindow()
{
	if (fIsZombie) {
		SetLowColor(kZombieColor);
		SetViewColor(kZombieColor);
	} else {
		SetLowColor(B_TRANSPARENT_COLOR);
		SetViewColor(B_TRANSPARENT_COLOR);
	}

	_DetermineRelationship();
	_AddToList();

	AddFilter(new DragTrackingFilter(this, kMsgDragStarted));
}
JoyWin::JoyWin(BRect frame, const char *title)
	: BWindow(frame, title, B_DOCUMENT_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL,
		B_NOT_ZOOMABLE), fSystemUsedSelect(false),
		fJoystick(new BJoystick)
{
	fProbeButton = new BButton(BRect(15.00, 260.00, 115.00, 285.00),
		"ProbeButton", "Probe", new BMessage(PROBE));

	fCalibrateButton = new BButton(BRect(270.00, 260.00, 370.00, 285.00),
		"CalibrateButton", "Calibrate", new BMessage(CALIBRATE));

	fGamePortL = new BListView(BRect(15.00, 30.00, 145.00, 250.00),
		"gamePort");
	fGamePortL->SetSelectionMessage(new BMessage(PORT_SELECTED));
	fGamePortL->SetInvocationMessage(new BMessage(PORT_INVOKE));

	fConControllerL = new BListView(BRect(175.00,30.00,370.00,250.00),
		"conController");
	fConControllerL->SetSelectionMessage(new BMessage(JOY_SELECTED));
	fConControllerL->SetInvocationMessage(new BMessage(JOY_INVOKE));

	fGamePortS = new BStringView(BRect(15, 5, 160, 25), "gpString",
		"Game port");
	fGamePortS->SetFont(be_bold_font);
	fConControllerS = new BStringView(BRect(170, 5, 330, 25), "ccString",
		"Connected controller");

	fConControllerS->SetFont(be_bold_font);

	fCheckbox = new BCheckBox(BRect(131.00, 260.00, 227.00, 280.00),
		"Disabled", "Disabled", new BMessage(DISABLEPORT));
	BBox *box = new BBox( Bounds(),"box", B_FOLLOW_ALL,
		B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE,
		B_PLAIN_BORDER);

	box->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));

	// Add listViews with their scrolls
	box->AddChild(new BScrollView("PortScroll", fGamePortL,
		B_FOLLOW_LEFT | B_FOLLOW_TOP_BOTTOM, B_WILL_DRAW, false, true));

	box->AddChild(new BScrollView("ConScroll", fConControllerL, B_FOLLOW_ALL,
		B_WILL_DRAW, false, true));

	// Adding object
	box->AddChild(fCheckbox);
	box->AddChild(fGamePortS);
	box->AddChild(fConControllerS);
	box->AddChild(fProbeButton);
	box->AddChild(fCalibrateButton);
	AddChild(box);

	SetSizeLimits(400, 600, Bounds().Height(), Bounds().Height());

	/* Add all the devices */
	int32 nr = fJoystick->CountDevices();
	for (int32 i = 0; i < nr;i++) {
		//BString str(path.Path());
		char buf[B_OS_NAME_LENGTH];
		fJoystick->GetDeviceName(i, buf, B_OS_NAME_LENGTH);
		fGamePortL->AddItem(new PortItem(buf));
	}
	fGamePortL->Select(0);

	/* Add the joysticks specifications */
	_AddToList(fConControllerL, JOY_SELECTED, JOYSTICKFILEPATH);

	_GetSettings();
}
void VJSDedicatedWorkerClass::_Construct (VJSParms_construct &ioParms)
{
	XBOX::VString		url;
	bool				reUseContext;
	XBOX::VJSObject		webSocket(ioParms.GetContext());
	bool				isOk;
	
	if (!ioParms.CountParams() || !ioParms.IsStringParam(1) || !ioParms.GetStringParam(1, url)) {

		XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_STRING, "1");
		isOk = false;

	} else {

		reUseContext = false;
		isOk = true;

	}

	if (isOk && ioParms.CountParams() >= 2) {

		if (ioParms.IsBooleanParam(2)) {

			if (!ioParms.GetBoolParam(2, &reUseContext)) {
				
				XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_BOOLEAN, "2");
				isOk = false;

			}

		} else if (!ioParms.GetParamObject(2, webSocket) || !webSocket.IsOfClass(VJSWebSocketClass::Class())) {

			XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER, "2");
			isOk = false;

		} else if (ioParms.CountParams() >= 3 
		&& !(ioParms.IsBooleanParam(3) && ioParms.GetBoolParam(3, &reUseContext))) {
			
			XBOX::vThrowError(XBOX::VE_JVSC_WRONG_PARAMETER_TYPE_BOOLEAN, "3");
			isOk = false;

		}

	}

	if (isOk) {

		VJSWorker			*outsideWorker;
		VJSWebWorkerObject	*workerProxy;
		XBOX::VJSContext	context(ioParms.GetContext());
#if USE_V8_ENGINE
		XBOX::VJSObject constructedObject = ioParms.fConstructedObject;
#else
		XBOX::VJSObject	constructedObject(context);
#endif
		VJSWebSocketObject	*webSocketObject;

		outsideWorker = VJSWorker::RetainWorker(context);
		xbox_assert(outsideWorker != NULL);

		if (!webSocket.HasRef()) 

			webSocketObject = NULL;

		else {

			webSocketObject = webSocket.GetPrivateData<VJSWebSocketClass>();
			xbox_assert(webSocketObject != NULL);

		}

		if ((workerProxy = VJSWebWorkerObject::_CreateWorker(context, outsideWorker, reUseContext, webSocketObject, url, true)) != NULL) {

			constructedObject = VJSDedicatedWorkerClass::ConstructInstance(ioParms, workerProxy);

			if (!webSocket.IsOfClass(VJSWebSocketClass::Class())) {

				workerProxy->fOnMessagePort->SetObject(outsideWorker, constructedObject);
				workerProxy->fOnErrorPort->SetObject(outsideWorker, constructedObject);

			}
			_AddToList(context, "Worker", constructedObject);

		}
		
		ioParms.ReturnConstructedObject(constructedObject);

		XBOX::ReleaseRefCountable<VJSWorker>(&outsideWorker);

	}
}