Nana C++ Library. Reference for users.
What we need to use nana
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
nana::drawerbase::listbox::essence Struct Reference

created and live by the trigger, holds data for listbox: the state of the struct does not effect on member functions, therefore all data members are public. More...

Classes

struct  mouse_selection_part
 
struct  operation_rep
 

Public Types

enum  item_state {
  item_state::normal, item_state::highlighted, item_state::pressed, item_state::grabbed,
  item_state::floated
}
 
enum  parts {
  parts::unknown = -1, parts::header, parts::list, parts::list_blank,
  parts::checker
}
 

Public Member Functions

 essence ()
 
unsigned suspension_width () const
 
bool cs_status (index_pair abs_pos, bool for_selection) const
 
void resize_disp_area ()
 
size_type column_from_pos (int screen_x) const
 
std::string to_string (const export_options &exp_opt) const
 
int content_position (const index_pair &pos) const
 
index_pair first_display () const noexcept
 
unsigned item_height () const noexcept
 
point coordinate_cast (const point &from, bool from_screen) noexcept
 
std::pair< int, int > columns_range () const
 
void start_mouse_selection (const arg_mouse &arg)
 
void update_mouse_selection (const point &screen_pos)
 
void stop_mouse_selection () noexcept
 
size_type count_of_exposed (bool with_rest) const
 Returns the number of items that are contained on on screen. More...
 
void update (bool ignore_auto_draw=false) noexcept
 
::nana::size calc_content_size (bool try_update=true)
 
nana::rectangle checkarea (int x, int y) const noexcept
 move to scheme ?? 16 ? More...
 
int item_xpos (const nana::rectangle &r) const
 
int item_window_top (const index_pair &pos) const
 
std::pair< parts, size_t > where (const nana::point &pos) const noexcept
 
bool calc_where (const point &pos) noexcept
 
void widget_to_header (nana::point &pos) noexcept
 
void draw_peripheral ()
 
rectangle content_area () const
 
double header_font_px () const
 
unsigned header_visible_px () const
 
bool rect_header (nana::rectangle &r) const
 
bool rect_lister (nana::rectangle &r) const
 
std::vector< size_typeordered_columns (unsigned lister_w) const
 
inline_paneopen_inline (pat::abstract_factory< inline_notifier_interface > *factory, inline_indicator *indicator)
 

Public Attributes

::nana::listboxlistbox_ptr {nullptr}
 
::nana::listbox::scheme_typescheme_ptr {nullptr}
 
::nana::paint::graphicsgraph {nullptr}
 
bool auto_draw {true}
 
bool checkable {false}
 
bool if_image {false}
 
unsigned text_height
 
::nana::listbox::export_options def_exp_options
 
es_header header
 
es_lister lister
 
item_state ptr_state { item_state::normal }
 
std::pair< parts, std::size_tpointer_where
 
std::unique_ptr
< widgets::skeletons::content_view
content_view
 
std::function< void(paint::graphics
&, const rectangle &, bool)> 
ctg_icon_renderer
 Renderer for the category icon. More...
 
std::function< bool(nana::mouse)> pred_msup_deselect
 
struct
nana::drawerbase::listbox::essence::operation_rep 
operation
 
struct
nana::drawerbase::listbox::essence::mouse_selection_part 
mouse_selection
 
std::map
< pat::detail::abstract_factory_base
*, std::deque< std::unique_ptr
< inline_pane > > > 
inline_table
 
std::map
< pat::detail::abstract_factory_base
*, std::deque< std::unique_ptr
< inline_pane > > > 
inline_buffered_table
 

Detailed Description

created and live by the trigger, holds data for listbox: the state of the struct does not effect on member functions, therefore all data members are public.

Member Enumeration Documentation

Enumerator
normal 
highlighted 
pressed 
grabbed 
floated 
Enumerator
unknown 
header 
list 
list_blank 
checker 

Constructor & Destructor Documentation

nana::drawerbase::listbox::essence::essence ( )
inline

Member Function Documentation

::nana::size nana::drawerbase::listbox::essence::calc_content_size ( bool  try_update = true)
inline
bool nana::drawerbase::listbox::essence::calc_where ( const point pos)
inlinenoexcept
nana::rectangle nana::drawerbase::listbox::essence::checkarea ( int  x,
int  y 
) const
inlinenoexcept

move to scheme ?? 16 ?

