[indent=4] /* Build with valac --pkg gtk+-2.0 yourfile.gs */ uses Gtk init Gtk.init (ref args) var test = new NotebookTest () test.show_all () Gtk.main () class NotebookTest : Window notebook : Notebook delete_button : ToolButton status_bar : Statusbar init title = "Simple Notebook Test" default_height = 350 default_width = 500 window_position = WindowPosition.CENTER destroy += on_exit_clicked var toolbar = new Toolbar () var new_button = new ToolButton.from_stock (STOCK_NEW) delete_button = new ToolButton.from_stock (STOCK_DELETE) var prev_button = new ToolButton.from_stock (STOCK_GO_BACK) var next_button = new ToolButton.from_stock (STOCK_GO_FORWARD) var quit_button = new ToolButton.from_stock (STOCK_QUIT) toolbar.add (new_button) toolbar.add (delete_button) toolbar.add (prev_button) toolbar.add (next_button) toolbar.add (quit_button) new_button.clicked += on_new_clicked delete_button.clicked += on_delete_clicked delete_button.sensitive = false prev_button.clicked += on_prev_page_clicked next_button.clicked += on_next_page_clicked quit_button.clicked += on_exit_clicked notebook = new Notebook() notebook.set_tab_pos(PositionType.BOTTOM) notebook.set_show_tabs(true) notebook.set_show_border(true) status_bar = new Statusbar () status_bar.set_has_resize_grip (false) status_bar.pop(0) status_bar.push(0, "Click 'New' to add tabs !") var vbox = new VBox (false, 0) vbox.pack_start (toolbar, false, true, 0) vbox.pack_start (notebook, true, true, 0) vbox.pack_start (status_bar, false, true, 0) add (vbox) def private on_new_clicked () delete_button.sensitive = true var frame = new Frame("I'm a frame in a notebook !!!") frame.set_border_width(10) frame.set_size_request(100, 75) frame.show() var label = new Label("Page " + notebook.get_n_pages().to_string()) notebook.append_page(frame, label) notebook.child_set (frame, "tab-expand", true, null) notebook.show_all() notebook.set_current_page(notebook.get_n_pages()-1) number_of_pages () def private on_delete_clicked () numberofpage : int = notebook.get_current_page() - 1 if numberofpage is -1 delete_button.sensitive = false delete_pages_clicked () number_of_pages () else delete_pages_clicked () number_of_pages () def private delete_pages_clicked () notebook.remove_page(notebook.get_current_page()) number_of_pages () def private on_next_page_clicked () notebook.next_page() def private on_prev_page_clicked () notebook.prev_page() def private on_exit_clicked () print("See you !!!") Gtk.main_quit() def private number_of_pages () status_bar.push(0, "Number of pages: " + notebook.get_n_pages().to_string())