From 158b36e51c8c2925d6c8af6e08380369d019378e Mon Sep 17 00:00:00 2001
From: TinWoodman92 <chrhodgden@gmail.com>
Date: Sat, 16 Dec 2023 06:18:44 -0600
Subject: Initial commit

---
 entry_list.py | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 entry_list.py

(limited to 'entry_list.py')

diff --git a/entry_list.py b/entry_list.py
new file mode 100644
index 0000000..09719fd
--- /dev/null
+++ b/entry_list.py
@@ -0,0 +1,70 @@
+#Notes:
+# There is a simplification opportinity to depreciate the EntryList class.
+# because we are using list index funtionality and not iterator functionalit
+# just put the Entry objects into a list object, then create a nav str object that is populated with Entry.text items.
+# ks == [b'\r'] will loop to find entry.text == nav_str
+# Should we keep EntryList, but move that functionality here?
+# the entry.indicate() method is referencing entry.select. May need to keep the .select setter functionality.
+
+class EntryList():
+	def __init__(self, init_list):
+		self.entries = init_list
+		self.iter_entries = iter(init_list)
+		self.entries[0].select = True
+	
+	def __iter__(self):
+		self.iter_entries = iter(self.entries)
+		return self.iter_entries
+
+	def __next__(self):
+		return next(self.iter_entries)
+	
+	# FOR THE LOVE OF GOD DEVS MAKE BACK A THING
+	def __back__(self):
+		pass
+
+	def add_entry(self, entry):
+		if not entry in self.entries:
+			entry.select = False
+			self.entries.append(entry)
+			self.iter_entries = iter(self.entries)
+			
+	def remove_entry(self, entry):
+		chk = False
+		if entry in self.entries:
+			chk = entry.select
+			self.entries.remove(entry)
+			self.iter_entries = iter(self.entries)
+		if chk:
+			self.entries[0].select = True
+
+	def set_select(self):
+		i = 0
+		for entry in self.entries:
+			entry.select = (i == 0)
+			i += 1
+
+	def nav(self, next = 'NEXT'):
+		chk = False
+		if next == 'NEXT':
+			for entry in self.entries:
+				if entry.select:
+					chk = entry.select
+					entry.select = False   
+				elif chk:
+					entry.select = chk
+					chk = False
+			self.entries[0].select = chk
+
+		elif next == 'PREV':
+			for entry in reversed(self.entries):
+				if entry.select:
+					chk = entry.select
+					entry.select = False
+				elif chk:
+					entry.select = chk
+					chk = False
+			self.entries[-1].select = chk
+
+
+	
-- 
cgit v1.2.3