* Can be NULL for always sensitive.
*/
int (*sensitive)(void);
+
+ /** @brief True if the menu item has inverse sense to the button */
+ gboolean menu_invert;
/** @brief Pointer to button */
GtkWidget *button;
action_go_on: disorder_eclient_pause,
action_go_off: disorder_eclient_resume,
events: "pause-changed playing-changed rights-changed playing-track-changed",
+ menu_invert: TRUE,
},
{
stock: TRUE,
/* Icons with an associated menu item */
if(icon->item) {
if(icon->toggle)
- gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(icon->item), on);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(icon->item),
+ !!icon->menu_invert ^ !!on);
gtk_widget_set_sensitive(icon->item, sensitive);
}
--suppress_actions;
/** @brief Called when a volume command completes */
static void volume_completed(void attribute((unused)) *v,
- const char *err,
- int attribute((unused)) l,
- int attribute((unused)) r) {
+ const char *err) {
if(err)
popup_protocol_error(0, err);
/* We don't set the UI's notion of the volume here, it is set from the log
if(backend && backend->set_volume)
backend->set_volume(&l, &r);
} else
- disorder_eclient_volume(client, volume_completed,
- nearbyint(left(v, b) * 100),
- nearbyint(right(v, b) * 100),
- 0);
+ disorder_eclient_set_volume(client, volume_completed,
+ nearbyint(left(v, b) * 100),
+ nearbyint(right(v, b) * 100),
+ 0);
}
/** @brief Formats the volume value */