On Thursday, 16 June 2016 at 10:14:47 UTC, Basile B. wrote:

from args[0] you can get the base bath and since your css is relative to the base path:

    string cssPath = "test.css";
    CssProvider provider = new CssProvider();
    provider.loadFromPath(cssPath);


add something like

    import std.path;
    basePath = args[0].dirName;

    string cssPath = basePath ~ "\" ~ "test.css";

and you can remove all the stuff in the Run options.

But i don't call my CSS file in the main-function but instead i call it in the MainWindow:

import gtk.Main;
import gtk.MainWindow;
import gtk.CssProvider;
import gtk.Button;
import gdk.Display;
import gdk.Screen;
import gtk.StyleContext;
import glib.GException;

class Window : MainWindow{
    this(int width, int height, string title){
        super(title);
        setDefaultSize(width, height);
        Button btn = new Button("Test");
        btn.setName("CssName");

        string cssPath = "test.css";

        CssProvider provider = new CssProvider();
        provider.loadFromPath(cssPath);

        Display display = Display.getDefault();
        Screen screen = display.getDefaultScreen();
StyleContext.addProviderForScreen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);

        add(btn);
        showAll();
    }
}

void main(string[] args){
    Main.init(args);
    auto win = new Window(250,250,"Tutorial");
    Main.run();
}

Reply via email to