class EL_CONTENTS_NODE_BUTTON
Button to expand sub-links in level 3 link EL_SUPER_HTML_TEXT_HYPERLINK_AREA
note
description: "Button to expand sub-links in level 3 link ${EL_SUPER_HTML_TEXT_HYPERLINK_AREA}"
author: "Finnian Reilly"
copyright: "Copyright (c) 2001-2022 Finnian Reilly"
contact: "finnian at eiffel hyphen loop dot com"
license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
date: "2024-01-20 19:18:25 GMT (Saturday 20th January 2024)"
revision: "8"
class
EL_CONTENTS_NODE_BUTTON
inherit
EL_VERTICAL_BOX
rename
make as make_box
end
create
make
feature {NONE} -- Initialization
make (a_content_super_link: EL_SUPER_HTML_TEXT_HYPERLINK_AREA; a_pixmap_set: like pixmap_set)
do
content_super_link := a_content_super_link; pixmap_set := a_pixmap_set
create node_expand_button
node_expand_button.select_actions.extend (agent on_toggle_sublinks)
node_expand_button.set_pixmap (pixmap_set [False])
if attached pixmap_set.first as p then
node_expand_button.set_minimum_size (p.width, p.height)
end
make_box (0, 0)
extend (create {EV_CELL})
extend_unexpanded (node_expand_button)
node_expand_button.disable_tabable_from
end
feature -- Status query
sub_links_visible: BOOLEAN
feature {NONE} -- Event handling
on_toggle_sublinks
-- toggle sub-links visibility
do
sub_links_visible := not sub_links_visible
content_super_link.change_sub_links (sub_links_visible)
node_expand_button.set_pixmap (pixmap_set [sub_links_visible])
-- parent.set_focus
-- Needed for windows to prevent focus dots from spoiling graphic but doens't work
end
feature {NONE} -- Internal attributes
content_super_link: EL_SUPER_HTML_TEXT_HYPERLINK_AREA
node_expand_button: EV_BUTTON
pixmap_set: EL_BOOLEAN_INDEXABLE [EL_SVG_PIXMAP]
-- node expand/contract pixmap
end