table-view-cell.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #if defined(Hiro_TableView)
  2. namespace hiro {
  3. auto pTableViewCell::construct() -> void {
  4. }
  5. auto pTableViewCell::destruct() -> void {
  6. }
  7. auto pTableViewCell::setAlignment(Alignment alignment) -> void {
  8. _redraw();
  9. }
  10. auto pTableViewCell::setBackgroundColor(Color color) -> void {
  11. _redraw();
  12. }
  13. auto pTableViewCell::setCheckable(bool checkable) -> void {
  14. _redraw();
  15. }
  16. auto pTableViewCell::setChecked(bool checked) -> void {
  17. _redraw();
  18. }
  19. auto pTableViewCell::setForegroundColor(Color color) -> void {
  20. _redraw();
  21. }
  22. auto pTableViewCell::setIcon(const image& icon) -> void {
  23. _redraw();
  24. }
  25. auto pTableViewCell::setText(const string& text) -> void {
  26. _redraw();
  27. }
  28. auto pTableViewCell::_grandparent() -> maybe<pTableView&> {
  29. if(auto parent = _parent()) return parent->_parent();
  30. }
  31. auto pTableViewCell::_parent() -> maybe<pTableViewItem&> {
  32. if(auto parent = self().parentTableViewItem()) {
  33. if(auto self = parent->self()) return *self;
  34. }
  35. return nothing;
  36. }
  37. auto pTableViewCell::_redraw() -> void {
  38. @autoreleasepool {
  39. if(auto pTableViewItem = _parent()) {
  40. if(auto pTableView = _grandparent()) {
  41. auto column = self().offset();
  42. auto row = pTableViewItem->self().offset();
  43. NSRect rect = [[pTableView->cocoaTableView content] frameOfCellAtColumn:column row:row];
  44. [[pTableView->cocoaTableView content] setNeedsDisplayInRect:rect];
  45. }
  46. }
  47. }
  48. }
  49. }
  50. #endif