Discussion:
menu bar
Tomas By
2016-02-10 09:53:13 UTC
Permalink
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)
David Pirotte
2016-02-10 20:17:23 UTC
Permalink
Hi Thomas,
Post by Tomas By
I'd be grateful if somebody could explain why this does not work.
Your example works perfectly here.

Cheers,
David

Loading...