theme: Add theme_name to get current active theme name. (#1190)
And fix theme menu selected item in example when theme mode changed.
This commit is contained in:
parent
e4a367f157
commit
34d2a75894
2 changed files with 15 additions and 1 deletions
|
|
@ -6,7 +6,7 @@ use gpui::{
|
|||
use gpui_component::{
|
||||
button::{Button, ButtonVariants},
|
||||
popup_menu::PopupMenuExt,
|
||||
IconName, Sizable, Theme, ThemeRegistry,
|
||||
ActiveTheme, IconName, Sizable, Theme, ThemeRegistry,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
|
|
@ -38,6 +38,11 @@ pub fn init(cx: &mut App) {
|
|||
}) {
|
||||
tracing::error!("Failed to watch themes directory: {}", err);
|
||||
}
|
||||
|
||||
cx.observe_global::<Theme>(|cx| {
|
||||
AppState::global_mut(cx).theme_name = Some(cx.theme().theme_name().into());
|
||||
})
|
||||
.detach();
|
||||
}
|
||||
|
||||
#[derive(Action, Clone, PartialEq)]
|
||||
|
|
|
|||
|
|
@ -101,6 +101,15 @@ impl Theme {
|
|||
self.mode.is_dark()
|
||||
}
|
||||
|
||||
/// Returns the current theme name.
|
||||
pub fn theme_name(&self) -> &SharedString {
|
||||
if self.is_dark() {
|
||||
&self.dark_theme.name
|
||||
} else {
|
||||
&self.light_theme.name
|
||||
}
|
||||
}
|
||||
|
||||
// /// Sets the theme to default light.
|
||||
// pub fn set_default_light(&mut self) {
|
||||
// self.light_theme = ThemeColor::light();
|
||||
|
|
|
|||
Loading…
Reference in a new issue