cfg->clear_ram_on_file_load = false;
/* UI settings */
- cfg->layout = UI_LAYOUT1;
cfg->win_width = 640;
cfg->win_height = 480;
cfg->hpane_pos = 100;
cfg->vpane_pos = 200;
cfg->main_pane_pos = 200;
+
+ /* View menu options */
+ cfg->layout = UI_LAYOUT1;
+ cfg->view_int_memory = 1;
+ cfg->view_ext_memory = 1;
+ cfg->bits_per_row = 16; /* 8 or 16 */
}
static int
&cfg->clear_ram_on_file_load);
/* ui */
- app_config_key_file_get_int(kf, "ui", "layout", &cfg->layout);
-
- if ((cfg->layout != UI_LAYOUT1) && (cfg->layout != UI_LAYOUT2)) {
- log_fail_no_exit("Invalid layout, defaulting to layout 1");
- cfg->layout = UI_LAYOUT1;
- }
-
app_config_key_file_get_int(kf, "ui", "win_width", &cfg->win_width);
app_config_key_file_get_int(kf, "ui", "win_height", &cfg->win_height);
app_config_key_file_get_int(kf, "ui", "hpane_pos", &cfg->hpane_pos);
app_config_key_file_get_int(kf, "ui", "vpane_pos", &cfg->vpane_pos);
app_config_key_file_get_int(kf, "ui", "main_pane_pos",
&cfg->main_pane_pos);
+
+ /* View */
+ app_config_key_file_get_int(kf, "view", "layout", &cfg->layout);
+ if ((cfg->layout != UI_LAYOUT1) && (cfg->layout != UI_LAYOUT2)) {
+ log_fail_no_exit("Invalid layout, defaulting to layout 1");
+ cfg->layout = UI_LAYOUT1;
+ }
+ app_config_key_file_get_int(kf, "view", "int_memory",
+ &cfg->view_int_memory);
+ app_config_key_file_get_int(kf, "view", "ext_memory",
+ &cfg->view_ext_memory);
+ app_config_key_file_get_int(kf, "view", "bits_per_row",
+ &cfg->bits_per_row);
}
static char *
g_string_append(buf, "\n[ui]\n");
- g_string_append_printf(buf, "layout=%d\n", cfg->layout);
g_string_append_printf(buf, "win_width=%d\n", cfg->win_width);
g_string_append_printf(buf, "win_height=%d\n", cfg->win_height);
g_string_append_printf(buf, "hpane_pos=%d\n", cfg->hpane_pos);
g_string_append_printf(buf, "main_pane_pos=%d\n",
cfg->main_pane_pos);
+ g_string_append(buf, "\n[view]\n");
+ g_string_append_printf(buf, "layout=%d\n", cfg->layout);
+ g_string_append_printf(buf, "int_memory=%d\n",
+ cfg->view_int_memory);
+ g_string_append_printf(buf, "ext_memory=%d\n",
+ cfg->view_ext_memory);
+ g_string_append_printf(buf, "bits_per_row=%d\n",
+ cfg->bits_per_row);
+
file_path = app_config_get_file_path();
g_file_set_contents(file_path, buf->str, buf->len, NULL);
}
}
+void toggle_int_memory(GtkWidget *widget, gpointer data)
+{
+ if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
+ log_info(" View internal memory (TODO)");
+ cfg->view_int_memory = 1;
+ } else {
+ cfg->view_int_memory = 0;
+ }
+}
+
+void toggle_ext_memory(GtkWidget *widget, gpointer data)
+{
+ if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
+ log_info(" View external memory (TODO)");
+ cfg->view_ext_memory = 1;
+ } else {
+ cfg->view_ext_memory = 0;
+ }
+}
+
void
view_add_layout_submenu(GtkWidget *parent)
{
view = gtk_menu_item_new_with_label("View");
- item = gtk_menu_item_new_with_label("Internal Memory");
+ item = gtk_check_menu_item_new_with_label("Internal Memory");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE);
+ g_signal_connect(G_OBJECT(item), "activate",
+ G_CALLBACK(toggle_int_memory), NULL);
- item = gtk_menu_item_new_with_label("External Memory");
+ item = gtk_check_menu_item_new_with_label("External Memory");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), TRUE);
+ g_signal_connect(G_OBJECT(item), "activate",
+ G_CALLBACK(toggle_ext_memory), NULL);
AddMenuSeparator(menu);