mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
parent
da6124c087
commit
c9015d6076
@ -650,6 +650,8 @@ struct Sculpt::Main : Input_event_handler,
|
|||||||
|
|
||||||
bool _leitzentrale_visible = false;
|
bool _leitzentrale_visible = false;
|
||||||
|
|
||||||
|
Fb_connectors::Name _hovered_display { };
|
||||||
|
|
||||||
Color const _background_color { 62, 62, 67, 255 };
|
Color const _background_color { 62, 62, 67, 255 };
|
||||||
|
|
||||||
Affinity::Space _affinity_space { 1, 1 };
|
Affinity::Space _affinity_space { 1, 1 };
|
||||||
@ -812,7 +814,7 @@ struct Sculpt::Main : Input_event_handler,
|
|||||||
_graph { Id { "graph" },
|
_graph { Id { "graph" },
|
||||||
_runtime_state, _cached_runtime_config, _storage._storage_devices,
|
_runtime_state, _cached_runtime_config, _storage._storage_devices,
|
||||||
_storage._selected_target, _storage._ram_fs_state, _fb_connectors,
|
_storage._selected_target, _storage._ram_fs_state, _fb_connectors,
|
||||||
_fb_config, _popup.state, _deploy._children };
|
_fb_config, _hovered_display, _popup.state, _deploy._children };
|
||||||
|
|
||||||
Conditional_widget<Network_widget>
|
Conditional_widget<Network_widget>
|
||||||
_network_widget { Conditional_widget<Network_widget>::Attr { .centered = true },
|
_network_widget { Conditional_widget<Network_widget>::Attr { .centered = true },
|
||||||
|
@ -101,7 +101,7 @@ void Graph::_view_selected_node_content(Scope<Depgraph, Frame, Vbox> &s,
|
|||||||
s.widget(_ram_fs_widget, _selected_target, _ram_fs_state);
|
s.widget(_ram_fs_widget, _selected_target, _ram_fs_state);
|
||||||
|
|
||||||
if (name == "intel_fb")
|
if (name == "intel_fb")
|
||||||
s.widget(_fb_widget, _fb_connectors, _fb_config);
|
s.widget(_fb_widget, _fb_connectors, _fb_config, _hovered_display);
|
||||||
|
|
||||||
String<100> const
|
String<100> const
|
||||||
ram (Capacity{info.assigned_ram - info.avail_ram}, " / ",
|
ram (Capacity{info.assigned_ram - info.avail_ram}, " / ",
|
||||||
|
@ -45,6 +45,7 @@ struct Sculpt::Graph : Widget<Depgraph>
|
|||||||
Ram_fs_state const &_ram_fs_state;
|
Ram_fs_state const &_ram_fs_state;
|
||||||
Fb_connectors const &_fb_connectors;
|
Fb_connectors const &_fb_connectors;
|
||||||
Fb_config const &_fb_config;
|
Fb_config const &_fb_config;
|
||||||
|
Fb_connectors::Name const &_hovered_display;
|
||||||
Popup::State const &_popup_state;
|
Popup::State const &_popup_state;
|
||||||
Depot_deploy::Children const &_deploy_children;
|
Depot_deploy::Children const &_deploy_children;
|
||||||
|
|
||||||
@ -89,14 +90,15 @@ struct Sculpt::Graph : Widget<Depgraph>
|
|||||||
Ram_fs_state const &ram_fs_state,
|
Ram_fs_state const &ram_fs_state,
|
||||||
Fb_connectors const &fb_connectors,
|
Fb_connectors const &fb_connectors,
|
||||||
Fb_config const &fb_config,
|
Fb_config const &fb_config,
|
||||||
|
Fb_connectors::Name const &hovered_display,
|
||||||
Popup::State const &popup_state,
|
Popup::State const &popup_state,
|
||||||
Depot_deploy::Children const &deploy_children)
|
Depot_deploy::Children const &deploy_children)
|
||||||
:
|
:
|
||||||
_runtime_state(runtime_state), _runtime_config(runtime_config),
|
_runtime_state(runtime_state), _runtime_config(runtime_config),
|
||||||
_storage_devices(storage_devices), _selected_target(selected_target),
|
_storage_devices(storage_devices), _selected_target(selected_target),
|
||||||
_ram_fs_state(ram_fs_state), _fb_connectors(fb_connectors),
|
_ram_fs_state(ram_fs_state), _fb_connectors(fb_connectors),
|
||||||
_fb_config(fb_config), _popup_state(popup_state),
|
_fb_config(fb_config), _hovered_display(hovered_display),
|
||||||
_deploy_children(deploy_children)
|
_popup_state(popup_state), _deploy_children(deploy_children)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void view(Scope<Depgraph> &) const;
|
void view(Scope<Depgraph> &) const;
|
||||||
|
@ -763,6 +763,8 @@ struct Sculpt::Main : Input_event_handler,
|
|||||||
|
|
||||||
Constructible<Gui::Point> _pointer_pos { };
|
Constructible<Gui::Point> _pointer_pos { };
|
||||||
|
|
||||||
|
Fb_connectors::Name _hovered_display { };
|
||||||
|
|
||||||
void _handle_nitpicker_hover(Xml_node const &hover)
|
void _handle_nitpicker_hover(Xml_node const &hover)
|
||||||
{
|
{
|
||||||
if (hover.has_attribute("xpos"))
|
if (hover.has_attribute("xpos"))
|
||||||
@ -1769,7 +1771,7 @@ struct Sculpt::Main : Input_event_handler,
|
|||||||
|
|
||||||
Graph _graph { _runtime_state, _cached_runtime_config, _storage._storage_devices,
|
Graph _graph { _runtime_state, _cached_runtime_config, _storage._storage_devices,
|
||||||
_storage._selected_target, _storage._ram_fs_state, _fb_connectors,
|
_storage._selected_target, _storage._ram_fs_state, _fb_connectors,
|
||||||
_fb_config, _popup.state, _deploy._children };
|
_fb_config, _hovered_display, _popup.state, _deploy._children };
|
||||||
|
|
||||||
struct Graph_dialog : Dialog::Top_level_dialog
|
struct Graph_dialog : Dialog::Top_level_dialog
|
||||||
{
|
{
|
||||||
@ -2098,6 +2100,7 @@ void Sculpt::Main::_handle_gui_mode()
|
|||||||
|
|
||||||
/* place leitzentrale at pointed display */
|
/* place leitzentrale at pointed display */
|
||||||
Rect const orig_screen_rect { _screen_pos, _screen_size };
|
Rect const orig_screen_rect { _screen_pos, _screen_size };
|
||||||
|
Fb_connectors::Name const orig_hovered_display = _hovered_display;
|
||||||
{
|
{
|
||||||
Rect rect { };
|
Rect rect { };
|
||||||
|
|
||||||
@ -2111,8 +2114,11 @@ void Sculpt::Main::_handle_gui_mode()
|
|||||||
|
|
||||||
info.for_each_sub_node("capture", [&] (Xml_node const &capture) {
|
info.for_each_sub_node("capture", [&] (Xml_node const &capture) {
|
||||||
Rect const display = Rect::from_xml(capture);
|
Rect const display = Rect::from_xml(capture);
|
||||||
if (display.contains(at))
|
if (display.contains(at)) {
|
||||||
rect = display;
|
rect = display;
|
||||||
|
Session_label label { capture.attribute_value("name", String<64>()) };
|
||||||
|
_hovered_display = label.last_element();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -2120,7 +2126,8 @@ void Sculpt::Main::_handle_gui_mode()
|
|||||||
_screen_size = rect.area;
|
_screen_size = rect.area;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool const screen_changed = (orig_screen_rect != Rect { _screen_pos, _screen_size });
|
bool const screen_changed = (orig_screen_rect != Rect { _screen_pos, _screen_size })
|
||||||
|
|| (orig_hovered_display != _hovered_display);
|
||||||
|
|
||||||
if (screen_changed) {
|
if (screen_changed) {
|
||||||
_gui_fb_config.generate([&] (Xml_generator &xml) {
|
_gui_fb_config.generate([&] (Xml_generator &xml) {
|
||||||
|
@ -70,7 +70,8 @@ struct Sculpt::Fb_widget : Widget<Vbox>
|
|||||||
|
|
||||||
using Hosted_brightness = Hosted<Bar>;
|
using Hosted_brightness = Hosted<Bar>;
|
||||||
|
|
||||||
void view(Scope<Vbox> &s, Fb_connectors const &connectors, Fb_config const &config) const
|
void view(Scope<Vbox> &s, Fb_connectors const &connectors, Fb_config const &config,
|
||||||
|
Fb_connectors::Name const &hovered_display) const
|
||||||
{
|
{
|
||||||
auto view_connector = [&] (Connector const &conn)
|
auto view_connector = [&] (Connector const &conn)
|
||||||
{
|
{
|
||||||
@ -102,6 +103,7 @@ struct Sculpt::Fb_widget : Widget<Vbox>
|
|||||||
s.widget(Mode_radio { Id { mode.id }, mode.id },
|
s.widget(Mode_radio { Id { mode.id }, mode.id },
|
||||||
selected_mode, text);
|
selected_mode, text);
|
||||||
});
|
});
|
||||||
|
if (conn.name != hovered_display)
|
||||||
s.widget(Mode_radio { Id { "off" }, "off" }, selected_mode, "off");
|
s.widget(Mode_radio { Id { "off" }, "off" }, selected_mode, "off");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user