browser-window-c 0.0.3

FFI bindings for the browser-window crate.
Documentation
#include "../application.h"
#include "../common.h"

#include "impl.h"

#include <stdlib.h>



void bw_Application_free( bw_Application* app ) {
	free( app );
}

int bw_Application_run( bw_Application* app, bw_ApplicationReadyFn on_ready, void* user_data ) {
	bw_Application_assertCorrectThread( app );

	bw_ApplicationImpl_ReadyHandlerData ready_handler_data = {
		app,
		on_ready,
		user_data
	};

	return bw_ApplicationImpl_run( app, &ready_handler_data );
}

void bw_Application_finish( bw_Application* app ) {

	bw_ApplicationEngineImpl_finish( &app->engine_impl );
	bw_ApplicationImpl_finish( &app->impl );
}

bw_Application* bw_Application_initialize( int argc, char** argv, const bw_ApplicationSettings* settings ) {

	bw_Application* app = (bw_Application*)malloc( sizeof( bw_Application ) );
	app->windows_alive = 0;

	app->engine_impl = bw_ApplicationEngineImpl_initialize( app, argc, argv, settings );
	app->impl = bw_ApplicationImpl_initialize( app, argc, argv, settings );

	return app;
}

BOOL bw_Application_dispatch( bw_Application* app, bw_ApplicationDispatchFn func, void* data ) {

	bw_ApplicationDispatchData* dispatch_data = (bw_ApplicationDispatchData*)malloc( sizeof(bw_ApplicationDispatchData) );
	dispatch_data->func = func;
	dispatch_data->data = data;

	return bw_ApplicationImpl_dispatch( app, dispatch_data );
}