Update
This commit is contained in:
@@ -14,25 +14,36 @@ use errors::*;
|
||||
|
||||
|
||||
pub fn init_tray_icon(appstate: Rc<AppS>) {
|
||||
/* tray_icon.connect_activate */
|
||||
{
|
||||
let apps = appstate.clone();
|
||||
let tray_icon = &appstate.gui.status_icon;
|
||||
tray_icon.connect_activate(move |_| on_tray_icon_activate(&apps));
|
||||
tray_icon.set_visible(true);
|
||||
}
|
||||
|
||||
/* tray_icon.connect_scroll_event */
|
||||
{
|
||||
let apps = appstate.clone();
|
||||
let tray_icon = &appstate.clone().gui.status_icon;
|
||||
tray_icon.connect_scroll_event(move |_, e| {
|
||||
on_tray_icon_scroll_event(&appstate.clone(), &e)
|
||||
});
|
||||
tray_icon.set_visible(true);
|
||||
on_tray_icon_scroll_event(&apps, &e)
|
||||
});
|
||||
}
|
||||
|
||||
/* tray_icon.connect_popup_menu */
|
||||
{
|
||||
let apps = appstate.clone();
|
||||
let tray_icon = &appstate.clone().gui.status_icon;
|
||||
tray_icon.connect_popup_menu(move |_, _, _| {
|
||||
on_tray_icon_popup_menu(&apps)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fn on_tray_icon_activate(appstate: &AppS) {
|
||||
let popup_window = &appstate.gui.popup_window.window;
|
||||
let popup_window = &appstate.gui.popup_window.popup_window;
|
||||
|
||||
if popup_window.get_visible() {
|
||||
popup_window.hide();
|
||||
@@ -42,17 +53,26 @@ fn on_tray_icon_activate(appstate: &AppS) {
|
||||
}
|
||||
|
||||
|
||||
fn on_tray_icon_popup_menu(appstate: &AppS) {
|
||||
let popup_window = &appstate.gui.popup_window.popup_window;
|
||||
let popup_menu = &appstate.gui.popup_menu.menu;
|
||||
|
||||
popup_window.hide();
|
||||
popup_menu.popup_at_pointer(None);
|
||||
}
|
||||
|
||||
|
||||
fn on_tray_icon_scroll_event(appstate: &AppS,
|
||||
event: &gdk::EventScroll)
|
||||
-> bool {
|
||||
|
||||
let scroll_dir = event.as_ref().direction;
|
||||
let scroll_dir: gdk::ScrollDirection = event.get_direction();
|
||||
match scroll_dir {
|
||||
gdk_sys::GdkScrollDirection::Up => {
|
||||
gdk::ScrollDirection::Up => {
|
||||
try_wr!(appstate.acard.borrow().increase_vol(AudioUserTrayIcon),
|
||||
false);
|
||||
}
|
||||
gdk_sys::GdkScrollDirection::Down => {
|
||||
gdk::ScrollDirection::Down => {
|
||||
try_wr!(appstate.acard.borrow().decrease_vol(AudioUserTrayIcon),
|
||||
false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user