![]() |
Webdar 1.0.0
Web user interface to libdar
|
class html_aiguille is a pure virtual class More...
#include <html_aiguille.hpp>
Public Member Functions | |
html_aiguille (const html_aiguille &ref)=delete | |
html_aiguille (html_aiguille &&ref) noexcept=delete | |
html_aiguille & | operator= (const html_aiguille &ref)=delete |
html_aiguille & | operator= (html_aiguille &&ref) noexcept=delete |
void | clear () |
clear all adopted data and remove all sections | |
void | add_section (const std::string &name, const std::string &title) |
add a new sections More... | |
void | adopt_in_section (const std::string §ion_name, body_builder *obj) |
adopt another objet in the section which name is provided More... | |
void | adopt_in_section (signed int num, body_builder *obj) |
adopt an object in seection which number is provided | |
void | clear_section (const std::string §ion_name) |
foresake all adopted objets in the given section | |
void | clear_section (signed int num) |
foresake all adopted objects in the given section | |
void | remove_section (const std::string §ion_name) |
foresake objects and remove section of that name More... | |
void | remove_section (signed int num) |
foresake objects and remove section at that index | |
void | set_active_section (const std::string &name) |
manually set the visible section, based on section name | |
void | set_active_section (signed int num) |
manually set the visible section number (numbered by ordre or addition, starting at zero) | |
signed int | get_active_section () const |
get the current active section | |
unsigned int | size () const |
return the total number of section | |
unsigned int | section_name_to_num (const std::string &name) const |
return the index of the provided section name | |
std::string | num_to_section_name (unsigned int num) const |
return the name of the section knowing its index | |
virtual void | void_child_will_foresake (body_builder *voidobj, body_builder *obj) override |
inherited from html_void_parent_notifier More... | |
![]() | |
body_builder () | |
constructor | |
body_builder (const body_builder &ref) | |
copy constructor More... | |
body_builder (body_builder &&ref) noexcept=delete | |
move constructor More... | |
body_builder & | operator= (const body_builder &ref) |
assignment operator drops all existing children More... | |
body_builder & | operator= (body_builder &&ref) noexcept=delete |
move operator More... | |
virtual | ~body_builder () |
the (virtual) destructor | |
void | set_prefix (const chemin &prefix) |
void | adopt (body_builder *obj) |
bool | is_adopted () const |
whether the object has currently a parent (= is adopted) | |
void | foresake (body_builder *obj) |
void | set_visible (bool mode) |
ask for the object to become visible in HTML page or temporarily hidden More... | |
bool | get_visible () const |
returns the current visible status of the object More... | |
bool | get_visible_recursively () const |
return the effective visible status of an object taking into account all of ancestors that adopted it | |
void | add_css_class (const std::string &name) |
set this object with a additional css_class (assuming it is defined in a css_library available for this object) | |
void | add_css_class (const css_class_group &cg) |
set this object with an additional set of css_classes (assuming they are all defined in a css_library available for this object) | |
bool | has_css_class (const std::string &name) const |
check the presence of the given class name | |
void | remove_css_class (const std::string &name) |
remove the provided css_class name from the list of css_class names this object has been assigned to | |
void | remove_css_class (const css_class_group &cg) |
remove the provided css_class_group from the list | |
void | clear_css_classes () |
clear the whole list of css_class names | |
const std::set< std::string > & | get_css_classes_as_a_set () const |
provide the list of css_class names that this object has been set with | |
css_class_group | get_css_class_group () const |
provide the list of css_class names as a css_class_group | |
std::string | get_css_classes (const std::string &extra="") const |
return the class_name as inlined css, suitable to be added in a html marker More... | |
void | define_css_class_in_library (const css_class &csscl) |
void | define_css_class_in_library (const std::string &name, const css &cssdef) |
bool | is_css_class_defined_in_library (const std::string &name) const |
check whether a css_class of given name already exists in a reachable css_library | |
std::string | get_body_part (const chemin &path, const request &req) |
void | ignore_body_changed_from_my_children (bool mode) |
ignore my_body_part_has_changed() invoked from adopted children and myself More... | |
bool | get_ignore_body_changed_from_my_children () const |
get the current status of ignore_body_changed_from_my_children() | |
void | set_no_CR (bool no_cr=true) |
ask for the implementation not to add a new line after this control More... | |
void | assign_anchor (bool mode) |
assign an anchor to this object (the object's inherited_get_body_part() will be wrapped into an HTML anchor: ) More... | |
std::string | get_assigned_anchor () const |
return the anchor value that has been assiged to this object (without the leading #) More... | |
virtual void | bind_to_anchor (const std::string &val) |
ask inherited components to use this anchor in case they redirect to an new URL or generate new URLs within their body part. More... | |
![]() | |
html_void_parent_notifier (const html_void_parent_notifier &ref)=default | |
html_void_parent_notifier (html_void_parent_notifier &&ref) noexcept=default | |
html_void_parent_notifier & | operator= (const html_void_parent_notifier &ref)=default |
html_void_parent_notifier & | operator= (html_void_parent_notifier &&ref) noexcept=default |
virtual void | void_child_visibility_has_changed (body_builder *voidobj) |
propagates body_builder::my_visibility_has_changed() More... | |
virtual void | void_child_has_adopted (body_builder *voidobj, body_builder *obj) |
propagates body_builder::has_adopted() More... | |
virtual void | void_child_will_foresake (body_builder *voidobj, body_builder *obj) |
propagates body_builder::will_foresake() More... | |
Static Public Attributes | |
static constexpr const signed int | noactive = -1 |
Protected Member Functions | |
virtual std::string | inherited_get_body_part (const chemin &path, const request &req) override |
implementation of get_body_part() method for inherited classes More... | |
virtual void | section_added (const std::string &name, const std::string &title) |
virtual void | section_removed (const std::string &name) |
void | adopt (body_builder *obj) |
![]() | |
virtual std::string | inherited_get_body_part (const chemin &path, const request &req)=0 |
implementation of get_body_part() method for inherited classes More... | |
void | my_body_part_has_changed () |
let a class record a change in what inherited_get_body_part() would return if it was called again with the same request More... | |
virtual void | my_visibility_has_changed () |
available for inherited class to be informed when their visibility changes More... | |
bool | has_my_body_part_changed () const |
obtain the body_part changed status More... | |
chemin | get_path () const |
return the path of 'this' according to its descent in the body_builder tree of adopted children | |
std::string | get_recorded_name () const |
void | store_css_library () |
this creates a css_library accessible from adopted objects to hold html class definitions More... | |
bool | has_local_css_library () const |
return true if this object has a css_library locally stored (not from a adopter object) | |
std::unique_ptr< css_library > & | lookup_css_library () const |
lookup toward registered parent body_builder object for the closest stored css_library More... | |
std::string | get_body_part_from_target_child (const chemin &path, const request &req) |
std::string | get_body_part_from_all_children (const chemin &path, const request &req) |
virtual void | path_has_changed () |
For inherited classes, called when the path has changed,. More... | |
virtual void | has_adopted (body_builder *obj) |
Be informed that a new child has been adopted. More... | |
virtual void | will_foresake (body_builder *obj) |
Be informed that a child is about to be foresaken. More... | |
virtual void | has_been_adopted_by (body_builder *obj) |
Be informed that we have been adopted by obj, our new parent. | |
virtual void | will_be_foresaken_by (body_builder *obj) |
Be informed that we are about to be foresaken by obj, our soon former parent. | |
virtual void | css_classes_have_changed () |
Be informed about css class modification. More... | |
virtual void | new_css_library_available () |
unsigned int | size () const |
access to adopted childs | |
body_builder * | operator[] (unsigned int i) |
access to adopted childs | |
body_builder * | get_parent () const |
return the parent object or nullptr if no object has adopted this object | |
template<class T > | |
void | closest_ancestor_of_type (T *&ancestor) |
access to the closest ancestor (parent) matching (dynamic_cast) the provided type More... | |
void | orphan_all_children () |
orphan all adopted children | |
bool | get_no_CR () const |
true if it has been requested no to add Carriage Return after the HTML object | |
class html_aiguille is a pure virtual class
it groups adopted objets under several labeled sections at most one section is visible at a time and can be changed calling set_active_section(). If given "noactive" to set_active_section() no section will show. By default no section is created, one has to be created calling add_section() for the object to be able to adopt other objects. adopt() method from body_builder is replaced by adopt_in_section()
void html_aiguille::add_section | ( | const std::string & | name, |
const std::string & | title | ||
) |
add a new sections
[in] | name | is the name of the section, not two sections can have the same name, this is code internal information which can be used to be referred to. |
[in] | title | is what can shows as a section title, may be the the same title of another section, can also be tranlated for localization, code should not assume anything based in the value of this field. |
|
protected |
Common interface for classes that have to ask other body_builder to contribute in building their body_part()
this call is not mandatory, but let a body_builder object the possibility to rely on the set of body_builder available protected routines to recursively build the body part from the list of adopted children. An object can only have one parent.
void html_aiguille::adopt_in_section | ( | const std::string & | section_name, |
body_builder * | obj | ||
) |
adopt another objet in the section which name is provided
|
overrideprotectedvirtual |
implementation of get_body_part() method for inherited classes
Implements body_builder.
void html_aiguille::remove_section | ( | const std::string & | section_name | ) |
foresake objects and remove section of that name
clear_section succeeded, and we don't ???
|
overridevirtual |
inherited from html_void_parent_notifier
Reimplemented from html_void_parent_notifier.