From 235d35128fea44e9980b07261d0feab95882ac3b Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Wed, 7 Oct 2009 17:03:40 +0000 Subject: [PATCH] better view of highlighted nodes --- src/sview/grid.c | 57 +++++++++++++++++++++++++---------------------- src/sview/sview.c | 7 +++--- src/sview/sview.h | 6 ++--- 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/src/sview/grid.c b/src/sview/grid.c index 26e5125d7ba..82119936a29 100644 --- a/src/sview/grid.c +++ b/src/sview/grid.c @@ -218,7 +218,7 @@ static int _sort_button_inx(grid_button_t *button_a, grid_button_t *button_b) void _put_button_as_down(grid_button_t *grid_button, int state) { GtkWidget *image = NULL; - GdkColor color; +/* GdkColor color; */ if(GTK_IS_EVENT_BOX(grid_button->button)) { //gtk_widget_set_sensitive (grid_button->button, TRUE); @@ -246,10 +246,10 @@ void _put_button_as_down(grid_button_t *grid_button, int state) GTK_SHRINK, GTK_SHRINK, 1, 1); - gdk_color_parse("black", &color); - sview_widget_modify_bg(grid_button->button, GTK_STATE_NORMAL, color); + //gdk_color_parse("black", &color); + //sview_widget_modify_bg(grid_button->button, GTK_STATE_NORMAL, color); //gdk_color_parse(white_color, &color); - sview_widget_modify_bg(grid_button->button, GTK_STATE_PRELIGHT, color); + //sview_widget_modify_bg(grid_button->button, GTK_STATE_PRELIGHT, color); if(state == NODE_STATE_DRAIN) image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_SMALL_TOOLBAR); @@ -381,8 +381,8 @@ extern grid_button_t *create_grid_button_from_another( send_grid_button->color = new_col; sview_widget_modify_bg(send_grid_button->button, GTK_STATE_NORMAL, color); - sview_widget_modify_bg(send_grid_button->button, - GTK_STATE_PRELIGHT, color); +/* sview_widget_modify_bg(send_grid_button->button, */ +/* GTK_STATE_PRELIGHT, color); */ } else if((color_inx >= 0) && node_base_state == NODE_STATE_DOWN) { GtkWidget *image = gtk_image_new_from_stock( GTK_STOCK_CANCEL, @@ -395,8 +395,8 @@ extern grid_button_t *create_grid_button_from_another( sview_widget_modify_bg(send_grid_button->button, GTK_STATE_NORMAL, color); //gdk_color_parse("white", &color); - sview_widget_modify_bg(send_grid_button->button, - GTK_STATE_PRELIGHT, color); +/* sview_widget_modify_bg(send_grid_button->button, */ +/* GTK_STATE_PRELIGHT, color); */ gtk_container_add( GTK_CONTAINER(send_grid_button->button), image); @@ -412,11 +412,11 @@ extern grid_button_t *create_grid_button_from_another( GTK_EVENT_BOX(send_grid_button->button), FALSE); gdk_color_parse("black", &color); - sview_widget_modify_bg(send_grid_button->button, - GTK_STATE_NORMAL, color); +/* sview_widget_modify_bg(send_grid_button->button, */ +/* GTK_STATE_NORMAL, color); */ //gdk_color_parse("white", &color); - sview_widget_modify_bg(send_grid_button->button, - GTK_STATE_PRELIGHT, color); +/* sview_widget_modify_bg(send_grid_button->button, */ +/* GTK_STATE_PRELIGHT, color); */ gtk_container_add( GTK_CONTAINER(send_grid_button->button), image); @@ -426,8 +426,8 @@ extern grid_button_t *create_grid_button_from_another( gdk_color_parse(new_col, &color); sview_widget_modify_bg(send_grid_button->button, GTK_STATE_NORMAL, color); - sview_widget_modify_bg(send_grid_button->button, - GTK_STATE_PRELIGHT, color); +/* sview_widget_modify_bg(send_grid_button->button, */ +/* GTK_STATE_PRELIGHT, color); */ } gtk_widget_set_size_request(send_grid_button->button, 10, 10); @@ -479,9 +479,9 @@ extern char *change_grid_color(List button_list, int start, int end, grid_button->color_inx = color_inx; sview_widget_modify_bg(grid_button->button, GTK_STATE_NORMAL, color); - sview_widget_modify_bg(grid_button->button, - GTK_STATE_PRELIGHT, - color); +/* sview_widget_modify_bg(grid_button->button, */ +/* GTK_STATE_PRELIGHT, */ +/* color); */ } continue; @@ -501,8 +501,8 @@ extern char *change_grid_color(List button_list, int start, int end, grid_button->color_inx = color_inx; sview_widget_modify_bg(grid_button->button, GTK_STATE_NORMAL, color); - sview_widget_modify_bg(grid_button->button, - GTK_STATE_PRELIGHT, color); +/* sview_widget_modify_bg(grid_button->button, */ +/* GTK_STATE_PRELIGHT, color); */ } } list_iterator_destroy(itr); @@ -554,7 +554,7 @@ extern void highlight_grid(GtkTreeView *tree_view, GtkTreePath *path, } extern void set_grid_used(List button_list, int start, int end, - bool used) + bool used, bool reset_highlight) { ListIterator itr = NULL; grid_button_t *grid_button = NULL; @@ -566,10 +566,13 @@ extern void set_grid_used(List button_list, int start, int end, while((grid_button = list_next(itr))) { if(start != -1) if ((grid_button->inx < start) - || (grid_button->inx > end)) + || (grid_button->inx > end)) continue; grid_button->used = used; - gtk_widget_set_state(grid_button->button, GTK_STATE_NORMAL); + if(reset_highlight) + gtk_widget_set_state(grid_button->button, + GTK_STATE_NORMAL); + } list_iterator_destroy(itr); @@ -984,7 +987,7 @@ end_it: return error_code; } -extern void sview_init_grid() +extern void sview_init_grid(bool reset_highlight) { static node_info_msg_t *node_info_ptr = NULL; int error_code = SLURM_SUCCESS; @@ -996,8 +999,7 @@ extern void sview_init_grid() if((error_code = get_new_info_node(&node_info_ptr, force_refresh)) == SLURM_NO_CHANGE_IN_DATA) { /* need to clear out old data */ - set_grid_used(grid_button_list, -1, -1, false); - //sview_reset_grid(); + set_grid_used(grid_button_list, -1, -1, false, reset_highlight); return; } else if (error_code != SLURM_SUCCESS) { return; @@ -1007,7 +1009,7 @@ extern void sview_init_grid() g_print("you need to run get_system_stats() first\n"); exit(0); } - + itr = list_iterator_create(grid_button_list); for(i=0; i<node_info_ptr->record_count; i++) { int tried_again = 0; @@ -1040,7 +1042,8 @@ extern void setup_popup_grid_list(popup_info_t *popup_win) int def_color = MAKE_BLACK; if(popup_win->grid_button_list) { - set_grid_used(popup_win->grid_button_list, -1, -1, false); + set_grid_used(popup_win->grid_button_list, + -1, -1, false, false); } else { popup_win->grid_button_list = copy_main_button_list(def_color); diff --git a/src/sview/sview.c b/src/sview/sview.c index 53c9e1dcda9..6720607bf07 100644 --- a/src/sview/sview.c +++ b/src/sview/sview.c @@ -120,7 +120,8 @@ void *_page_thr(void *arg) GtkTable *table = page->table; display_data_t *display_data = &main_display_data[num]; static int thread_count = 0; -/* DEF_TIMERS; */ + bool reset_highlight = true; + /* DEF_TIMERS; */ xfree(page); if(!grid_init) { @@ -139,7 +140,6 @@ void *_page_thr(void *arg) return NULL; } gdk_threads_enter(); - //sview_reset_grid(); thread_count++; gdk_flush(); gdk_threads_leave(); @@ -147,7 +147,8 @@ void *_page_thr(void *arg) /* START_TIMER; */ g_static_mutex_lock(&sview_mutex); gdk_threads_enter(); - sview_init_grid(); + sview_init_grid(reset_highlight); + reset_highlight=false; (display_data->get_info)(table, display_data); gdk_flush(); gdk_threads_leave(); diff --git a/src/sview/sview.h b/src/sview/sview.h index fe98763171d..4ef1debface 100644 --- a/src/sview/sview.h +++ b/src/sview/sview.h @@ -301,7 +301,8 @@ extern char *change_grid_color(List button_list, int start, int end, enum node_states state_override); extern void highlight_grid(GtkTreeView *tree_view, GtkTreePath *path, int node_inx_id, List button_list); -extern void set_grid_used(List button_list, int start, int end, bool used); +extern void set_grid_used(List button_list, int start, int end, + bool used, bool reset_highlight); extern void get_button_list_from_main(List *button_list, int start, int end, int color_inx); extern List copy_main_button_list(int initial_color); @@ -313,8 +314,7 @@ extern void add_extra_cr_buttons(List *button_list, node_info_t *node_ptr); extern void put_buttons_in_table(GtkTable *table, List button_list); extern int get_system_stats(GtkTable *table); extern int setup_grid_table(GtkTable *table, List button_list, List node_list); -extern void sview_init_grid(); -extern void sview_reset_grid(); +extern void sview_init_grid(bool reset_highlight); extern void sview_clear_unused_grid(List button_list, int color_inx); extern void setup_popup_grid_list(popup_info_t *popup_win); extern void post_setup_popup_grid_list(popup_info_t *popup_win); -- GitLab