- /* Initialize with 16 rows of dummy data... */
- for (rows = 0; rows < 16; rows++) {
- /* Add new row. */
- gtk_list_store_append(store, &iter);
- gtk_list_store_set(store, &iter, COL_ADDRESS, "0x0000", -1);
+GtkWidget *
+memwin_init(char *title, int memory_id)
+{
+ GtkWidget *frame;
+ GtkWidget *scrollwin;
+ GtkListStore *store;
+ GtkWidget *memlist;
+ int data_rows;
+
+ frame = gtk_frame_new(title);
+
+ scrollwin = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollwin),
+ GTK_SHADOW_ETCHED_OUT);
+
+ /* Automatically add scrollbars when necessary. */
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+
+ gtk_container_add(GTK_CONTAINER(frame), scrollwin);
+
+ if (memory_id == INT_MEM_ID) {
+ data_rows = DATA_ROWS_INT;
+ } else if (memory_id == EXT_MEM_ID) {
+ data_rows = DATA_ROWS_EXT;
+ } else {
+ log_fail("Invalid memory type");
+ exit(1);
+ }
+
+ /* Creating a model */
+ store = memwin_init_store(data_rows);
+
+ /* Creating the view component */
+ memlist = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(memlist), TRUE);
+ gtk_container_add(GTK_CONTAINER(scrollwin), memlist);
+
+ if (memory_id == INT_MEM_ID) {
+ memlist_internal = memlist;
+ } else if (memory_id == EXT_MEM_ID) {
+ memlist_external = memlist;
+ } else {
+ log_fail("Invalid memory type");
+ exit(1);