Theme-D-Intr

Examples

Here is "Hello World" using Theme-D-Intr:
(define-proper-program hello

  (import (standard-library core)
	  (standard-library list-utilities)
	  _intr-imports)

  (define-simple-method activate-my-app
      (((args (rest <object>))) <object> nonpure)
    (let* ((app (cast <gtk-application> (uniform-list-ref args 0)))
	   (window (cast <gtk-window> (gtk-application-window-new app)))
	   (button (cast <gtk-button>
			(gtk-button-new-with-label "Hello, World!"))))
      (gtk-widget-set-width-request window 400)
      (gtk-widget-set-height-request window 300)
      (set-border-width window 10)
      (add window button)
      (gtype-instance-signal-connect
       button 'clicked
       (lambda (((args (rest <object>))) <object> nonpure)
	 (g-application-quit app)
	 null))
      (gtk-window-present window)
      (gtk-widget-show button)
      #f))

  (define-main-proc (() <none> nonpure)
    (let* ((str-app-name "org.tohoyn.hello")
	   (app (gtk-application-new str-app-name null)))
      (g-set-prgname str-app-name)
      (gtype-instance-signal-connect
       app 'activate activate-my-app)
      (let ((status (g-application-run app null)))
	status))))
          
The example programs can also be found in the Theme-D-Intr source package in subdirectory theme-d-intr-examples and in subdirectory /usr/share/doc/theme-d-intr/examples/.

Back to the main page

Last updated: July 18, 2023

Copyright © 2020-2023 Tommi Höynälänmaa

tommi.hoynalanmaa@REMOVETHISiki.fi