aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/Applications/AddressBook.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.WinForms/Applications/AddressBook.cs')
-rw-r--r--ShiftOS.WinForms/Applications/AddressBook.cs86
1 files changed, 86 insertions, 0 deletions
diff --git a/ShiftOS.WinForms/Applications/AddressBook.cs b/ShiftOS.WinForms/Applications/AddressBook.cs
new file mode 100644
index 0000000..c75247f
--- /dev/null
+++ b/ShiftOS.WinForms/Applications/AddressBook.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using ShiftOS.Engine;
+using static ShiftOS.Objects.ShiftFS.Utils;
+using Newtonsoft.Json;
+
+namespace ShiftOS.WinForms.Applications
+{
+ [WinOpen("address_book")]
+ [AppscapeEntry("Address Book", "Add and edit your contacts within the digital society in an easy-to-use application.", 1024, 750, null, "Office")]
+ [DefaultTitle("Address Book")]
+ [Launcher("Address Book", false, null, "Office")]
+ public partial class AddressBook : UserControl, IShiftOSWindow
+ {
+ public AddressBook()
+ {
+ InitializeComponent();
+ }
+
+ string data_dir = Paths.GetPath("data") + "/address_book";
+
+ public void OnLoad()
+ {
+ if (!DirectoryExists(data_dir))
+ CreateDirectory(data_dir);
+
+ var userDefined = new TreeNode();
+ userDefined.Text = "User-defined";
+ foreach(var f in GetFiles(data_dir))
+ {
+ try
+ {
+ var contact = JsonConvert.DeserializeObject<Contact>(ReadAllText(f));
+ var node = new TreeNode();
+ node.Text = contact.UserName + "@" + contact.SystemName;
+ node.Tag = contact;
+ userDefined.Nodes.Add(node);
+ }
+ catch { }
+ }
+ tvcontacts.Nodes.Add(userDefined);
+ userDefined.Expand();
+ }
+
+ public void OnSkinLoad()
+ {
+ }
+
+ public bool OnUnload()
+ {
+ return true;
+ }
+
+ public void OnUpgrade()
+ {
+ }
+
+ private void addContactToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ }
+ }
+
+ public class Contact
+ {
+ public string Name { get; set; }
+ public string UserName { get; set; }
+ public string SystemName { get; set; }
+ public ContactRelationship Relationship { get; set; }
+ public bool IsStoryCharacter { get; set; }
+ public string Description { get; set; }
+ }
+
+ public enum ContactRelationship
+ {
+ Acquaintance,
+ Friend,
+ Enemy
+ }
+}