guile-gtk-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

menu bar


From: Tomas By
Subject: menu bar
Date: Wed, 10 Feb 2016 10:53:13 +0100
User-agent: XS4ALL Webmail

Hi all,

I'd be grateful if somebody could explain why this does not work.

I only see the "Left"/"Middle"/"Right" at the bottom, not the menu.

/Tomas



---------------------------------------------------------------------------
#! /bin/sh
# -*- scheme -*-
exec guile-gnome-2 -s $0 "$@"
!#

(use-modules (oop goops) (gnome gobject) (gnome glib) (gnome gtk)
             (srfi srfi-13) (srfi srfi-1) (ice-9 rw) (ice-9 receive))

;; The main window
(define toplevel-window (make <gtk-window> #:title "Test" #:type 'toplevel))
(set-default-size toplevel-window 600 400)

(define toplevel-box (gtk-vbox-new #f 0))

(define menu-bar (make <gtk-menu-bar>))

(define file-menu (make <gtk-menu>))

(define file-item (gtk-menu-item-new-with-label "File"))
(define file-open-item (gtk-menu-item-new-with-label "Open"))
(define file-close-item (gtk-menu-item-new-with-label "Close"))

(define status-left (gtk-label-new "Left"))
(define status-middle (gtk-label-new "Middle"))
(define status-right (gtk-label-new "Right"))
(define status-line (gtk-hbox-new #f 0))

;; Pack the widgets
(gtk-container-add toplevel-window toplevel-box)

(pack-start toplevel-box menu-bar #f #t 0)
(pack-end toplevel-box status-line #f #t 0)

(define (add-menu-item menu item callback)
  (gtk-menu-shell-append menu item)
  (gtk-widget-show item)
  (connect item 'activate callback))

(gtk-widget-show menu-bar)

(add-menu-item menu-bar file-item (lambda (w) #f))

(gtk-menu-item-set-submenu file-item file-menu)

(add-menu-item file-menu file-open-item (lambda (w) #f))
(add-menu-item file-menu file-close-item (lambda (w) #f))

(pack-start status-line status-left)
(pack-start status-line status-middle)
(pack-start status-line status-right)

;; Signals...
(connect toplevel-window 'delete-event (lambda (w e) (gtk-main-quit) #f))

(show-all toplevel-window)

(gtk-main)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]