diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-06-30 14:07:51 +0000 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2004-06-30 14:07:51 +0000 |
commit | b7d63b0be1981c7f12b76ad7e085e5c6f43ff387 (patch) | |
tree | 13068a72f2d3eea4092f1a52e7750af586fce872 | |
parent | d9d66aa5f24bc07a4885332c433f3602b7380f9d (diff) | |
download | mdk-b7d63b0be1981c7f12b76ad7e085e5c6f43ff387.tar.gz mdk-b7d63b0be1981c7f12b76ad7e085e5c6f43ff387.tar.bz2 |
detachable windows in gtk+2
-rw-r--r-- | mixgtk/mixgtk.c | 81 | ||||
-rw-r--r-- | mixgtk/mixgtk.glade | 3287 | ||||
-rw-r--r-- | mixgtk/mixgtk.h | 14 | ||||
-rw-r--r-- | mixgtk/mixgtk_config.c | 30 | ||||
-rw-r--r-- | mixgtk/mixgtk_config.h | 18 | ||||
-rw-r--r-- | mixgtk/mixgtk_device.c | 49 | ||||
-rw-r--r-- | mixgtk/mixgtk_device.h | 4 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixal.c | 87 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixal.h | 17 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixvm.c | 69 | ||||
-rw-r--r-- | mixgtk/mixgtk_mixvm.h | 31 | ||||
-rw-r--r-- | mixgtk/mixgtk_widgets.c | 74 | ||||
-rw-r--r-- | mixgtk/mixgtk_widgets.h | 14 | ||||
-rw-r--r-- | mixgtk/mixgtk_wm.c | 559 | ||||
-rw-r--r-- | mixgtk/mixgtk_wm.h | 18 |
15 files changed, 1826 insertions, 2526 deletions
diff --git a/mixgtk/mixgtk.c b/mixgtk/mixgtk.c index 97f6a16..8526390 100644 --- a/mixgtk/mixgtk.c +++ b/mixgtk/mixgtk.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk.c : * Main functions of the mix gtk front-end * ------------------------------------------------------------------ - * $Id: mixgtk.c,v 1.17 2004/06/24 01:40:48 jao Exp $ + * $Id: mixgtk.c,v 1.18 2004/06/30 14:07:54 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -25,102 +25,43 @@ #include <string.h> #include "mixgtk_widgets.h" + #include "mixgtk_cmd_dispatcher.h" -#include "mixgtk_device.h" -#include "mixgtk_mixvm.h" -#include "mixgtk_mixal.h" #include "mixgtk_input.h" -#include "mixgtk_fontsel.h" #include "mixgtk_config.h" #include "mixgtk_wm.h" #include "mixgtk.h" -static const gchar *SPLIT_ARG_ = "-s"; -static const gchar *SPLIT_LONG_ARG_ = "--split"; - +/* initialise the app */ gboolean -mixgtk_restart (void) +mixgtk_init (int argc, char *argv[]) { - mix_vm_t *vm; - - if (!mixgtk_widget_factory_init ()) - { - g_error (_("Unable to initialise application: missing glade file")); - return FALSE; - } - - if (!mixgtk_cmd_dispatcher_init (MIXGTK_MAIN)) - { - g_error (_("Unable to initialise application (command dispatcher)\n")); - return FALSE; - } - - vm = mixgtk_cmd_dispatcher_get_vm (); + mix_init_lib (); - if (!mixgtk_mixvm_init (vm, MIXGTK_MIXVM_DIALOG)) - { - g_error (_("Unable to initialise application (mixvm widgets)\n")); - return FALSE; - } + gtk_init (&argc, &argv); - if (!mixgtk_mixal_init (vm, MIXGTK_MIXAL_DIALOG)) + if (!mixgtk_config_load ()) { - g_error (_("Unable to initialise application (mixal widgets)\n")); - return FALSE; + g_error (_("Unable to load gmixvm configuration")); } - if (!mixgtk_device_init (GTK_CONTAINER - (mixgtk_widget_factory_get - (MIXGTK_DEVICES_DIALOG, MIXGTK_WIDGET_DEVICES)), - vm)) + if (!mixgtk_widget_factory_init ()) { - g_error (_("Unable to initialise application (devices)\n")); + g_error (_("Unable to initialise application: missing glade file")); return FALSE; } if (!mixgtk_wm_init ()) { - g_error (_("Unable to initialise application (visibility)\n")); + g_error (_("Unable to initialise application\n")); return FALSE; } mixgtk_input_init (); - gtk_widget_show (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); - mixgtk_mixvm_update_vm_widgets (); - return TRUE; } -/* initialise the app */ -gboolean -mixgtk_init (int argc, char *argv[]) -{ - gboolean split = FALSE; - gint k; - - mix_init_lib (); - - if (!mixgtk_config_load ()) - { - g_error ("Unable to read configuration\n"); - return FALSE; - } - - for (k = 0; k < argc; ++k) - if (!strcmp (argv[k], SPLIT_ARG_) || !strcmp (argv[k], SPLIT_LONG_ARG_)) - { - split = TRUE; - break; - } - if (!split && mixgtk_config_is_split ()) split = TRUE; - mixgtk_config_set_split (split); - - gtk_init (&argc, &argv); - - return mixgtk_restart (); -} - /* main loop */ void mixgtk_main (void) diff --git a/mixgtk/mixgtk.glade b/mixgtk/mixgtk.glade index a73dfc6..a7ef1b4 100644 --- a/mixgtk/mixgtk.glade +++ b/mixgtk/mixgtk.glade @@ -17,7 +17,6 @@ <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <signal name="destroy" handler="on_main_window_destroy"/> <child> <widget class="GtkVBox" id="main_vbox"> @@ -49,7 +48,7 @@ <accelerator key="F3" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image91"> + <widget class="GtkImage" id="image214"> <property name="visible">True</property> <property name="stock">gtk-open</property> <property name="icon_size">1</property> @@ -72,7 +71,7 @@ <accelerator key="F4" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image92"> + <widget class="GtkImage" id="image215"> <property name="visible">True</property> <property name="stock">gtk-justify-fill</property> <property name="icon_size">1</property> @@ -95,7 +94,7 @@ <accelerator key="F5" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image93"> + <widget class="GtkImage" id="image216"> <property name="visible">True</property> <property name="stock">gtk-execute</property> <property name="icon_size">1</property> @@ -124,7 +123,7 @@ <accelerator key="Q" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image94"> + <widget class="GtkImage" id="image217"> <property name="visible">True</property> <property name="stock">gtk-quit</property> <property name="icon_size">1</property> @@ -142,45 +141,6 @@ </child> <child> - <widget class="GtkMenuItem" id="view"> - <property name="visible">True</property> - <property name="label" translatable="yes">Vie_w</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="view_menu"> - - <child> - <widget class="GtkCheckMenuItem" id="show_toolbars"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Toolbar</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="toggled" handler="on_show_toolbars_toggled"/> - <accelerator key="T" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkSeparatorMenuItem" id="separator5"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="split_windows"> - <property name="visible">True</property> - <property name="label" translatable="yes">Split _windows</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_split_windows_activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> <widget class="GtkMenuItem" id="debug"> <property name="visible">True</property> <property name="label" translatable="yes">De_bug</property> @@ -199,7 +159,7 @@ <accelerator key="R" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image95"> + <widget class="GtkImage" id="image218"> <property name="visible">True</property> <property name="stock">gtk-go-forward</property> <property name="icon_size">1</property> @@ -222,7 +182,7 @@ <accelerator key="N" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image96"> + <widget class="GtkImage" id="image219"> <property name="visible">True</property> <property name="stock">gtk-goto-last</property> <property name="icon_size">1</property> @@ -245,7 +205,7 @@ <accelerator key="C" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image97"> + <widget class="GtkImage" id="image220"> <property name="visible">True</property> <property name="stock">gtk-clear</property> <property name="icon_size">1</property> @@ -268,7 +228,7 @@ <accelerator key="Y" modifiers="GDK_MOD1_MASK" signal="activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image98"> + <widget class="GtkImage" id="image221"> <property name="visible">True</property> <property name="stock">gtk-index</property> <property name="icon_size">1</property> @@ -301,7 +261,7 @@ <property name="use_underline">True</property> <child internal-child="image"> - <widget class="GtkImage" id="image99"> + <widget class="GtkImage" id="image222"> <property name="visible">True</property> <property name="stock">gtk-select-font</property> <property name="icon_size">1</property> @@ -373,7 +333,7 @@ <signal name="activate" handler="on_devform_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image100"> + <widget class="GtkImage" id="image223"> <property name="visible">True</property> <property name="stock">gtk-zoom-100</property> <property name="icon_size">1</property> @@ -394,7 +354,7 @@ <signal name="activate" handler="on_devdir_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image101"> + <widget class="GtkImage" id="image224"> <property name="visible">True</property> <property name="stock">gtk-home</property> <property name="icon_size">1</property> @@ -415,7 +375,7 @@ <signal name="activate" handler="on_external_programs_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image102"> + <widget class="GtkImage" id="image225"> <property name="visible">True</property> <property name="stock">gtk-preferences</property> <property name="icon_size">1</property> @@ -429,6 +389,67 @@ </child> <child> + <widget class="GtkImageMenuItem" id=" "> + <property name="visible">True</property> + <property name="label" translatable="yes">Detached _windows</property> + <property name="use_underline">True</property> + + <child internal-child="image"> + <widget class="GtkImage" id="image226"> + <property name="visible">True</property> + <property name="stock">gtk-dnd-multiple</property> + <property name="icon_size">1</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + + <child> + <widget class="GtkMenu" id=" _menu"> + + <child> + <widget class="GtkCheckMenuItem" id="detach_vm"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Virtual machine</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + + <child> + <widget class="GtkCheckMenuItem" id="detach_source"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Source</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + + <child> + <widget class="GtkCheckMenuItem" id="detach_dev"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Devices</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkCheckMenuItem" id="show_toolbars"> + <property name="visible">True</property> + <property name="label" translatable="yes">Show toolbars</property> + <property name="use_underline">True</property> + <property name="active">False</property> + </widget> + </child> + + <child> <widget class="GtkSeparatorMenuItem" id="separator3"> <property name="visible">True</property> </widget> @@ -443,7 +464,7 @@ <signal name="activate" handler="on_save_activate"/> <child internal-child="image"> - <widget class="GtkImage" id="image103"> + <widget class="GtkImage" id="image227"> <property name="visible">True</property> <property name="stock">gtk-save</property> <property name="icon_size">1</property> @@ -512,6 +533,8 @@ <widget class="GtkToolButton" id="load_button"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Load MIX program</property> + <property name="label" translatable="yes">Open</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-open</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> @@ -528,6 +551,8 @@ <widget class="GtkToolButton" id="compile_button"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Compile MIXAL source</property> + <property name="label" translatable="yes">Compile</property> + <property name="use_underline">True</property> <property name="stock_id">gtk-execute</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> @@ -698,7 +723,7 @@ </child> <child> - <widget class="GtkSeparatorToolItem" id="separatortoolitem3"> + <widget class="GtkSeparatorToolItem" id="separatortoolitem8"> <property name="visible">True</property> <property name="draw">True</property> <property name="visible_horizontal">True</property> @@ -711,16 +736,16 @@ </child> <child> - <widget class="GtkToolButton" id="button26"> + <widget class="GtkToolButton" id="toolbutton1"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Split windows</property> - <property name="label" translatable="yes"></property> + <property name="tooltip" translatable="yes">Detach window</property> + <property name="label" translatable="yes">Detach</property> <property name="use_underline">True</property> - <property name="icon">splitw.xpm</property> + <property name="stock_id">gtk-dnd-multiple</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> - <property name="is_important">True</property> - <signal name="clicked" handler="on_split_windows_activate"/> + <property name="is_important">False</property> + <signal name="clicked" handler="on_detach_clicked" last_modification_time="Tue, 29 Jun 2004 22:14:37 GMT"/> </widget> <packing> <property name="expand">False</property> @@ -736,1281 +761,101 @@ </child> <child> - <widget class="GtkVBox" id="inner_vbox"> + <widget class="GtkVPaned" id="main_panel"> <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> + <property name="can_focus">True</property> + <property name="position">0</property> <child> <widget class="GtkNotebook" id="main_notebook"> - <property name="border_width">2</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="show_tabs">True</property> <property name="show_border">True</property> <property name="tab_pos">GTK_POS_TOP</property> <property name="scrollable">False</property> - <property name="enable_popup">True</property> - <signal name="switch_page" handler="on_notebook_switch_page"/> + <property name="enable_popup">False</property> <child> - <widget class="GtkHBox" id="mixvm_widget"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkVBox" id="vbox6"> - <property name="border_width">1</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">1</property> - - <child> - <widget class="GtkFrame" id="frame3"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkTable" id="table1"> - <property name="border_width">8</property> - <property name="visible">True</property> - <property name="n_rows">3</property> - <property name="n_columns">6</property> - <property name="homogeneous">False</property> - <property name="row_spacing">6</property> - <property name="column_spacing">11</property> - - <child> - <widget class="GtkLabel" id="label97"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">A</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label100"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I1</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label101"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I2</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rA_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">19</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI1_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI2_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes">+ 00 00</property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label98"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">X</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label102"> - <property name="width_request">16</property> - <property name="height_request">16</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I3</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">2</property> - <property name="right_attach">3</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label103"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I4</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">4</property> - <property name="right_attach">5</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label104"> - <property name="width_request">16</property> - <property name="height_request">16</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I5</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">4</property> - <property name="right_attach">5</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label105"> - <property name="width_request">16</property> - <property name="height_request">16</property> - <property name="visible">True</property> - <property name="label" translatable="yes">I6</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">4</property> - <property name="right_attach">5</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label99"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">J</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="left_attach">0</property> - <property name="right_attach">1</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rX_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes">+ 00 00 00 00 00</property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">19</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI4_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">5</property> - <property name="right_attach">6</property> - <property name="top_attach">0</property> - <property name="bottom_attach">1</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI5_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">5</property> - <property name="right_attach">6</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI6_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">5</property> - <property name="right_attach">6</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="rI3_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="left_attach">3</property> - <property name="right_attach">4</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options"></property> - <property name="y_options"></property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox22"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkEntry" id="rJ_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">9</property> - <signal name="button_press_event" handler="on_register_click"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <placeholder/> - </child> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">fill</property> - <property name="y_options">fill</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label264"> - <property name="visible">True</property> - <property name="label" translatable="yes">Registers </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox7"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkFrame" id="frame5"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkHBox" id="hbox6"> - <property name="border_width">1</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">5</property> - - <child> - <widget class="GtkRadioButton" id="greater_radio"> - <property name="border_width">2</property> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Greater</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">G</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_cmp_g_toggled"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkRadioButton" id="equal_radio"> - <property name="border_width">2</property> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Equal</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">E</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <property name="group">greater_radio</property> - <signal name="toggled" handler="on_cmp_e_toggled"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkRadioButton" id="lesser_radio"> - <property name="border_width">2</property> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Lesser</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">L</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <property name="group">greater_radio</property> - <signal name="toggled" handler="on_cmp_l_toggled"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVSeparator" id="vseparator9"> - <property name="height_request">7</property> - <property name="visible">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkCheckButton" id="over_toggle"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="label" translatable="yes">Overflow</property> - <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> - <property name="draw_indicator">True</property> - <signal name="toggled" handler="on_overflow_toggled" last_modification_time="Mon, 21 Jun 2004 11:44:04 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label266"> - <property name="visible">True</property> - <property name="label" translatable="yes">Flags </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <placeholder/> - </child> - - <child> - <widget class="GtkFrame" id="frame6"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkHBox" id="hbox7"> - <property name="border_width">4</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">1</property> - - <child> - <widget class="GtkEntry" id="loc_entry"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">False</property> - <property name="visibility">True</property> - <property name="max_length">4</property> - <property name="text" translatable="yes">0</property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <property name="width_chars">6</property> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="loc_arrow"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">View loc address</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <signal name="clicked" handler="on_loc_arrow_clicked"/> - - <child> - <widget class="GtkImage" id="image4"> - <property name="visible">True</property> - <property name="stock">gtk-jump-to</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">1</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label1323"> - <property name="visible">True</property> - <property name="label" translatable="yes">Location </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame2"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkHBox" id="hbox4"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">5</property> - - <child> - <widget class="GtkLabel" id="label258"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Uptime:</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="uptime_label"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">00000000</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">5</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label260"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Elapsed:</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">3</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="elapsed_label"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">000000</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">5</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label261"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">Program:</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">2</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="program_label"> - <property name="width_request">0</property> - <property name="height_request">0</property> - <property name="visible">True</property> - <property name="label" translatable="yes">000000</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">5</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label263"> - <property name="visible">True</property> - <property name="label" translatable="yes">Times </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">5</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">2</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkFrame" id="frame4"> - <property name="border_width">7</property> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> - - <child> - <widget class="GtkScrolledWindow" id="memory_scroll"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTreeView" id="memory_cells"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="events">GDK_BUTTON_PRESS_MASK</property> - <property name="headers_visible">True</property> - <property name="rules_hint">True</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkLabel" id="label265"> - <property name="visible">True</property> - <property name="label" translatable="yes">Memory </property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">3</property> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> + <placeholder/> </child> <child> - <widget class="GtkLabel" id="label241"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Virtual machine</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">2</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> + <placeholder/> </child> + </widget> + <packing> + <property name="shrink">False</property> + <property name="resize">False</property> + </packing> + </child> + + <child> + <widget class="GtkVBox" id="prompt_vbox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> <child> - <widget class="GtkScrolledWindow" id="mixal_scrol"> + <widget class="GtkScrolledWindow" id="mixlog_scrolledwindow"> <property name="visible">True</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property> <property name="shadow_type">GTK_SHADOW_IN</property> <property name="window_placement">GTK_CORNER_TOP_LEFT</property> <child> - <widget class="GtkTreeView" id="mixal_clist"> + <widget class="GtkTextView" id="command_log"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Click to toggle breakpoint</property> - <property name="can_focus">True</property> - <property name="events">GDK_POINTER_MOTION_MASK</property> - <property name="headers_visible">True</property> - <property name="rules_hint">True</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> + <property name="editable">False</property> + <property name="overwrite">False</property> + <property name="accepts_tab">True</property> + <property name="justification">GTK_JUSTIFY_LEFT</property> + <property name="wrap_mode">GTK_WRAP_WORD</property> + <property name="cursor_visible">False</property> + <property name="pixels_above_lines">0</property> + <property name="pixels_below_lines">0</property> + <property name="pixels_inside_wrap">0</property> + <property name="left_margin">0</property> + <property name="right_margin">0</property> + <property name="indent">0</property> + <property name="text" translatable="yes"></property> </widget> </child> </widget> <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> </packing> </child> <child> - <widget class="GtkLabel" id="label106"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Source</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="type">tab</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow37"> + <widget class="GtkEntry" id="command_prompt"> <property name="visible">True</property> + <property name="tooltip" translatable="yes">Enter MIXVM command here</property> <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkViewport" id="devices_container"> - <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - <packing> - <property name="tab_expand">False</property> - <property name="tab_fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="devices_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Devices</property> - <property name="use_underline">True</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> + <property name="has_focus">True</property> + <property name="editable">True</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <signal name="key_press_event" handler="on_command_prompt_key_press_event" after="yes"/> + <signal name="activate" handler="on_command_prompt_activate" last_modification_time="Sat, 19 Jun 2004 00:00:22 GMT"/> </widget> <packing> - <property name="type">tab</property> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> </packing> </child> </widget> <packing> - <property name="padding">2</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow25"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkViewport" id="viewport1"> - <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - - <child> - <widget class="GtkVBox" id="prompt_vbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkScrolledWindow" id="mixlog_scrolledwindow"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTextView" id="command_log"> - <property name="visible">True</property> - <property name="editable">False</property> - <property name="overwrite">False</property> - <property name="accepts_tab">True</property> - <property name="justification">GTK_JUSTIFY_LEFT</property> - <property name="wrap_mode">GTK_WRAP_WORD</property> - <property name="cursor_visible">False</property> - <property name="pixels_above_lines">0</property> - <property name="pixels_below_lines">0</property> - <property name="pixels_inside_wrap">0</property> - <property name="left_margin">0</property> - <property name="right_margin">0</property> - <property name="indent">0</property> - <property name="text" translatable="yes"></property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="command_prompt"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Enter MIXVM command here</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <signal name="key_press_event" handler="on_command_prompt_key_press_event" after="yes"/> - <signal name="activate" handler="on_command_prompt_activate" last_modification_time="Sat, 19 Jun 2004 00:00:22 GMT"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> + <property name="shrink">True</property> + <property name="resize">True</property> </packing> </child> </widget> @@ -2036,748 +881,6 @@ </child> </widget> -<widget class="GtkWindow" id="split_main_window"> - <property name="title" translatable="yes">gmixvm</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="default_width">570</property> - <property name="default_height">235</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <signal name="destroy" handler="on_main_window_destroy"/> - - <child> - <widget class="GtkVBox" id="main_vbox"> - <property name="border_width">2</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">2</property> - - <child> - <widget class="GtkMenuBar" id="mainmenubar"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="file"> - <property name="visible">True</property> - <property name="label" translatable="yes">_File</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="file_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="file_open"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Load a MIX file</property> - <property name="label" translatable="yes">_Load...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_file_open_activate"/> - <accelerator key="F3" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="edit"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Edit a MIXAL source file</property> - <property name="label" translatable="yes">_Edit...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_file_edit_activate"/> - <accelerator key="F4" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="compile"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Compile a MIXAL source file</property> - <property name="label" translatable="yes">_Compile...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_file_compile_activate"/> - <accelerator key="F5" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="separator2"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="file_exit"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Exit application</property> - <property name="label" translatable="yes">E_xit</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_file_exit_activate"/> - <accelerator key="Q" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="view"> - <property name="visible">True</property> - <property name="label" translatable="yes">_View</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="view_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkCheckMenuItem" id="mix_view"> - <property name="visible">True</property> - <property name="label" translatable="yes">_MIX</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="toggled" handler="on_view_toggled"/> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="mixal_view"> - <property name="visible">True</property> - <property name="label" translatable="yes">MI_XAL</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="toggled" handler="on_view_toggled"/> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="devices_view"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Devices</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="toggled" handler="on_view_toggled"/> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="show_toolbars"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Toolbars</property> - <property name="use_underline">True</property> - <property name="active">False</property> - <signal name="toggled" handler="on_show_toolbars_toggled"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="separator4"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="one_window"> - <property name="visible">True</property> - <property name="label" translatable="yes">One _window</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_one_window_activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="debug"> - <property name="visible">True</property> - <property name="label" translatable="yes">D_ebug</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="debug_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="debug_run"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Run program</property> - <property name="label" translatable="yes">_Run</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_debug_run_activate"/> - <accelerator key="R" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="debug_next"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Execute next instruction</property> - <property name="label" translatable="yes">_Next</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_debug_next_activate"/> - <accelerator key="N" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="clear_breakpoints"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Clear all set breakpoints</property> - <property name="label" translatable="yes">_Clear breakpoints</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_clear_breakpoints_activate"/> - <accelerator key="C" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="symbols"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Show the symbol table</property> - <property name="label" translatable="yes">_Symbols...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_symbols_activate"/> - <accelerator key="Y" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="settings1"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Settings</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="settings1_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="colors"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Change colors of MIXAL</property> - <property name="label" translatable="yes">_Colors...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_colors_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="fonts1"> - <property name="visible">True</property> - <property name="label" translatable="yes">Change _font</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="fonts1_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="mix"> - <property name="visible">True</property> - <property name="label" translatable="yes">_MIX</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_mix_font_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="mixal"> - <property name="visible">True</property> - <property name="label" translatable="yes">MI_XAL</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_mixal_font_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="command_prompt"> - <property name="visible">True</property> - <property name="label" translatable="yes">Command _prompt</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_prompt_font_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="command_log"> - <property name="visible">True</property> - <property name="label" translatable="yes">Command l_og</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_log_font_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="devices"> - <property name="visible">True</property> - <property name="label" translatable="yes">De_vices</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_devices_font_activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="device_output1"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Change format of binary devices output</property> - <property name="label" translatable="yes">_Device output...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_devform_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="devices_dir"> - <property name="visible">True</property> - <property name="label" translatable="yes">De_vices dir...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_devdir_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="external_programs1"> - <property name="visible">True</property> - <property name="label" translatable="yes">E_xternal programs...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_external_programs_activate"/> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="separator1"> - <property name="visible">True</property> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="save"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Save current settings</property> - <property name="label" translatable="yes">_Save</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_save_activate"/> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="save_on_exit"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Toogle save settings on exit</property> - <property name="label" translatable="yes">Save on _exit</property> - <property name="use_underline">True</property> - <property name="active">True</property> - <signal name="toggled" handler="on_save_on_exit_toggle"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkMenuItem" id="help"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Help</property> - <property name="use_underline">True</property> - - <child> - <widget class="GtkMenu" id="help_menu"> - <property name="visible">True</property> - - <child> - <widget class="GtkMenuItem" id="about"> - <property name="visible">True</property> - <property name="label" translatable="yes">_About...</property> - <property name="use_underline">True</property> - <signal name="activate" handler="on_about_activate"/> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkStatusbar" id="main_statusbar"> - <property name="visible">True</property> - <property name="has_resize_grip">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - - <child> - <widget class="GtkToolbar" id="main_toolbar"> - <property name="visible">True</property> - <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property> - <property name="toolbar_style">GTK_TOOLBAR_ICONS</property> - <property name="tooltips">True</property> - <property name="show_arrow">True</property> - - <child> - <widget class="GtkToolButton" id="button4"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Load MIX program</property> - <property name="label" translatable="yes">Load</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-open</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_file_open_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button5"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Compile MIXAL source</property> - <property name="label" translatable="yes">Build</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-execute</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_file_compile_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button6"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Edit MIXAL source</property> - <property name="label" translatable="yes">Edit</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-justify-fill</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_file_edit_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolItem" id="toolitem2"> - <property name="visible">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - - <child> - <widget class="GtkVSeparator" id="vseparator7"> - <property name="visible">True</property> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> - <widget class="GtkSeparatorToolItem" id="separatortoolitem4"> - <property name="visible">True</property> - <property name="draw">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button7"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Run</property> - <property name="label" translatable="yes">Run</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-go-forward</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_debug_run_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button8"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Next</property> - <property name="label" translatable="yes">Step</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-goto-last</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_debug_next_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button9"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Clear breakpoints</property> - <property name="label" translatable="yes">Clear</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-clear</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_clear_breakpoints_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button10"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Symbol table</property> - <property name="label" translatable="yes">Symbols</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-index</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_symbols_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkSeparatorToolItem" id="separatortoolitem5"> - <property name="visible">True</property> - <property name="draw">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button24"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Command log font</property> - <property name="label" translatable="yes">Font</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-select-color</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_log_font_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button25"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Command prompt font</property> - <property name="label" translatable="yes">Font</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-home</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_prompt_font_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button32"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">External programs</property> - <property name="label" translatable="yes">Extern</property> - <property name="use_underline">True</property> - <property name="stock_id">gtk-convert</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_external_programs_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - - <child> - <widget class="GtkSeparatorToolItem" id="separatortoolitem6"> - <property name="visible">True</property> - <property name="draw">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> - <widget class="GtkToolButton" id="button27"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">One window</property> - <property name="label" translatable="yes">One window</property> - <property name="use_underline">True</property> - <property name="icon">onew.xpm</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - <signal name="clicked" handler="on_one_window_activate"/> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox3"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkScrolledWindow" id="mixcmd_scrolledwindow"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTextView" id="command_log"> - <property name="visible">True</property> - <property name="editable">False</property> - <property name="overwrite">False</property> - <property name="accepts_tab">True</property> - <property name="justification">GTK_JUSTIFY_LEFT</property> - <property name="wrap_mode">GTK_WRAP_WORD</property> - <property name="cursor_visible">True</property> - <property name="pixels_above_lines">0</property> - <property name="pixels_below_lines">0</property> - <property name="pixels_inside_wrap">0</property> - <property name="left_margin">0</property> - <property name="right_margin">0</property> - <property name="indent">0</property> - <property name="text" translatable="yes"></property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="command_prompt"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Enter MIXVM command here</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="editable">True</property> - <property name="visibility">True</property> - <property name="max_length">0</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char" translatable="yes">*</property> - <property name="activates_default">False</property> - <signal name="key_press_event" handler="on_command_prompt_key_press_event" after="yes"/> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - <widget class="GtkDialog" id="word_dialog"> <property name="title" translatable="yes">Enter value</property> <property name="type">GTK_WINDOW_TOPLEVEL</property> @@ -3962,10 +2065,6 @@ disk7</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <signal name="delete_event" handler="on_window_hide"/> - <signal name="destroy_event" handler="on_window_hide"/> - <signal name="destroy" handler="on_window_hide"/> - <signal name="show" handler="mixgtk_mixal_update" after="yes"/> <child> <widget class="GtkVBox" id="vbox5"> @@ -3983,25 +2082,6 @@ disk7</property> <property name="show_arrow">True</property> <child> - <widget class="GtkToolItem" id="toolitem3"> - <property name="visible">True</property> - <property name="visible_horizontal">True</property> - <property name="visible_vertical">True</property> - <property name="is_important">False</property> - - <child> - <widget class="GtkVSeparator" id="vseparator8"> - <property name="visible">True</property> - </widget> - </child> - </widget> - <packing> - <property name="expand">False</property> - <property name="homogeneous">False</property> - </packing> - </child> - - <child> <widget class="GtkToolButton" id="button14"> <property name="visible">True</property> <property name="tooltip" translatable="yes">Run</property> @@ -4112,27 +2192,13 @@ disk7</property> </child> <child> - <widget class="GtkScrolledWindow" id="scrolledwindow27"> + <widget class="GtkVBox" id="mixal_container"> <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> <child> - <widget class="GtkTreeView" id="mixal_clist"> - <property name="visible">True</property> - <property name="tooltip" translatable="yes">Click to toggle breakpoint</property> - <property name="can_focus">True</property> - <property name="events">GDK_POINTER_MOTION_MASK</property> - <property name="headers_visible">True</property> - <property name="rules_hint">False</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> - <signal name="select_row" handler="on_mixal_select_row" after="yes"/> - <signal name="motion_notify_event" handler="on_mixal_motion_notify_event"/> - <signal name="leave_notify_event" handler="on_mixal_leave_notify_event"/> - </widget> + <placeholder/> </child> </widget> <packing> @@ -4214,7 +2280,7 @@ disk7</property> <property name="tooltip" translatable="yes">Output format</property> <property name="label" translatable="yes">Output</property> <property name="use_underline">True</property> - <property name="stock_id">gtk-find-and-replace</property> + <property name="stock_id">gtk-zoom-100</property> <property name="visible_horizontal">True</property> <property name="visible_vertical">True</property> <property name="is_important">False</property> @@ -4252,13 +2318,10 @@ disk7</property> </child> <child> - <widget class="GtkScrolledWindow" id="devices_container"> + <widget class="GtkVBox" id="dev_container"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> <child> <placeholder/> @@ -4426,13 +2489,9 @@ disk7</property> <property name="skip_pager_hint">False</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <signal name="delete_event" handler="on_window_hide"/> - <signal name="destroy_event" handler="on_window_hide"/> - <signal name="destroy" handler="on_window_hide"/> - <signal name="show" handler="mixgtk_mixvm_update_vm_widgets" after="yes"/> <child> - <widget class="GtkFrame" id="frame23"> + <widget class="GtkFrame" id="mixvm_container"> <property name="border_width">5</property> <property name="visible">True</property> <property name="label_xalign">0</property> @@ -4440,7 +2499,1055 @@ disk7</property> <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> <child> - <placeholder/> + <widget class="GtkHBox" id="mixvm_widget"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkVBox" id="vbox6"> + <property name="border_width">1</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">1</property> + + <child> + <widget class="GtkFrame" id="frame3"> + <property name="border_width">2</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkTable" id="table1"> + <property name="border_width">8</property> + <property name="visible">True</property> + <property name="n_rows">3</property> + <property name="n_columns">6</property> + <property name="homogeneous">False</property> + <property name="row_spacing">6</property> + <property name="column_spacing">11</property> + + <child> + <widget class="GtkLabel" id="label97"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">A</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label100"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I1</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label101"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I2</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rA_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">19</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI1_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI2_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes">+ 00 00</property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label98"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">X</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label102"> + <property name="width_request">16</property> + <property name="height_request">16</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I3</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label103"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I4</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label104"> + <property name="width_request">16</property> + <property name="height_request">16</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I5</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label105"> + <property name="width_request">16</property> + <property name="height_request">16</property> + <property name="visible">True</property> + <property name="label" translatable="yes">I6</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">4</property> + <property name="right_attach">5</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label99"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">J</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rX_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes">+ 00 00 00 00 00</property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">19</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI4_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI5_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI6_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">5</property> + <property name="right_attach">6</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkEntry" id="rI3_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"></property> + <property name="y_options"></property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox22"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkEntry" id="rJ_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">0</property> + <property name="text" translatable="yes"></property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">9</property> + <signal name="button_press_event" handler="on_register_click"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <placeholder/> + </child> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label264"> + <property name="visible">True</property> + <property name="label" translatable="yes">Registers </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">2</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">5</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + + <child> + <widget class="GtkFrame" id="frame5"> + <property name="border_width">2</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkHBox" id="hbox6"> + <property name="border_width">1</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">5</property> + + <child> + <widget class="GtkRadioButton" id="greater_radio"> + <property name="border_width">2</property> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Greater</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">G</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_cmp_g_toggled"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="equal_radio"> + <property name="border_width">2</property> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Equal</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">E</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">greater_radio</property> + <signal name="toggled" handler="on_cmp_e_toggled"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkRadioButton" id="lesser_radio"> + <property name="border_width">2</property> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">Lesser</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">L</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <property name="group">greater_radio</property> + <signal name="toggled" handler="on_cmp_l_toggled"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkVSeparator" id="vseparator9"> + <property name="height_request">7</property> + <property name="visible">True</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkCheckButton" id="over_toggle"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Overflow</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_overflow_toggled" last_modification_time="Mon, 21 Jun 2004 11:44:04 GMT"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label266"> + <property name="visible">True</property> + <property name="label" translatable="yes">Flags </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">2</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <placeholder/> + </child> + + <child> + <widget class="GtkFrame" id="frame6"> + <property name="border_width">2</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkHBox" id="hbox7"> + <property name="border_width">4</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">1</property> + + <child> + <widget class="GtkEntry" id="loc_entry"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">False</property> + <property name="visibility">True</property> + <property name="max_length">4</property> + <property name="text" translatable="yes">0</property> + <property name="has_frame">True</property> + <property name="invisible_char" translatable="yes">*</property> + <property name="activates_default">False</property> + <property name="width_chars">6</property> + </widget> + <packing> + <property name="padding">5</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkButton" id="loc_arrow"> + <property name="visible">True</property> + <property name="tooltip" translatable="yes">View loc address</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <signal name="clicked" handler="on_loc_arrow_clicked"/> + + <child> + <widget class="GtkImage" id="image4"> + <property name="visible">True</property> + <property name="stock">gtk-jump-to</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">1</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label1323"> + <property name="visible">True</property> + <property name="label" translatable="yes">Location </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">2</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">5</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame2"> + <property name="border_width">2</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkHBox" id="hbox4"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">5</property> + + <child> + <widget class="GtkLabel" id="label258"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Uptime:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="uptime_label"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">00000000</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label260"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Elapsed:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">3</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="elapsed_label"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">000000</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="label261"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">Program:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">2</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkLabel" id="program_label"> + <property name="width_request">0</property> + <property name="height_request">0</property> + <property name="visible">True</property> + <property name="label" translatable="yes">000000</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">5</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label263"> + <property name="visible">True</property> + <property name="label" translatable="yes">Times </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">2</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">5</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">2</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> + <widget class="GtkFrame" id="frame4"> + <property name="border_width">7</property> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="label_yalign">0.5</property> + <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property> + + <child> + <widget class="GtkScrolledWindow" id="memory_scroll"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + + <child> + <widget class="GtkTreeView" id="memory_cells"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_BUTTON_PRESS_MASK</property> + <property name="headers_visible">True</property> + <property name="rules_hint">True</property> + <property name="reorderable">False</property> + <property name="enable_search">True</property> + </widget> + </child> + </widget> + </child> + + <child> + <widget class="GtkLabel" id="label265"> + <property name="visible">True</property> + <property name="label" translatable="yes">Memory </property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">2</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="type">label_item</property> + </packing> + </child> + </widget> + <packing> + <property name="padding">3</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + </widget> </child> <child> diff --git a/mixgtk/mixgtk.h b/mixgtk/mixgtk.h index e4a16b6..7898d9e 100644 --- a/mixgtk/mixgtk.h +++ b/mixgtk/mixgtk.h @@ -3,22 +3,22 @@ * ------------------------------------------------------------------ * Last change: Time-stamp: <2001-04-29 12:06:48 jao> * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, 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 * 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. - * + * */ @@ -35,10 +35,6 @@ extern gboolean mixgtk_init (int argc, char *argv[]); -/* restart the gui */ -extern gboolean -mixgtk_restart (void); - /* enter the main mixgtk loop */ extern void mixgtk_main (void); diff --git a/mixgtk/mixgtk_config.c b/mixgtk/mixgtk_config.c index ccd1216..58a1a25 100644 --- a/mixgtk/mixgtk_config.c +++ b/mixgtk/mixgtk_config.c @@ -1,24 +1,24 @@ /* -*-c-*- -------------- mixgtk_config.c : * Implementation of the functions declared in mixgtk_config.h * ------------------------------------------------------------------ - * $Id: mixgtk_config.c,v 1.8 2002/03/29 16:30:49 jao Exp $ + * $Id: mixgtk_config.c,v 1.9 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001, 2002 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2002, 2004 Free Software Foundation, 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 * 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 <stdlib.h> @@ -32,9 +32,6 @@ #include "mixgtk_config.h" 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"; @@ -103,20 +100,7 @@ mixgtk_config_save (void) } gboolean -mixgtk_config_is_split (void) -{ - const gchar *split = mixgtk_config_get (SPLIT_KEY); - return (split && !strcmp (split, SPLIT_YES)); -} - -void -mixgtk_config_set_split (gboolean split) -{ - mixgtk_config_update (SPLIT_KEY, split? SPLIT_YES : SPLIT_NO); -} - -gboolean -mixgtk_config_show_toolbars (void) +mixgtk_config_show_toolbars (void) { const gchar *show = mixgtk_config_get (SHOW_TB_KEY); return (!show || !strcmp (show, TB_YES)); diff --git a/mixgtk/mixgtk_config.h b/mixgtk/mixgtk_config.h index ee09045..519698a 100644 --- a/mixgtk/mixgtk_config.h +++ b/mixgtk/mixgtk_config.h @@ -1,24 +1,24 @@ /* -*-c-*- ---------------- mixgtk_config.h : * Configuration functions declarations. * ------------------------------------------------------------------ - * $Id: mixgtk_config.h,v 1.5 2001/09/18 22:50:30 jao Exp $ + * $Id: mixgtk_config.h,v 1.6 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, 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 * 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. - * + * */ @@ -61,12 +61,6 @@ mixgtk_config_save (void); /* shared config params */ extern gboolean -mixgtk_config_is_split (void); - -extern void -mixgtk_config_set_split (gboolean split); - -extern gboolean mixgtk_config_show_toolbars (void); extern void diff --git a/mixgtk/mixgtk_device.c b/mixgtk/mixgtk_device.c index e701728..885c19c 100644 --- a/mixgtk/mixgtk_device.c +++ b/mixgtk/mixgtk_device.c @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_device.c : * actual types for mixgtk devices * ------------------------------------------------------------------ - * $Id: mixgtk_device.c,v 1.22 2004/06/24 01:40:47 jao Exp $ + * $Id: mixgtk_device.c,v 1.23 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -42,7 +42,6 @@ static const gchar *DEV_FORMAT_KEY_ = "Device.format"; /* device container */ -static GtkContainer *container_ = NULL; static GtkNotebook *dev_nb_ = NULL; /* devdir dialog */ static GtkWidget *devdir_dlg_ = NULL; @@ -284,6 +283,7 @@ mixgtk_device_construct_gui_ (struct mixgtk_device_t *dev) gtk_tree_view_new_with_model (GTK_TREE_MODEL (bindev->store)); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dev->widget), FALSE); + gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (dev->widget), TRUE); for (k = 0; k < BIN_DEV_COL_; ++k) { @@ -293,14 +293,14 @@ mixgtk_device_construct_gui_ (struct mixgtk_device_t *dev) "text", k, NULL)); } + g_free (types); } g_assert (dev->widget); gtk_container_add (GTK_CONTAINER (dev->scroll), dev->widget); + mixgtk_fontsel_set_font (MIX_FONT_DEVICES, dev->widget); gtk_notebook_append_page (dev_nb_, dev->scroll, label); - gtk_widget_set_style (dev->widget, - gtk_widget_get_style (GTK_WIDGET (dev_nb_))); gtk_widget_show (label); gtk_widget_show (dev->scroll); gtk_widget_show (dev->widget); @@ -368,11 +368,11 @@ mixgtk_device_new_ (mix_device_type_t type) } /* init default devices */ -gboolean -mixgtk_device_init (GtkContainer *container, mix_vm_t *vm) +GtkWidget * +mixgtk_device_init (mix_vm_t *vm) { - g_return_val_if_fail (container != NULL, FALSE); - g_return_val_if_fail (vm != NULL, FALSE); + g_assert (vm != NULL); + vm_ = vm; devdlg_ = NULL; devdir_dlg_ = NULL; @@ -392,22 +392,12 @@ mixgtk_device_init (GtkContainer *container, mix_vm_t *vm) dev_nb_ = GTK_NOTEBOOK (gtk_notebook_new ()); gtk_notebook_set_tab_pos (dev_nb_, GTK_POS_RIGHT); - gtk_notebook_set_scrollable (dev_nb_, TRUE); - gtk_container_add (container, GTK_WIDGET (dev_nb_)); - } - else if (container_) - { - gtk_widget_reparent (GTK_WIDGET (dev_nb_), GTK_WIDGET (container)); + gtk_notebook_set_scrollable (dev_nb_, FALSE); } - container_ = container; - - gtk_widget_show (GTK_WIDGET (dev_nb_)); - gtk_widget_show (GTK_WIDGET (container_)); - mixgtk_fontsel_set_font (MIX_FONT_DEVICES, GTK_WIDGET (dev_nb_)); - return TRUE; + return GTK_WIDGET (dev_nb_); } void @@ -584,19 +574,20 @@ void on_devices_font_activate () { gint no = gtk_notebook_get_n_pages (dev_nb_); - GtkWidget **w = g_new (GtkWidget *, 2 * no + 1); - gint k; + GtkWidget **w = g_new (GtkWidget *, no + 1); + gint k, j; - w[2 * no] = GTK_WIDGET (dev_nb_); - for (k = 0; k < no; ++k) + for (k = 0, j = 0; k < no && j < mix_dev_INVALID; ++j) { - w[k] = gtk_notebook_get_nth_page (dev_nb_, k); - w[k + no] = gtk_bin_get_child (GTK_BIN (w[k])); - g_assert (w[k]); - g_assert (w[k + no]); + struct mixgtk_device_t * dev = + (struct mixgtk_device_t *) mix_vm_get_device (vm_, j); + if (dev != NULL) w[k++] = dev->widget; } - mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, 2 * no + 1); + g_assert (k == no); + w[k] = GTK_WIDGET (dev_nb_); + + mixgtk_fontsel_query_font (MIX_FONT_DEVICES, w, no + 1); g_free (w); } diff --git a/mixgtk/mixgtk_device.h b/mixgtk/mixgtk_device.h index dde8a5c..b15cbb4 100644 --- a/mixgtk/mixgtk_device.h +++ b/mixgtk/mixgtk_device.h @@ -30,8 +30,8 @@ #include <mixlib/mix_device.h> /* init default devices */ -extern gboolean -mixgtk_device_init (GtkContainer *container, mix_vm_t *vm); +extern GtkWidget * +mixgtk_device_init (mix_vm_t *vm); /* change the output format of a device */ extern void diff --git a/mixgtk/mixgtk_mixal.c b/mixgtk/mixgtk_mixal.c index 17f726f..1ee9475 100644 --- a/mixgtk/mixgtk_mixal.c +++ b/mixgtk/mixgtk_mixal.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_mixal.c : * Implementation of the functions declared in mixgtk_mixal.h * ------------------------------------------------------------------ - * $Id: mixgtk_mixal.c,v 1.18 2004/06/24 01:40:47 jao Exp $ + * $Id: mixgtk_mixal.c,v 1.19 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -30,17 +30,13 @@ #include "mixgtk_fontsel.h" #include "mixgtk_mixal.h" - -#define MIXAL_TAB_POS_ 2 - static mix_vm_t *vm_ = NULL; static GtkTreeView *clist_ = NULL; static GtkListStore *clist_store_ = NULL; static gulong lineno_; -static const gchar *LOCAL_STATUS_BAR_ = "mixal_statusbar"; -static GtkStatusbar *status_; -static gint status_context_; +static GtkStatusbar *status_ = NULL; +static gint status_context_ = 0; static GPtrArray *tips_text_ = NULL; static GtkWidget *symbols_dlg_ = NULL; @@ -149,18 +145,15 @@ fill_symbols_ (const mix_symbol_table_t *table) insert_symbol_, NULL); } -static gboolean -init_clist_ (mixgtk_dialog_id_t top) +static void +init_clist_ (void) { GtkStockItem item; GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); GtkCellRenderer *bprenderer = gtk_cell_renderer_pixbuf_new (); - clist_ = GTK_TREE_VIEW - (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_MIXAL)); - - g_assert (clist_); + clist_ = GTK_TREE_VIEW (gtk_tree_view_new ()); clist_store_ = gtk_list_store_new (CLIST_COL_NO, G_TYPE_STRING, @@ -173,6 +166,7 @@ init_clist_ (mixgtk_dialog_id_t top) gtk_tree_view_set_model (clist_, GTK_TREE_MODEL (clist_store_)); g_object_unref (G_OBJECT (clist_store_)); + gtk_tree_view_set_rules_hint (clist_, TRUE); gtk_tree_view_append_column (clist_, @@ -206,44 +200,51 @@ init_clist_ (mixgtk_dialog_id_t top) pc_stock_id_ = item.stock_id; } - return TRUE; -} + symbols_dlg_ = NULL; + symbols_view_ = NULL; + g_signal_connect (G_OBJECT (clist_), "event", + G_CALLBACK (mixal_event_), NULL); -/* initialise the mixal widgets */ -gboolean -mixgtk_mixal_init (mix_vm_t *vm, mixgtk_dialog_id_t top) -{ - static gboolean restart = FALSE; - g_return_val_if_fail (vm != NULL, FALSE); - vm_ = vm; + mixgtk_fontsel_set_font (MIX_FONT_MIXAL, GTK_WIDGET (clist_)); - if (!init_clist_ (top)) return FALSE; + g_object_ref (clist_); - if (!mixgtk_config_is_split ()) - status_ = GTK_STATUSBAR - (mixgtk_widget_factory_get (MIXGTK_MAIN, MIXGTK_WIDGET_STATUSBAR)); - else - status_ = GTK_STATUSBAR - (mixgtk_widget_factory_get_child_by_name (top, LOCAL_STATUS_BAR_)); + gtk_widget_show (GTK_WIDGET (clist_)); - g_return_val_if_fail (status_ != NULL, FALSE); - status_context_ = gtk_statusbar_get_context_id (status_, "MIXAL status"); +} - symbols_dlg_ = NULL; - symbols_view_ = NULL; - g_signal_connect (G_OBJECT (clist_), "event", - G_CALLBACK (mixal_event_), NULL); +/* initialise the mixal widgets */ +GtkWidget * +mixgtk_mixal_init (mix_vm_t *vm) +{ + if (vm != NULL) vm_ = vm; - mixgtk_fontsel_set_font (MIX_FONT_MIXAL, GTK_WIDGET (clist_)); + if (vm_ == NULL) return FALSE; + + if (clist_ == NULL) init_clist_ (); - if (restart) mixgtk_mixal_load_file (); - else restart = TRUE; + status_ = NULL; + return GTK_WIDGET (clist_); +} + +void +mixgtk_mixal_reparent (GtkStatusbar *status) +{ + g_assert (status != NULL); + mixgtk_mixal_pop_status (); + status_ = status; + status_context_ = gtk_statusbar_get_context_id (status_, "MIXAL status"); +} - return TRUE; +void +mixgtk_mixal_pop_status (void) +{ + if (status_ != NULL) + gtk_statusbar_pop (status_, status_context_); } /* load the corresponding mixal file */ @@ -549,15 +550,15 @@ on_symbols_activate () void on_notebook_switch_page (GtkNotebook *notebook) { - gint p = gtk_notebook_get_current_page (notebook); - if (p != MIXAL_TAB_POS_) gtk_statusbar_pop (status_, status_context_); - if (p == MIXAL_TAB_POS_) mixgtk_mixal_update (); +/* gint p = gtk_notebook_get_current_page (notebook); */ +/* if (p != MIXAL_TAB_POS_) gtk_statusbar_pop (status_, status_context_); */ +/* if (p == MIXAL_TAB_POS_) mixgtk_mixal_update (); */ } void on_mixal_leave_notify_event () { - gtk_statusbar_pop (status_, status_context_); + if (status_ != NULL) gtk_statusbar_pop (status_, status_context_); } void diff --git a/mixgtk/mixgtk_mixal.h b/mixgtk/mixgtk_mixal.h index ccf3b61..248cf64 100644 --- a/mixgtk/mixgtk_mixal.h +++ b/mixgtk/mixgtk_mixal.h @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_mixal.h : * Declarations for functions displaying the mixal source file * ------------------------------------------------------------------ - * Last change: Time-stamp: <2001-04-21 23:54:18 jao> + * $Id: mixgtk_mixal.h,v 1.6 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -31,8 +31,11 @@ /* initialise the mixal widget */ -extern gboolean -mixgtk_mixal_init (mix_vm_t *vm, mixgtk_dialog_id_t top); +extern GtkWidget * +mixgtk_mixal_init (mix_vm_t *vm); + +extern void +mixgtk_mixal_reparent (GtkStatusbar *stat); /* load the corresponding mixal file */ extern void @@ -42,6 +45,9 @@ mixgtk_mixal_load_file (void); extern void mixgtk_mixal_update (void); +extern void +mixgtk_mixal_pop_status (void); + /* breakpoints */ extern void mixgtk_mixal_update_bp_at_address (guint addr); @@ -53,10 +59,5 @@ extern void mixgtk_mixal_update_bp_all (void); -/* callbacks */ -extern void -on_mixal_select_row (GtkWidget *w, gint row, gint col, GdkEventButton *e, - gpointer data); - #endif /* MIXGTK_MIXAL_H */ diff --git a/mixgtk/mixgtk_mixvm.c b/mixgtk/mixgtk_mixvm.c index ca4b482..2a34367 100644 --- a/mixgtk/mixgtk_mixvm.c +++ b/mixgtk/mixgtk_mixvm.c @@ -1,7 +1,7 @@ /* -*-c-*- -------------- mixgtk_mixvm.c : * Implementation of the functions declared in mixgtk_mixvm.h * ------------------------------------------------------------------ - * $Id: mixgtk_mixvm.c,v 1.12 2004/06/24 01:40:47 jao Exp $ + * $Id: mixgtk_mixvm.c,v 1.13 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. * @@ -48,13 +48,11 @@ static GtkLabel *progtime_; static GtkLabel *uptime_; static mix_vm_t *vm_; -#define GOTO_ENTRY_NAME_ "goto_entry" - /* Static function prototypes */ static void init_goto_ (void); static void update_register_ (mixgtk_widget_id_t reg); -static gboolean init_mem_ (mixgtk_dialog_id_t top); +static gboolean init_mem_ (void); enum { @@ -66,11 +64,12 @@ enum { /* initialise the mixvm widgets */ gboolean -mixgtk_mixvm_init (mix_vm_t *vm, mixgtk_dialog_id_t top) +mixgtk_mixvm_init (mix_vm_t *vm) { int k; - g_return_val_if_fail (vm != NULL, FALSE); + g_assert (vm != NULL); + vm_ = vm; if (!tips_) tips_ = gtk_tooltips_new (); @@ -78,39 +77,49 @@ mixgtk_mixvm_init (mix_vm_t *vm, mixgtk_dialog_id_t top) for (k = 0; k < REGISTER_NO_; ++k) { reg_entries_[k] = - GTK_ENTRY (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_rA + k)); - g_return_val_if_fail (reg_entries_[k] != NULL, FALSE); - mixgtk_fontsel_set_font (MIX_FONT_MIXVM, GTK_WIDGET (reg_entries_[k])); + GTK_ENTRY (mixgtk_widget_factory_get(MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_rA + k)); + g_assert (reg_entries_[k] != NULL); + mixgtk_fontsel_set_font (MIX_FONT_MIXVM, + GTK_WIDGET (reg_entries_[k])); } - loc_entry_ = GTK_ENTRY (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_LOC)); - g_return_val_if_fail (loc_entry_ != NULL, FALSE); + loc_entry_ = + GTK_ENTRY (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_LOC)); + g_assert (loc_entry_ != NULL); mixgtk_fontsel_set_font (MIX_FONT_MIXVM, GTK_WIDGET (loc_entry_)); - uptime_ = GTK_LABEL (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_UPTIME)); - g_return_val_if_fail (uptime_ != NULL, FALSE); + uptime_ = + GTK_LABEL (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_UPTIME)); + g_assert (uptime_ != NULL); progtime_ = - GTK_LABEL (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_PROGTIME)); - g_return_val_if_fail (progtime_ != NULL, FALSE); + GTK_LABEL (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_PROGTIME)); + g_assert (progtime_ != NULL); - laptime_ = GTK_LABEL (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_LAPTIME)); - g_return_val_if_fail (laptime_ != NULL, FALSE); + laptime_ = + GTK_LABEL (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_LAPTIME)); + g_assert (laptime_ != NULL); over_button_ = - GTK_TOGGLE_BUTTON (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_OVER)); - g_return_val_if_fail (over_button_ != NULL, FALSE); + GTK_TOGGLE_BUTTON + (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, MIXGTK_WIDGET_OVER)); + g_assert (over_button_ != NULL); for (k = 0; k < 3; ++k) { cmp_buttons_[k] = GTK_TOGGLE_BUTTON - (mixgtk_widget_factory_get (top, MIXGTK_WIDGET_CMP_L +k)); - g_return_val_if_fail (cmp_buttons_[k] != NULL, FALSE); + (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_CMP_L +k)); + g_assert (cmp_buttons_[k] != NULL); } + init_mem_ (); - goto_ = NULL; - - return init_mem_ (top); + return TRUE; } /* update register widgets */ @@ -359,8 +368,8 @@ init_goto_ (void) goto_ = mixgtk_widget_factory_get_dialog (MIXGTK_GOTO_DIALOG); g_assert (goto_ != NULL); goto_entry_ = - GTK_ENTRY (mixgtk_widget_factory_get_child_by_name (MIXGTK_GOTO_DIALOG, - GOTO_ENTRY_NAME_)); + GTK_ENTRY (mixgtk_widget_factory_get (MIXGTK_GOTO_DIALOG, + MIXGTK_WIDGET_GOTO_ENTRY)); g_assert (goto_entry_ != NULL); } @@ -447,7 +456,7 @@ cont_clicked_ (GtkWidget *w, GdkEvent *event, gpointer data) static gboolean -init_mem_ (mixgtk_dialog_id_t top) +init_mem_ (void) { gint k; GtkTreeIter iter; @@ -469,12 +478,12 @@ init_mem_ (mixgtk_dialog_id_t top) -1); } - /* view */ renderer = gtk_cell_renderer_text_new (); - memory_ = GTK_TREE_VIEW (mixgtk_widget_factory_get (top, - MIXGTK_WIDGET_CELLS)); + memory_ = + GTK_TREE_VIEW (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_CELLS)); g_assert (memory_); g_assert (renderer); diff --git a/mixgtk/mixgtk_mixvm.h b/mixgtk/mixgtk_mixvm.h index f74b409..2288715 100644 --- a/mixgtk/mixgtk_mixvm.h +++ b/mixgtk/mixgtk_mixvm.h @@ -1,24 +1,24 @@ /* -*-c-*- ---------------- mixgtk_mixvm.h : * Functions dealing with the mixvm widgets * ------------------------------------------------------------------ - * Last change: Time-stamp: <01/03/09 22:12:04 jose> + * $Id: mixgtk_mixvm.h,v 1.4 2004/06/30 14:07:53 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, 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 * 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. - * + * */ @@ -31,7 +31,7 @@ /* initialise the mixvm widgets */ extern gboolean -mixgtk_mixvm_init (mix_vm_t *vm, mixgtk_dialog_id_t top); +mixgtk_mixvm_init (mix_vm_t *vm); /* update register widgets */ extern void @@ -64,23 +64,6 @@ mixgtk_mixvm_update_times (void); extern void mixgtk_mixvm_update_vm_widgets (void); -/* callbacks */ -extern void -on_cmp_e_toggled (GtkWidget *widget, gpointer data); - -extern void -on_cmp_g_toggled (GtkWidget *widget, gpointer data); - -extern void -on_cmp_l_toggled (GtkWidget *widget, gpointer data); - -extern void -on_overflow_toggled (GtkWidget *widget, gpointer data); - -extern void -on_loc_arrow_clicked (GtkWidget *widget, gpointer data); - - #endif /* MIXGTK_MIXVM_H */ diff --git a/mixgtk/mixgtk_widgets.c b/mixgtk/mixgtk_widgets.c index 6ffff1e..80bb592 100644 --- a/mixgtk/mixgtk_widgets.c +++ b/mixgtk/mixgtk_widgets.c @@ -37,8 +37,6 @@ static const gchar * dnames_[] = { "word_dialog", "about_dialog", "goto_dialog", - "color_dialog", - "colorsel_dialog", "fontsel_dialog", "devform_dialog", "external_dialog", @@ -47,18 +45,19 @@ static const gchar * dnames_[] = { "devdir_dialog" }; -const gchar *SPLIT_MAIN_NAME_ = "split_main_window"; -const gchar *MAIN_NAME_ = "main_window"; - #define DLG_NO_ (sizeof (dnames_) / sizeof(dnames_[0])) /* widget names */ static const gchar *names_[] = { "main_statusbar", + "main_notebook", "mixvm_widget", + "mixvm_container", "command_prompt", "command_log", - "mixal_clist", + "dev_container", + "mixal_container", + "mixal_statusbar", "rA_entry", "rX_entry", "rJ_entry", @@ -76,24 +75,16 @@ static const gchar *names_[] = { "elapsed_label", "program_label", "uptime_label", - "memory_scroll", "devices_container", "loc_entry", + "goto_entry", NULL }; #define WIDGET_NO_ (sizeof (names_) / sizeof (names_[0])) -#define VERSION_LABEL_ "version_label" -#define GPL_TEXT_ "gpl_text" -#define AUTOSAVE_ITEM_ "save_on_exit" - -static gboolean split_; - /* the glade specs */ static GladeXML *xml_[DLG_NO_] = {NULL}; -/* the about dialog */ -static GtkWidget *about_ = NULL; /* the xml file name */ static const gchar *file_ = NULL; @@ -105,39 +96,10 @@ static void init_xml_ (mixgtk_dialog_id_t dlg) g_assert (xml_[dlg] != NULL); } -static void -init_autosave_ (void) -{ - GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM - (mixgtk_widget_factory_get_child_by_name - (MIXGTK_MAIN, AUTOSAVE_ITEM_)); - if (item) - { - gtk_check_menu_item_set_active (item, mixgtk_config_is_autosave ()); - } -} - -static void -init_about_ (void) -{ - GtkWidget *label; - about_ = mixgtk_widget_factory_get_dialog (MIXGTK_ABOUT_DIALOG); - g_assert (about_ != NULL); - label = mixgtk_widget_factory_get_child_by_name (MIXGTK_ABOUT_DIALOG, - VERSION_LABEL_); - g_assert (label != NULL); - gtk_label_set_text (GTK_LABEL(label), VERSION); - gtk_widget_show (label); -} - /* create a new factory from an xml glade file */ gboolean mixgtk_widget_factory_init (void) { - gboolean split = mixgtk_config_is_split (); - - about_ = NULL; - if (!file_) { const gchar *glade_file = GLADE_FILE; @@ -154,12 +116,7 @@ mixgtk_widget_factory_init (void) for (k = 0; k < DLG_NO_; ++k) if (xml_[k]) xml_[k] = NULL; } - split_ = split; - - dnames_[MIXGTK_MAIN] = split_? SPLIT_MAIN_NAME_ : MAIN_NAME_; - init_xml_ (MIXGTK_MAIN); - init_autosave_ (); return TRUE; } @@ -167,8 +124,8 @@ mixgtk_widget_factory_init (void) GtkWidget * mixgtk_widget_factory_get (mixgtk_dialog_id_t dlg, mixgtk_widget_id_t widget) { - g_return_val_if_fail (widget < WIDGET_NO_, NULL); - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (widget < WIDGET_NO_); + return mixgtk_widget_factory_get_child_by_name (dlg, names_[widget]); } @@ -176,7 +133,8 @@ mixgtk_widget_factory_get (mixgtk_dialog_id_t dlg, mixgtk_widget_id_t widget) GtkWidget * mixgtk_widget_factory_get_dialog (mixgtk_dialog_id_t dlg) { - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (dlg < DLG_NO_); + if (!xml_[dlg]) init_xml_ (dlg); return glade_xml_get_widget (xml_[dlg], dnames_[dlg]); } @@ -185,18 +143,10 @@ GtkWidget * mixgtk_widget_factory_get_child_by_name (mixgtk_dialog_id_t dlg, const gchar *name) { - g_return_val_if_fail (dlg < DLG_NO_, NULL); - g_return_val_if_fail (name != NULL, NULL); - if (!split_ && dlg < MIXGTK_WORD_DIALOG) dlg = MIXGTK_MAIN; + g_assert (dlg < DLG_NO_); + g_assert (name != NULL); if (!xml_[dlg]) init_xml_ (dlg); return glade_xml_get_widget (xml_[dlg], name); } -/* about box */ -void -on_about_activate (GtkWidget *w, gpointer data) -{ - if (!about_) init_about_ (); - gtk_widget_show (about_); -} diff --git a/mixgtk/mixgtk_widgets.h b/mixgtk/mixgtk_widgets.h index 5be3fb6..023c068 100644 --- a/mixgtk/mixgtk_widgets.h +++ b/mixgtk/mixgtk_widgets.h @@ -1,7 +1,7 @@ /* -*-c-*- ---------------- mixgtk_widgets.h : * glade-based factory of mixvm widgets * ------------------------------------------------------------------ - * Last change: Time-stamp: <2001-04-27 23:32:16 jao> + * $Id: mixgtk_widgets.h,v 1.13 2004/06/30 14:07:52 jao Exp $ * ------------------------------------------------------------------ * Copyright (C) 2001, 2004 Free Software Foundation, Inc. * @@ -37,23 +37,25 @@ typedef enum { MIXGTK_WORD_DIALOG, /* input dialog for a mix word */ MIXGTK_ABOUT_DIALOG, MIXGTK_GOTO_DIALOG, - MIXGTK_COLOR_DIALOG, /* color customization dialog */ - MIXGTK_COLORSEL_DIALOG, /* color selection dialog */ MIXGTK_FONTSEL_DIALOG, /* font selection dialog */ MIXGTK_DEVFORM_DIALOG, /* device format config dialog */ MIXGTK_EXTERNPROG_DIALOG, /* external programs dialog */ MIXGTK_SYMBOLS_DIALOG, /* symbol table dialog */ MIXGTK_INPUT_DIALOG, /* console input dialog */ - MIXGTK_DEVDIR_DIALOG + MIXGTK_DEVDIR_DIALOG /* devices directory chooser */ } mixgtk_dialog_id_t; /* enumeration of mixvm widget ids */ typedef enum { MIXGTK_WIDGET_STATUSBAR, + MIXGTK_WIDGET_NOTEBOOK, /* the notebook */ MIXGTK_WIDGET_MIXVM, /* virtual machine */ + MIXGTK_WIDGET_MIXVM_CONTAINER, MIXGTK_WIDGET_PROMPT, /* command prompt */ MIXGTK_WIDGET_LOG, /* command output */ - MIXGTK_WIDGET_MIXAL, /* mixal source file */ + MIXGTK_WIDGET_DEV_CONTAINER, + MIXGTK_WIDGET_MIXAL_CONTAINER, + MIXGTK_WIDGET_MIXAL_STATUSBAR, MIXGTK_WIDGET_rA, MIXGTK_WIDGET_rX, MIXGTK_WIDGET_rJ, @@ -71,9 +73,9 @@ typedef enum { MIXGTK_WIDGET_LAPTIME, MIXGTK_WIDGET_PROGTIME, MIXGTK_WIDGET_UPTIME, - MIXGTK_WIDGET_CELLS_SCROLL, MIXGTK_WIDGET_DEVICES, MIXGTK_WIDGET_LOC, + MIXGTK_WIDGET_GOTO_ENTRY, MIXGTK_WIDGET_NONE } mixgtk_widget_id_t; diff --git a/mixgtk/mixgtk_wm.c b/mixgtk/mixgtk_wm.c index 9a7e2ef..76072a8 100644 --- a/mixgtk/mixgtk_wm.c +++ b/mixgtk/mixgtk_wm.c @@ -1,32 +1,40 @@ /* -*-c-*- -------------- mixgtk_wm.c : * Implementation of the functions declared in mixgtk_wm.h * ------------------------------------------------------------------ - * $Id: mixgtk_wm.c,v 1.6 2002/03/29 16:30:49 jao Exp $ + * $Id: mixgtk_wm.c,v 1.7 2004/06/30 14:07:52 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001, 2002 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2002, 2004 Free Software Foundation, 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 * 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 <string.h> +#include "mixgtk_wm.h" + #include "mixgtk_widgets.h" #include "mixgtk_config.h" -#include "mixgtk_wm.h" +#include "mixgtk_device.h" +#include "mixgtk_mixvm.h" +#include "mixgtk_mixal.h" +#include "mixgtk_widgets.h" +#include "mixgtk_cmd_dispatcher.h" +#include "mixgtk.h" + typedef struct window_info_t_ { mixgtk_dialog_id_t dialog; @@ -34,93 +42,121 @@ typedef struct window_info_t_ GtkCheckMenuItem *menu; const gchar *menu_name; const gchar *config_key; - gboolean visible; + gboolean detached; const gchar *toolbar_name; + void (*detach) (void); + void (*attach) (void); } window_info_t_; -static window_info_t_ infos_[] = { - {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 const gchar *DETACH_YES_ = "Yes"; +static const gchar *DETACH_NO_ = "No"; +static GtkWidget *about_ = NULL; -static size_t INF_NO_ = sizeof (infos_) / sizeof (infos_[0]); +static GtkContainer *mixvm_container_ = NULL; +static GtkContainer *mixal_container_ = NULL; +static GtkContainer *dev_container_ = NULL; -static gboolean split_ = FALSE; static const gchar *TB_MENU_NAME_ = "show_toolbars"; static GtkCheckMenuItem *tb_menu_ = NULL; +static GtkNotebook *notebook_ = NULL; + +static mix_vm_t *vm_ = NULL; + +static void init_info_ (void); +static void init_notebook_ (void); +static void init_dispatcher_ (void); +static void init_mixvm_ (void); +static void init_mixal_ (void); +static void init_dev_ (void); +static void init_signals_ (void); +static void init_visibility_ (void); +static void init_tb_ (void); +static void init_about_ (void); +static void init_autosave_ (void); +static void remove_page_ (gint page); +static void add_page_ (GtkWidget *w, mixgtk_window_id_t id); +static void mixvm_attach_ (void); +static void mixvm_detach_ (void); +static void mixal_attach_ (void); +static void mixal_detach_ (void); +static void dev_attach_ (void); +static void dev_detach_ (void); +static void on_nb_switch_ (GtkNotebook *notebook, GtkNotebookPage *page, + guint page_num, gpointer user_data); -static const gchar *VIEW_YES_ = "Yes"; -static const gchar *VIEW_NO_ = "No"; +static window_info_t_ infos_[] = { + {MIXGTK_MIXVM_DIALOG, NULL, NULL, "detach_vm", "MIX.detach", + FALSE, NULL, mixvm_detach_, mixvm_attach_}, + {MIXGTK_MIXAL_DIALOG, NULL, NULL, "detach_source", "MIXAL.detach", + FALSE, "mixal_toolbar", mixal_detach_, mixal_attach_}, + {MIXGTK_DEVICES_DIALOG, NULL, NULL, "detach_dev", "Devices.detach", + FALSE, "devices_toolbar", dev_detach_, dev_attach_} +}; -/* flag marking that we are inside a restart process */ -static gboolean restart_ = FALSE; +static size_t INF_NO_ = sizeof (infos_) / sizeof (infos_[0]); + gboolean mixgtk_wm_init (void) { - split_ = mixgtk_config_is_split (); - if (split_) - { - gint i; - 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); - infos_[i].menu = GTK_CHECK_MENU_ITEM - (mixgtk_widget_factory_get_child_by_name - (MIXGTK_MAIN, infos_[i].menu_name)); - g_return_val_if_fail (infos_[i].menu, FALSE); - if (infos_[i].visible) gtk_widget_show (infos_[i].widget); - gtk_check_menu_item_set_active (infos_[i].menu, infos_[i].visible); - } - } - else + gint k; + + init_info_ (); + init_notebook_ (); + init_dispatcher_ (); + init_mixvm_ (); + init_mixal_ (); + init_dev_ (); + + for (k = 0; k < INF_NO_; ++k) { - gint k; - for (k = 0; k < INF_NO_; ++k) - if (infos_[k].widget) gtk_widget_destroy (infos_[k].widget); + if (infos_[k].detached) + mixgtk_wm_detach_window (k); + else + mixgtk_wm_attach_window (k); } - 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 ()); + init_tb_ (); + init_about_ (); + init_autosave_ (); + init_visibility_ (); + init_signals_ (); return TRUE; } void -mixgtk_wm_show_window (mixgtk_window_id_t w) +mixgtk_wm_detach_window (mixgtk_window_id_t w) { - g_return_if_fail (w < INF_NO_); - if (!infos_[w].visible) + if (w < INF_NO_) { - infos_[w].visible = TRUE; + (*(infos_[w].detach)) (); + infos_[w].detached = TRUE; gtk_check_menu_item_set_active (infos_[w].menu, TRUE); - mixgtk_config_update (infos_[w].config_key, VIEW_YES_); - gtk_widget_show (infos_[w].widget); + mixgtk_config_update (infos_[w].config_key, DETACH_YES_); + if (infos_[w].widget != NULL) gtk_widget_show (infos_[w].widget); + if (gtk_notebook_get_n_pages (notebook_) < 1) + gtk_widget_hide (GTK_WIDGET (notebook_)); + gtk_widget_show (mixgtk_widget_factory_get_dialog (infos_[w].dialog)); } } void -mixgtk_wm_hide_window (mixgtk_window_id_t w) +mixgtk_wm_attach_window (mixgtk_window_id_t w) { - g_return_if_fail (w < INF_NO_); - if (infos_[w].visible && !restart_) + if (w < INF_NO_) { - infos_[w].visible = FALSE; + gint page = gtk_notebook_page_num (notebook_, infos_[w].widget); + + gtk_widget_hide (mixgtk_widget_factory_get_dialog (infos_[w].dialog)); + + if (page < 0) (*(infos_[w].attach)) (); + + infos_[w].detached = FALSE; gtk_check_menu_item_set_active (infos_[w].menu, FALSE); - mixgtk_config_update (infos_[w].config_key, VIEW_NO_); - gtk_widget_hide (infos_[w].widget); + mixgtk_config_update (infos_[w].config_key, DETACH_NO_); + if (gtk_notebook_get_n_pages (notebook_) == 1) + gtk_widget_show (GTK_WIDGET (notebook_)); } } @@ -128,92 +164,397 @@ void mixgtk_wm_show_toolbars (gboolean show) { static const gchar *MAIN_TB_NAME = "main_toolbar"; + int k; + 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_) + + for (k = 0; k < INF_NO_; ++k) { - 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); + if (infos_[k].toolbar_name != NULL) + { + GtkWidget *tb = mixgtk_widget_factory_get_child_by_name + (infos_[k].dialog, infos_[k].toolbar_name); + if (tb) + { + if (show) gtk_widget_show (tb); else gtk_widget_hide (tb); } } } - + mixgtk_config_set_show_toolbars (show); } + /* callbacks */ void -on_view_toggled (GtkCheckMenuItem *item) +on_detach_clicked (GtkWidget *ignored) { - if (!restart_) + gint page = gtk_notebook_get_current_page (notebook_); + if (page >= 0) { gint k; + GtkWidget *w = gtk_notebook_get_nth_page (notebook_, page); + for (k = 0; k < INF_NO_; ++k) - if (item == infos_[k].menu) break; - g_return_if_fail (k < INF_NO_); - if (item->active) - mixgtk_wm_show_window (k); - else - mixgtk_wm_hide_window (k); - mixgtk_config_update (infos_[k].config_key, - (item->active)? VIEW_YES_ : VIEW_NO_); - infos_[k].visible = item->active; + if (infos_[k].widget == w) mixgtk_wm_detach_window (k); } } void -on_one_window_activate () +on_attach_toggled (GtkCheckMenuItem *item) { - mixgtk_config_set_split (FALSE); - restart_ = TRUE; - gtk_widget_destroy (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); + gint k; + for (k = 0; k < INF_NO_; ++k) + if (item == infos_[k].menu) break; + g_return_if_fail (k < INF_NO_); + if (item->active) mixgtk_wm_detach_window (k); + else mixgtk_wm_attach_window (k); + mixgtk_config_update (infos_[k].config_key, + (item->active)? DETACH_YES_ : DETACH_NO_); } void -on_split_windows_activate () +on_window_hide (GtkWidget *w) { - mixgtk_config_set_split (TRUE); - restart_ = TRUE; - gtk_widget_destroy (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); + gint k; + for (k = 0; k < INF_NO_; ++k) + if (w == mixgtk_widget_factory_get_dialog (infos_[k].dialog)) break; + g_return_if_fail (k < INF_NO_); + mixgtk_wm_attach_window (k); } void -on_window_hide (GtkWidget *w) +on_show_toolbars_toggled (GtkCheckMenuItem *item) +{ + if (item->active != mixgtk_config_show_toolbars ()) + mixgtk_wm_show_toolbars (item->active); +} + +/* about box */ +void +on_about_activate (GtkWidget *w, gpointer data) +{ + if (!about_) init_about_ (); + gtk_widget_show (about_); +} + + +static void +init_info_ (void) { gint k; for (k = 0; k < INF_NO_; ++k) - if (w == infos_[k].widget) break; - g_return_if_fail (k < INF_NO_); - mixgtk_wm_hide_window (k); + { + const gchar *txt; + + infos_[k].menu = + GTK_CHECK_MENU_ITEM + (mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN, + infos_[k].menu_name)); + g_assert (infos_[k].menu != NULL); + txt = mixgtk_config_get (infos_[k].config_key); + infos_[k].detached = txt && !g_ascii_strcasecmp (txt, DETACH_YES_); + } } - -void -on_main_window_destroy (GtkWidget *w, gpointer data) + +static void +init_notebook_ (void) +{ + notebook_ = + GTK_NOTEBOOK (mixgtk_widget_factory_get (MIXGTK_MAIN, + MIXGTK_WIDGET_NOTEBOOK)); + g_assert (notebook_ != NULL); + + gtk_notebook_set_tab_pos (notebook_, GTK_POS_TOP); + gtk_notebook_popup_disable (notebook_); + gtk_notebook_remove_page (notebook_, 0); + + gtk_widget_show (GTK_WIDGET (notebook_)); +} + +static void +add_page_ (GtkWidget *page, mixgtk_window_id_t id) { - if (restart_) + static const gchar *LABELS[] = { + N_("_Virtual machine"), N_("_Source"), N_("_Devices") + }; + + g_assert (page != NULL); + g_assert (id < INF_NO_); + g_assert (notebook_ != NULL); + + gtk_notebook_append_page (notebook_, page, + gtk_label_new_with_mnemonic (LABELS[id])); + gtk_notebook_set_show_tabs (notebook_, + gtk_notebook_get_n_pages (notebook_) > 1); + gtk_widget_show (page); + gtk_widget_show (GTK_WIDGET (notebook_)); +} + +static void +remove_page_ (gint page) +{ + gint pages; + + g_assert (notebook_ != NULL); + gtk_notebook_remove_page (notebook_, page); + + pages = gtk_notebook_get_n_pages (notebook_); + if (pages < 1) gtk_widget_hide (GTK_WIDGET (notebook_)); + else gtk_notebook_set_show_tabs (notebook_, pages > 1); +} + +static void +init_signals_ (void) +{ + gint k; + for (k = 0; k < INF_NO_; ++k) { - mixgtk_restart (); - restart_ = FALSE; + GObject *dialog = + G_OBJECT (mixgtk_widget_factory_get_dialog (infos_[k].dialog)); + + g_assert (dialog); + + g_signal_connect (dialog, "destroy", + G_CALLBACK (on_window_hide), NULL); + g_signal_connect (dialog, "destroy_event", + G_CALLBACK (on_window_hide), NULL); + g_signal_connect (dialog, "delete_event", + G_CALLBACK (on_window_hide), NULL); + g_signal_connect (G_OBJECT (infos_[k].menu), "toggled", + G_CALLBACK (on_attach_toggled), NULL); } - else gtk_main_quit (); + + g_signal_connect (G_OBJECT (notebook_), "switch-page", + G_CALLBACK (on_nb_switch_), NULL); } -void -on_show_toolbars_toggled (GtkCheckMenuItem *item) +static void +init_visibility_ (void) { - if (!restart_ && item->active != mixgtk_config_show_toolbars ()) - mixgtk_wm_show_toolbars (item->active); + gint k; + for (k = 0; k < INF_NO_; ++k) + if (infos_[k].detached) + gtk_widget_show (mixgtk_widget_factory_get_dialog (infos_[k].dialog)); + gtk_widget_show (mixgtk_widget_factory_get_dialog (MIXGTK_MAIN)); +} + +static void +init_dispatcher_ (void) +{ + if (!mixgtk_cmd_dispatcher_init (MIXGTK_MAIN)) + g_assert (FALSE); + vm_ = mixgtk_cmd_dispatcher_get_vm (); + g_assert (vm_ != NULL); +} + +static void +init_mixvm_ (void) +{ + GtkContainer *vm = + GTK_CONTAINER + (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, MIXGTK_WIDGET_MIXVM)); + + mixvm_container_ = + GTK_CONTAINER (mixgtk_widget_factory_get (MIXGTK_MIXVM_DIALOG, + MIXGTK_WIDGET_MIXVM_CONTAINER)); + + g_assert (mixvm_container_ != NULL); + + g_assert (vm != NULL); + g_object_ref (G_OBJECT (vm)); + infos_[MIXGTK_MIXVM_WINDOW].widget = GTK_WIDGET (vm); + + mixgtk_mixvm_init (vm_); + mixgtk_mixvm_update_vm_widgets (); + + gtk_widget_show (GTK_WIDGET (vm)); + +} + +static void +init_mixal_ (void) +{ + GtkWidget *page = gtk_scrolled_window_new (NULL, NULL); + GtkWidget *mixal = mixgtk_mixal_init (vm_); + + g_assert (page != NULL); + g_assert (mixal != NULL); + + g_object_ref (page); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (page), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + + gtk_container_add (GTK_CONTAINER (page), mixal); + + infos_[MIXGTK_MIXAL_WINDOW].widget = page; + + mixal_container_ = + GTK_CONTAINER (mixgtk_widget_factory_get (MIXGTK_MIXAL_DIALOG, + MIXGTK_WIDGET_MIXAL_CONTAINER)); + + g_assert (mixal_container_ != NULL); + + gtk_container_add (mixal_container_, page); + + gtk_widget_show (mixal); + gtk_widget_show (page); +} + +static void +init_dev_ (void) +{ + GtkWidget *page = gtk_scrolled_window_new (NULL, NULL); + GtkWidget *devs = mixgtk_device_init (vm_); + + g_assert (page != NULL); + g_assert (devs != NULL); + + g_object_ref (page); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (page), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + + gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (page), devs); + + infos_[MIXGTK_DEVICES_WINDOW].widget = page; + + dev_container_ = + GTK_CONTAINER (mixgtk_widget_factory_get (MIXGTK_DEVICES_DIALOG, + MIXGTK_WIDGET_DEV_CONTAINER)); + + g_assert (dev_container_ != NULL); + + gtk_container_add (dev_container_, page); + + gtk_widget_show (devs); + gtk_widget_show (page); +} + +static void +init_tb_ (void) +{ + tb_menu_ = GTK_CHECK_MENU_ITEM + (mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN, + TB_MENU_NAME_)); + g_assert (tb_menu_ != NULL); + + gtk_check_menu_item_set_active (tb_menu_, mixgtk_config_show_toolbars ()); + mixgtk_wm_show_toolbars (mixgtk_config_show_toolbars ()); + + g_signal_connect (G_OBJECT (tb_menu_), "toggled", + G_CALLBACK (on_show_toolbars_toggled), NULL); +} + +static void +init_autosave_ (void) +{ +#define AUTOSAVE_ITEM_ "save_on_exit" + + GtkCheckMenuItem *item = GTK_CHECK_MENU_ITEM + (mixgtk_widget_factory_get_child_by_name (MIXGTK_MAIN, AUTOSAVE_ITEM_)); + if (item) + { + gtk_check_menu_item_set_active (item, mixgtk_config_is_autosave ()); + } +} + +static void +init_about_ (void) +{ +#define VERSION_LABEL_ "version_label" +#define GPL_TEXT_ "gpl_text" + GtkWidget *label; + about_ = mixgtk_widget_factory_get_dialog (MIXGTK_ABOUT_DIALOG); + g_assert (about_ != NULL); + label = mixgtk_widget_factory_get_child_by_name (MIXGTK_ABOUT_DIALOG, + VERSION_LABEL_); + g_assert (label != NULL); + gtk_label_set_text (GTK_LABEL (label), VERSION); + gtk_widget_show (label); +} + +static void +mixvm_attach_ (void) +{ + gtk_container_remove (mixvm_container_, infos_[MIXGTK_MIXVM_WINDOW].widget); + add_page_ (infos_[MIXGTK_MIXVM_WINDOW].widget, MIXGTK_MIXVM_WINDOW); +} + +static void +mixvm_detach_ (void) +{ + gtk_widget_reparent (infos_[MIXGTK_MIXVM_WINDOW].widget, + GTK_WIDGET (mixvm_container_)); +} + +static void +mixal_attach_ (void) +{ + static GtkStatusbar *stat = NULL; + + if (stat == NULL) + { + stat = + GTK_STATUSBAR + (mixgtk_widget_factory_get (MIXGTK_MAIN, MIXGTK_WIDGET_STATUSBAR)); + g_assert (stat); + + } + + mixgtk_mixal_reparent (stat); + gtk_container_remove (mixal_container_, infos_[MIXGTK_MIXAL_WINDOW].widget); + add_page_ (infos_[MIXGTK_MIXAL_WINDOW].widget, MIXGTK_MIXAL_WINDOW); +} + +static void +mixal_detach_ (void) +{ + static GtkStatusbar *stat = NULL; + + if (stat == NULL) + { + stat = + GTK_STATUSBAR + (mixgtk_widget_factory_get (MIXGTK_MIXAL_DIALOG, + MIXGTK_WIDGET_MIXAL_STATUSBAR)); + g_assert (stat); + } + else + gtk_widget_reparent (infos_[MIXGTK_MIXAL_WINDOW].widget, + GTK_WIDGET (mixal_container_)); + + mixgtk_mixal_reparent (stat); +} + +static void +dev_attach_ (void) +{ + gtk_container_remove (dev_container_, infos_[MIXGTK_DEVICES_WINDOW].widget); + add_page_ (infos_[MIXGTK_DEVICES_WINDOW].widget, MIXGTK_DEVICES_WINDOW); +} + +static void +dev_detach_ (void) +{ + gtk_widget_reparent (infos_[MIXGTK_DEVICES_WINDOW].widget, + GTK_WIDGET (dev_container_)); +} + +static void +on_nb_switch_ (GtkNotebook *notebook, GtkNotebookPage *page, + guint page_num, gpointer user_data) +{ + if (!infos_[MIXGTK_MIXAL_WINDOW].detached + && page != NULL + && GTK_WIDGET (page) != infos_[MIXGTK_MIXAL_WINDOW].widget) + mixgtk_mixal_pop_status (); } diff --git a/mixgtk/mixgtk_wm.h b/mixgtk/mixgtk_wm.h index 6a51b9f..c186b33 100644 --- a/mixgtk/mixgtk_wm.h +++ b/mixgtk/mixgtk_wm.h @@ -1,24 +1,24 @@ /* -*-c-*- ---------------- mixgtk_wm.h : - * FUnctions for window management + * Functions for window management * ------------------------------------------------------------------ - * Last change: Time-stamp: <01/02/12 00:23:41 jose> + * $Id: mixgtk_wm.h,v 1.3 2004/06/30 14:07:51 jao Exp $ * ------------------------------------------------------------------ - * Copyright (C) 2001 Free Software Foundation, Inc. - * + * Copyright (C) 2001, 2004 Free Software Foundation, 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 * 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. - * + * */ @@ -37,10 +37,10 @@ extern gboolean mixgtk_wm_init (void); extern void -mixgtk_wm_show_window (mixgtk_window_id_t w); +mixgtk_wm_attach_window (mixgtk_window_id_t w); extern void -mixgtk_wm_hide_window (mixgtk_window_id_t w); +mixgtk_wm_detach_window (mixgtk_window_id_t w); extern void mixgtk_wm_show_toolbars (gboolean show); |