From cb83e30a76d76705c034541c0c1e9ef08b7b4946 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 9 Nov 2023 02:20:42 -0500 Subject: message input theme tweaking --- src/components/chatinput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/components/chatinput.cpp b/src/components/chatinput.cpp index c802413..af092e1 100644 --- a/src/components/chatinput.cpp +++ b/src/components/chatinput.cpp @@ -20,7 +20,7 @@ ChatInputText::ChatInputText() { m_textview.signal_key_press_event().connect(cb, false); m_textview.set_hexpand(false); m_textview.set_halign(Gtk::ALIGN_FILL); - m_textview.set_valign(Gtk::ALIGN_CENTER); + m_textview.set_valign(Gtk::ALIGN_FILL); m_textview.set_wrap_mode(Gtk::WRAP_WORD_CHAR); m_textview.show(); add(m_textview); -- cgit v1.2.3 From 5cca270eb1c627ae59cf294c9670d31b288b768c Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 9 Nov 2023 22:08:14 -0500 Subject: more making message input look better --- res/css/bare.css | 9 ++++--- src/components/chatinput.cpp | 59 ++++++++++---------------------------------- src/components/chatinput.hpp | 6 ++--- 3 files changed, 22 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/res/css/bare.css b/res/css/bare.css index ec5b9a1..595fd04 100644 --- a/res/css/bare.css +++ b/res/css/bare.css @@ -34,7 +34,10 @@ color: #FAA61A; } -/* make room for attachment icon */ -.message-input.with-browse-icon { - padding-left: 30px; +.message-input textview, .message-input textview text { + background-color: inherit; +} + +.message-input textview { + padding: 10px 5px; } diff --git a/src/components/chatinput.cpp b/src/components/chatinput.cpp index af092e1..b6beaa5 100644 --- a/src/components/chatinput.cpp +++ b/src/components/chatinput.cpp @@ -113,30 +113,25 @@ ChatInputTextContainer::ChatInputTextContainer() { }; m_input.signal_key_press_proxy().connect(cb); + m_upload_button.set_image(m_upload_img); + m_upload_button.set_halign(Gtk::ALIGN_CENTER); + m_upload_button.set_valign(Gtk::ALIGN_CENTER); + m_upload_button.get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); + m_upload_img.property_icon_name() = "document-send-symbolic"; m_upload_img.property_icon_size() = Gtk::ICON_SIZE_LARGE_TOOLBAR; m_upload_img.get_style_context()->add_class("message-input-browse-icon"); - AddPointerCursor(m_upload_ev); - - m_upload_ev.signal_button_press_event().connect([this](GdkEventButton *ev) -> bool { - if (ev->button == GDK_BUTTON_PRIMARY) { - ShowFileChooser(); - // return focus - m_input.grab_focus(); - return true; - } - return false; + m_upload_button.signal_clicked().connect([this]() { + ShowFileChooser(); + m_input.grab_focus(); }); - m_upload_ev.add(m_upload_img); - add_overlay(m_upload_ev); - add(m_input); + m_upload_box.pack_start(m_upload_button); + pack_start(m_upload_box, false, false); + pack_start(m_input); show_all_children(); - - // stop the overlay from using (start) padding - signal_get_child_position().connect(sigc::mem_fun(*this, &ChatInputTextContainer::GetChildPosition), false); } void ChatInputTextContainer::ShowFileChooser() { @@ -160,39 +155,11 @@ ChatInputText &ChatInputTextContainer::Get() { } void ChatInputTextContainer::ShowChooserIcon() { - m_upload_ev.show(); + m_upload_button.show(); } void ChatInputTextContainer::HideChooserIcon() { - m_upload_ev.hide(); -} - -bool ChatInputTextContainer::GetChildPosition(Gtk::Widget *child, Gdk::Rectangle &pos) { - Gtk::Allocation main_alloc; - { - auto *grandchild = m_input.get_child(); - int x, y; - if (grandchild->translate_coordinates(m_input, 0, 0, x, y)) { - main_alloc.set_x(x); - main_alloc.set_y(y); - } else { - main_alloc.set_x(0); - main_alloc.set_y(0); - } - main_alloc.set_width(grandchild->get_allocated_width()); - main_alloc.set_height(grandchild->get_allocated_height()); - } - - Gtk::Requisition min, req; - child->get_preferred_size(min, req); - - // let css move it around - pos.set_x(0); - pos.set_y(0); - pos.set_width(std::max(min.width, std::min(main_alloc.get_width(), req.width))); - pos.set_height(std::max(min.height, std::min(main_alloc.get_height(), req.height))); - - return true; + m_upload_button.hide(); } ChatInputTextContainer::type_signal_add_attachment ChatInputTextContainer::signal_add_attachment() { diff --git a/src/components/chatinput.hpp b/src/components/chatinput.hpp index a3c9742..7ee3921 100644 --- a/src/components/chatinput.hpp +++ b/src/components/chatinput.hpp @@ -98,7 +98,7 @@ private: }; // file upload, text -class ChatInputTextContainer : public Gtk::Overlay { +class ChatInputTextContainer : public Gtk::Box { public: ChatInputTextContainer(); @@ -110,9 +110,9 @@ public: private: void ShowFileChooser(); - bool GetChildPosition(Gtk::Widget *child, Gdk::Rectangle &pos); - Gtk::EventBox m_upload_ev; + Gtk::Box m_upload_box; + Gtk::Button m_upload_button; Gtk::Image m_upload_img; ChatInputText m_input; -- cgit v1.2.3 From 3ab6055898c2d6b2809b62ebf6a174f35352c204 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 17 Nov 2023 01:49:30 -0500 Subject: disable foreground set on channel renderer, get rid of stray property_sensitive=false --- src/components/channelscellrenderer.cpp | 41 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index ac98512..c344bb1 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -243,12 +243,12 @@ void CellRendererChannels::render_vfunc_folder(const Cairo::RefPtr(text_h)); static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelColor); - m_renderer_text.property_foreground_rgba() = color; + // m_renderer_text.property_foreground_rgba() = color; m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); const bool hover_only = Abaddon::Get().GetSettings().AnimatedGuildHoverOnly; @@ -465,15 +465,15 @@ void CellRendererChannels::render_vfunc_category(const Cairo::RefPtr 0) { AddUnreadIndicator(cr, background_area); } - m_renderer_text.property_foreground_rgba() = color; + // m_renderer_text.property_foreground_rgba() = color; } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); - m_renderer_text.property_foreground_set() = false; + // m_renderer_text.property_foreground_set() = false; } // text channel @@ -511,22 +511,21 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtr & muted.set_red(muted.get_red() * 0.5); muted.set_green(muted.get_green() * 0.5); muted.set_blue(muted.get_blue() * 0.5); - m_renderer_text.property_foreground_rgba() = muted; + // m_renderer_text.property_foreground_rgba() = muted; } else { - m_renderer_text.property_foreground_rgba() = color; + // m_renderer_text.property_foreground_rgba() = color; } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); - m_renderer_text.property_foreground_set() = false; + // m_renderer_text.property_foreground_set() = false; Gdk::Cairo::set_source_pixbuf(cr, m_property_pixbuf.get_value(), icon_x, icon_y); cr->rectangle(icon_x, icon_y, icon_w, icon_h); -- cgit v1.2.3 From 2b8fc6a495703ba5a3b8d2db2451fd047b34b819 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 18 Nov 2023 19:38:54 -0500 Subject: dim channel color on mute by alpha --- src/components/channelscellrenderer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index c344bb1..52bc57e 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -523,7 +523,14 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtrget_color(Gtk::STATE_FLAG_NORMAL); + color.set_alpha(0.6); + m_renderer_text.property_foreground_rgba() = color; + } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); + m_renderer_text.property_foreground_set() = false; // unset foreground to default so properties dont bleed // m_renderer_text.property_foreground_set() = false; -- cgit v1.2.3 From 0ed683e1e26d13233c189a6d4cb5d7e5e41a93a8 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Wed, 22 Nov 2023 02:37:00 -0500 Subject: add labels to settings in voice window --- src/windows/voicewindow.cpp | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/windows/voicewindow.cpp b/src/windows/voicewindow.cpp index 16a9fed..74ce8f5 100644 --- a/src/windows/voicewindow.cpp +++ b/src/windows/voicewindow.cpp @@ -181,7 +181,7 @@ VoiceWindow::VoiceWindow(Snowflake channel_id) m_mix_mono.set_active(audio.GetMixMono()); m_mix_mono.signal_toggled().connect([this]() { - Abaddon::Get().GetAudio().SetMixMono(m_mix_mono.get_active()); + Abaddon::Get().GetAudio().SetMixMono(m_mix_mono.get_active()); }); auto *playback_renderer = Gtk::make_managed(); @@ -225,6 +225,28 @@ VoiceWindow::VoiceWindow(Snowflake channel_id) window->show(); }); + auto *sliders_container = Gtk::make_managed(); + auto *sliders_labels = Gtk::make_managed(); + auto *sliders_sliders = Gtk::make_managed(); + sliders_container->pack_start(*sliders_labels, false, true, 2); + sliders_container->pack_start(*sliders_sliders); + sliders_labels->pack_start(*Gtk::make_managed("Threshold", Gtk::ALIGN_END)); + sliders_labels->pack_start(*Gtk::make_managed("Gain", Gtk::ALIGN_END)); + sliders_sliders->pack_start(m_vad_param); + sliders_sliders->pack_start(m_capture_gain); + + auto *combos_container = Gtk::make_managed(); + auto *combos_labels = Gtk::make_managed(); + auto *combos_combos = Gtk::make_managed(); + combos_container->pack_start(*combos_labels, false, true, 2); + combos_container->pack_start(*combos_combos); + combos_labels->pack_start(*Gtk::make_managed("VAD Method", Gtk::ALIGN_END)); + combos_labels->pack_start(*Gtk::make_managed("Output Device", Gtk::ALIGN_END)); + combos_labels->pack_start(*Gtk::make_managed("Input Device", Gtk::ALIGN_END)); + combos_combos->pack_start(m_vad_combo); + combos_combos->pack_start(m_playback_combo); + combos_combos->pack_start(m_capture_combo); + m_scroll.add(m_user_list); m_controls.add(m_mute); m_controls.add(m_deafen); @@ -233,12 +255,9 @@ VoiceWindow::VoiceWindow(Snowflake channel_id) m_main.add(m_menu_bar); m_main.add(m_controls); m_main.add(m_vad_value); - m_main.add(m_vad_param); - m_main.add(m_capture_gain); + m_main.add(*sliders_container); m_main.add(m_scroll); - m_main.add(m_vad_combo); - m_main.add(m_playback_combo); - m_main.add(m_capture_combo); + m_main.add(*combos_container); add(m_main); show_all_children(); -- cgit v1.2.3 From f7f1788df9f8db0810f615b41f653110935fa5c2 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sun, 26 Nov 2023 17:51:41 -0500 Subject: add input settings label, tweak padding --- src/windows/voicewindow.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/windows/voicewindow.cpp b/src/windows/voicewindow.cpp index 74ce8f5..825681c 100644 --- a/src/windows/voicewindow.cpp +++ b/src/windows/voicewindow.cpp @@ -238,8 +238,8 @@ VoiceWindow::VoiceWindow(Snowflake channel_id) auto *combos_container = Gtk::make_managed(); auto *combos_labels = Gtk::make_managed(); auto *combos_combos = Gtk::make_managed(); - combos_container->pack_start(*combos_labels, false, true, 2); - combos_container->pack_start(*combos_combos); + combos_container->pack_start(*combos_labels, false, true, 6); + combos_container->pack_start(*combos_combos, Gtk::PACK_EXPAND_WIDGET, 6); combos_labels->pack_start(*Gtk::make_managed("VAD Method", Gtk::ALIGN_END)); combos_labels->pack_start(*Gtk::make_managed("Output Device", Gtk::ALIGN_END)); combos_labels->pack_start(*Gtk::make_managed("Input Device", Gtk::ALIGN_END)); @@ -252,12 +252,13 @@ VoiceWindow::VoiceWindow(Snowflake channel_id) m_controls.add(m_deafen); m_controls.add(m_noise_suppression); m_controls.add(m_mix_mono); - m_main.add(m_menu_bar); - m_main.add(m_controls); - m_main.add(m_vad_value); - m_main.add(*sliders_container); - m_main.add(m_scroll); - m_main.add(*combos_container); + m_main.pack_start(m_menu_bar); + m_main.pack_start(m_controls); + m_main.pack_start(m_vad_value); + m_main.pack_start(*Gtk::make_managed("Input Settings")); + m_main.pack_start(*sliders_container); + m_main.pack_start(m_scroll); + m_main.pack_start(*combos_container, Gtk::PACK_EXPAND_WIDGET, 2); add(m_main); show_all_children(); -- cgit v1.2.3 From c61feb9f010caa9536e318e2aedb3a4ed739a91d Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sun, 26 Nov 2023 19:46:02 -0500 Subject: code deduplication unread indicator --- src/components/channelscellrenderer.cpp | 42 ++++++++++++--------------------- 1 file changed, 15 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index 52bc57e..35c6137 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -7,6 +7,17 @@ constexpr static double M_PI = 3.14159265358979; constexpr static double M_PI_H = M_PI / 2.0; constexpr static double M_PI_3_2 = M_PI * 3.0 / 2.0; +void AddUnreadIndicator(const Cairo::RefPtr &cr, const Gdk::Rectangle &background_area) { + static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().UnreadIndicatorColor); + cr->set_source_rgb(color.get_red(), color.get_green(), color.get_blue()); + const auto x = background_area.get_x(); + const auto y = background_area.get_y(); + const auto w = background_area.get_width(); + const auto h = background_area.get_height(); + cr->rectangle(x, y, 3, h); + cr->fill(); +} + CellRendererChannels::CellRendererChannels() : Glib::ObjectBase(typeid(CellRendererChannels)) , Gtk::CellRenderer() @@ -373,14 +384,9 @@ void CellRendererChannels::render_vfunc_guild(const Cairo::RefPtrset_source_rgb(color.get_red(), color.get_green(), color.get_blue()); - const auto x = background_area.get_x(); - const auto y = background_area.get_y(); - const auto w = background_area.get_width(); - const auto h = background_area.get_height(); - cr->rectangle(x, y + h / 2.0 - 24.0 / 2.0, 3.0, 24.0); - cr->fill(); + auto area = background_area; + area.set_y(area.get_y() + area.get_height() / 2.0 - 24.0 / 2.0); + AddUnreadIndicator(cr, area); } if (total_mentions < 1) return; @@ -410,17 +416,6 @@ void CellRendererChannels::get_preferred_height_for_width_vfunc_category(Gtk::Wi m_renderer_text.get_preferred_height_for_width(widget, width, minimum_height, natural_height); } -void AddUnreadIndicator(const Cairo::RefPtr &cr, const Gdk::Rectangle &background_area) { - static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().UnreadIndicatorColor); - cr->set_source_rgb(color.get_red(), color.get_green(), color.get_blue()); - const auto x = background_area.get_x(); - const auto y = background_area.get_y(); - const auto w = background_area.get_width(); - const auto h = background_area.get_height(); - cr->rectangle(x, y, 3, h); - cr->fill(); -} - void CellRendererChannels::render_vfunc_category(const Cairo::RefPtr &cr, Gtk::Widget &widget, const Gdk::Rectangle &background_area, const Gdk::Rectangle &cell_area, Gtk::CellRendererState flags) { // todo: figure out how Gtk::Arrow is rendered because i like it better :^) constexpr static int len = 5; @@ -927,14 +922,7 @@ void CellRendererChannels::render_vfunc_dm(const Cairo::RefPtr & if (unread_state < 0) return; if (!is_muted) { - static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().UnreadIndicatorColor); - cr->set_source_rgb(color.get_red(), color.get_green(), color.get_blue()); - const auto x = background_area.get_x(); - const auto y = background_area.get_y(); - const auto w = background_area.get_width(); - const auto h = background_area.get_height(); - cr->rectangle(x, y, 3, h); - cr->fill(); + AddUnreadIndicator(cr, background_area); } } -- cgit v1.2.3 From 50d99de06076a0f3ccba5c12173ff5944ebea246 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 27 Nov 2023 02:48:34 -0500 Subject: change up set status dialog --- res/css/bare.css | 8 ++++++++ src/dialogs/setstatus.cpp | 41 ++++++++++++++++++++++++++++------------- src/dialogs/setstatus.hpp | 4 +--- 3 files changed, 37 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/res/css/bare.css b/res/css/bare.css index e3d1bb1..19c65f0 100644 --- a/res/css/bare.css +++ b/res/css/bare.css @@ -117,3 +117,11 @@ border: 1px solid #5865f2; background-color: rgba(89, 102, 242, 0.5); } + +.set-status-dialog .dialog-vbox { + padding: 5px; +} + +.set-status-dialog .dialog-action-area { + margin: 10px 5px 5px 5px; +} diff --git a/src/dialogs/setstatus.cpp b/src/dialogs/setstatus.cpp index 7a3a038..24f0b29 100644 --- a/src/dialogs/setstatus.cpp +++ b/src/dialogs/setstatus.cpp @@ -1,17 +1,31 @@ #include "setstatus.hpp" +static const std::array feelings = { + "wonderful", + "splendiferous", + "delicious", + "outstanding", + "amazing", + "great", + "marvelous", + "superb", + "out of this world", + "stupendous", + "tip-top", + "horrible", +}; + SetStatusDialog::SetStatusDialog(Gtk::Window &parent) : Gtk::Dialog("Set Status", parent, true) , m_layout(Gtk::ORIENTATION_VERTICAL) - , m_bottom(Gtk::ORIENTATION_HORIZONTAL) , m_ok("OK") - , m_cancel("Cancel") - , m_bbox(Gtk::ORIENTATION_HORIZONTAL) { - set_default_size(300, 50); + , m_cancel("Cancel") { + set_default_size(350, 200); get_style_context()->add_class("app-window"); get_style_context()->add_class("app-popup"); + get_style_context()->add_class("set-status-dialog"); - m_text.set_placeholder_text("Status text"); + m_text.set_placeholder_text("I feel " + Glib::ustring(feelings[rand() % feelings.size()]) + "!"); m_status_combo.append("online", "Online"); m_status_combo.append("dnd", "Do Not Disturb"); @@ -35,16 +49,17 @@ SetStatusDialog::SetStatusDialog(Gtk::Window &parent) response(Gtk::RESPONSE_CANCEL); }); - m_bbox.pack_start(m_ok, Gtk::PACK_SHRINK); - m_bbox.pack_start(m_cancel, Gtk::PACK_SHRINK); - m_bbox.set_layout(Gtk::BUTTONBOX_END); + m_layout.pack_start(*Gtk::make_managed("How are you, " + Abaddon::Get().GetDiscordClient().GetUserData().GetDisplayName() + "?", Gtk::ALIGN_START)); + m_layout.pack_start(m_text); + m_layout.pack_start(*Gtk::make_managed("Status", Gtk::ALIGN_START)); + m_layout.pack_start(m_status_combo); + m_layout.pack_start(*Gtk::make_managed("Activity", Gtk::ALIGN_START)); + m_layout.pack_start(m_type_combo); - m_bottom.add(m_status_combo); - m_bottom.add(m_type_combo); - m_bottom.add(m_bbox); - m_layout.add(m_text); - m_layout.add(m_bottom); get_content_area()->add(m_layout); + get_action_area()->pack_start(m_ok, Gtk::PACK_SHRINK); + get_action_area()->pack_start(m_cancel, Gtk::PACK_SHRINK); + get_action_area()->set_layout(Gtk::BUTTONBOX_START); show_all_children(); } diff --git a/src/dialogs/setstatus.hpp b/src/dialogs/setstatus.hpp index b0e6a4c..d4a015d 100644 --- a/src/dialogs/setstatus.hpp +++ b/src/dialogs/setstatus.hpp @@ -8,14 +8,12 @@ public: PresenceStatus GetStatusType() const; std::string GetActivityName() const; -protected: +private: Gtk::Box m_layout; - Gtk::Box m_bottom; Gtk::Entry m_text; Gtk::ComboBoxText m_status_combo; Gtk::ComboBoxText m_type_combo; Gtk::Button m_ok; Gtk::Button m_cancel; - Gtk::ButtonBox m_bbox; }; -- cgit v1.2.3 From 840eaa782463bda6d5ad4507c76c151bae8cbc51 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Tue, 28 Nov 2023 01:36:09 -0500 Subject: remove low priority css file --- src/abaddon.cpp | 11 ----------- src/abaddon.hpp | 1 - 2 files changed, 12 deletions(-) (limited to 'src') diff --git a/src/abaddon.cpp b/src/abaddon.cpp index 6557182..c8b294e 100644 --- a/src/abaddon.cpp +++ b/src/abaddon.cpp @@ -191,13 +191,6 @@ int Abaddon::StartGTK() { dlg.run(); }); - m_css_low_provider = Gtk::CssProvider::create(); - m_css_low_provider->signal_parsing_error().connect([](const Glib::RefPtr §ion, const Glib::Error &error) { - Gtk::MessageDialog dlg("low-priority css failed parsing (" + error.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); - dlg.set_position(Gtk::WIN_POS_CENTER); - dlg.run(); - }); - #ifdef _WIN32 bool png_found = false; bool gif_found = false; @@ -1086,10 +1079,6 @@ void Abaddon::ActionReloadCSS() { Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider); m_css_provider->load_from_path(GetCSSPath("/" + GetSettings().MainCSS)); Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_low_provider); - m_css_low_provider->load_from_path(GetCSSPath("/application-low-priority.css")); - Gtk::StyleContext::add_provider_for_screen(Gdk::Screen::get_default(), m_css_low_provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1); } catch (Glib::Error &e) { Gtk::MessageDialog dlg(*m_main_window, "css failed to load (" + e.what() + ")", false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dlg.set_position(Gtk::WIN_POS_CENTER); diff --git a/src/abaddon.hpp b/src/abaddon.hpp index 85b2fa0..6093523 100644 --- a/src/abaddon.hpp +++ b/src/abaddon.hpp @@ -182,7 +182,6 @@ private: mutable std::mutex m_mutex; Glib::RefPtr m_gtk_app; Glib::RefPtr m_css_provider; - Glib::RefPtr m_css_low_provider; // registered with a lower priority to allow better customization Glib::RefPtr m_tray; std::unique_ptr m_main_window; // wah wah cant create a gtkstylecontext fuck you -- cgit v1.2.3 From 14317bb513846a57034ecd21187a81fd2e861e85 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 1 Dec 2023 02:00:08 -0500 Subject: tweak voice settings window ui --- res/css/main.css | 8 ++++++++ src/windows/voicesettingswindow.cpp | 20 ++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/res/css/main.css b/res/css/main.css index 19c65f0..95cab3e 100644 --- a/res/css/main.css +++ b/res/css/main.css @@ -125,3 +125,11 @@ .set-status-dialog .dialog-action-area { margin: 10px 5px 5px 5px; } + +.voice-settings-window > box { + padding: 5px; +} + +.voice-settings-window scale { + margin-right: 8px; +} diff --git a/src/windows/voicesettingswindow.cpp b/src/windows/voicesettingswindow.cpp index 97f77b5..1a112f5 100644 --- a/src/windows/voicesettingswindow.cpp +++ b/src/windows/voicesettingswindow.cpp @@ -12,6 +12,7 @@ VoiceSettingsWindow::VoiceSettingsWindow() : m_main(Gtk::ORIENTATION_VERTICAL) { get_style_context()->add_class("app-window"); + get_style_context()->add_class("voice-settings-window"); set_default_size(300, 300); m_encoding_mode.append("Voice"); @@ -115,10 +116,21 @@ VoiceSettingsWindow::VoiceSettingsWindow() m_signal_gain.emit(m_gain.get_value() / 100.0); }); - m_main.add(m_encoding_mode); - m_main.add(m_signal); - m_main.add(m_bitrate); - m_main.add(m_gain); + auto *layout = Gtk::make_managed(); + auto *labels = Gtk::make_managed(); + auto *widgets = Gtk::make_managed(); + layout->pack_start(*labels, false, true, 5); + layout->pack_start(*widgets); + labels->pack_start(*Gtk::make_managed("Coding Mode", Gtk::ALIGN_END)); + labels->pack_start(*Gtk::make_managed("Signal Hint", Gtk::ALIGN_END)); + labels->pack_start(*Gtk::make_managed("Bitrate", Gtk::ALIGN_END)); + labels->pack_start(*Gtk::make_managed("Gain", Gtk::ALIGN_END)); + widgets->pack_start(m_encoding_mode); + widgets->pack_start(m_signal); + widgets->pack_start(m_bitrate); + widgets->pack_start(m_gain); + + m_main.add(*layout); add(m_main); show_all_children(); -- cgit v1.2.3 From e21b678220ce6ca7712a46ee9fe674320e148bab Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 4 Dec 2023 20:19:02 -0500 Subject: get link color from theme --- src/components/chatmessage.cpp | 5 +++-- src/settings.cpp | 2 -- src/settings.hpp | 1 - 3 files changed, 3 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/components/chatmessage.cpp b/src/components/chatmessage.cpp index d884077..4b195aa 100644 --- a/src/components/chatmessage.cpp +++ b/src/components/chatmessage.cpp @@ -361,7 +361,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateEmbedComponent(const EmbedData &emb } return false; }); - static auto color = Abaddon::Get().GetSettings().LinkColor; + const auto color = title_label->get_style_context()->get_color(Gtk::STATE_FLAG_LINK); title_label->override_color(Gdk::RGBA(color)); title_label->set_markup("" + Glib::Markup::escape_text(*embed.Title) + ""); } @@ -852,7 +852,8 @@ void ChatMessageItemContainer::HandleLinks(Gtk::TextView &tv) { std::string link = match.fetch(0); auto tag = buf->create_tag(); m_link_tagmap[tag] = link; - tag->property_foreground_rgba() = Gdk::RGBA(Abaddon::Get().GetSettings().LinkColor); + const auto color = tv.get_style_context()->get_color(Gtk::STATE_FLAG_LINK); + tag->property_foreground_rgba() = color; tag->set_property("underline", 1); // stupid workaround for vcpkg bug (i think) const auto chars_start = g_utf8_pointer_to_offset(text.c_str(), text.c_str() + mstart); diff --git a/src/settings.cpp b/src/settings.cpp index c824a34..368d5bb 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -68,7 +68,6 @@ void SettingsManager::ReadSettings() { SMINT("http", "concurrent", CacheHTTPConcurrency); SMSTR("http", "user_agent", UserAgent); SMSTR("style", "expandercolor", ChannelsExpanderColor); - SMSTR("style", "linkcolor", LinkColor); SMSTR("style", "nsfwchannelcolor", NSFWChannelColor); SMSTR("style", "channelcolor", ChannelColor); SMSTR("style", "mentionbadgecolor", MentionBadgeColor); @@ -159,7 +158,6 @@ void SettingsManager::Close() { SMINT("http", "concurrent", CacheHTTPConcurrency); SMSTR("http", "user_agent", UserAgent); SMSTR("style", "expandercolor", ChannelsExpanderColor); - SMSTR("style", "linkcolor", LinkColor); SMSTR("style", "nsfwchannelcolor", NSFWChannelColor); SMSTR("style", "channelcolor", ChannelColor); SMSTR("style", "mentionbadgecolor", MentionBadgeColor); diff --git a/src/settings.hpp b/src/settings.hpp index 037233b..67ba515 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -39,7 +39,6 @@ public: // [style] // TODO: convert to StyleProperty... or maybe not? i still cant figure out what the "correct" method is for this - std::string LinkColor { "rgba(40, 200, 180, 255)" }; std::string ChannelsExpanderColor { "rgba(255, 83, 112, 255)" }; std::string NSFWChannelColor { "#ed6666" }; std::string ChannelColor { "#fbfbfb" }; -- cgit v1.2.3 From 8324172a90752403edcec2203a2abb386046cc8f Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 7 Dec 2023 21:53:05 -0500 Subject: hide progress bar when not actually mid-upload --- src/components/chatwindow.cpp | 10 ++++++++-- src/components/progressbar.cpp | 19 ++++++++++++++++++- src/components/progressbar.hpp | 11 +++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/components/chatwindow.cpp b/src/components/chatwindow.cpp index aeed4ed..9a2493d 100644 --- a/src/components/chatwindow.cpp +++ b/src/components/chatwindow.cpp @@ -5,7 +5,7 @@ #include "chatlist.hpp" #include "constants.hpp" #ifdef WITH_LIBHANDY - #include "channeltabswitcherhandy.hpp" +#include "channeltabswitcherhandy.hpp" #endif ChatWindow::ChatWindow() { @@ -109,7 +109,13 @@ ChatWindow::ChatWindow() { m_main->add(*m_meta); m_main->add(m_progress); - m_progress.show(); + m_progress.signal_start().connect([this]() { + m_progress.show(); + }); + + m_progress.signal_stop().connect([this]() { + m_progress.hide(); + }); m_main->show(); } diff --git a/src/components/progressbar.cpp b/src/components/progressbar.cpp index 75f86bb..65abfae 100644 --- a/src/components/progressbar.cpp +++ b/src/components/progressbar.cpp @@ -5,12 +5,19 @@ MessageUploadProgressBar::MessageUploadProgressBar() { auto &discord = Abaddon::Get().GetDiscordClient(); discord.signal_message_progress().connect([this](const std::string &nonce, float percent) { if (nonce == m_last_nonce) { + if (!m_active) { + m_active = true; + m_signal_start.emit(); + } set_fraction(percent); } }); discord.signal_message_send_fail().connect([this](const std::string &nonce, float) { - if (nonce == m_last_nonce) + if (nonce == m_last_nonce) { set_fraction(0.0); + m_active = false; + m_signal_stop.emit(); + } }); discord.signal_message_create().connect([this](const Message &msg) { if (msg.IsPending) { @@ -18,6 +25,16 @@ MessageUploadProgressBar::MessageUploadProgressBar() { } else if (msg.Nonce.has_value() && (*msg.Nonce == m_last_nonce)) { m_last_nonce = ""; set_fraction(0.0); + m_active = false; + m_signal_stop.emit(); } }); } + +MessageUploadProgressBar::type_signal_start MessageUploadProgressBar::signal_start() { + return m_signal_start; +} + +MessageUploadProgressBar::type_signal_stop MessageUploadProgressBar::signal_stop() { + return m_signal_stop; +} diff --git a/src/components/progressbar.hpp b/src/components/progressbar.hpp index 483ee47..8efb87a 100644 --- a/src/components/progressbar.hpp +++ b/src/components/progressbar.hpp @@ -6,5 +6,16 @@ public: MessageUploadProgressBar(); private: + bool m_active = false; std::string m_last_nonce; + + using type_signal_start = sigc::signal; + using type_signal_stop = sigc::signal; + + type_signal_start m_signal_start; + type_signal_stop m_signal_stop; + +public: + type_signal_start signal_start(); + type_signal_stop signal_stop(); }; -- cgit v1.2.3 From 5ea80d1a147c445468293277a517558e727dd4f9 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 15 Dec 2023 20:46:36 -0500 Subject: use selected bg for expander color --- src/components/channelscellrenderer.cpp | 102 +++++++++----------------------- 1 file changed, 29 insertions(+), 73 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index 35c6137..bbe19e7 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -18,6 +18,32 @@ void AddUnreadIndicator(const Cairo::RefPtr &cr, const Gdk::Rect cr->fill(); } +void RenderExpander(int x_offset, const Cairo::RefPtr &cr, Gtk::Widget &widget, const Gdk::Rectangle &background_area, bool is_expanded) { + constexpr static int len = 5; + int x1, y1, x2, y2, x3, y3; + if (is_expanded) { + x1 = background_area.get_x() + x_offset; + y1 = background_area.get_y() + background_area.get_height() / 2 - len; + x2 = background_area.get_x() + x_offset + len; + y2 = background_area.get_y() + background_area.get_height() / 2 + len; + x3 = background_area.get_x() + x_offset + len * 2; + y3 = background_area.get_y() + background_area.get_height() / 2 - len; + } else { + x1 = background_area.get_x() + x_offset; + y1 = background_area.get_y() + background_area.get_height() / 2 - len; + x2 = background_area.get_x() + x_offset + len * 2; + y2 = background_area.get_y() + background_area.get_height() / 2; + x3 = background_area.get_x() + x_offset; + y3 = background_area.get_y() + background_area.get_height() / 2 + len; + } + cr->move_to(x1, y1); + cr->line_to(x2, y2); + cr->line_to(x3, y3); + const auto expander_color = widget.get_style_context()->get_background_color(Gtk::STATE_FLAG_SELECTED); + cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); + cr->stroke(); +} + CellRendererChannels::CellRendererChannels() : Glib::ObjectBase(typeid(CellRendererChannels)) , Gtk::CellRenderer() @@ -218,30 +244,7 @@ void CellRendererChannels::get_preferred_height_for_width_vfunc_folder(Gtk::Widg } void CellRendererChannels::render_vfunc_folder(const Cairo::RefPtr &cr, Gtk::Widget &widget, const Gdk::Rectangle &background_area, const Gdk::Rectangle &cell_area, Gtk::CellRendererState flags) { - constexpr static int len = 5; - int x1, y1, x2, y2, x3, y3; - if (property_expanded()) { - x1 = background_area.get_x() + 7; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + 7 + len; - y2 = background_area.get_y() + background_area.get_height() / 2 + len; - x3 = background_area.get_x() + 7 + len * 2; - y3 = background_area.get_y() + background_area.get_height() / 2 - len; - } else { - x1 = background_area.get_x() + 7; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + 7 + len * 2; - y2 = background_area.get_y() + background_area.get_height() / 2; - x3 = background_area.get_x() + 7; - y3 = background_area.get_y() + background_area.get_height() / 2 + len; - } - cr->move_to(x1, y1); - cr->line_to(x2, y2); - cr->line_to(x3, y3); - const auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelsExpanderColor); - cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); - cr->stroke(); - + RenderExpander(7, cr, widget, background_area, property_expanded()); Gtk::Requisition text_minimum, text_natural; m_renderer_text.get_preferred_size(widget, text_minimum, text_natural); @@ -417,30 +420,7 @@ void CellRendererChannels::get_preferred_height_for_width_vfunc_category(Gtk::Wi } void CellRendererChannels::render_vfunc_category(const Cairo::RefPtr &cr, Gtk::Widget &widget, const Gdk::Rectangle &background_area, const Gdk::Rectangle &cell_area, Gtk::CellRendererState flags) { - // todo: figure out how Gtk::Arrow is rendered because i like it better :^) - constexpr static int len = 5; - int x1, y1, x2, y2, x3, y3; - if (property_expanded()) { - x1 = background_area.get_x() + 7; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + 7 + len; - y2 = background_area.get_y() + background_area.get_height() / 2 + len; - x3 = background_area.get_x() + 7 + len * 2; - y3 = background_area.get_y() + background_area.get_height() / 2 - len; - } else { - x1 = background_area.get_x() + 7; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + 7 + len * 2; - y2 = background_area.get_y() + background_area.get_height() / 2; - x3 = background_area.get_x() + 7; - y3 = background_area.get_y() + background_area.get_height() / 2 + len; - } - cr->move_to(x1, y1); - cr->line_to(x2, y2); - cr->line_to(x3, y3); - const auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelsExpanderColor); - cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); - cr->stroke(); + RenderExpander(7, cr, widget, background_area, property_expanded()); Gtk::Requisition text_minimum, text_natural; m_renderer_text.get_preferred_size(widget, text_minimum, text_natural); @@ -668,31 +648,7 @@ void CellRendererChannels::render_vfunc_voice_channel(const Cairo::RefPtrshow_in_cairo_context(cr); - // expander - constexpr static int len = 5; - constexpr static int offset = 24; - int x1, y1, x2, y2, x3, y3; - if (property_expanded()) { - x1 = background_area.get_x() + offset; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + offset + len; - y2 = background_area.get_y() + background_area.get_height() / 2 + len; - x3 = background_area.get_x() + offset + len * 2; - y3 = background_area.get_y() + background_area.get_height() / 2 - len; - } else { - x1 = background_area.get_x() + offset; - y1 = background_area.get_y() + background_area.get_height() / 2 - len; - x2 = background_area.get_x() + offset + len * 2; - y2 = background_area.get_y() + background_area.get_height() / 2; - x3 = background_area.get_x() + offset; - y3 = background_area.get_y() + background_area.get_height() / 2 + len; - } - cr->move_to(x1, y1); - cr->line_to(x2, y2); - cr->line_to(x3, y3); - const auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelsExpanderColor); - cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); - cr->stroke(); + RenderExpander(24, cr, widget, background_area, property_expanded()); } // voice participant -- cgit v1.2.3 From 19282c8642f5bc1c064a8f8645b2d5380d2014b4 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 15 Dec 2023 21:44:58 -0500 Subject: allow override expander color --- src/components/channelscellrenderer.cpp | 5 ++++- src/settings.hpp | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index bbe19e7..3f10330 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -39,7 +39,10 @@ void RenderExpander(int x_offset, const Cairo::RefPtr &cr, Gtk:: cr->move_to(x1, y1); cr->line_to(x2, y2); cr->line_to(x3, y3); - const auto expander_color = widget.get_style_context()->get_background_color(Gtk::STATE_FLAG_SELECTED); + auto expander_color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelsExpanderColor); + if (expander_color.get_alpha_u() == 0) { + expander_color = widget.get_style_context()->get_background_color(Gtk::STATE_FLAG_SELECTED); + } cr->set_source_rgb(expander_color.get_red(), expander_color.get_green(), expander_color.get_blue()); cr->stroke(); } diff --git a/src/settings.hpp b/src/settings.hpp index 67ba515..a51d93b 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -38,8 +38,7 @@ public: std::string UserAgent { "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" }; // [style] - // TODO: convert to StyleProperty... or maybe not? i still cant figure out what the "correct" method is for this - std::string ChannelsExpanderColor { "rgba(255, 83, 112, 255)" }; + std::string ChannelsExpanderColor { "rgba(255, 83, 112, 0)" }; std::string NSFWChannelColor { "#ed6666" }; std::string ChannelColor { "#fbfbfb" }; std::string MentionBadgeColor { "#b82525" }; -- cgit v1.2.3 From 0187e6958464f9a9d5c8bc1143d6dfac60e862b1 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:06:16 -0500 Subject: remove channel color style setting --- src/components/channelscellrenderer.cpp | 57 ++------------------------------- src/settings.cpp | 2 -- src/settings.hpp | 1 - 3 files changed, 3 insertions(+), 57 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index 3f10330..7fd97da 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -258,14 +258,11 @@ void CellRendererChannels::render_vfunc_folder(const Cairo::RefPtr(text_w), static_cast(text_h)); - static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelColor); - // m_renderer_text.property_foreground_rgba() = color; m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); const bool hover_only = Abaddon::Get().GetSettings().AnimatedGuildHoverOnly; @@ -435,23 +430,14 @@ void CellRendererChannels::render_vfunc_category(const Cairo::RefPtr 0) { AddUnreadIndicator(cr, background_area); } - // m_renderer_text.property_foreground_rgba() = color; } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); - // m_renderer_text.property_foreground_set() = false; } // text channel @@ -487,20 +473,7 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtrget_color(Gtk::STATE_FLAG_NORMAL); @@ -509,8 +482,6 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtr & const auto id = m_property_id.get_value(); const bool is_muted = discord.IsChannelMuted(id); - static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().ChannelColor); - if (Abaddon::Get().GetDiscordClient().IsChannelMuted(m_property_id.get_value())) { - auto muted = color; - muted.set_red(muted.get_red() * 0.5); - muted.set_green(muted.get_green() * 0.5); - muted.set_blue(muted.get_blue() * 0.5); - // m_renderer_text.property_foreground_rgba() = muted; - } else { - // m_renderer_text.property_foreground_rgba() = color; - } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); - // m_renderer_text.property_foreground_set() = false; Gdk::Cairo::set_source_pixbuf(cr, m_property_pixbuf.get_value(), icon_x, icon_y); cr->rectangle(icon_x, icon_y, icon_w, icon_h); diff --git a/src/settings.cpp b/src/settings.cpp index 368d5bb..d1dff3f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -69,7 +69,6 @@ void SettingsManager::ReadSettings() { SMSTR("http", "user_agent", UserAgent); SMSTR("style", "expandercolor", ChannelsExpanderColor); SMSTR("style", "nsfwchannelcolor", NSFWChannelColor); - SMSTR("style", "channelcolor", ChannelColor); SMSTR("style", "mentionbadgecolor", MentionBadgeColor); SMSTR("style", "mentionbadgetextcolor", MentionBadgeTextColor); SMSTR("style", "unreadcolor", UnreadIndicatorColor); @@ -159,7 +158,6 @@ void SettingsManager::Close() { SMSTR("http", "user_agent", UserAgent); SMSTR("style", "expandercolor", ChannelsExpanderColor); SMSTR("style", "nsfwchannelcolor", NSFWChannelColor); - SMSTR("style", "channelcolor", ChannelColor); SMSTR("style", "mentionbadgecolor", MentionBadgeColor); SMSTR("style", "mentionbadgetextcolor", MentionBadgeTextColor); SMSTR("style", "unreadcolor", UnreadIndicatorColor); diff --git a/src/settings.hpp b/src/settings.hpp index a51d93b..99e1adc 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -40,7 +40,6 @@ public: // [style] std::string ChannelsExpanderColor { "rgba(255, 83, 112, 0)" }; std::string NSFWChannelColor { "#ed6666" }; - std::string ChannelColor { "#fbfbfb" }; std::string MentionBadgeColor { "#b82525" }; std::string MentionBadgeTextColor { "#fbfbfb" }; std::string UnreadIndicatorColor { "#ffffff" }; -- cgit v1.2.3 From 618cd27d94a23a23674fe759bdc74f938ac3d6fe Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 16 Dec 2023 20:01:56 -0500 Subject: draw nsfw channels red again --- src/components/channelscellrenderer.cpp | 10 +++++----- src/settings.hpp | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index 7fd97da..d612812 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -475,11 +475,11 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtrget_color(Gtk::STATE_FLAG_NORMAL); - color.set_alpha(0.6); - m_renderer_text.property_foreground_rgba() = color; - } + auto color = widget.get_style_context()->get_color(Gtk::STATE_FLAG_NORMAL); + if (property_nsfw()) color = nsfw_color; + if (is_muted) color.set_alpha(0.6); + + m_renderer_text.property_foreground_rgba() = color; m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); m_renderer_text.property_foreground_set() = false; diff --git a/src/settings.hpp b/src/settings.hpp index 99e1adc..c51e635 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -39,7 +39,7 @@ public: // [style] std::string ChannelsExpanderColor { "rgba(255, 83, 112, 0)" }; - std::string NSFWChannelColor { "#ed6666" }; + std::string NSFWChannelColor { "#970d0d" }; std::string MentionBadgeColor { "#b82525" }; std::string MentionBadgeTextColor { "#fbfbfb" }; std::string UnreadIndicatorColor { "#ffffff" }; -- cgit v1.2.3 From 6d7ddcd42fd1de1f0ea3eda83e3c76f2d34b6a12 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 16 Dec 2023 20:38:46 -0500 Subject: use background style colors for unread indicator and mention badges --- src/components/channelscellrenderer.cpp | 31 +++++++++++++++---------------- src/settings.hpp | 6 +++--- 2 files changed, 18 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/components/channelscellrenderer.cpp b/src/components/channelscellrenderer.cpp index d612812..bf84a9b 100644 --- a/src/components/channelscellrenderer.cpp +++ b/src/components/channelscellrenderer.cpp @@ -7,8 +7,11 @@ constexpr static double M_PI = 3.14159265358979; constexpr static double M_PI_H = M_PI / 2.0; constexpr static double M_PI_3_2 = M_PI * 3.0 / 2.0; -void AddUnreadIndicator(const Cairo::RefPtr &cr, const Gdk::Rectangle &background_area) { - static const auto color = Gdk::RGBA(Abaddon::Get().GetSettings().UnreadIndicatorColor); +void AddUnreadIndicator(const Cairo::RefPtr &cr, Gtk::Widget &widget, const Gdk::Rectangle &background_area) { + static const auto color_setting = Gdk::RGBA(Abaddon::Get().GetSettings().UnreadIndicatorColor); + + const auto color = color_setting.get_alpha_u() > 0 ? color_setting : widget.get_style_context()->get_background_color(Gtk::STATE_FLAG_SELECTED); + cr->set_source_rgb(color.get_red(), color.get_green(), color.get_blue()); const auto x = background_area.get_x(); const auto y = background_area.get_y(); @@ -387,7 +390,7 @@ void CellRendererChannels::render_vfunc_guild(const Cairo::RefPtr 0) { - AddUnreadIndicator(cr, background_area); + AddUnreadIndicator(cr, widget, background_area); } } m_renderer_text.render(cr, widget, background_area, text_cell_area, flags); @@ -490,7 +493,7 @@ void CellRendererChannels::render_vfunc_channel(const Cairo::RefPtrset_source_rgb(color.get_red(), color.get_green(), color.get_blue()); - const auto x = background_area.get_x(); - const auto y = background_area.get_y(); - const auto w = background_area.get_width(); - const auto h = background_area.get_height(); - cr->rectangle(x, y, 3, h); - cr->fill(); + AddUnreadIndicator(cr, widget, background_area); } if (unread_state < 1) return; @@ -830,7 +826,7 @@ void CellRendererChannels::render_vfunc_dm(const Cairo::RefPtr & if (unread_state < 0) return; if (!is_muted) { - AddUnreadIndicator(cr, background_area); + AddUnreadIndicator(cr, widget, background_area); } } @@ -857,8 +853,11 @@ void CellRendererChannels::unread_render_mentions(const Cairo::RefPtrget_pixel_size(width, height); { - static const auto bg = Gdk::RGBA(Abaddon::Get().GetSettings().MentionBadgeColor); - static const auto text = Gdk::RGBA(Abaddon::Get().GetSettings().MentionBadgeTextColor); + static const auto badge_setting = Gdk::RGBA(Abaddon::Get().GetSettings().MentionBadgeColor); + static const auto text_setting = Gdk::RGBA(Abaddon::Get().GetSettings().MentionBadgeTextColor); + + auto bg = badge_setting.get_alpha_u() > 0 ? badge_setting : widget.get_style_context()->get_background_color(Gtk::STATE_FLAG_SELECTED); + auto text = text_setting.get_alpha_u() > 0 ? text_setting : widget.get_style_context()->get_color(Gtk::STATE_FLAG_SELECTED); const auto x = cell_area.get_x() + edge - width - MentionsRightPad; const auto y = cell_area.get_y() + cell_area.get_height() / 2.0 - height / 2.0 - 1; diff --git a/src/settings.hpp b/src/settings.hpp index c51e635..419734c 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -40,9 +40,9 @@ public: // [style] std::string ChannelsExpanderColor { "rgba(255, 83, 112, 0)" }; std::string NSFWChannelColor { "#970d0d" }; - std::string MentionBadgeColor { "#b82525" }; - std::string MentionBadgeTextColor { "#fbfbfb" }; - std::string UnreadIndicatorColor { "#ffffff" }; + std::string MentionBadgeColor { "rgba(184, 37, 37, 0)" }; + std::string MentionBadgeTextColor { "rgba(251, 251, 251, 0)" }; + std::string UnreadIndicatorColor { "rgba(255, 255, 255, 0)" }; // [notifications] #ifdef _WIN32 -- cgit v1.2.3