size_type nana::drawerbase::listbox::essence::column_from_pos ( int  screen_x) const
inline
std::pair<int, int> nana::drawerbase::listbox::essence::columns_range ( ) const
inline
rectangle nana::drawerbase::listbox::essence::content_area ( ) const
inline
int nana::drawerbase::listbox::essence::content_position ( const index_pair pos) const
inline
point nana::drawerbase::listbox::essence::coordinate_cast ( const point from,
bool  from_screen 
)
inlinenoexcept
size_type nana::drawerbase::listbox::essence::count_of_exposed ( bool  with_rest) const
inline

Returns the number of items that are contained on on screen.

with_rest Indicates whether the extra one item which is not completely contained in rest pixels to be included.

Returns
The number of items
bool nana::drawerbase::listbox::essence::cs_status ( index_pair  abs_pos,
bool  for_selection 
) const
inline
void nana::drawerbase::listbox::essence::draw_peripheral ( )
inline
index_pair nana::drawerbase::listbox::essence::first_display ( ) const
inlinenoexcept
double nana::drawerbase::listbox::essence::header_font_px ( ) const
inline
unsigned nana::drawerbase::listbox::essence::header_visible_px ( ) const
inline
unsigned nana::drawerbase::listbox::essence::item_height ( ) const
inlinenoexcept
int nana::drawerbase::listbox::essence::item_window_top ( const index_pair pos) const
inline
int nana::drawerbase::listbox::essence::item_xpos ( const nana::rectangle r) const
inline
inline_pane* nana::drawerbase::listbox::essence::open_inline ( pat::abstract_factory< inline_notifier_interface > *  factory,
inline_indicator indicator 
)
inline
std::vector<size_type> nana::drawerbase::listbox::essence::ordered_columns ( unsigned  lister_w) const
inline
bool nana::drawerbase::listbox::essence::rect_header ( nana::rectangle r) const
inline
bool nana::drawerbase::listbox::essence::rect_lister ( nana::rectangle r) const
inline
void nana::drawerbase::listbox::essence::resize_disp_area ( )
inline
void nana::drawerbase::listbox::essence::start_mouse_selection ( const arg_mouse arg)
inline
void nana::drawerbase::listbox::essence::stop_mouse_selection ( )
inlinenoexcept
unsigned nana::drawerbase::listbox::essence::suspension_width ( ) const
inline
std::string nana::drawerbase::listbox::essence::to_string ( const export_options exp_opt) const
inline
void nana::drawerbase::listbox::essence::update ( bool  ignore_auto_draw = false)
inlinenoexcept
void nana::drawerbase::listbox::essence::update_mouse_selection ( const point screen_pos)
inline
std::pair<parts, size_t> nana::drawerbase::listbox::essence::where ( const nana::point pos) const
inlinenoexcept

we are inside

we are in the header

void nana::drawerbase::listbox::essence::widget_to_header ( nana::point pos)
inlinenoexcept

Member Data Documentation

bool nana::drawerbase::listbox::essence::auto_draw {true}
bool nana::drawerbase::listbox::essence::checkable {false}
std::unique_ptr<widgets::skeletons::content_view> nana::drawerbase::listbox::essence::content_view
std::function<void(paint::graphics&, const rectangle&, bool)> nana::drawerbase::listbox::essence::ctg_icon_renderer

Renderer for the category icon.

::nana::listbox::export_options nana::drawerbase::listbox::essence::def_exp_options
::nana::paint::graphics* nana::drawerbase::listbox::essence::graph {nullptr}
es_header nana::drawerbase::listbox::essence::header
bool nana::drawerbase::listbox::essence::if_image {false}
std::map<pat::detail::abstract_factory_base*, std::deque<std::unique_ptr<inline_pane> > > nana::drawerbase::listbox::essence::inline_buffered_table
std::map<pat::detail::abstract_factory_base*, std::deque<std::unique_ptr<inline_pane> > > nana::drawerbase::listbox::essence::inline_table
::nana::listbox* nana::drawerbase::listbox::essence::listbox_ptr {nullptr}
es_lister nana::drawerbase::listbox::essence::lister
struct nana::drawerbase::listbox::essence::mouse_selection_part nana::drawerbase::listbox::essence::mouse_selection
struct nana::drawerbase::listbox::essence::operation_rep nana::drawerbase::listbox::essence::operation
std::pair<parts, std::size_t> nana::drawerbase::listbox::essence::pointer_where
std::function<bool(nana::mouse)> nana::drawerbase::listbox::essence::pred_msup_deselect
item_state nana::drawerbase::listbox::essence::ptr_state { item_state::normal }
::nana::listbox::scheme_type* nana::drawerbase::listbox::essence::scheme_ptr {nullptr}
unsigned nana::drawerbase::listbox::essence::text_height