diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | LICENSE.md | 131 | ||||
-rw-r--r-- | README.md | 11 | ||||
-rw-r--r-- | ctec/__init__.py | 1 | ||||
-rw-r--r-- | ctec/__main__.py | 47 |
5 files changed, 192 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4633780 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/venv +/.idea diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..1a71cb6 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,131 @@ +# PolyForm Noncommercial License 1.0.0 + +<https://polyformproject.org/licenses/noncommercial/1.0.0> + +## Acceptance + +In order to get any license under these terms, you must agree +to them as both strict obligations and conditions to all +your licenses. + +## Copyright License + +The licensor grants you a copyright license for the +software to do everything you might do with the software +that would otherwise infringe the licensor's copyright +in it for any permitted purpose. However, you may +only distribute the software according to [Distribution +License](#distribution-license) and make changes or new works +based on the software according to [Changes and New Works +License](#changes-and-new-works-license). + +## Distribution License + +The licensor grants you an additional copyright license +to distribute copies of the software. Your license +to distribute covers distributing the software with +changes and new works permitted by [Changes and New Works +License](#changes-and-new-works-license). + +## Notices + +You must ensure that anyone who gets a copy of any part of +the software from you also gets a copy of these terms or the +URL for them above, as well as copies of any plain-text lines +beginning with `Required Notice:` that the licensor provided +with the software. For example: + +> Required Notice: Copyright Yoyodyne, Inc. (http://example.com) + +## Changes and New Works License + +The licensor grants you an additional copyright license to +make changes and new works based on the software for any +permitted purpose. + +## Patent License + +The licensor grants you a patent license for the software that +covers patent claims the licensor can license, or becomes able +to license, that you would infringe by using the software. + +## Noncommercial Purposes + +Any noncommercial purpose is a permitted purpose. + +## Personal Uses + +Personal use for research, experiment, and testing for +the benefit of public knowledge, personal study, private +entertainment, hobby projects, amateur pursuits, or religious +observance, without any anticipated commercial application, +is use for a permitted purpose. + +## Noncommercial Organizations + +Use by any charitable organization, educational institution, +public research organization, public safety or health +organization, environmental protection organization, +or government institution is use for a permitted purpose +regardless of the source of funding or obligations resulting +from the funding. + +## Fair Use + +You may have "fair use" rights for the software under the +law. These terms do not limit them. + +## No Other Rights + +These terms do not allow you to sublicense or transfer any of +your licenses to anyone else, or prevent the licensor from +granting licenses to anyone else. These terms do not imply +any other licenses. + +## Patent Defense + +If you make any written claim that the software infringes or +contributes to infringement of any patent, your patent license +for the software granted under these terms ends immediately. If +your company makes such a claim, your patent license ends +immediately for work on behalf of your company. + +## Violations + +The first time you are notified in writing that you have +violated any of these terms, or done anything with the software +not covered by your licenses, your licenses can nonetheless +continue if you come into full compliance with these terms, +and take practical steps to correct past violations, within +32 days of receiving notice. Otherwise, all your licenses +end immediately. + +## No Liability + +***As far as the law allows, the software comes as is, without +any warranty or condition, and the licensor will not be liable +to you for any damages arising out of these terms or the use +or nature of the software, under any kind of legal claim.*** + +## Definitions + +The **licensor** is the individual or entity offering these +terms, and the **software** is the software the licensor makes +available under these terms. + +**You** refers to the individual or entity agreeing to these +terms. + +**Your company** is any legal entity, sole proprietorship, +or other kind of organization that you work for, plus all +organizations that have control over, are under the control of, +or are under common control with that organization. **Control** +means ownership of substantially all the assets of an entity, +or the power to direct its management and policies by vote, +contract, or otherwise. Control can be direct or indirect. + +**Your licenses** are all the licenses granted to you for the +software under these terms. + +**Use** means anything you do with the software requiring one +of your licenses. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8fd3c6c --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# ctec + +cactus's tiny email client + +## license + +Released under the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/). + +```text +Required Notice: Incorporates ctec, by boringcactus (https://www.boringcactus.com). +``` diff --git a/ctec/__init__.py b/ctec/__init__.py new file mode 100644 index 0000000..9f109cb --- /dev/null +++ b/ctec/__init__.py @@ -0,0 +1 @@ +VERSION = (1,0,0) diff --git a/ctec/__main__.py b/ctec/__main__.py new file mode 100644 index 0000000..eff6138 --- /dev/null +++ b/ctec/__main__.py @@ -0,0 +1,47 @@ +from tkinter import * +from tkinter import messagebox +from tkinter import ttk + +from . import VERSION + +class CtecFrame: + def __init__(self, root: Tk): + self.root = root + root.title('ctec') + + mainframe = ttk.Frame(root, padding="3 3 12 12") + mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) + root.columnconfigure(0, weight=1) + root.rowconfigure(0, weight=1) + + # create a menu bar + self.make_menu_bar(root) + + def make_menu_bar(self, root): + root.option_add('*tearOff', FALSE) + + menubar = Menu(root) + root['menu'] = menubar + + file_menu = Menu(menubar) + menubar.add_cascade(menu=file_menu, label='File', underline=0) + file_menu.add_command(label='Exit', command=self.on_exit, underline=1) + + help_menu = Menu(menubar) + menubar.add_cascade(menu=help_menu, label='Help', underline=0) + help_menu.add_command(label='About', command=self.on_about, underline=0) + + def on_exit(self, *args): + self.root.destroy() + + def on_about(self, *args): + messagebox.showinfo(message=f"ctec {'.'.join(str(x) for x in VERSION)}") + + +def main(): + root = Tk() + frame = CtecFrame(root) + root.mainloop() + + +main() |