r3757 - trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src
mickey at sita.openmoko.org
mickey at sita.openmoko.org
Tue Jan 1 18:24:25 CET 2008
Author: mickey
Date: 2008-01-01 18:24:24 +0100 (Tue, 01 Jan 2008)
New Revision: 3757
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mainwindow.vala
trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mokoterminal.vala
Log:
openmoko-terminal2: make it more usable
* add toolbar with buttons for
** new
** delete
** zoom in
** zoom out
Modified: trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mainwindow.vala
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mainwindow.vala 2007-12-30 16:03:18 UTC (rev 3756)
+++ trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mainwindow.vala 2008-01-01 17:24:24 UTC (rev 3757)
@@ -2,7 +2,7 @@
* mainwindow.vala
*
* Authored by Michael 'Mickey' Lauer <mickey at vanille-media.de>
- * Copyright (C) 2007 OpenMoko, Inc.
+ * Copyright (C) 2007-2008 OpenMoko, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -27,6 +27,15 @@
public class OpenMokoTerminal2.MainWindow : Window
{
+ private VBox _vbox;
+ private Toolbar _toolbar;
+ private Notebook _notebook;
+
+ private ToolButton _btn_new;
+ private ToolButton _btn_delete;
+ private ToolButton _btn_zoom_in;
+ private ToolButton _btn_zoom_out;
+
public MainWindow()
{
title = "Terminal";
@@ -35,18 +44,85 @@
construct
{
destroy += Gtk.main_quit;
- var notebook = new Gtk.Notebook();
- notebook.set_tab_pos( PositionType.BOTTOM );
- add( notebook );
+ _vbox = new Gtk.VBox( false, 0 );
+ add( _vbox );
+ setup_toolbar();
+ setup_notebook();
+ update_toolbar();
+ }
- for ( int i = 0; i < 3; ++i )
- {
- var terminal = new OpenMokoTerminal2.MokoTerminal();
- notebook.append_page( terminal, Image.from_stock( STOCK_INDEX, IconSize.LARGE_TOOLBAR ) );
- notebook.child_set (terminal, "tab-expand", true, null );
- }
+ public void setup_toolbar()
+ {
+ _toolbar = new Gtk.Toolbar();
+ _vbox.add( _toolbar );
+
+ _btn_new = new Gtk.ToolButton.from_stock( STOCK_NEW );
+ _btn_new.clicked += on_new_clicked;
+ _toolbar.insert( _btn_new, 0 );
+
+ _btn_delete = new Gtk.ToolButton.from_stock( STOCK_DELETE );
+ _btn_delete.clicked += on_delete_clicked;
+ _toolbar.insert( _btn_delete, 1 );
+
+ _toolbar.insert( new Gtk.SeparatorToolItem(), 2 );
+
+ _btn_zoom_in = new Gtk.ToolButton.from_stock( STOCK_ZOOM_IN );
+ _btn_zoom_in.clicked += on_zoom_in_clicked;
+ _toolbar.insert( _btn_zoom_in, 3 );
+
+ _btn_zoom_out = new Gtk.ToolButton.from_stock( STOCK_ZOOM_OUT );
+ _btn_zoom_out.clicked += on_zoom_out_clicked;
+ _toolbar.insert( _btn_zoom_out, 4 );
}
+ public void setup_notebook()
+ {
+ _notebook = new Gtk.Notebook();
+ _notebook.set_tab_pos( PositionType.BOTTOM );
+ _vbox.add( _notebook );
+
+ var terminal = new OpenMokoTerminal2.MokoTerminal();
+ _notebook.append_page( terminal, Image.from_stock( STOCK_INDEX, IconSize.LARGE_TOOLBAR ) );
+ _notebook.child_set (terminal, "tab-expand", true, null );
+ }
+
+ private void on_new_clicked( Gtk.ToolButton b )
+ {
+ stdout.printf( "on_new_clicked\n" );
+ var terminal = new OpenMokoTerminal2.MokoTerminal();
+ _notebook.append_page( terminal, Image.from_stock( STOCK_INDEX, IconSize.LARGE_TOOLBAR ) );
+ _notebook.child_set (terminal, "tab-expand", true, null );
+ _notebook.show_all();
+ update_toolbar();
+ }
+
+ private void on_delete_clicked( Gtk.ToolButton b )
+ {
+ stdout.printf( "on_delete_clicked\n" );
+ var page = _notebook.get_nth_page( _notebook.get_current_page() );
+ page.destroy();
+ update_toolbar();
+ }
+
+ private void on_zoom_in_clicked( Gtk.ToolButton b )
+ {
+ stdout.printf( "on_zoom_in_clicked\n" );
+ OpenMokoTerminal2.MokoTerminal terminal = _notebook.get_nth_page( _notebook.get_current_page() );
+ terminal.zoom_in();
+ }
+
+ private void on_zoom_out_clicked( Gtk.ToolButton b )
+ {
+ stdout.printf( "on_zoom_out_clicked\n" );
+ OpenMokoTerminal2.MokoTerminal terminal = _notebook.get_nth_page( _notebook.get_current_page() );
+ terminal.zoom_out();
+ }
+
+ public void update_toolbar()
+ {
+ _btn_delete.set_sensitive( _notebook.get_n_pages() > 1 );
+ }
+
public void run()
{
show_all();
Modified: trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mokoterminal.vala
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mokoterminal.vala 2007-12-30 16:03:18 UTC (rev 3756)
+++ trunk/src/target/OM-2007.2/applications/openmoko-terminal2/src/mokoterminal.vala 2008-01-01 17:24:24 UTC (rev 3757)
@@ -2,7 +2,7 @@
* mokoterminal.vala
*
* Authored by Michael 'Mickey' Lauer <mickey at vanille-media.de>
- * Copyright (C) 2007 OpenMoko, Inc.
+ * Copyright (C) 2007-2008 OpenMoko, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -27,12 +27,18 @@
public class OpenMokoTerminal2.MokoTerminal : HBox
{
+ private string _fontname;
+ private uint _fontsize;
private Scrollbar _scrollbar;
private Terminal _terminal;
construct {
stdout.printf( "moko-terminal constructed\n" );
+ // may read from gconf at some point?
+ _fontname = "LiberationMono";
+ _fontsize = 5;
+
_terminal = new Vte.Terminal();
_terminal.child_exited += term => { stdout.printf( "unhandled eof\n" ); };
_terminal.eof += term => { stdout.printf( "unhandled eof\n" ); };
@@ -56,13 +62,30 @@
//_terminal.set_colors( fore, back, colors[0], 8 );
+ update_font();
_terminal.set_scrollback_lines( 1000 );
- _terminal.set_font_from_string_full( "LiberationMono 5", TerminalAntiAlias.FORCE_ENABLE );
_terminal.set_mouse_autohide( true );
_terminal.set_cursor_blinks( true );
-
_terminal.set_backspace_binding( TerminalEraseBinding.ASCII_DELETE);
_terminal.fork_command( null, null, null, Environment.get_variable( "HOME" ), true, true, true );
}
+
+ public void update_font()
+ {
+ string font = "%s %d".printf( _fontname, _fontsize );
+ _terminal.set_font_from_string_full( font, TerminalAntiAlias.FORCE_ENABLE );
+ }
+
+ public void zoom_in()
+ {
+ ++_fontsize;
+ update_font();
+ }
+
+ public void zoom_out()
+ {
+ --_fontsize;
+ update_font();
+ }
}
More information about the commitlog
mailing list