I'm using GUIKit in Mathematica 11.0, which throws an error message whenever a window or panel is shown. I know GUIKit is deprecated but I don't want to port a whole project to the newer controls.
Now I want to suppress the error messages coming from GUIKit but keep all other possible messages. Quiet
sadly doesn't work. I thought I could change the setting User interface log messages
to Ignore
temporarily, switch to another panel and re-enable the messages again (see How to find out valid values for an option).
However it doesn't work and I can't see why. I used the following code snippet:
Unprotect[System`PropertyValue];
Remove[System`PropertyValue];
Needs["GUIKit`"]
frm = Widget["Frame", {
WidgetGroup[{
Widget["Panel", {
"visible" -> False,
BindEvent["ComponentShown",
Script[SetPropertyValue[{"frmHauptfenster", "title"},
"Panel 1"];]],
Widget["Label", {"text" -> "Panel 1"}],
Widget["Button", {
"text" -> "toggle1",
BindEvent["action", Script[ToggleVisible[];]]}
]
}, Name -> "p1"],
Widget["Panel", {
"visible" -> True,
BindEvent["ComponentShown",
Script[SetPropertyValue[{"frmHauptfenster", "title"},
"Panel 2"];]],
Widget["Label", {"text" -> "Panel 2"}],
Widget["Button", {
"text" -> "toggle2",
BindEvent["action", Script[ToggleVisible[];]]}
]
}, Name -> "p2"]
}, WidgetLayout -> {"Border" -> 5,
"Stretching" -> {Maximize, Maximize}}]
, Script[
ToggleVisible[] := Module[{},
(* Turn off messages *)
SetOptions[$FrontEnd,
MessageOptions -> {"ConsoleMessageAction" -> {}}];
p1visible = PropertyValue[{"p1", "Visible"}];
SetPropertyValue[{"p1", "Visible"}, Not[p1visible]];
SetPropertyValue[{"p2", "Visible"}, p1visible];
(* Turn messages back on *)
SetOptions[$FrontEnd,
MessageOptions -> {"ConsoleMessageAction" ->
"PrintToConsole"}];
];
]
}, Name -> "frmHauptfenster"];
ref = GUIRun[frm];
Why doesn't it work? Or is there even another workaround?