Added logic to make cheat window edit/delete buttons insensitive unless a row is selected in treeview list.

This commit is contained in:
Matthew Budd 2020-06-01 09:19:55 -04:00
parent 1ace69f5f9
commit a58f5dc5e0
1 changed files with 22 additions and 7 deletions

View File

@ -56,6 +56,7 @@ class cheat_win_t
bool pauseWhileCheatsActv;
bool actv_cheat_redraw;
GtkWidget *win;
GtkWidget *actv_cheat_tree;
GtkWidget *search_cheat_tree;
GtkWidget *neq_chkbox;
@ -65,9 +66,12 @@ class cheat_win_t
GtkWidget *cheat_addr_entry;
GtkWidget *cheat_val_entry;
GtkWidget *cheat_cmp_entry;
GtkWidget *cheat_del_button;
GtkWidget *cheat_edit_button;
cheat_win_t (void)
{
win = NULL;
actv_cheats_store = NULL;
ram_match_store = NULL;
cheat_search_known_value = 0;
@ -89,6 +93,8 @@ class cheat_win_t
cheat_addr_entry = NULL;
cheat_val_entry = NULL;
cheat_cmp_entry = NULL;
cheat_del_button = NULL;
cheat_edit_button = NULL;
}
void showActiveCheatList (bool reset);
@ -454,6 +460,9 @@ cheat_select_rowCB (GtkTreeView *treeview,
row_is_selected = (row >= 0);
//printf("Selected row = %i\n", row);
//
gtk_widget_set_sensitive( cw->cheat_del_button , row_is_selected );
gtk_widget_set_sensitive( cw->cheat_edit_button, row_is_selected );
if ( !row_is_selected )
{
@ -511,7 +520,7 @@ static void openCheatFile (GtkWidget * widget, cheat_win_t * cw)
fileChooser =
gtk_file_chooser_dialog_new ("Open Cheat",
GTK_WINDOW (MainWindow),
GTK_WINDOW (cw->win),
GTK_FILE_CHOOSER_ACTION_OPEN,
"_Cancel", GTK_RESPONSE_CANCEL,
"_Open", GTK_RESPONSE_ACCEPT,
@ -927,6 +936,8 @@ void openCheatsWindow (void)
"_Close", GTK_RESPONSE_OK, NULL);
gtk_window_set_default_size (GTK_WINDOW (win), 600, 600);
cw->win = win;
main_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
frame = gtk_frame_new ("Active Cheats");
@ -1073,16 +1084,20 @@ void openCheatsWindow (void)
g_signal_connect (button, "clicked",
G_CALLBACK (addCheat2Active), (gpointer) cw);
button = gtk_button_new_with_label ("Delete");
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, FALSE, 1);
cw->cheat_del_button = gtk_button_new_with_label ("Delete");
gtk_box_pack_start (GTK_BOX (hbox), cw->cheat_del_button, TRUE, FALSE, 1);
g_signal_connect (button, "clicked",
gtk_widget_set_sensitive( cw->cheat_del_button, FALSE );
g_signal_connect (cw->cheat_del_button, "clicked",
G_CALLBACK (removeCheatFromActive), (gpointer) cw);
button = gtk_button_new_with_label ("Update");
gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, FALSE, 1);
cw->cheat_edit_button = gtk_button_new_with_label ("Update");
gtk_box_pack_start (GTK_BOX (hbox), cw->cheat_edit_button, TRUE, FALSE, 1);
g_signal_connect (button, "clicked",
gtk_widget_set_sensitive( cw->cheat_edit_button, FALSE );
g_signal_connect (cw->cheat_edit_button, "clicked",
G_CALLBACK (updateCheatList), (gpointer) cw);
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 1);