mirror of
https://github.com/MeexReay/bRAC.git
synced 2025-05-06 05:28:02 +03:00
fix some windows gtk stuff
This commit is contained in:
parent
701591e5be
commit
5508d22608
@ -9,25 +9,13 @@ use colored::{Color, Colorize};
|
|||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
use gtk4::{
|
use gtk4::{
|
||||||
self as gtk,
|
self as gtk, gdk::{Cursor, Display, Texture}, gdk_pixbuf::{Pixbuf, PixbufAnimation, PixbufLoader}, gio::{
|
||||||
Align, Box as GtkBox, Label, ScrolledWindow,
|
|
||||||
AboutDialog, AlertDialog, Calendar, CssProvider,
|
|
||||||
Entry, Fixed, Orientation, Overlay, Picture,
|
|
||||||
Application, ApplicationWindow, Button,
|
|
||||||
Justification, ListBox, pango::WrapMode,
|
|
||||||
prelude::*,
|
|
||||||
gdk_pixbuf::{Pixbuf, PixbufAnimation, PixbufLoader},
|
|
||||||
gdk::{Cursor, Display, Texture},
|
|
||||||
gio::{
|
|
||||||
self, ActionEntry, ApplicationFlags,
|
self, ActionEntry, ApplicationFlags,
|
||||||
MemoryInputStream, Menu
|
MemoryInputStream, Menu
|
||||||
},
|
}, glib::{
|
||||||
glib::{
|
self, clone, clone::Downgrade, idle_add_local, idle_add_local_once, source::timeout_add_local_once, timeout_add_local, ControlFlow
|
||||||
self, timeout_add_local, clone,
|
}, pango::WrapMode, prelude::*, AboutDialog, AlertDialog, Align, Application, ApplicationWindow, Box as GtkBox,
|
||||||
idle_add_local, idle_add_local_once,
|
Button, Calendar, CssProvider, Entry, Fixed, Justification, Label, ListBox, Orientation, Overlay, Picture, ScrolledWindow, Settings
|
||||||
clone::Downgrade, ControlFlow,
|
|
||||||
source::timeout_add_local_once
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::config::Context;
|
use crate::config::Context;
|
||||||
@ -203,6 +191,8 @@ fn build_menu(_: Arc<Context>, app: &Application) {
|
|||||||
fn build_ui(ctx: Arc<Context>, app: &Application) -> UiModel {
|
fn build_ui(ctx: Arc<Context>, app: &Application) -> UiModel {
|
||||||
let main_box = GtkBox::new(Orientation::Vertical, 5);
|
let main_box = GtkBox::new(Orientation::Vertical, 5);
|
||||||
|
|
||||||
|
main_box.set_css_classes(&["main-box"]);
|
||||||
|
|
||||||
let widget_box_overlay = Overlay::new();
|
let widget_box_overlay = Overlay::new();
|
||||||
|
|
||||||
let widget_box = GtkBox::new(Orientation::Horizontal, 5);
|
let widget_box = GtkBox::new(Orientation::Horizontal, 5);
|
||||||
@ -287,6 +277,8 @@ fn build_ui(ctx: Arc<Context>, app: &Application) -> UiModel {
|
|||||||
|
|
||||||
let chat_box = GtkBox::new(Orientation::Vertical, 2);
|
let chat_box = GtkBox::new(Orientation::Vertical, 2);
|
||||||
|
|
||||||
|
chat_box.set_css_classes(&["chat-box"]);
|
||||||
|
|
||||||
let chat_scrolled = ScrolledWindow::builder()
|
let chat_scrolled = ScrolledWindow::builder()
|
||||||
.child(&chat_box)
|
.child(&chat_box)
|
||||||
.vexpand(true)
|
.vexpand(true)
|
||||||
@ -456,7 +448,22 @@ fn setup(ctx: Arc<Context>, ui: UiModel) {
|
|||||||
|
|
||||||
fn load_css() {
|
fn load_css() {
|
||||||
let provider = CssProvider::new();
|
let provider = CssProvider::new();
|
||||||
provider.load_from_data("
|
provider.load_from_data(&format!(
|
||||||
|
"{}\n{}",
|
||||||
|
if let Some(settings) = Settings::default() {
|
||||||
|
if settings.is_gtk_application_prefer_dark_theme() {
|
||||||
|
".message-content { color:rgb(255, 255, 255); }
|
||||||
|
.message-date { color:rgb(146, 146, 146); }
|
||||||
|
.message-ip { color:rgb(73, 73, 73); }"
|
||||||
|
} else {
|
||||||
|
".message-content { color:rgb(0, 0, 0); }
|
||||||
|
.message-date { color:rgb(41, 41, 41); }
|
||||||
|
.message-ip { color:rgb(88, 88, 88); }"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
""
|
||||||
|
},
|
||||||
|
"
|
||||||
.send-button, .send-text { border-radius: 0; }
|
.send-button, .send-text { border-radius: 0; }
|
||||||
.calendar {
|
.calendar {
|
||||||
transform: scale(0.6);
|
transform: scale(0.6);
|
||||||
@ -465,6 +472,7 @@ fn load_css() {
|
|||||||
.widget_box {
|
.widget_box {
|
||||||
box-shadow: 0 10px 10px rgba(0, 0, 0, 0.20);
|
box-shadow: 0 10px 10px rgba(0, 0, 0, 0.20);
|
||||||
border-bottom: 2px solid rgba(0, 0, 0, 0.20);
|
border-bottom: 2px solid rgba(0, 0, 0, 0.20);
|
||||||
|
min-height: 121px;
|
||||||
}
|
}
|
||||||
.time {
|
.time {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
@ -472,9 +480,6 @@ fn load_css() {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-content { color:rgb(255, 255, 255); }
|
|
||||||
.message-date { color:rgb(146, 146, 146); }
|
|
||||||
.message-ip { color:rgb(73, 73, 73); }
|
|
||||||
.message-name { font-weight: bold; }
|
.message-name { font-weight: bold; }
|
||||||
|
|
||||||
.message-name-black { color: #2E2E2E; }
|
.message-name-black { color: #2E2E2E; }
|
||||||
@ -493,17 +498,13 @@ fn load_css() {
|
|||||||
.message-name-bright-cyan { color: #00FFFF; }
|
.message-name-bright-cyan { color: #00FFFF; }
|
||||||
.message-name-white { color: #A9A9A9; }
|
.message-name-white { color: #A9A9A9; }
|
||||||
.message-name-bright-white { color: #FFFFFF; }
|
.message-name-bright-white { color: #FFFFFF; }
|
||||||
");
|
"));
|
||||||
|
|
||||||
gtk::style_context_add_provider_for_display(
|
gtk::style_context_add_provider_for_display(
|
||||||
&Display::default().expect("Could not connect to a display."),
|
&Display::default().expect("Could not connect to a display."),
|
||||||
&provider,
|
&provider,
|
||||||
gtk::STYLE_PROVIDER_PRIORITY_APPLICATION,
|
gtk::STYLE_PROVIDER_PRIORITY_APPLICATION,
|
||||||
);
|
);
|
||||||
|
|
||||||
if let Some(settings) = gtk::Settings::default() {
|
|
||||||
settings.set_gtk_application_prefer_dark_theme(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
|
fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
|
||||||
@ -608,7 +609,7 @@ fn on_add_message(ctx: Arc<Context>, ui: &UiModel, message: String) {
|
|||||||
pub fn run_main_loop(ctx: Arc<Context>) {
|
pub fn run_main_loop(ctx: Arc<Context>) {
|
||||||
let application = Application::builder()
|
let application = Application::builder()
|
||||||
.application_id("ru.themixray.bRAC")
|
.application_id("ru.themixray.bRAC")
|
||||||
.flags(ApplicationFlags::empty())
|
.flags(ApplicationFlags::FLAGS_NONE)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
application.connect_activate({
|
application.connect_activate({
|
||||||
|
Loading…
Reference in New Issue
Block a user