From ea613257da74430b18ce95e2cab99fbb3737c91c Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Sun, 19 May 2019 20:31:50 -0400 Subject: Add LICENSE --- hello.hy | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'hello.hy') diff --git a/hello.hy b/hello.hy index 25e3b2d..e525a8f 100644 --- a/hello.hy +++ b/hello.hy @@ -1,3 +1,67 @@ +;;; Copyright © 2019 Jakob L. Kreuze +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation; either version 3 of the +;;; License, or (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see +;;; . + +;; Hello Example +;; ============= +;; +;; This is a simple "Hello world!" example, written in Hy. +;; +;; We begin by declaring a unique namespace for the package we are creating. +;; This is typically based on the reversed form of a domain name and should be +;; unique to this package. + +(setv __package__ "com.example.hellohy") + +;; We also import the classes that will be needed by the application. Since this +;; is a simple example, we only need three of them. + +(import [android.app [Activity]]) +(import [android.os [Bundle]]) +(import [android.widget [TextView]]) + +;; We define a class based on the standard Activity class. This represents the +;; application, and will be used to present a graphical interface to the user. +;; +;; The initialisation method simply calls the corresponding method in the base +;; class. This must be done even if no other code is included in the method. + +(defclass HelloActivity [Activity] + (defn __init__ [self] + (.__init__ Activity self)) + + ;; The onCreate method is called when the activity is created by Android. The + ;; return type and parameter types expected by the method are declared using + ;; the following decorator. Since the parameter types for the onCreate method + ;; are defined in the Activity base class, this decorator is not strictly + ;; necessary. + (with-decorator (args void [Bundle]) + (defn onCreate [self bundle] + (.onCreate Activity self bundle) + (setv view (TextView self)) + (.setText view "Hello world!") + (.setContentView self view) + (return None)))) + +;; As with the `__init__` method, we must call the corresponding method in the +;; base class. +;; +;; The user interface for the application is simply a TextView widget that +;; displays a string of text. The final call ensures that the widget is used as +;; the main view for the application. + ;; Hello Example ;; ============= ;; -- cgit v1.3