Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F10669723
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
View Options
diff --git a/src/window.vala b/src/window.vala
index 9bbe6f1..c5eea4b 100644
--- a/src/window.vala
+++ b/src/window.vala
@@ -1,37 +1,60 @@
public class WriteAs.MainWindow : Gtk.ApplicationWindow {
private Gtk.TextView canvas;
+ private bool dark_mode = false;
+
construct {
construct_toolbar();
canvas = new Gtk.TextView();
add(canvas);
}
public MainWindow(Gtk.Application app) {
set_application(app);
set_default_size(800, 600);
}
private void construct_toolbar() {
var header = new Gtk.HeaderBar();
header.title = "";
header.show_close_button = true;
set_titlebar(header);
var darkmode_button = new Gtk.ToggleButton();
// NOTE the fallback icon is a bit of a meaning stretch, but it works.
var icon_theme = Gtk.IconTheme.get_default();
darkmode_button.image = new Gtk.Image.from_icon_name(
icon_theme.has_icon("writeas-bright-dark") ?
"writeas-bright-dark" : "weather-clear-night",
Gtk.IconSize.SMALL_TOOLBAR);
darkmode_button.draw_indicator = false;
var settings = Gtk.Settings.get_default();
darkmode_button.toggled.connect(() => {
settings.gtk_application_prefer_dark_theme = darkmode_button.active;
+ dark_mode = darkmode_button.active;
+ adjust_text_style();
});
header.pack_end(darkmode_button);
}
+
+ private Gtk.CssProvider cur_styles = null;
+ private void adjust_text_style() {
+ try {
+ var styles = canvas.get_style_context();
+ if (cur_styles != null) styles.remove_provider(cur_styles);
+
+ var css = "";
+ if (dark_mode) {
+ css = "* {background: black; color: white;}";
+ }
+ cur_styles = new Gtk.CssProvider();
+ cur_styles.load_from_data(css);
+
+ styles.add_provider(cur_styles, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
+ } catch (Error e) {
+ warning(e.message);
+ }
+ }
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, May 16, 4:23 PM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3240206
Attached To
rWAGTK writeas-gtk
Event Timeline
Log In to Comment