summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--NEWS15
-rw-r--r--mixgtk/.cvsignore2
-rw-r--r--mixgtk/Makefile.am8
-rw-r--r--mixgtk/clear.xpm35
-rw-r--r--mixgtk/colors.xpm29
-rw-r--r--mixgtk/compile.xpm124
-rw-r--r--mixgtk/edit.xpm38
-rw-r--r--mixgtk/font.xpm40
-rw-r--r--mixgtk/fontl.xpm35
-rw-r--r--mixgtk/jump.xpm39
-rw-r--r--mixgtk/mixgtk.glade856
-rw-r--r--mixgtk/mixgtk_config.c16
-rw-r--r--mixgtk/mixgtk_config.h5
-rw-r--r--mixgtk/mixgtk_wm.c85
-rw-r--r--mixgtk/mixgtk_wm.h3
-rw-r--r--mixgtk/next.xpm30
-rw-r--r--mixgtk/onew.xpm124
-rw-r--r--mixgtk/open.xpm32
-rw-r--r--mixgtk/output.xpm38
-rw-r--r--mixgtk/run.xpm36
-rw-r--r--mixgtk/splitw.xpm119
-rw-r--r--mixgtk/symbols.xpm39
22 files changed, 1565 insertions, 183 deletions
diff --git a/NEWS b/NEWS
index 6785f3d..13f2882 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,21 @@ See the end for copying conditions.
Please send mdk bug reports to bug-mdk@gnu.org.
---------------------------------------------------------------------------
+* Version 0.4.2
+
+** New toolbars for gmixvm windows.
+
+** Toolbars can be hidden, using View->Toolbar checkbox.
+
+** New icon for the "goto loc pointer address" button.
+
+** The menu entry "Split windows" has been moved from "Settings" to
+ "View" main menu, and renamed to "One window" in split mode.
+
+** Bug fix: the visibility of split windows when changing mode is now
+ correctly handled.
+
+---------------------------------------------------------------------------
* Version 0.4 (22/07/01)
** Split mode: gmixvm can now be run with the MIXVM, MIXAL and Devices
diff --git a/mixgtk/.cvsignore b/mixgtk/.cvsignore
index cf6d3f7..a84e6a2 100644
--- a/mixgtk/.cvsignore
+++ b/mixgtk/.cvsignore
@@ -1,4 +1,6 @@
.deps
+.pics
+.xvpics
Makefile
Makefile.in
gmixvm
diff --git a/mixgtk/Makefile.am b/mixgtk/Makefile.am
index c7e9aed..cf1bc56 100644
--- a/mixgtk/Makefile.am
+++ b/mixgtk/Makefile.am
@@ -10,14 +10,18 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-EXTRA_DIST = mixgtk.glade mixgtk.split.glade
+XPMS = clear.xpm colors.xpm compile.xpm edit.xpm font.xpm fontl.xpm \
+ jump.xpm next.xpm onew.xpm open.xpm output.xpm run.xpm splitw.xpm \
+ symbols.xpm
+
+EXTRA_DIST = mixgtk.glade $(XPMS)
INCLUDES = -I$(includedir) -DGLADE_FILE=\""$(pkgdatadir)/mixgtk.glade"\"\
-DLOCAL_GLADE_FILE=\"mixgtk.glade\"
LDADD = $(top_builddir)/mixlib/libmix.a $(top_builddir)/lib/libreplace.a $(INTLLIBS)
if MAKE_GUI
-pkgdata_DATA = mixgtk.glade
+pkgdata_DATA = mixgtk.glade $(XPMS)
bin_PROGRAMS = gmixvm
gmixvm_SOURCES = gmixvm.c mixgtk.h mixgtk.c \
mixgtk_config.h mixgtk_config.c \
diff --git a/mixgtk/clear.xpm b/mixgtk/clear.xpm
new file mode 100644
index 0000000..1a9c80a
--- /dev/null
+++ b/mixgtk/clear.xpm
@@ -0,0 +1,35 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 5 1",
+" c #01c601c601c6",
+". c Gray40",
+"X c #a527a527a527",
+"o c #da22da22da22",
+"O c None",
+/* pixels */
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOO OOOOOOOOO",
+"OOOOOO XXooXX. OOOOOOO",
+"OOOOO XooooooooX. OOOOOO",
+"OOOOO oooooooooo. OOOOOO",
+"OOOO Xooo ooo XoX. OOOOO",
+"OOOO Xoo o XXX OOOOO",
+"OOOO oooo XoXX OOOOO",
+"OOOO Xoooo ooXXX OOOOO",
+"OOOO Xooo OXX. OOOOO",
+"OOOO Xoo o XX. OOOOO",
+"OOOO .Xoo ooX XX.. OOOOO",
+"OOOOO XXOoXoXXX.. OOOOOO",
+"OOOOO XXXXXXXXX.. OOOOOO",
+"OOOOOO XXXX... OOOOOOO",
+"OOOOOOOO OOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO",
+"OOOOOOOOOOOOOOOOOOOOOOOO"
+};
diff --git a/mixgtk/colors.xpm b/mixgtk/colors.xpm
new file mode 100644
index 0000000..351349f
--- /dev/null
+++ b/mixgtk/colors.xpm
@@ -0,0 +1,29 @@
+/* XPM */
+static char * colors_xpm[] = {
+"22 22 4 1",
+" c None",
+". c #E21436",
+"+ c #000000",
+"@ c #2845D6",
+" ",
+" ",
+" ",
+" ............... ",
+" ............... ",
+" ",
+" ",
+" +++++++++++++ ",
+" ",
+" +++++++++ ",
+" ",
+" +++++++++++ ",
+" ",
+" @@@@@@@@@@@@@@ ",
+" @@@@@@@@@@@@@@ ",
+" ",
+" ",
+" +++++++++++++++ ",
+" ",
+" ",
+" ",
+" "};
diff --git a/mixgtk/compile.xpm b/mixgtk/compile.xpm
new file mode 100644
index 0000000..3aea405
--- /dev/null
+++ b/mixgtk/compile.xpm
@@ -0,0 +1,124 @@
+/* XPM */
+static char * run_xpm[] = {
+"22 22 99 2",
+" c None",
+". c #020204",
+"+ c #F0F0EE",
+"@ c #CBCBCC",
+"# c #F2F2F0",
+"$ c #B0B0B0",
+"% c #DEDEDC",
+"& c #F0F0EF",
+"* c #8E8E8D",
+"= c #E4E4E4",
+"- c #C6C6C4",
+"; c #E9E9E7",
+"> c #DADAD8",
+", c #D9D9D8",
+"' c #E1E1E0",
+") c #C5C5C4",
+"! c #858584",
+"~ c #E8E8E6",
+"{ c #DFDFDE",
+"] c #DBDBDA",
+"^ c #D5D5D4",
+"/ c #D3D3D4",
+"( c #D1D1D1",
+"_ c #CFCFCF",
+": c #D5D5D5",
+"< c #CCCCCC",
+"[ c #5B5B5C",
+"} c #DDDDDC",
+"| c #D8D8D8",
+"1 c #D7D7D7",
+"2 c #CCCCCD",
+"3 c #CACACB",
+"4 c #C7C7C7",
+"5 c #BCBCBC",
+"6 c #DFDFE0",
+"7 c #DADADC",
+"8 c #D7D7D6",
+"9 c #969694",
+"0 c #656566",
+"a c #B1B1B2",
+"b c #C7C7C5",
+"c c #C4C4C4",
+"d c #BDBDBC",
+"e c #898987",
+"f c #393939",
+"g c #040404",
+"h c #070709",
+"i c #C1C1C2",
+"j c #BDBDBF",
+"k c #A4A4A5",
+"l c #D3D3D2",
+"m c #090909",
+"n c #BABABA",
+"o c #B1B1B1",
+"p c #9F9F9E",
+"q c #AFAFAD",
+"r c #CACAC9",
+"s c #B1B1B0",
+"t c #D0D0CF",
+"u c #101012",
+"v c #B8B8B7",
+"w c #ADADAC",
+"x c #8C8C8E",
+"y c #7C7C7C",
+"z c #747474",
+"A c #B7B7B6",
+"B c #B4B4B5",
+"C c #D1D1CF",
+"D c #CBCBCB",
+"E c #C6C6C5",
+"F c #B6B6B4",
+"G c #B5B5B3",
+"H c #ACACAD",
+"I c #595958",
+"J c #D2D2D1",
+"K c #C7C7C6",
+"L c #C3C3C4",
+"M c #BEBEBC",
+"N c #B4B4B4",
+"O c #9A9A9A",
+"P c #C1C1C0",
+"Q c #BFBFBE",
+"R c #BFBFBF",
+"S c #BBBBBA",
+"T c #ABABAD",
+"U c #9C9C9E",
+"V c #929293",
+"W c #B3B3B1",
+"X c #AEAEAC",
+"Y c #A7A7A6",
+"Z c #686869",
+"` c #8E8E8F",
+" . c #19191B",
+".. c #222224",
+"+. c #A9A9A8",
+"@. c #848486",
+"#. c #2B2B2C",
+"$. c #878788",
+"%. c #1C1C1D",
+" ",
+" . . ",
+" . + @ . ",
+" . . . # $ . . . ",
+" . % # . . . & * . . . = - . ",
+" . # % ; . # # > , ' ) . = - ! . ",
+" . ~ { % ' ] ^ / ( _ : < [ . ",
+" . % } | 1 / ( 2 3 4 5 . ",
+" . # 6 7 8 9 0 0 a b c d e . ",
+" . . . # ] 1 9 f g h * 3 i j k . . . ",
+" . + # # > ^ l 0 g m = d n o p q o . ",
+" . r s * , / t 0 h u # 5 v w x y z . ",
+" . . . ' ( 2 q * m u # > A B x . . . ",
+" . ) C D E 3 = # , F G H I . ",
+" . J K L i M 5 A N a O . ",
+" . = K P Q R S v B T U a V . ",
+" . = E [ . e k W X x I . O Y y . ",
+" . - ! . . . Z ` .. . y z . ",
+" . . ..+.@.. . . ",
+" #.- $.. ",
+" . %. ",
+" "};
diff --git a/mixgtk/edit.xpm b/mixgtk/edit.xpm
new file mode 100644
index 0000000..98df639
--- /dev/null
+++ b/mixgtk/edit.xpm
@@ -0,0 +1,38 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 8 1",
+" c Gray0",
+". c #9adf6c4a4e4e",
+"X c #adad8e8e3030",
+"o c #858585857979",
+"O c #a4ffa1fc996c",
+"+ c #d791c99a9b6c",
+"@ c #e113e0eee0c4",
+"# c None",
+/* pixels */
+"########################",
+"########################",
+"########################",
+"############# #########",
+"########### @@ ##### ##",
+"######### @@@@ #### + #",
+"###### @@@@@@+ ## +. #",
+"#### @@@@@@@+@@ # +. ##",
+"### @@@@@.@@@@o@@ +. ###",
+"### @@@@@.O@oo@@ +. ####",
+"#### @@@@.@o@@@ +. #####",
+"#### @@.O.@@@@ +. @ ####",
+"##### @@..@@@ +. @@+ ###",
+"##### @@@@@@ +. @@@+o ##",
+"###### @@@@X@ +OOOOo ##",
+"###### @@@@ OOOOOO+ ###",
+"####### @OooO@@@@@ ####",
+"####### @@@@@@@@@ ######",
+"######## @@@@@@ #######",
+"######## @@@@+ #########",
+"######### @@ ##########",
+"########## ############",
+"########################",
+"########################"
+};
diff --git a/mixgtk/font.xpm b/mixgtk/font.xpm
new file mode 100644
index 0000000..92bbef5
--- /dev/null
+++ b/mixgtk/font.xpm
@@ -0,0 +1,40 @@
+/* XPM */
+static char * font_xpm[] = {
+"22 22 15 1",
+" c None",
+". c #000000",
+"+ c #191919",
+"@ c #414141",
+"# c #898989",
+"$ c #424EE9",
+"% c #767FD5",
+"& c #B9BCD4",
+"* c #FFFFFF",
+"= c #EFEFEF",
+"- c #C2C2C2",
+"; c #D1D1D1",
+"> c #D5D5D5",
+", c #DCDCDC",
+"' c #E9E9E9",
+" ",
+" ",
+" ",
+" ...............+@# ",
+" ...............$%& ",
+" ...............+@# ",
+" .***************** ",
+" .**.....=********* ",
+" .**..************* ",
+" .**..******...**-# ",
+" .**....=**..*..*@# ",
+" .**..*****..*..*@# ",
+" .**..*****..*..*@# ",
+" .**..*****..*..*@# ",
+" .**..******...**@# ",
+" .***************** ",
+" .***************** ",
+" ...............+@# ",
+" .;;;;;;;;;;;;;;>,' ",
+" ",
+" ",
+" "};
diff --git a/mixgtk/fontl.xpm b/mixgtk/fontl.xpm
new file mode 100644
index 0000000..1fd15a1
--- /dev/null
+++ b/mixgtk/fontl.xpm
@@ -0,0 +1,35 @@
+/* XPM */
+static char * fontl_xpm[] = {
+"22 22 10 1",
+" c None",
+". c #000000",
+"+ c #A59B9B",
+"@ c #414141",
+"# c #898989",
+"$ c #B9BCD4",
+"% c #FFFFFF",
+"& c #EFEFEF",
+"* c #C2C2C2",
+"= c #191919",
+" ",
+" ",
+" ",
+" .+++++++++++++++@# ",
+" .................$ ",
+" .%%%%%%%%%%%%%%%@# ",
+" .%%%%%%%%%%%%%%%%% ",
+" .%%.....&%%%%%%%%% ",
+" .%%..%%%%%%%%%%%%% ",
+" .%%..%%%%%%...%%*# ",
+" .%%....&%%..%..%@# ",
+" .%%..%%%%%..%..%@# ",
+" .%%..%%%%%..%..%@# ",
+" .%%..%%%%%..%..%@# ",
+" .%%..%%%%%%...%%@# ",
+" .%%%%%%%%%%%%%%%%% ",
+" ................%% ",
+" ...............=@# ",
+" .................. ",
+" ",
+" ",
+" "};
diff --git a/mixgtk/jump.xpm b/mixgtk/jump.xpm
new file mode 100644
index 0000000..2106d01
--- /dev/null
+++ b/mixgtk/jump.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" c #011b011b011b",
+". c #5e0868be52d3",
+"X c #7c7c8b8b6e6e",
+"o c #8d4d97577838",
+"O c #ae51c17b9b26",
+"+ c #cedcabd6996e",
+"@ c #d305cecebaba",
+"# c #e38de39ed709",
+"$ c None",
+/* pixels */
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$ $$$$$$$$",
+"$$$$$$$$$$$ #@+ $$$$$$",
+"$$$$$$$$$$$ ###@+ $$$$$$",
+"$$$$$$$ #+++ $$$$$",
+"$$$$$$$ o@##O ++++ $$$$$",
+"$$$$$$$$ .OO. +++o $$$$$",
+"$$$$$$ #@O.. +++ $$$$$$",
+"$$$$ #@@Oo.. ++ $$$$$$",
+"$$$ #@@OOo. . $$$$$$$$",
+"$$$$ #OOO. $ $$$$$$$$$$",
+"$$$$$ #OX. $$$$$$$$$$$$$",
+"$$$$$$ O. $$$$$$$$$$$$$$",
+"$$$$$$$ . $$$$$$$$$$$$$$",
+"$$$$$$$$ $$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$"
+};
diff --git a/mixgtk/mixgtk.glade b/mixgtk/mixgtk.glade
index 34eab7e..45dd74b 100644
--- a/mixgtk/mixgtk.glade
+++ b/mixgtk/mixgtk.glade
@@ -6,7 +6,7 @@
<program_name>mixgtk</program_name>
<directory></directory>
<source_directory>src</source_directory>
- <pixmaps_directory>pixmaps</pixmaps_directory>
+ <pixmaps_directory>.</pixmaps_directory>
<language>C</language>
<gnome_support>False</gnome_support>
<gettext_support>False</gettext_support>
@@ -29,7 +29,7 @@
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
<default_width>650</default_width>
- <default_height>500</default_height>
+ <default_height>550</default_height>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>True</auto_shrink>
@@ -143,6 +143,54 @@
<widget>
<class>GtkMenuItem</class>
+ <name>view</name>
+ <label>_View</label>
+ <right_justify>False</right_justify>
+
+ <widget>
+ <class>GtkMenu</class>
+ <name>view_menu</name>
+
+ <widget>
+ <class>GtkCheckMenuItem</class>
+ <name>show_toolbars</name>
+ <accelerator>
+ <modifiers>GDK_MOD1_MASK</modifiers>
+ <key>GDK_T</key>
+ <signal>activate</signal>
+ </accelerator>
+ <signal>
+ <name>toggled</name>
+ <handler>on_show_toolbars_toggled</handler>
+ <last_modification_time>Thu, 16 Aug 2001 20:14:16 GMT</last_modification_time>
+ </signal>
+ <label>_Toolbar</label>
+ <active>False</active>
+ <always_show_toggle>True</always_show_toggle>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator5</name>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>split_windows</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_split_windows_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 21:48:57 GMT</last_modification_time>
+ </signal>
+ <label>Split _windows</label>
+ <right_justify>False</right_justify>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
<name>debug</name>
<label>D_ebug</label>
<right_justify>False</right_justify>
@@ -359,25 +407,6 @@
<widget>
<class>GtkMenuItem</class>
- <name>separator1</name>
- <right_justify>False</right_justify>
- </widget>
-
- <widget>
- <class>GtkCheckMenuItem</class>
- <name>split_windows</name>
- <signal>
- <name>toggled</name>
- <handler>on_split_windows_toggled</handler>
- <last_modification_time>Sun, 24 Jun 2001 12:39:53 GMT</last_modification_time>
- </signal>
- <label>Split _windows</label>
- <active>False</active>
- <always_show_toggle>True</always_show_toggle>
- </widget>
-
- <widget>
- <class>GtkMenuItem</class>
<name>separator3</name>
<right_justify>False</right_justify>
</widget>
@@ -441,8 +470,8 @@
<name>main_toolbar</name>
<orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
<type>GTK_TOOLBAR_ICONS</type>
- <space_size>5</space_size>
- <space_style>GTK_TOOLBAR_SPACE_LINE</space_style>
+ <space_size>15</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
<relief>GTK_RELIEF_NORMAL</relief>
<tooltips>True</tooltips>
<child>
@@ -452,15 +481,126 @@
</child>
<widget>
- <class>Placeholder</class>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>load_button</name>
+ <tooltip>Load MIX program</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_open_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:10:04 GMT</last_modification_time>
+ </signal>
+ <label>Load</label>
+ <icon>open.xpm</icon>
</widget>
<widget>
- <class>Placeholder</class>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>compile_button</name>
+ <tooltip>Compile MIXAL source</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_compile_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:11:29 GMT</last_modification_time>
+ </signal>
+ <label>Build</label>
+ <icon>compile.xpm</icon>
</widget>
<widget>
- <class>Placeholder</class>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>edit_button</name>
+ <tooltip>Edit MIXAL source</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_edit_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:11:03 GMT</last_modification_time>
+ </signal>
+ <label>Edit</label>
+ <icon>edit.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkVSeparator</class>
+ <name>vseparator6</name>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>run_button</name>
+ <tooltip>Run</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_run_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:03 GMT</last_modification_time>
+ </signal>
+ <label>Run</label>
+ <icon>run.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>step_button</name>
+ <tooltip>Next</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_next_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:36 GMT</last_modification_time>
+ </signal>
+ <label>Step</label>
+ <icon>next.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>clear_button</name>
+ <tooltip>Clear breakpoints</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_clear_breakpoints_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 12:58:32 GMT</last_modification_time>
+ </signal>
+ <label>Clear</label>
+ <icon>clear.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>symbols_button</name>
+ <tooltip>Symbol table</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_symbols_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:02:32 GMT</last_modification_time>
+ </signal>
+ <label>Symbols</label>
+ <icon>symbols.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button26</name>
+ <tooltip>Split windows</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_split_windows_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 22:18:03 GMT</last_modification_time>
+ </signal>
+ <label>Split</label>
+ <icon>splitw.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
</widget>
</widget>
@@ -933,32 +1073,6 @@
</widget>
<widget>
- <class>GtkButton</class>
- <name>loc_arrow</name>
- <x>346</x>
- <y>202</y>
- <width>29</width>
- <height>18</height>
- <can_focus>True</can_focus>
- <signal>
- <name>clicked</name>
- <handler>on_loc_arrow_clicked</handler>
- <last_modification_time>Fri, 09 Mar 2001 20:18:22 GMT</last_modification_time>
- </signal>
- <label>-&gt;</label>
- <relief>GTK_RELIEF_NONE</relief>
- </widget>
-
- <widget>
- <class>GtkHSeparator</class>
- <name>hseparator1</name>
- <x>8</x>
- <y>232</y>
- <width>377</width>
- <height>16</height>
- </widget>
-
- <widget>
<class>GtkLabel</class>
<name>program_label</name>
<x>184</x>
@@ -1156,6 +1270,43 @@
<width>627</width>
<height>16</height>
</widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>loc_arrow</name>
+ <x>346</x>
+ <y>200</y>
+ <width>30</width>
+ <height>23</height>
+ <tooltip>View loc address</tooltip>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_loc_arrow_clicked</handler>
+ <last_modification_time>Thu, 16 Aug 2001 21:01:57 GMT</last_modification_time>
+ </signal>
+ <relief>GTK_RELIEF_NORMAL</relief>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap1</name>
+ <filename>jump.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkHSeparator</class>
+ <name>hseparator1</name>
+ <x>8</x>
+ <y>232</y>
+ <width>377</width>
+ <height>16</height>
+ </widget>
</widget>
<widget>
@@ -1388,7 +1539,7 @@
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
<default_width>570</default_width>
- <default_height>215</default_height>
+ <default_height>235</default_height>
<allow_shrink>True</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>True</auto_shrink>
@@ -1548,6 +1699,37 @@
<active>False</active>
<always_show_toggle>True</always_show_toggle>
</widget>
+
+ <widget>
+ <class>GtkCheckMenuItem</class>
+ <name>show_toolbars</name>
+ <signal>
+ <name>toggled</name>
+ <handler>on_show_toolbars_toggled</handler>
+ <last_modification_time>Thu, 16 Aug 2001 20:29:52 GMT</last_modification_time>
+ </signal>
+ <label>_Toolbars</label>
+ <active>False</active>
+ <always_show_toggle>True</always_show_toggle>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>separator4</name>
+ <right_justify>False</right_justify>
+ </widget>
+
+ <widget>
+ <class>GtkMenuItem</class>
+ <name>one_window</name>
+ <signal>
+ <name>activate</name>
+ <handler>on_one_window_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 21:43:42 GMT</last_modification_time>
+ </signal>
+ <label>One _window</label>
+ <right_justify>False</right_justify>
+ </widget>
</widget>
</widget>
@@ -1774,25 +1956,6 @@
</widget>
<widget>
- <class>GtkCheckMenuItem</class>
- <name>split_windows</name>
- <signal>
- <name>toggled</name>
- <handler>on_split_windows_toggled</handler>
- <last_modification_time>Sun, 24 Jun 2001 12:26:00 GMT</last_modification_time>
- </signal>
- <label>Split _windows</label>
- <active>True</active>
- <always_show_toggle>True</always_show_toggle>
- </widget>
-
- <widget>
- <class>GtkMenuItem</class>
- <name>separator3</name>
- <right_justify>False</right_justify>
- </widget>
-
- <widget>
<class>GtkMenuItem</class>
<name>save</name>
<tooltip>Save current settings</tooltip>
@@ -1858,6 +2021,176 @@
</widget>
<widget>
+ <class>GtkToolbar</class>
+ <name>main_toolbar</name>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_ICONS</type>
+ <space_size>15</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button4</name>
+ <tooltip>Load MIX program</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_open_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:10:04 GMT</last_modification_time>
+ </signal>
+ <label>Load</label>
+ <icon>open.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button5</name>
+ <tooltip>Compile MIXAL source</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_compile_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:11:29 GMT</last_modification_time>
+ </signal>
+ <label>Build</label>
+ <icon>compile.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button6</name>
+ <tooltip>Edit MIXAL source</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_file_edit_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:11:03 GMT</last_modification_time>
+ </signal>
+ <label>Edit</label>
+ <icon>edit.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkVSeparator</class>
+ <name>vseparator7</name>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button7</name>
+ <tooltip>Run</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_run_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:03 GMT</last_modification_time>
+ </signal>
+ <label>Run</label>
+ <icon>run.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button8</name>
+ <tooltip>Next</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_next_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:36 GMT</last_modification_time>
+ </signal>
+ <label>Step</label>
+ <icon>next.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button9</name>
+ <tooltip>Clear breakpoints</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_clear_breakpoints_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 12:58:32 GMT</last_modification_time>
+ </signal>
+ <label>Clear</label>
+ <icon>clear.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button10</name>
+ <tooltip>Symbol table</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_symbols_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:02:32 GMT</last_modification_time>
+ </signal>
+ <label>Symbols</label>
+ <icon>symbols.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button24</name>
+ <tooltip>Command log font</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_log_font_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 15:04:53 GMT</last_modification_time>
+ </signal>
+ <label>Font</label>
+ <icon>font.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button25</name>
+ <tooltip>Command prompt font</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_prompt_font_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 15:05:48 GMT</last_modification_time>
+ </signal>
+ <label>Font</label>
+ <icon>fontl.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button27</name>
+ <tooltip>One window</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_one_window_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 22:19:55 GMT</last_modification_time>
+ </signal>
+ <label>One window</label>
+ <icon>onew.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+ </widget>
+
+ <widget>
<class>GtkVBox</class>
<name>vbox3</name>
<homogeneous>False</homogeneous>
@@ -3953,23 +4286,6 @@
</widget>
<widget>
- <class>GtkButton</class>
- <name>loc_arrow</name>
- <x>346</x>
- <y>202</y>
- <width>29</width>
- <height>18</height>
- <can_focus>True</can_focus>
- <signal>
- <name>clicked</name>
- <handler>on_loc_arrow_clicked</handler>
- <last_modification_time>Fri, 09 Mar 2001 20:18:22 GMT</last_modification_time>
- </signal>
- <label>-&gt;</label>
- <relief>GTK_RELIEF_NONE</relief>
- </widget>
-
- <widget>
<class>GtkHSeparator</class>
<name>hseparator1</name>
<x>8</x>
@@ -4027,24 +4343,6 @@
</widget>
<widget>
- <class>GtkCheckButton</class>
- <name>over_toggle</name>
- <x>288</x>
- <y>168</y>
- <width>88</width>
- <height>16</height>
- <can_focus>True</can_focus>
- <signal>
- <name>toggled</name>
- <handler>on_overflow_toggled</handler>
- <last_modification_time>Tue, 06 Mar 2001 21:32:39 GMT</last_modification_time>
- </signal>
- <label>Overflow</label>
- <active>False</active>
- <draw_indicator>True</draw_indicator>
- </widget>
-
- <widget>
<class>GtkRadioButton</class>
<name>greater_radio</name>
<x>336</x>
@@ -4176,6 +4474,52 @@
<width>627</width>
<height>16</height>
</widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <name>loc_arrow_split</name>
+ <x>346</x>
+ <y>200</y>
+ <width>30</width>
+ <height>23</height>
+ <tooltip>View loc address</tooltip>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>clicked</name>
+ <handler>on_loc_arrow_clicked</handler>
+ <last_modification_time>Thu, 16 Aug 2001 21:01:57 GMT</last_modification_time>
+ </signal>
+ <relief>GTK_RELIEF_NORMAL</relief>
+
+ <widget>
+ <class>GtkPixmap</class>
+ <name>pixmap2</name>
+ <filename>jump.xpm</filename>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ <build_insensitive>True</build_insensitive>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkCheckButton</class>
+ <name>over_toggle</name>
+ <x>288</x>
+ <y>168</y>
+ <width>88</width>
+ <height>16</height>
+ <can_focus>True</can_focus>
+ <signal>
+ <name>toggled</name>
+ <handler>on_overflow_toggled</handler>
+ <last_modification_time>Tue, 06 Mar 2001 21:32:39 GMT</last_modification_time>
+ </signal>
+ <label>Overflow</label>
+ <active>False</active>
+ <draw_indicator>True</draw_indicator>
+ </widget>
</widget>
</widget>
@@ -4208,74 +4552,205 @@
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
- <default_width>550</default_width>
- <default_height>200</default_height>
+ <default_width>570</default_width>
+ <default_height>225</default_height>
<allow_shrink>True</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<widget>
- <class>GtkScrolledWindow</class>
- <name>scrolledwindow27</name>
- <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy>
- <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
- <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
- <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+ <class>GtkVBox</class>
+ <name>vbox5</name>
+ <homogeneous>False</homogeneous>
+ <spacing>0</spacing>
<widget>
- <class>GtkCList</class>
- <name>mixal_clist</name>
- <tooltip>Click to toggle breakpoint</tooltip>
- <can_focus>True</can_focus>
- <events>GDK_POINTER_MOTION_MASK</events>
- <signal>
- <name>select_row</name>
- <handler>on_mixal_select_row</handler>
- <after>True</after>
- <last_modification_time>Sun, 11 Mar 2001 01:15:28 GMT</last_modification_time>
- </signal>
- <signal>
- <name>motion_notify_event</name>
- <handler>on_mixal_motion_notify_event</handler>
- <last_modification_time>Sun, 17 Jun 2001 19:44:48 GMT</last_modification_time>
- </signal>
- <signal>
- <name>leave_notify_event</name>
- <handler>on_mixal_leave_notify_event</handler>
- <last_modification_time>Sat, 23 Jun 2001 22:26:17 GMT</last_modification_time>
- </signal>
- <columns>2</columns>
- <column_widths>152,80</column_widths>
- <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
- <show_titles>True</show_titles>
- <shadow_type>GTK_SHADOW_IN</shadow_type>
+ <class>GtkToolbar</class>
+ <name>mixal_toolbar</name>
+ <border_width>2</border_width>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_ICONS</type>
+ <space_size>15</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
<widget>
- <class>GtkLabel</class>
- <child_name>CList:title</child_name>
- <name>label213</name>
- <label>memory</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
+ <class>GtkVSeparator</class>
+ <name>vseparator8</name>
</widget>
<widget>
- <class>GtkLabel</class>
- <child_name>CList:title</child_name>
- <name>label214</name>
- <label>source</label>
- <justify>GTK_JUSTIFY_CENTER</justify>
- <wrap>False</wrap>
- <xalign>0.5</xalign>
- <yalign>0.5</yalign>
- <xpad>0</xpad>
- <ypad>0</ypad>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button14</name>
+ <tooltip>Run</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_run_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:03 GMT</last_modification_time>
+ </signal>
+ <label>Run</label>
+ <icon>run.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button15</name>
+ <tooltip>Next</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_debug_next_activate</handler>
+ <last_modification_time>Wed, 15 Aug 2001 00:12:36 GMT</last_modification_time>
+ </signal>
+ <label>Step</label>
+ <icon>next.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button16</name>
+ <tooltip>Clear breakpoints</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_clear_breakpoints_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 12:58:32 GMT</last_modification_time>
+ </signal>
+ <label>Clear</label>
+ <icon>clear.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button18</name>
+ <tooltip>Symbol table</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_symbols_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:02:32 GMT</last_modification_time>
+ </signal>
+ <label>Symbols</label>
+ <icon>symbols.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button22</name>
+ <tooltip>Source code font</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_mixal_font_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:32:22 GMT</last_modification_time>
+ </signal>
+ <label>Font</label>
+ <icon>font.xpm</icon>
+ <child>
+ <new_group>True</new_group>
+ </child>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button23</name>
+ <tooltip>Colors</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_colors_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:36:24 GMT</last_modification_time>
+ </signal>
+ <label>Colors</label>
+ <icon>colors.xpm</icon>
</widget>
</widget>
+
+ <widget>
+ <class>GtkScrolledWindow</class>
+ <name>scrolledwindow27</name>
+ <hscrollbar_policy>GTK_POLICY_ALWAYS</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
+ <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
+ <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+ <child>
+ <padding>0</padding>
+ <expand>True</expand>
+ <fill>True</fill>
+ </child>
+
+ <widget>
+ <class>GtkCList</class>
+ <name>mixal_clist</name>
+ <tooltip>Click to toggle breakpoint</tooltip>
+ <can_focus>True</can_focus>
+ <events>GDK_POINTER_MOTION_MASK</events>
+ <signal>
+ <name>select_row</name>
+ <handler>on_mixal_select_row</handler>
+ <after>True</after>
+ <last_modification_time>Sun, 11 Mar 2001 01:15:28 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>motion_notify_event</name>
+ <handler>on_mixal_motion_notify_event</handler>
+ <last_modification_time>Sun, 17 Jun 2001 19:44:48 GMT</last_modification_time>
+ </signal>
+ <signal>
+ <name>leave_notify_event</name>
+ <handler>on_mixal_leave_notify_event</handler>
+ <last_modification_time>Sat, 23 Jun 2001 22:26:17 GMT</last_modification_time>
+ </signal>
+ <columns>2</columns>
+ <column_widths>152,80</column_widths>
+ <selection_mode>GTK_SELECTION_SINGLE</selection_mode>
+ <show_titles>True</show_titles>
+ <shadow_type>GTK_SHADOW_IN</shadow_type>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>CList:title</child_name>
+ <name>label213</name>
+ <label>memory</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+
+ <widget>
+ <class>GtkLabel</class>
+ <child_name>CList:title</child_name>
+ <name>label214</name>
+ <label>source</label>
+ <justify>GTK_JUSTIFY_CENTER</justify>
+ <wrap>False</wrap>
+ <xalign>0.5</xalign>
+ <yalign>0.5</yalign>
+ <xpad>0</xpad>
+ <ypad>0</ypad>
+ </widget>
+ </widget>
+ </widget>
+
+ <widget>
+ <class>GtkStatusbar</class>
+ <name>statusbar1</name>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+ </widget>
</widget>
</widget>
@@ -4315,6 +4790,65 @@
<spacing>0</spacing>
<widget>
+ <class>GtkToolbar</class>
+ <name>devices_toolbar</name>
+ <border_width>2</border_width>
+ <orientation>GTK_ORIENTATION_HORIZONTAL</orientation>
+ <type>GTK_TOOLBAR_ICONS</type>
+ <space_size>5</space_size>
+ <space_style>GTK_TOOLBAR_SPACE_EMPTY</space_style>
+ <relief>GTK_RELIEF_NORMAL</relief>
+ <tooltips>True</tooltips>
+ <child>
+ <padding>0</padding>
+ <expand>False</expand>
+ <fill>False</fill>
+ </child>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>devdir_button</name>
+ <tooltip>Device directory</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_devdir_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:14:09 GMT</last_modification_time>
+ </signal>
+ <label>Device dir</label>
+ <icon>open.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>output_button</name>
+ <tooltip>Output format</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_devform_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 14:46:32 GMT</last_modification_time>
+ </signal>
+ <label>Output</label>
+ <icon>output.xpm</icon>
+ </widget>
+
+ <widget>
+ <class>GtkButton</class>
+ <child_name>Toolbar:button</child_name>
+ <name>button21</name>
+ <tooltip>Output font</tooltip>
+ <signal>
+ <name>clicked</name>
+ <handler>on_devices_font_activate</handler>
+ <last_modification_time>Thu, 16 Aug 2001 13:31:44 GMT</last_modification_time>
+ </signal>
+ <label>Font</label>
+ <icon>font.xpm</icon>
+ </widget>
+ </widget>
+
+ <widget>
<class>GtkNotebook</class>
<name>devices_notebook</name>
<can_focus>True</can_focus>
diff --git a/mixgtk/mixgtk_config.c b/mixgtk/mixgtk_config.c
index b444caf..052dea5 100644
--- a/mixgtk/mixgtk_config.c
+++ b/mixgtk/mixgtk_config.c
@@ -33,6 +33,9 @@ static const gchar *MIXGTK_CONFIG_FILE_ = "gmixvm.config";
static const gchar *SPLIT_KEY = "Split";
static const gchar *SPLIT_YES = "Yes";
static const gchar *SPLIT_NO = "No";
+static const gchar *SHOW_TB_KEY = "Toolbars";
+static const gchar *TB_YES = "Yes";
+static const gchar *TB_NO = "No";
static mix_config_t *config_ = NULL;
@@ -103,3 +106,16 @@ mixgtk_config_set_split (gboolean split)
{
mixgtk_config_update (SPLIT_KEY, split? SPLIT_YES : SPLIT_NO);
}
+
+gboolean
+mixgtk_config_show_toolbars (void)
+{
+ const gchar *show = mixgtk_config_get (SHOW_TB_KEY);
+ return (!show || !strcmp (show, TB_YES));
+}
+
+void
+mixgtk_config_set_show_toolbars (gboolean show)
+{
+ mixgtk_config_update (SHOW_TB_KEY, show? TB_YES : TB_NO);
+}
diff --git a/mixgtk/mixgtk_config.h b/mixgtk/mixgtk_config.h
index 038c659..7b58cda 100644
--- a/mixgtk/mixgtk_config.h
+++ b/mixgtk/mixgtk_config.h
@@ -62,6 +62,11 @@ mixgtk_config_is_split (void);
extern void
mixgtk_config_set_split (gboolean split);
+extern gboolean
+mixgtk_config_show_toolbars (void);
+
+extern void
+mixgtk_config_set_show_toolbars (gboolean show);
#endif /* MIXGTK_CONFIG_H */
diff --git a/mixgtk/mixgtk_wm.c b/mixgtk/mixgtk_wm.c
index 7e28baf..9f227c5 100644
--- a/mixgtk/mixgtk_wm.c
+++ b/mixgtk/mixgtk_wm.c
@@ -33,19 +33,22 @@ typedef struct window_info_t_
const gchar *menu_name;
const gchar *config_key;
gboolean visible;
+ const gchar *toolbar_name;
} window_info_t_;
static window_info_t_ infos_[] = {
- {MIXGTK_MIXVM_DIALOG, NULL, NULL, "mix_view", "MIX.view"},
- {MIXGTK_MIXAL_DIALOG, NULL, NULL, "mixal_view", "MIXAL.view"},
- {MIXGTK_DEVICES_DIALOG, NULL, NULL, "devices_view", "Devices.view"}
+ {MIXGTK_MIXVM_DIALOG, NULL, NULL, "mix_view", "MIX.view", FALSE, NULL},
+ {MIXGTK_MIXAL_DIALOG, NULL, NULL, "mixal_view", "MIXAL.view", FALSE,
+ "mixal_toolbar"},
+ {MIXGTK_DEVICES_DIALOG, NULL, NULL, "devices_view", "Devices.view",
+ FALSE, "devices_toolbar"}
};
static size_t INF_NO_ = sizeof (infos_) / sizeof (infos_[0]);
static gboolean split_ = FALSE;
-static const gchar *SPLIT_MENU_NAME_ = "split_windows";
-static GtkCheckMenuItem *split_menu_ = NULL;
+static const gchar *TB_MENU_NAME_ = "show_toolbars";
+static GtkCheckMenuItem *tb_menu_ = NULL;
static const gchar *VIEW_YES_ = "Yes";
static const gchar *VIEW_NO_ = "No";
@@ -56,18 +59,15 @@ static gboolean restart_ = FALSE;
gboolean
mixgtk_wm_init (void)
{
- static gboolean restart = FALSE;
split_ = mixgtk_config_is_split ();
if (split_)
{
gint i;
- split_menu_ = GTK_CHECK_MENU_ITEM
- (mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN,
- SPLIT_MENU_NAME_));
- g_return_val_if_fail (split_menu_, FALSE);
- gtk_check_menu_item_set_active (split_menu_, TRUE);
for (i = 0; i < INF_NO_; ++i)
{
+ const gchar *view = mixgtk_config_get (infos_[i].config_key);
+ infos_[i].visible = !view || !strcmp (VIEW_YES_, view);
+ if (!view) mixgtk_config_update (infos_[i].config_key, VIEW_YES_);
infos_[i].widget =
mixgtk_widget_factory_get_dialog (infos_[i].dialog);
g_return_val_if_fail (infos_[i].widget, FALSE);
@@ -75,11 +75,6 @@ mixgtk_wm_init (void)
(mixgtk_widget_factory_get_child_by_name
(MIXGTK_MAIN, infos_[i].menu_name));
g_return_val_if_fail (infos_[i].menu, FALSE);
- if (!restart)
- {
- const gchar *view = mixgtk_config_get (infos_[i].config_key);
- infos_[i].visible = !view || !strcmp (VIEW_YES_, view);
- }
if (infos_[i].visible) gtk_widget_show (infos_[i].widget);
gtk_check_menu_item_set_active (infos_[i].menu, infos_[i].visible);
}
@@ -90,8 +85,14 @@ mixgtk_wm_init (void)
for (k = 0; k < INF_NO_; ++k)
if (infos_[k].widget) gtk_widget_destroy (infos_[k].widget);
}
-
- restart = TRUE;
+
+ tb_menu_ = GTK_CHECK_MENU_ITEM
+ (mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN,
+ TB_MENU_NAME_));
+ g_return_val_if_fail (tb_menu_, FALSE);
+ gtk_check_menu_item_set_active (tb_menu_, mixgtk_config_show_toolbars ());
+ mixgtk_wm_show_toolbars (mixgtk_config_show_toolbars ());
+
return TRUE;
}
@@ -121,6 +122,36 @@ mixgtk_wm_hide_window (mixgtk_window_id_t w)
}
}
+void
+mixgtk_wm_show_toolbars (gboolean show)
+{
+ static const gchar *MAIN_TB_NAME = "main_toolbar";
+ GtkWidget *toolbar =
+ mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN, MAIN_TB_NAME);
+ if (toolbar != NULL)
+ {
+ if (show) gtk_widget_show (toolbar);
+ else gtk_widget_hide (toolbar);
+ }
+
+ if (split_)
+ {
+ int k;
+ for (k = 0; k < INF_NO_; ++k)
+ {
+ if (infos_[k].toolbar_name != NULL)
+ {
+ GtkWidget *tb = mixgtk_widget_factory_get_child_by_name
+ (infos_[k].dialog, infos_[k].toolbar_name);
+ if (show && tb) gtk_widget_show (tb);
+ else if (tb) gtk_widget_hide (tb);
+ }
+ }
+ }
+
+ mixgtk_config_set_show_toolbars (show);
+}
+
/* callbacks */
void
on_view_toggled (GtkCheckMenuItem *item)
@@ -142,9 +173,17 @@ on_view_toggled (GtkCheckMenuItem *item)
}
void
-on_split_windows_toggled (GtkCheckMenuItem *item)
+on_one_window_activate ()
{
- mixgtk_config_set_split (item->active);
+ mixgtk_config_set_split (FALSE);
+ restart_ = TRUE;
+ gtk_widget_destroy (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN));
+}
+
+void
+on_split_windows_activate ()
+{
+ mixgtk_config_set_split (TRUE);
restart_ = TRUE;
gtk_widget_destroy (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN));
}
@@ -170,3 +209,9 @@ on_main_window_destroy (GtkWidget *w, gpointer data)
else gtk_main_quit ();
}
+void
+on_show_toolbars_toggled (GtkCheckMenuItem *item)
+{
+ if (!restart_ && item->active != mixgtk_config_show_toolbars ())
+ mixgtk_wm_show_toolbars (item->active);
+}
diff --git a/mixgtk/mixgtk_wm.h b/mixgtk/mixgtk_wm.h
index 66ef9ce..6a51b9f 100644
--- a/mixgtk/mixgtk_wm.h
+++ b/mixgtk/mixgtk_wm.h
@@ -42,5 +42,8 @@ mixgtk_wm_show_window (mixgtk_window_id_t w);
extern void
mixgtk_wm_hide_window (mixgtk_window_id_t w);
+extern void
+mixgtk_wm_show_toolbars (gboolean show);
+
#endif /* MIXGTK_WM_H */
diff --git a/mixgtk/next.xpm b/mixgtk/next.xpm
new file mode 100644
index 0000000..85faed3
--- /dev/null
+++ b/mixgtk/next.xpm
@@ -0,0 +1,30 @@
+/* XPM */
+static char * next_xpm[] = {
+"22 22 5 1",
+" c None",
+". c #000000",
+"+ c #EDDDF0",
+"@ c #848080",
+"# c #FBF2FB",
+" ",
+" ",
+" ........ ",
+" . ........ ",
+" .+. . ",
+" .@@#. .. ..........",
+".@@@@#..+. ",
+" .@@@@@+@. .... ",
+" .@@@@@@. ",
+" .@@@@@. ....... ",
+" .+@@@@. ",
+" .+@@@@@. ",
+" ......... ..........",
+" ..........",
+" ",
+" .... ",
+" ",
+" ...... ",
+" ",
+" ........ ",
+" ",
+" "};
diff --git a/mixgtk/onew.xpm b/mixgtk/onew.xpm
new file mode 100644
index 0000000..d8de746
--- /dev/null
+++ b/mixgtk/onew.xpm
@@ -0,0 +1,124 @@
+/* XPM */
+static char * onew_xpm[] = {
+"22 22 99 2",
+" c None",
+". c #000000",
+"+ c #DCDCDC",
+"@ c #D8D8D8",
+"# c #D4D4D4",
+"$ c #D0D0D0",
+"% c #CDCDCD",
+"& c #C9C9C9",
+"* c #C5C5C5",
+"= c #C1C1C1",
+"- c #BEBEBE",
+"; c #BABABA",
+"> c #B6B6B6",
+", c #B2B2B2",
+"' c #AFAFAF",
+") c #ABABAB",
+"! c #A7A7A7",
+"~ c #A3A3A3",
+"{ c #9F9F9F",
+"] c #585858",
+"^ c #CECECE",
+"/ c #FFFFFF",
+"( c #FFFFFE",
+"_ c #FFFFFB",
+": c #FFFFF9",
+"< c #FFFFF6",
+"[ c #FFFFF3",
+"} c #FFFFF0",
+"| c #CECEBF",
+"1 c #800000",
+"2 c #FFFFF8",
+"3 c #FFFFF5",
+"4 c #FFFFF2",
+"5 c #FFFFED",
+"6 c #CECEBD",
+"7 c #FFFFFD",
+"8 c #FFFFFA",
+"9 c #FFFFF7",
+"0 c #CECEBA",
+"a c #FFFFFC",
+"b c #FFFFF4",
+"c c #FFFFE6",
+"d c #CECEB7",
+"e c #FFFFE5",
+"f c #FFFFE2",
+"g c #CECEB5",
+"h c #FFFFDF",
+"i c #CECEB2",
+"j c #FFFFEF",
+"k c #FFFFEC",
+"l c #FFFFEA",
+"m c #FFFFE7",
+"n c #FFFFE4",
+"o c #FFFFE1",
+"p c #FFFFDE",
+"q c #FFFFDC",
+"r c #CECEAF",
+"s c #FFFFF1",
+"t c #FFFFE9",
+"u c #FFFFE3",
+"v c #FFFFDB",
+"w c #FFFFD8",
+"x c #CECEAC",
+"y c #FFFFEE",
+"z c #FFFFEB",
+"A c #FFFFE8",
+"B c #FFFFD5",
+"C c #CECEAA",
+"D c #FFFFD4",
+"E c #FFFFD1",
+"F c #CECEA6",
+"G c #FFFFCE",
+"H c #CECEA4",
+"I c #CECECC",
+"J c #FFFFD3",
+"K c #CECEA2",
+"L c #CECECA",
+"M c #FFFFE0",
+"N c #FFFFDD",
+"O c #FFFFD2",
+"P c #FFFFCF",
+"Q c #FFFFCD",
+"R c #FFFFC7",
+"S c #CECE9E",
+"T c #CECEC7",
+"U c #CECEC4",
+"V c #CECEC2",
+"W c #CECEC0",
+"X c #CECEBE",
+"Y c #CECEBB",
+"Z c #CECEB9",
+"` c #CECEB3",
+" . c #CECEB0",
+".. c #CECEAE",
+"+. c #CECEAB",
+"@. c #CECEA7",
+"#. c #CECEA5",
+"$. c #CECEA0",
+"%. c #CECE9C",
+" ",
+" ",
+". . . . . . . . . . . . . . . . . . . . . . ",
+". + + + @ # $ % & * = - ; > , ' ) ! ~ { { . ",
+". + + + @ # $ % & * = - ; > , ' ) ! ~ { { . ",
+". ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] . ",
+". ^ / / / / / / / / / / / / ( _ : < [ } | . ",
+". ^ / 1 / / / / / / / / / ( _ 2 3 4 1 5 6 . ",
+". ^ 1 1 1 / 1 / / / / / 7 8 9 1 4 1 1 1 0 . ",
+". ^ / 1 1 1 1 / / / / a 8 9 b 1 1 1 1 c d . ",
+". ^ / / 1 1 1 / / / a : < [ } 1 1 1 e f g . ",
+". ^ / 1 1 1 1 / ( _ 2 3 [ } 5 1 1 1 1 h i . ",
+". ^ / / / / / 7 8 2 3 4 j k l m n o p q r . ",
+". ^ / / / / 7 8 9 b s j k t c u o p v w x . ",
+". ^ / 1 1 1 1 < b s y z A c u 1 1 1 1 B C . ",
+". ^ / ( 1 1 1 [ } 5 z A e f h 1 1 1 D E F . ",
+". ^ ( 1 1 1 1 } 5 l m n o h q 1 1 1 1 G H . ",
+". I 1 1 1 4 1 k t c n o p v w 1 J 1 1 1 K . ",
+". L 9 1 s y z t c u M N v w B O P Q 1 R S . ",
+". T U V W X Y Z d g ` ...+.C @.#.K $.S %.. ",
+". . . . . . . . . . . . . . . . . . . . . . ",
+" "};
diff --git a/mixgtk/open.xpm b/mixgtk/open.xpm
new file mode 100644
index 0000000..ae2fc3b
--- /dev/null
+++ b/mixgtk/open.xpm
@@ -0,0 +1,32 @@
+/* XPM */
+static char * open_xpm[] = {
+"24 24 5 1",
+" c None",
+". c #000000",
+"+ c #99907B",
+"@ c #FFFEF7",
+"# c #FFFFFF",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .. ",
+" ...++. ",
+" .. ...++++@@#... ",
+" .++..++++@@@@..++. ",
+" .+++++@@@@@..++++. ",
+" .++@@@@@..++++++. ",
+" .++@@@..++++++++. ",
+" .+@@.++++++++++. ",
+" .++@.++++++++++. ",
+" .+@.++++++++++. ",
+" .++.++++++++.. ",
+" .+.++++++.. ",
+" .+.+++++. ",
+" ..+++.. ",
+" ..+.. ",
+" .. ",
+" ",
+" ",
+" "};
diff --git a/mixgtk/output.xpm b/mixgtk/output.xpm
new file mode 100644
index 0000000..597337f
--- /dev/null
+++ b/mixgtk/output.xpm
@@ -0,0 +1,38 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 8 1",
+" c #01260126010f",
+". c #56004ef93434",
+"X c #5c9c5c9c57c7",
+"o c #8e8e7d7d4545",
+"O c #a72aa72a95e6",
+"+ c #d015d015b9c5",
+"@ c #e90de90dd2e3",
+"# c None",
+/* pixels */
+"########################",
+"################ ######",
+"############### o #####",
+"########### ## o ######",
+"######### O o #######",
+"####### O@@ o ########",
+"##### O+++ o #########",
+"### O++++ o #########",
+"## XX++++ . @.#########",
+"## @.O+++ @@@@ ########",
+"## @@.++++@@@@@O #######",
+"## @@.O+O. .O@@ #######",
+"## @XO+O.O++O.+@@ ######",
+"## O++.O@@+OX.@@O #####",
+"## X+++ +#+OOO @@@+ ####",
+"## O++@ +@OOOO @@@O ####",
+"### +@@.OOOOOX.@@ #####",
+"### +@@O.OOOX + #######",
+"####X@@@O. .X ########",
+"#### @@@@@@@+ #######",
+"##### @@@@@O ## ######",
+"##### O@@+. #### #####",
+"###### @O ####### #####",
+"####### ###############"
+};
diff --git a/mixgtk/run.xpm b/mixgtk/run.xpm
new file mode 100644
index 0000000..9e0b147
--- /dev/null
+++ b/mixgtk/run.xpm
@@ -0,0 +1,36 @@
+/* XPM */
+static char * right_arrow_xpm[] = {
+"24 24 9 1",
+" c None",
+". c #020202",
+"+ c #1A1A1A",
+"@ c #779D6D",
+"# c #88AE80",
+"$ c #97B78B",
+"% c #9EBA92",
+"& c #E9EFE8",
+"* c #3C5936",
+" ",
+" ",
+" ",
+" ",
+" ",
+" .. ",
+" .&.. ",
+" .&&&.. ",
+" .&&&&&.. ",
+" .&&&&&&&.. ",
+" .&&&&&&&&&+. ",
+" +&&&&&&&&&&%.. ",
+" .%#######@@*.. ",
+" .%#####@@*.. ",
+" .%###@@*.. ",
+" .$#@@*.. ",
+" .#@*.. ",
+" .*.. ",
+" .. ",
+" ",
+" ",
+" ",
+" ",
+" "};
diff --git a/mixgtk/splitw.xpm b/mixgtk/splitw.xpm
new file mode 100644
index 0000000..c19e83c
--- /dev/null
+++ b/mixgtk/splitw.xpm
@@ -0,0 +1,119 @@
+/* XPM */
+static char * splitw_xpm[] = {
+"22 22 94 2",
+" c None",
+". c #000000",
+"+ c #DCDCDC",
+"@ c #D8D8D8",
+"# c #D4D4D4",
+"$ c #D0D0D0",
+"% c #CDCDCD",
+"& c #C9C9C9",
+"* c #C5C5C5",
+"= c #C1C1C1",
+"- c #BEBEBE",
+"; c #BABABA",
+"> c #B6B6B6",
+", c #B2B2B2",
+"' c #AFAFAF",
+") c #ABABAB",
+"! c #A7A7A7",
+"~ c #A3A3A3",
+"{ c #9F9F9F",
+"] c #585858",
+"^ c #CECECE",
+"/ c #FFFFFF",
+"( c #FFFFFE",
+"_ c #FFFFFB",
+": c #FFFFF9",
+"< c #FFFFF6",
+"[ c #FFFFF3",
+"} c #FFFFF0",
+"| c #CECEBF",
+"1 c #800000",
+"2 c #FFFFF8",
+"3 c #CECEBD",
+"4 c #FFFFFD",
+"5 c #FFFFFA",
+"6 c #FFFFF7",
+"7 c #FFFFF2",
+"8 c #CECEBA",
+"9 c #FFFFFC",
+"0 c #FFFFF4",
+"a c #CECEB7",
+"b c #FFFFE5",
+"c c #CECEB5",
+"d c #FFFFF5",
+"e c #FFFFED",
+"f c #FFFFE1",
+"g c #FFFFDE",
+"h c #FFFFDF",
+"i c #CECEB2",
+"j c #FFFFEF",
+"k c #FFFFEC",
+"l c #FFFFEA",
+"m c #FFFFE7",
+"n c #FFFFE4",
+"o c #FFFFDC",
+"p c #CECEAF",
+"q c #FFFFF1",
+"r c #FFFFE9",
+"s c #FFFFE6",
+"t c #FFFFE3",
+"u c #FFFFDB",
+"v c #FFFFD8",
+"w c #CECEAC",
+"x c #FFFFEE",
+"y c #FFFFEB",
+"z c #FFFFE8",
+"A c #FFFFD5",
+"B c #CECEAA",
+"C c #FFFFE2",
+"D c #FFFFD4",
+"E c #CECEA6",
+"F c #CECEA4",
+"G c #CECECC",
+"H c #FFFFD3",
+"I c #CECEA2",
+"J c #CECECA",
+"K c #FFFFE0",
+"L c #FFFFDD",
+"M c #FFFFD2",
+"N c #CECE9E",
+"O c #CECEC7",
+"P c #CECEC4",
+"Q c #CECEC2",
+"R c #CECEC0",
+"S c #CECEBE",
+"T c #CECEBB",
+"U c #CECEB9",
+"V c #CECEB3",
+"W c #CECEB0",
+"X c #CECEAE",
+"Y c #CECEAB",
+"Z c #CECEA7",
+"` c #CECEA5",
+" . c #CECEA0",
+".. c #CECE9C",
+" ",
+" ",
+". . . . . . . . . . . . . . . . . . . . . . ",
+". + + + @ # $ % & * = - ; > , ' ) ! ~ { { . ",
+". + + + @ # $ % & * = - ; > , ' ) ! ~ { { . ",
+". ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] . ",
+". ^ / / / / / / / / / / / / ( _ : < [ } | . ",
+". ^ 1 1 1 1 / / / / / / / ( _ 2 1 1 1 1 3 . ",
+". ^ 1 1 1 / / / / / / / 4 5 6 6 7 1 1 1 8 . ",
+". ^ 1 1 1 1 / / / / / 9 5 6 0 0 1 1 1 1 a . ",
+". ^ 1 / 1 1 1 / / / 9 : < [ } 1 1 1 b 1 c . ",
+". ^ / / / 1 / / ( _ 2 d [ } e e 1 f g h i . ",
+". ^ / / / / / 4 5 2 d 7 j k l m n f g o p . ",
+". ^ / / / / 4 5 6 0 q j k r s t f g u v w . ",
+". ^ / / / 1 } < 0 q x y z s t t 1 g u A B . ",
+". ^ 1 ( 1 1 1 [ } e y z b C h 1 1 1 D 1 E . ",
+". ^ 1 1 1 1 } } e l m n f h o o 1 1 1 1 F . ",
+". G 1 1 1 7 } k r s n f g u v v H 1 1 1 I . ",
+". J 1 1 1 1 y r s t K L u v A M 1 1 1 1 N . ",
+". O P Q R S T U a c V W X Y B Z ` I .N ... ",
+". . . . . . . . . . . . . . . . . . . . . . ",
+" "};
diff --git a/mixgtk/symbols.xpm b/mixgtk/symbols.xpm
new file mode 100644
index 0000000..154e428
--- /dev/null
+++ b/mixgtk/symbols.xpm
@@ -0,0 +1,39 @@
+/* XPM */
+static char *magick[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" c Gray0",
+". c #4646424233b4",
+"X c #6f4d67895151",
+"o c #911b871c69df",
+"O c #b3d8a9b58836",
+"+ c #c280b9779c39",
+"@ c #cd0cc646ae2e",
+"# c #e0e0e4e4e0e0",
+"$ c None",
+/* pixels */
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$ $$",
+"$$$$ ################ $$",
+"$$$$ ##### O######## $$",
+"$$$$ #### oX O####### $$",
+"$$$$ @o $$",
+"$$$$ #### @o O####### $$",
+"$$$$ #### @o O##### $$",
+"$$$$ #### @o X. O## $$",
+"$$$$ +o OX oX $$",
+"$$$$ ## X +o Oo Oo oX $$",
+"$$$$ ## o +OoOOoOOOOo $$",
+"$$$$ ## O +++OOOOOOOX $$",
+"$$$$ O O++O+OOOOOX $$",
+"$$$$ ## ooO+++O+OOOOX $$",
+"$$$$ ### oO++++OOOOo. $$",
+"$$$$ ### XOO++O+OOOo $$$",
+"$$$$ o++++OOOoX $$$",
+"$$$$$$$$$ XOO+++OOoX $$$",
+"$$$$$$$$$$ oO++OOOX $$$$",
+"$$$$$$$$$$$ OO++OOX $$$$",
+"$$$$$$$$$$$$$$$$$$$$$$$$"
+};