table-view-item.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #if defined(Hiro_TableView)
  2. namespace hiro {
  3. auto pTableViewItem::construct() -> void {
  4. }
  5. auto pTableViewItem::destruct() -> void {
  6. }
  7. auto pTableViewItem::append(sTableViewCell cell) -> void {
  8. @autoreleasepool {
  9. if(auto tableView = _parent()) {
  10. [[tableView->cocoaView content] reloadData];
  11. }
  12. }
  13. }
  14. auto pTableViewItem::remove(sTableViewCell cell) -> void {
  15. @autoreleasepool {
  16. if(auto tableView = _parent()) {
  17. [[tableView->cocoaView content] reloadData];
  18. }
  19. }
  20. }
  21. auto pTableViewItem::setAlignment(Alignment alignment) -> void {
  22. }
  23. auto pTableViewItem::setBackgroundColor(Color color) -> void {
  24. }
  25. auto pTableViewItem::setFocused() -> void {
  26. }
  27. auto pTableViewItem::setForegroundColor(Color color) -> void {
  28. }
  29. auto pTableViewItem::setSelected(bool selected) -> void {
  30. @autoreleasepool {
  31. if(auto tableView = _parent()) {
  32. auto lock = tableView->acquire();
  33. auto indexSet = [[NSMutableIndexSet alloc] init];
  34. for(auto& item : tableView->state().items) {
  35. if(item->selected()) [indexSet addIndex:item->offset()];
  36. }
  37. [[tableView->cocoaView content] selectRowIndexes:indexSet byExtendingSelection:NO];
  38. [indexSet release];
  39. }
  40. }
  41. }
  42. auto pTableViewItem::_parent() -> maybe<pTableView&> {
  43. if(auto parent = self().parentTableView()) {
  44. if(auto self = parent->self()) return *self;
  45. }
  46. return nothing;
  47. }
  48. }
  49. #endif