Changeset e74f5abccbef74c6b76383e022750bfc7ea3e488

Show
Ignore:
Timestamp:
03/13/10 20:58:33 (3 years ago)
Author:
Nedko Arnaudov <nedko@…>
Children:
66503b08c16d4d8b2529bd27e8e8b23c007a09ed
Parents:
50eb4581ce0c5073a949d45995032a5b0d447c16
git-committer:
Nedko Arnaudov <nedko@arnaudov.name> / 2010-03-13T20:58:33Z+0200
Message:

gui: add/remove room graph views on room appear/disappear

Location:
gui
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • gui/graph_view.c

    rfbc1bb5 re74f5ab  
    252252} 
    253253 
     254const char * get_view_opath(graph_view_handle view) 
     255{ 
     256  return graph_proxy_get_object(view_ptr->graph); 
     257} 
     258 
    254259bool set_view_name(graph_view_handle view, const char * cname) 
    255260{ 
  • gui/graph_view.h

    r764873e re74f5ab  
    33 * LADI Session Handler (ladish) 
    44 * 
    5  * Copyright (C) 2009 Nedko Arnaudov <nedko@arnaudov.name> 
     5 * Copyright (C) 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 
    66 * 
    77 ************************************************************************** 
     
    4848void activate_view(graph_view_handle view); 
    4949const char * get_view_name(graph_view_handle view); 
     50const char * get_view_opath(graph_view_handle view); 
    5051bool set_view_name(graph_view_handle view, const char * name); 
    5152canvas_handle get_current_canvas(); 
  • gui/main.c

    r4193da4 re74f5ab  
    10681068static void room_appeared(const char * opath, const char * name, const char * template) 
    10691069{ 
     1070  graph_view_handle graph_view; 
     1071 
    10701072  log_info("room \"%s\" appeared (%s). template is \"%s\"", name, opath, template); 
     1073 
     1074  if (!create_view(name, SERVICE_NAME, opath, true, false, false, &graph_view)) 
     1075  { 
     1076    log_error("create_view() failed for room \"%s\"", name); 
     1077  } 
    10711078} 
    10721079 
    10731080static void room_disappeared(const char * opath, const char * name, const char * template) 
    10741081{ 
     1082  graph_view_handle graph_view; 
     1083 
    10751084  log_info("room \"%s\" disappeared (%s). template is \"%s\"", name, opath, template); 
     1085 
     1086  graph_view = world_tree_find_by_opath(opath); 
     1087  if (graph_view == NULL) 
     1088  { 
     1089    log_error("Unknown room disappeared"); 
     1090    return; 
     1091  } 
     1092 
     1093  destroy_view(graph_view); 
    10761094} 
    10771095 
  • gui/world_tree.c

    r48bf40a re74f5ab  
    466466} 
    467467 
     468graph_view_handle world_tree_find_by_opath(const char * opath) 
     469{ 
     470  gint type; 
     471  graph_view_handle view; 
     472  GtkTreeIter iter; 
     473 
     474  if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(g_treestore), &iter)) 
     475  { 
     476    do 
     477    { 
     478      gtk_tree_model_get(GTK_TREE_MODEL(g_treestore), &iter, COL_TYPE, &type, COL_VIEW, &view, -1); 
     479      if (type == entry_type_view) 
     480      { 
     481        if (strcmp(get_view_opath(view), opath) == 0) 
     482        { 
     483          return view; 
     484        } 
     485      } 
     486    } 
     487    while (gtk_tree_model_iter_next(GTK_TREE_MODEL(g_treestore), &iter)); 
     488  } 
     489 
     490  return NULL; 
     491} 
     492 
    468493static bool find_view(graph_view_handle view, GtkTreeIter * iter_ptr) 
    469494{ 
  • gui/world_tree.h

    re9be94a re74f5ab  
    33 * LADI Session Handler (ladish) 
    44 * 
    5  * Copyright (C) 2008, 2009 Nedko Arnaudov <nedko@arnaudov.name> 
     5 * Copyright (C) 2008, 2009, 2010 Nedko Arnaudov <nedko@arnaudov.name> 
    66 * 
    77 ************************************************************************** 
     
    3434void world_tree_add(graph_view_handle view, bool force_activate); 
    3535void world_tree_remove(graph_view_handle view); 
     36graph_view_handle world_tree_find_by_opath(const char * opath); 
    3637void world_tree_activate(graph_view_handle view); 
    3738void world_tree_name_changed(graph_view_handle view);