Fix togglebutton in menu dropdown (#339)
* Fix togglebutton in menu dropdown * Minor bugfixes and fix typo in readme
This commit is contained in:
@@ -247,8 +247,8 @@ window that'll allow you to see all of the CSS classes + other information.
|
|||||||
|
|
||||||
To add toggle buttons to your control center you can set the "type" in any acton to "toggle".
|
To add toggle buttons to your control center you can set the "type" in any acton to "toggle".
|
||||||
The toggle button supports different commands depending on the state of the button and
|
The toggle button supports different commands depending on the state of the button and
|
||||||
an "update_command" to update the state in case of changes from outside swaync. The update_command
|
an "update-command" to update the state in case of changes from outside swaync. The update-command
|
||||||
is called every time the control center is opened/closed.
|
is called every time the control center is opened.
|
||||||
The active toggle button also gains the css-class ".toggle:checked"
|
The active toggle button also gains the css-class ".toggle:checked"
|
||||||
|
|
||||||
`config.json` example:
|
`config.json` example:
|
||||||
@@ -262,7 +262,7 @@ The active toggle button also gains the css-class ".toggle:checked"
|
|||||||
"type": "toggle",
|
"type": "toggle",
|
||||||
"active": true,
|
"active": true,
|
||||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
||||||
"update_command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@@ -45,7 +45,7 @@ namespace SwayNotificationCenter.Widgets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override void on_cc_visibility_change (bool value) {
|
public override void on_cc_visibility_change (bool value) {
|
||||||
if (!value) {
|
if (value) {
|
||||||
foreach (var tb in toggle_buttons) {
|
foreach (var tb in toggle_buttons) {
|
||||||
tb.on_update.begin ();
|
tb.on_update.begin ();
|
||||||
}
|
}
|
||||||
|
@@ -121,9 +121,18 @@ namespace SwayNotificationCenter.Widgets {
|
|||||||
});
|
});
|
||||||
|
|
||||||
foreach (var a in obj.actions) {
|
foreach (var a in obj.actions) {
|
||||||
Gtk.Button b = new Gtk.Button.with_label (a.label);
|
switch (a.type) {
|
||||||
b.clicked.connect (() => execute_command.begin (a.command));
|
case ButtonType.TOGGLE:
|
||||||
menu.pack_start (b, true, true, 0);
|
ToggleButton tb = new ToggleButton (a.label, a.command, a.update_command, a.active);
|
||||||
|
menu.pack_start (tb, true, true, 0);
|
||||||
|
toggle_buttons.append (tb);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Gtk.Button b = new Gtk.Button.with_label (a.label);
|
||||||
|
b.clicked.connect (() => execute_command.begin (a.command));
|
||||||
|
menu.pack_start (b, true, true, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (obj.position) {
|
switch (obj.position) {
|
||||||
@@ -221,6 +230,7 @@ namespace SwayNotificationCenter.Widgets {
|
|||||||
foreach (var obj in menu_objects) {
|
foreach (var obj in menu_objects) {
|
||||||
obj.revealer ?.set_reveal_child (false);
|
obj.revealer ?.set_reveal_child (false);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
foreach (var tb in toggle_buttons) {
|
foreach (var tb in toggle_buttons) {
|
||||||
tb.on_update.begin ();
|
tb.on_update.begin ();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user