/home/martin/src/mimasim/src/mima_gtk/mimaMenu.h

Go to the documentation of this file.
00001 //$Id: mimaMenu.h,v 1.10 2006/11/04 17:09:02 der_martin Exp $
00002 /*
00003  * mimasim -- a simulator of a minimal microprocessor system
00004  * Copyright (C) 2006 Martin Grandrath <gr@ndrath.de>
00005  *
00006  * This program is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU General Public License as
00008  * published by the Free Software Foundation; either version 2 of the
00009  * License, or (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful, but
00012  * WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00019  * 02110-1301, USA.
00020  */
00021 
00022 #ifndef MIMAMENU_H
00023 #define MIMAMENU_H
00024 
00025 #ifdef HAVE_CONFIG_H
00026 #include <config.h>
00027 #endif
00028 
00029 #include <vector>
00030 
00031 #include <gtkmm/uimanager.h>
00032 #include <gtkmm/menu.h>
00033 #include <gtkmm/stock.h>
00034 #include <gtkmm/messagedialog.h>
00035 //#include <gtkmm/aboutdialog.h>
00036 
00037 #include <glibmm.h>
00038 #include <sigc++/sigc++.h>
00039 
00040 #include "mimaChildWindow.h" // for enum ChildWindowType
00041 
00043 namespace MimaGtk {
00044 
00046      class MimaMenu
00047           {
00048           private:
00049                typedef sigc::signal<void>                  type_signal_void;
00050                typedef sigc::signal<void, bool>            type_signal_void_bool;
00051                typedef sigc::signal<void, ChildWindowType> type_signal_void_ChildWindowType;
00052 
00053           protected:
00054                type_signal_void
00055                     m_signal_open,
00056                     m_signal_save,
00057                     m_signal_save_as,
00058                     m_signal_quit,
00059                     m_signal_refresh,
00060                     m_signal_run,
00061                     m_signal_stop,
00062                     m_signal_step,
00063                     m_signal_reset_counter,
00064                     m_signal_windows_new_terminal;
00065 
00066                type_signal_void_bool
00067                     m_signal_reset;
00068 
00069                type_signal_void_ChildWindowType
00070                     m_signal_windows_new;
00071 
00072                /*
00073                 * menu handlers
00074                 * =============
00075                 */
00076                void on_menu_edit_copy();
00077                void on_menu_edit_paste();
00078                void on_menu_edit_prefereces();
00079                void on_menu_help_manual();
00080                void on_menu_help_about();
00081 
00082                void on_menu_dummy();
00083 
00084           public:
00085                MimaMenu();
00086                ~MimaMenu() {};
00087 
00088                Glib::RefPtr<Gtk::UIManager>   UIManager;
00089                Glib::RefPtr<Gtk::ActionGroup> ActionGroup;
00090 
00091                /*
00092                "      <menuitem action='FileOpen'/>"
00093                "      <menuitem action='FileSave'/>"
00094                "      <menuitem action='FileSaveAs'/>"
00095                "      <menuitem action='EditCopy'/>"
00096                "      <menuitem action='EditPaste'/>"
00097                "      <menuitem action='EditPreferences'/>"
00098                "      <menuitem action='ViewRefresh'/>"
00099                "      <menuitem action='MimaRun'/>"
00100                "      <menuitem action='MimaStop'/>"
00101                "      <menuitem action='MimaStep'/>"
00102                "        <menuitem action='MimaResetCounter'/>"
00103                "        <menuitem action='MimaResetRegisters'/>"
00104                "        <menuitem action='MimaResetFull'/>"
00105                "        <menuitem action='WindowsNewCLI'/>"
00106                "        <menuitem action='WindowsNewMem'/>"
00107                "        <menuitem action='WindowsNewEdit'/>"
00108                "      <menuitem action='WindowsNewTerminal'/>"
00109                "      <menuitem action='HelpManual'/>"
00110                "      <menuitem action='HelpAbout'/>"
00111                 */
00112                /*
00113                 * signal accessors
00114                 * ================
00115                 */
00116                type_signal_void signal_open()                        { return m_signal_open;                 };
00117                type_signal_void signal_save()                        { return m_signal_save;                 };
00118                type_signal_void signal_save_as()                     { return m_signal_save_as;              };
00119                type_signal_void signal_menu_quit()                   { return m_signal_quit;                 };
00120                type_signal_void signal_refresh()                     { return m_signal_refresh;              };
00121                type_signal_void signal_run()                         { return m_signal_run;                  };
00122                type_signal_void signal_stop()                        { return m_signal_stop;                 };
00123                type_signal_void signal_step()                        { return m_signal_step;                 };
00124                type_signal_void signal_reset_counter()               { return m_signal_reset_counter;        };
00125                type_signal_void signal_windows_new_terminal()        { return m_signal_windows_new_terminal; };
00126                type_signal_void_ChildWindowType signal_windows_new() { return m_signal_windows_new;          };
00127                type_signal_void_bool signal_reset()                  { return m_signal_reset;                };
00128 
00129           };
00130 
00131 }
00132 
00133 #endif // MIMAMENU_H

Generated on Sat Nov 4 19:40:57 2006 for mimasim by  doxygen 1.4.7