/* * Dalos * Copyright (C) 2004 Nicolas "Pixel" Noble * * 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 */ /* $Id: Console.h,v 1.1 2004-10-19 01:27:27 pixel Exp $ */ #ifndef __CONSOLE_H__ #define __CONSOLE_H__ #include #include #include #include #include class console_keyevent : public mogltk::engine::keyevent { public: virtual void down(SDL_keysym k); virtual void up(SDL_keysym k); }; class console : public mogltk::widget { public: console(mogltk::shape * sh, mogltk::widget * father, int y, int _nlines); virtual ~console(); void add_line(const String & s); void page_reset(); void page_up(); void page_down(); protected: virtual void draw(); virtual bool process_event(int mx, int my, mogltk::event_t event); private: int nlines, page; std::vector lines; SDL_mutex * protect_add_line; } * CurrentConsole; extern SDL_mutex * console_lock; extern SDL_sem * console_sem; extern Buffer console_buffer; extern String console_prompt; #endif