/* $Id$ */ /* * Copyright (C) 2006 Richard Braun * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "mtx.h" #include "mtxentry.h" #include "mtxwindow.h" #include "mtxlanguage.h" #include using namespace std; MtxWindow::MtxWindow(MtxLanguage *language): entry(language, this) { string notice; notice = MTX_NOTICE; notice += "\n"; notice += MTXWINDOW_PROMPT; this->language = language; set_title("mtx " MTX_VERSION); set_border_width(0); resize(750, 500); move(100, 75); menu_help.items().push_back(Gtk::Menu_Helpers::MenuElem("_About", sigc::mem_fun(*this, &MtxWindow::on_menu_help_about))); menu_bar.items().push_back(Gtk::Menu_Helpers::MenuElem("_Help", menu_help)); vbox.pack_start(menu_bar, Gtk::PACK_SHRINK); buffer = text_view.get_buffer(); tag = buffer->create_tag(""); tag->property_font() = "monospace"; mark = buffer->create_mark(buffer->end()); buffer->insert_with_tag(buffer->end(), notice, tag); text_view.set_editable(false); scrolled_window.add(text_view); vbox.pack_start(scrolled_window); vbox.pack_start(entry, Gtk::PACK_SHRINK); add(vbox); show_all(); entry.grab_focus(); } MtxWindow::~MtxWindow() { } void MtxWindow::addText(const string &text) { buffer->insert_with_tag(buffer->end(), text, tag); buffer->move_mark(mark, buffer->end()); text_view.scroll_to_mark(mark, 0.); } void MtxWindow::on_menu_help_about() { vector results; addText("about\n"); results = language->parse("about"); addText((*results.begin()).toString() + '\n'); addText(MTXWINDOW_PROMPT); }