DUDS
Distributed Update of Data from Something
BppIconItem.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of the DUDS project. It is subject to the BSD-style
3  * license terms in the LICENSE file found in the top-level directory of this
4  * distribution and at https://github.com/jjackowski/duds/blob/master/LICENSE.
5  * No part of DUDS, including this file, may be copied, modified, propagated,
6  * or distributed except according to the terms contained in the LICENSE file.
7  *
8  * Copyright (C) 2020 Jeff Jackowski
9  */
12 
13 namespace duds { namespace ui { namespace menu { namespace renderers {
14 
21 class BppIconItem {
26 public:
30  BppIconItem() = default;
42  img(std::move(icon)) { }
47  return img;
48  }
54  img = newimg;
55  }
62  img = std::move(newimg);
63  }
64 };
65 
69 typedef std::shared_ptr<BppIconItem> BppIconItemSptr;
70 
77 class BppMenuIconItem : public MenuItem, public BppIconItem {
78 public:
89  const std::string &label,
90  Flags flags = Flags::Zero()
91  ) : MenuItem(MenuItemToken(), label, flags) { }
104  const std::string &label,
105  Flags flags = Flags::Zero()
106  ) : MenuItem(MenuItemToken(), label, flags), BppIconItem(icon) { }
120  const std::string &label,
121  Flags flags = Flags::Zero()
122  ) : MenuItem(MenuItemToken(), label, flags), BppIconItem(std::move(icon)) { }
135  const std::string &label,
136  const std::string &description,
137  Flags flags = Flags::Zero()
138  ) : MenuItem(MenuItemToken(), label, description, flags) { }
153  const std::string &label,
154  const std::string &description,
155  Flags flags = Flags::Zero()
156  ) : MenuItem(MenuItemToken(), label, description, flags), BppIconItem(icon) { }
172  const std::string &label,
173  const std::string &description,
174  Flags flags = Flags::Zero()
175  ) : MenuItem(MenuItemToken(), label, description, flags),
176  BppIconItem(std::move(icon)) { }
191  const std::string &label,
192  const std::string &description,
193  const std::string &value,
194  Flags flags = Flags::Zero()
195  ) : MenuItem(MenuItemToken(), label, description, value, flags) { }
212  const std::string &label,
213  const std::string &description,
214  const std::string &value,
215  Flags flags = Flags::Zero()
216  ) : MenuItem(MenuItemToken(), label, description, value, flags),
217  BppIconItem(icon) { }
235  const std::string &label,
236  const std::string &description,
237  const std::string &value,
238  Flags flags = Flags::Zero()
239  ) : MenuItem(MenuItemToken(), label, description, value, flags),
240  BppIconItem(std::move(icon)) { }
241 };
242 
246 typedef std::shared_ptr<BppMenuIconItem> BppMenuIconItemSptr;
247 
255 public:
267  const std::string &label,
268  Flags flags = Flags::Zero()
269  ) : GenericMenuItem(MenuItemToken(), label, flags) { }
283  const std::string &label,
284  Flags flags = Flags::Zero()
285  ) : GenericMenuItem(MenuItemToken(), label, flags), BppIconItem(icon) { }
300  const std::string &label,
301  Flags flags = Flags::Zero()
302  ) : GenericMenuItem(MenuItemToken(), label, flags),
303  BppIconItem(std::move(icon)) { }
317  const std::string &label,
318  const std::string &description,
319  Flags flags = Flags::Zero()
320  ) : GenericMenuItem(MenuItemToken(), label, description, flags) { }
336  const std::string &label,
337  const std::string &description,
338  Flags flags = Flags::Zero()
339  ) : GenericMenuItem(MenuItemToken(), label, description, flags),
340  BppIconItem(icon) { }
357  const std::string &label,
358  const std::string &description,
359  Flags flags = Flags::Zero()
360  ) : GenericMenuItem(MenuItemToken(), label, description, flags),
361  BppIconItem(std::move(icon)) { }
377  const std::string &label,
378  const std::string &description,
379  const std::string &value,
380  Flags flags = Flags::Zero()
381  ) : GenericMenuItem(MenuItemToken(), label, description, value, flags) { }
399  const std::string &label,
400  const std::string &description,
401  const std::string &value,
402  Flags flags = Flags::Zero()
403  ) : GenericMenuItem(MenuItemToken(), label, description, value, flags),
404  BppIconItem(icon) { }
423  const std::string &label,
424  const std::string &description,
425  const std::string &value,
426  Flags flags = Flags::Zero()
427  ) : GenericMenuItem(MenuItemToken(), label, description, value, flags),
428  BppIconItem(std::move(icon)) { }
435  static std::shared_ptr<GenericBppMenuIconItem> make(
436  const std::string &label,
437  Flags flags = Flags::Zero()
438  ) {
439  return std::make_shared<GenericBppMenuIconItem>(
440  MenuItemToken(),
441  label,
442  flags
443  );
444  }
452  static std::shared_ptr<GenericBppMenuIconItem> make(
454  const std::string &label,
455  Flags flags = Flags::Zero()
456  ) {
457  return std::make_shared<GenericBppMenuIconItem>(
458  MenuItemToken(),
459  icon,
460  label,
461  flags
462  );
463  }
472  static std::shared_ptr<GenericBppMenuIconItem> make(
474  const std::string &label,
475  Flags flags = Flags::Zero()
476  ) {
477  return std::make_shared<GenericBppMenuIconItem>(
478  MenuItemToken(),
479  std::move(icon),
480  label,
481  flags
482  );
483  }
492  static std::shared_ptr<GenericBppMenuIconItem> make(
493  const std::string &label,
494  const std::string &description,
495  Flags flags = Flags::Zero()
496  ) {
497  return std::make_shared<GenericBppMenuIconItem>(
498  MenuItemToken(),
499  label,
500  description,
501  flags
502  );
503  }
513  static std::shared_ptr<GenericBppMenuIconItem> make(
515  const std::string &label,
516  const std::string &description,
517  Flags flags = Flags::Zero()
518  ) {
519  return std::make_shared<GenericBppMenuIconItem>(
520  MenuItemToken(),
521  icon,
522  label,
523  description,
524  flags
525  );
526  }
537  static std::shared_ptr<GenericBppMenuIconItem> make(
539  const std::string &label,
540  const std::string &description,
541  Flags flags = Flags::Zero()
542  ) {
543  return std::make_shared<GenericBppMenuIconItem>(
544  MenuItemToken(),
545  std::move(icon),
546  label,
547  description,
548  flags
549  );
550  }
560  static std::shared_ptr<GenericBppMenuIconItem> make(
561  const std::string &label,
562  const std::string &description,
563  const std::string &value,
564  Flags flags = Flags::Zero()
565  ) {
566  return std::make_shared<GenericBppMenuIconItem>(
567  MenuItemToken(),
568  label,
569  description,
570  value,
571  flags
572  );
573  }
584  static std::shared_ptr<GenericBppMenuIconItem> make(
586  const std::string &label,
587  const std::string &description,
588  const std::string &value,
589  Flags flags = Flags::Zero()
590  ) {
591  return std::make_shared<GenericBppMenuIconItem>(
592  MenuItemToken(),
593  icon,
594  label,
595  description,
596  value,
597  flags
598  );
599  }
611  static std::shared_ptr<GenericBppMenuIconItem> make(
613  const std::string &label,
614  const std::string &description,
615  const std::string &value,
616  Flags flags = Flags::Zero()
617  ) {
618  return std::make_shared<GenericBppMenuIconItem>(
619  MenuItemToken(),
620  std::move(icon),
621  label,
622  description,
623  value,
624  flags
625  );
626  }
627 };
628 
632 typedef std::shared_ptr<GenericBppMenuIconItem> GenericBppMenuIconItemSptr;
633 
634 } } } }
void icon(duds::ui::graphics::ConstBppImageSptr &&newimg)
Sets the item&#39;s icon to the given image.
Definition: BppIconItem.hpp:61
std::shared_ptr< BppIconItem > BppIconItemSptr
A shared pointer to a BppIconItem object.
Definition: BppIconItem.hpp:69
BppMenuIconItem(MenuItemToken, const duds::ui::graphics::BppImageSptr &icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem with an associated value.
BppMenuIconItem(MenuItemToken, const duds::ui::graphics::BppImageSptr &icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
A MenuIten that holds a bit-per-pixel icon to represent the item.
Definition: BppIconItem.hpp:77
BppMenuIconItem(MenuItemToken, const std::string &label, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
Definition: BppIconItem.hpp:87
BppMenuIconItem(MenuItemToken, const duds::ui::graphics::BppImageSptr &icon, const std::string &label, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
BppMenuIconItem(MenuItemToken, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem with an associated value.
duds::ui::graphics::ConstBppImageSptr img
The contained icon image.
Definition: BppIconItem.hpp:25
std::shared_ptr< const BppImage > ConstBppImageSptr
Definition: BppImage.hpp:1778
static std::shared_ptr< GenericBppMenuIconItem > make(const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
STL namespace.
BppMenuIconItem(MenuItemToken, duds::ui::graphics::BppImageSptr &&icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
move_impl move(unsigned int c, unsigned int r)
Display stream manipulator that moves the display cursor to the given location.
GenericBppMenuIconItem(MenuItemToken, const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
This token is needed to construct MenuItem objects; use to force all objects to be managed by shared ...
Definition: MenuItem.hpp:119
Generalized item thingy that holds a bit-per-pixel image as an icon.
Definition: BppIconItem.hpp:21
static std::shared_ptr< GenericBppMenuIconItem > make(const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
static std::shared_ptr< GenericBppMenuIconItem > make(duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
std::shared_ptr< BppMenuIconItem > BppMenuIconItemSptr
A shared pointer to a BppMenuIconItem object.
std::shared_ptr< BppImage > BppImageSptr
Definition: BppImage.hpp:1777
BppIconItem(duds::ui::graphics::ConstBppImageSptr &&icon)
Constructs the item with the given icon.
Definition: BppIconItem.hpp:41
static std::shared_ptr< GenericBppMenuIconItem > make(const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
void icon(const duds::ui::graphics::ConstBppImageSptr &newimg)
Sets the item&#39;s icon to the given image.
Definition: BppIconItem.hpp:53
GenericBppMenuIconItem(MenuItemToken, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
GenericBppMenuIconItem(MenuItemToken, const std::string &label, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
A generic take on MenuItem that invokes a Boost signal when the item is chosen, selected, or deselected.
GenericBppMenuIconItem(MenuItemToken, const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem with an associated value.
GenericBppMenuIconItem(MenuItemToken, duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
static std::shared_ptr< GenericBppMenuIconItem > make(const std::string &label, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
static std::shared_ptr< GenericBppMenuIconItem > make(duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
BppIconItem()=default
Constructs the item without an icon.
BppMenuIconItem(MenuItemToken, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
A GenericMenuItem that holds a bit-per-pixel icon to represent the item.
BppIconItem(const duds::ui::graphics::ConstBppImageSptr &icon)
Constructs the item with the given icon.
Definition: BppIconItem.hpp:35
static std::shared_ptr< GenericBppMenuIconItem > make(duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
static std::shared_ptr< GenericBppMenuIconItem > make(const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
Represents an option that a user can chose from a menu of options.
Definition: MenuItem.hpp:58
BppMenuIconItem(MenuItemToken, duds::ui::graphics::BppImageSptr &&icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem with an associated value.
GenericBppMenuIconItem(MenuItemToken, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem with an associated value.
GenericBppMenuIconItem(MenuItemToken, duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
const duds::ui::graphics::ConstBppImageSptr & icon() const
Returns the item&#39;s icon.
Definition: BppIconItem.hpp:46
GenericBppMenuIconItem(MenuItemToken, const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem.
static std::shared_ptr< GenericBppMenuIconItem > make(const duds::ui::graphics::ConstBppImageSptr &icon, const std::string &label, const std::string &description, Flags flags=Flags::Zero())
Makes a shared pointer holding a new GenericBppMenuIconItem.
BppMenuIconItem(MenuItemToken, duds::ui::graphics::BppImageSptr &&icon, const std::string &label, Flags flags=Flags::Zero())
Constructs a new BppMenuIconItem.
GenericBppMenuIconItem(MenuItemToken, duds::ui::graphics::ConstBppImageSptr &&icon, const std::string &label, const std::string &description, const std::string &value, Flags flags=Flags::Zero())
Constructs a new GenericBppMenuIconItem with an associated value.
std::shared_ptr< GenericBppMenuIconItem > GenericBppMenuIconItemSptr
A shared pointer to a GenericBppMenuIconItem object.