Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module test2;
- import std.stdio;
- import std.string,
- std.conv;
- import gtkc.gobject,
- gtkc.gobjecttypes;
- import ccb.SharedLibrary;
- enum ClutterInitError {
- SUCCESS = 1,
- UNKNOWN = 0,
- THREADS = -1,
- BACKEND = -2,
- INTERNAL = -3
- }
- struct ClutterActor { uint flags; }
- struct ClutterStage {}
- struct ClutterContainer {}
- struct ClutterColor { ubyte red, green, blue, alpha; }
- char* cstring(string s) { return cast(char*)toStringz(s); }
- void main(string[] args)
- {
- auto clutter = new SharedLibrary("libclutter-glx-1.0.so", RTLD_NOW | RTLD_GLOBAL);
- auto clutter_init = clutter.getSymbol!(ClutterInitError function(int*, char***))("clutter_init");
- auto clutter_main = clutter.getSymbol!(void function())("clutter_main");
- auto clutter_main_quit = clutter.getSymbol!(void function())("clutter_main_quit");
- auto clutter_stage_get_default = clutter.getSymbol!(ClutterActor* function())("clutter_stage_get_default");
- auto clutter_actor_set_size = clutter.getSymbol!(void function(ClutterActor*, float, float))("clutter_actor_set_size");
- auto clutter_actor_show_all = clutter.getSymbol!(void function(ClutterActor*))("clutter_actor_show_all");
- auto clutter_text_new_full = clutter.getSymbol!(ClutterActor* function(char*, char*, ClutterColor*))("clutter_text_new_full");
- auto clutter_container_add_actor = clutter.getSymbol!(void function(ClutterContainer*, ClutterActor*))("clutter_container_add_actor");
- auto err = clutter_init(null, null);
- writeln(to!string(err));
- if (err != ClutterInitError.SUCCESS)
- return;
- ClutterActor* stage;
- ClutterActor* textbox;
- ClutterColor txtColor = { 0, 0, 100, 255};
- stage = clutter_stage_get_default();
- clutter_actor_set_size(stage, 400, 400);
- textbox = clutter_text_new_full(cstring("Sans 24"), cstring("Hello, world"), &txtColor);
- clutter_container_add_actor(cast(ClutterContainer*)stage, textbox);
- clutter_actor_show_all(stage);
- g_signal_connect_object(stage, cstring("key-press-event"),
- cast(GCallback)clutter_main_quit, null, cast(GConnectFlags)0);
- clutter_main();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement