#!/usr/bin/newlisp ;; ;; Linux version newlisp + gtk-server ;; ;; A different timer, gtk-server test with newlisp bind. ;; ;; Enjoy.. Created by Nodep. ;; Adjusted for GTK-server 1.3 at December 6, 2004 - PvE. ;; Adjusted to use the async events at June 18, 2006 - PvE - GTK-server 2.0.11. (if (= ostype "Win32") (import "gtk-server.dll" "gtk") (= ostype "OSX") (import "libgtk-server.dylib" "gtk") (= ostype "Linux") (import "libgtk-server.so" "gtk") ) (define-macro (gtkp) (set 'str (append (first (args)) " ")) (dolist (x (rest (args)))(set 'str (append str (string (eval x)) " "))) (get-string (gtk str)) ) (gtkp "gtk_init" "NULL" "NULL" ) (setq win (gtkp "gtk_window_new" 0 )) (gtkp "gtk_window_set_title" win {"A different time"} ) (gtkp "gtk_widget_set_usize" win 200 32 ) (gtkp "gtk_window_set_resizable" win 0) (gtkp "gtk_window_set_position" win 1 ) ;; Use async functionality (gtkp "gtk_server_connect" win "show" "win") (gtkp "gtk_server_timeout" 1000 win "show") (setq tbl (gtkp "gtk_table_new" 100 100 1 )) (gtkp "gtk_container_add" win tbl ) (setq pb1 (gtkp "gtk_progress_bar_new" )) (gtkp "gtk_table_attach_defaults" tbl pb1 1 100 1 10 ) (setq pb2 (gtkp "gtk_progress_bar_new" )) (gtkp "gtk_table_attach_defaults" tbl pb2 1 100 11 20 ) (setq pb3 (gtkp "gtk_progress_bar_new" )) (gtkp "gtk_table_attach_defaults" tbl pb3 1 100 21 30 ) (gtkp "gtk_widget_show_all" win ) (setq event 0) (while (!= event win) (gtkp "gtk_progress_bar_set_fraction" pb3 (div (float (slice (replace ":" (slice (date (apply date-value (now))) 11 8) "") 4 2)) 60) ) (gtkp "gtk_progress_bar_set_fraction" pb2 (div (float (slice (replace ":" (slice (date (apply date-value (now))) 11 8) "") 2 2)) 60) ) (gtkp "gtk_progress_bar_set_fraction" pb1 (div (float (slice (replace ":" (slice (date (apply date-value (now))) 11 8) "") 0 2)) 24) ) (setq event (gtkp "gtk_server_callback" "wait"))) (exit)