summaryrefslogtreecommitdiffhomepage
path: root/mixgtk/mixgtk_mixvm.c
diff options
context:
space:
mode:
authorjaortega <jaortega>2001-03-14 22:59:02 +0000
committerjaortega <jaortega>2001-03-14 22:59:02 +0000
commit024af99de0dd9db8403ffe02b93f93c5a069e859 (patch)
tree11964aded84bf1340a2a0c2a7de008fab993fab6 /mixgtk/mixgtk_mixvm.c
parent3ab6797d68162c6094964ad0c5c7e194bee06b80 (diff)
downloadmdk-024af99de0dd9db8403ffe02b93f93c5a069e859.tar.gz
mdk-024af99de0dd9db8403ffe02b93f93c5a069e859.tar.bz2
gmixvm (v 0.3) completed
Diffstat (limited to 'mixgtk/mixgtk_mixvm.c')
-rw-r--r--mixgtk/mixgtk_mixvm.c41
1 files changed, 39 insertions, 2 deletions
diff --git a/mixgtk/mixgtk_mixvm.c b/mixgtk/mixgtk_mixvm.c
index c90b453..9c5d9bd 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
* ------------------------------------------------------------------
- * Last change: Time-stamp: "01/03/13 23:14:00 jose"
+ * Last change: Time-stamp: "01/03/14 16:34:31 jose"
* ------------------------------------------------------------------
* Copyright (C) 2001 Free Software Foundation, Inc.
*
@@ -21,6 +21,7 @@
*
*/
+#include <stdlib.h>
#include <mixlib/xmix_vm.h>
#include "mixgtk_widgets.h"
#include "mixgtk_mixvm.h"
@@ -31,7 +32,10 @@
#define REGISTER_NO_ (MIXGTK_WIDGET_rI6 - MIXGTK_WIDGET_rA + 1)
static GtkEntry *reg_entries_[REGISTER_NO_];
+static GtkTooltips *tips_;
static GtkEntry *loc_entry_;
+static GtkWidget *goto_;
+static GtkEntry *goto_entry_;
static GtkToggleButton *over_button_;
static GtkToggleButton *cmp_buttons_[3];
static GtkCList *memory_;
@@ -39,7 +43,8 @@ static GtkLabel *laptime_;
static GtkLabel *progtime_;
static GtkLabel *uptime_;
static mix_vm_t *vm_;
-static GtkTooltips *tips_;
+
+#define GOTO_ENTRY_NAME_ "goto_entry"
static void
update_register_ (mixgtk_widget_id_t reg)
@@ -156,6 +161,13 @@ mixgtk_mixvm_init (mix_vm_t *vm)
gtk_signal_connect (GTK_OBJECT (adj), "value_changed",
GTK_SIGNAL_FUNC (on_mem_adj_change_), NULL);
+ goto_ = mixgtk_widget_factory_get (MIXGTK_WIDGET_GOTO_DIALOG);
+ g_return_val_if_fail (goto_ != NULL, FALSE);
+
+ goto_entry_ = GTK_ENTRY (mixgtk_widget_factory_get_by_name
+ (GOTO_ENTRY_NAME_));
+ g_return_val_if_fail (goto_entry_ != NULL, FALSE);
+
mixgtk_mixvm_update_vm_widgets ();
return TRUE;
@@ -384,3 +396,28 @@ on_memory_cells_select_row (GtkCList *w, gint row, gint col,
mix_vm_get_addr_contents (vm_, mix_short_new (row)),
mem_cell_, GINT_TO_POINTER (row));
}
+
+void
+on_memory_cells_click_column (GtkCList *w, gint row, gpointer data)
+{
+ gtk_widget_show (goto_);
+}
+
+void
+on_goto_cancel_clicked (GtkWidget *w, gpointer data)
+{
+ gtk_widget_hide (goto_);
+}
+
+void
+on_goto_ok_clicked (GtkWidget *w, gpointer data)
+{
+ gchar *txt = gtk_entry_get_text (goto_entry_);
+ mix_short_t addr = mix_short_new (atoi (txt));
+ if (addr < MIX_VM_CELL_NO)
+ {
+ gtk_widget_hide (goto_);
+ mixgtk_mixvm_update_cells_to_address (addr);
+ }
+}
+