Changeset 8345

Show
Ignore:
Timestamp:
27/01/12 14:06:14 (4 months ago)
Author:
westram
Message:
  • cleaned up resize requests
    • renamed to match refresh requests
    • removed unused methods (calc_size_requested_by_parent + Resize)
    • removed useless return values
    • extract method request_resize_of_linked
Location:
branches/e4fix/EDIT4
Files:
11 modified

Legend:

Unmodified
Added
Removed
  • branches/e4fix/EDIT4/ED4_ProteinViewer.cxx

    r8340 r8345  
    835835            ED4_counter++; 
    836836 
    837             new_SeqManager->resize_requested_by_child(); 
     837            new_SeqManager->request_resize(); 
    838838        } 
    839839} 
     
    905905         terminal; 
    906906         terminal = terminal->get_next_terminal()) 
    907         { 
    908             if (terminal->is_sequence_terminal()) { 
    909                 ED4_sequence_terminal *seqTerminal = terminal->to_sequence_terminal(); 
    910                 if (seqTerminal->species_name) 
    911                     { 
    912                         ED4_species_manager *speciesManager = terminal->get_parent(ED4_L_SPECIES)->to_species_manager(); 
    913                         if (speciesManager && !speciesManager->flag.is_consensus && !speciesManager->flag.is_SAI) 
    914                             { 
    915                                 PV_AddNewAAseqTerminals(seqTerminal, speciesManager); 
    916                             } 
    917                     } 
    918             } 
    919         } 
    920     ED4_ROOT->main_manager->update_info.set_resize(1); 
    921     ED4_ROOT->main_manager->resize_requested_by_parent(); 
     907    { 
     908        if (terminal->is_sequence_terminal()) { 
     909            ED4_sequence_terminal *seqTerminal = terminal->to_sequence_terminal(); 
     910            if (seqTerminal->species_name) 
     911            { 
     912                ED4_species_manager *speciesManager = terminal->get_parent(ED4_L_SPECIES)->to_species_manager(); 
     913                if (speciesManager && !speciesManager->flag.is_consensus && !speciesManager->flag.is_SAI) 
     914                { 
     915                    PV_AddNewAAseqTerminals(seqTerminal, speciesManager); 
     916                } 
     917            } 
     918        } 
     919    } 
     920    ED4_ROOT->main_manager->request_resize(); // @@@ instead needs to be called whenever adding or deleting PV-terminals 
    922921 
    923922    gTerminalsCreated = true; 
  • branches/e4fix/EDIT4/ED4_base.cxx

    r8341 r8345  
    132132        GB_pop_transaction(GLOBAL_gb_main); 
    133133 
    134         if (parent) parent->resize_requested_by_child(); 
     134        request_resize(); 
    135135        // parent = 0; 
    136136        // delete this; // @@@ crashes when removing callback deleted_from_database() 
     
    837837} 
    838838 
    839 ED4_returncode ED4_base::set_width()                                            // sets object length of terminals to Consensus_Name_terminal if existing 
    840 {                                                                               // else to MAXSPECIESWIDTH 
    841     int                 i; 
     839ED4_returncode ED4_base::set_width() { 
     840    // sets object length of terminals to Consensus_Name_terminal if existing 
     841    // else to MAXSPECIESWIDTH 
     842 
     843    int i; 
    842844 
    843845    if (is_species_manager() && !flag.is_consensus && !parent->flag.is_consensus) { 
    844         ED4_species_manager *species_manager = to_species_manager(); 
     846        ED4_species_manager    *species_manager    = to_species_manager(); 
    845847        ED4_multi_name_manager *multi_name_manager = species_manager->get_defined_level(ED4_L_MULTI_NAME)->to_multi_name_manager();     // case I'm a species 
    846         ED4_terminal *consensus_terminal = parent->to_multi_species_manager()->get_consensus_terminal(); 
     848        ED4_terminal           *consensus_terminal = parent->to_multi_species_manager()->get_consensus_terminal(); 
    847849 
    848850        for (i=0; i < multi_name_manager->children->members(); i++) { 
    849851            ED4_name_manager *name_manager = multi_name_manager->children->member(i)->to_name_manager(); 
    850             if (consensus_terminal) { 
    851                 name_manager->children->member(0)->extension.size[WIDTH] = consensus_terminal->extension.size[WIDTH]; 
    852             } 
    853             else { 
    854                 name_manager->children->member(0)->extension.size[WIDTH] = MAXSPECIESWIDTH; 
    855             } 
    856  
    857             name_manager->resize_requested_by_child(); 
     852            ED4_base         *nameTerm     = name_manager->children->member(0); 
     853            int               width        = consensus_terminal ? consensus_terminal->extension.size[WIDTH] : MAXSPECIESWIDTH; 
     854 
     855            nameTerm->extension.size[WIDTH] = width; 
     856            nameTerm->request_resize(); 
    858857        } 
    859858 
     
    874873                } 
    875874            } 
    876             species_manager->children->member(i)->resize_requested_by_child(); 
     875            smember->request_resize(); 
    877876        } 
    878877    } 
    879878    else if (is_group_manager()) { 
    880         ED4_group_manager *group_manager = this->to_group_manager(); 
    881         ED4_multi_species_manager *multi_species_manager = group_manager->get_defined_level(ED4_L_MULTI_SPECIES)->to_multi_species_manager(); 
    882         ED4_terminal *mark_consensus_terminal = multi_species_manager->get_consensus_terminal(); 
    883         ED4_terminal *consensus_terminal = parent->to_multi_species_manager()->get_consensus_terminal(); 
     879        ED4_group_manager         *group_manager           = to_group_manager(); 
     880        ED4_multi_species_manager *multi_species_manager   = group_manager->get_defined_level(ED4_L_MULTI_SPECIES)->to_multi_species_manager(); 
     881        ED4_terminal              *mark_consensus_terminal = multi_species_manager->get_consensus_terminal(); 
     882        ED4_terminal              *consensus_terminal      = parent->to_multi_species_manager()->get_consensus_terminal(); 
    884883 
    885884        if (consensus_terminal) { // we're a group in another group 
     
    890889        } 
    891890 
    892         mark_consensus_terminal->parent->resize_requested_by_child(); 
     891        mark_consensus_terminal->request_resize(); 
    893892 
    894893        for (i=0; i < multi_species_manager->children->members(); i++) { 
     
    957956} 
    958957 
    959 ED4_returncode ED4_manager::hide_children() { 
    960     int i; 
    961  
    962     for (i=0; i<children->members(); i++) { 
     958void ED4_manager::hide_children() { 
     959    for (int i=0; i<children->members(); i++) { 
    963960        ED4_base *member = children->member(i); 
    964961        if (!member->is_spacer_terminal() && !member->flag.is_consensus) { // don't hide spacer and Consensus 
     
    966963        } 
    967964    } 
    968  
    969     update_info.set_resize(1); 
    970     resize_requested_by_parent(); 
    971  
    972     return ED4_R_OK; 
    973 } 
    974  
    975  
    976 ED4_returncode ED4_manager::unhide_children() 
    977 { 
    978     if (!children) { 
    979         return ED4_R_WARNING; 
    980     } 
    981     else { 
     965    request_resize(); 
     966} 
     967 
     968 
     969void ED4_manager::unhide_children() { 
     970    if (children) { 
    982971        for (int i=0; i < children->members(); i++) { 
    983972            children->member(i)->flag.hidden = 0; // make child visible 
    984973        } 
    985  
    986         update_info.set_resize(1); 
    987         resize_requested_by_parent(); 
    988  
    989         return ED4_R_OK; 
     974        request_resize(); 
    990975    } 
    991976} 
     
    10811066} 
    10821067 
    1083 ED4_returncode ED4_base::set_links(ED4_base *temp_width_link, ED4_base *temp_height_link)       // sets links in hierarchy : 
    1084 // width-link sets links between objects on same level 
    1085 {                                                                                               // height-link sets links between objects on different levels 
    1086     if (temp_width_link) 
    1087     { 
    1088         if (width_link)                                                         // if object already has a link 
    1089             width_link->linked_objects.delete_elem((void *) this);              // delete link and 
    1090  
    1091         width_link = temp_width_link;                                           // set new link to temp_width_link 
    1092         temp_width_link->linked_objects.append_elem((void *) this); 
    1093     } 
    1094  
    1095     if (temp_height_link) 
    1096     { 
    1097         if (height_link != NULL) 
    1098             height_link->linked_objects.delete_elem((void *) this); 
    1099  
    1100         height_link = temp_height_link; 
    1101         temp_height_link->linked_objects.append_elem((void *) this); 
    1102     } 
    1103  
    1104     return (ED4_R_OK); 
    1105 } 
    1106  
    1107 ED4_returncode ED4_base::link_changed(ED4_base *link) 
    1108 { 
    1109     if ((width_link == link) || (height_link == link)) 
    1110         if (calc_bounding_box()) 
    1111             if (parent != NULL) 
    1112                 parent->resize_requested_by_child(); 
    1113  
    1114     return (ED4_R_OK); 
     1068void ED4_base::set_links(ED4_base *new_width, ED4_base *new_height) { 
     1069    // sets links in hierarchy : 
     1070    // width-link sets links between objects on same level 
     1071    // height-link sets links between objects on different levels 
     1072 
     1073    if (new_width) { 
     1074        if (width_link) width_link->linked_objects.delete_elem((void *) this); 
     1075        width_link = new_width; 
     1076        new_width->linked_objects.append_elem((void *) this); 
     1077    } 
     1078 
     1079    if (new_height) { 
     1080        if (height_link) height_link->linked_objects.delete_elem((void *) this); 
     1081        height_link = new_height; 
     1082        new_height->linked_objects.append_elem((void *) this); 
     1083    } 
    11151084} 
    11161085 
  • branches/e4fix/EDIT4/ED4_cursor.cxx

    r8342 r8345  
    644644                PV_AddCorrespondingOrfTerminals(name_term); 
    645645            } 
    646             ED4_ROOT->main_manager->update_info.set_resize(1); 
    647             ED4_ROOT->main_manager->resize_requested_by_parent(); 
     646            ED4_ROOT->main_manager->request_resize(); // @@@ instead needs to be called whenever adding or deleting PV-terminals 
    648647            // it should create new AA Sequence terminals if the protein viewer is enabled 
    649648        } 
     
    758757                PV_AddOrfTerminalsToLoadedSpecies(); 
    759758            } 
    760  
    761             ED4_ROOT->main_manager->update_info.set_resize(1); 
    762             ED4_ROOT->main_manager->resize_requested_by_parent(); 
     759            ED4_ROOT->main_manager->request_resize(); // @@@ instead needs to be called whenever adding or deleting PV-terminals 
    763760        } 
    764761 
  • branches/e4fix/EDIT4/ED4_manager.cxx

    r8342 r8345  
    708708} 
    709709 
    710 ED4_returncode  ED4_manager::calc_size_requested_by_parent() { 
    711     if (calc_bounding_box()) { 
    712         if (parent) { 
    713             parent->resize_requested_by_child(); 
    714         } 
    715     } 
    716  
    717     return (ED4_R_OK); 
    718 } 
    719  
    720710ED4_returncode  ED4_manager::refresh_requested_by_child() { 
    721711    // handles a refresh-request from a child 
     
    753743} 
    754744 
     745inline void ED4_base::resize_requested_by_link(ED4_base *link) { 
     746    e4_assert((width_link == link) || (height_link == link)); // wrong link 
     747    if (calc_bounding_box()) request_resize(); 
     748} 
     749 
     750void ED4_base::request_resize_of_linked() { 
     751    ED4_list_elem *current_list_elem = linked_objects.first(); 
     752    while (current_list_elem) { 
     753        ED4_base *object = (ED4_base *) current_list_elem->elem(); 
     754        if (object) object->resize_requested_by_link(this); 
     755        current_list_elem = current_list_elem->next(); 
     756    } 
     757} 
     758 
    755759bool ED4_manager::calc_bounding_box() { 
    756760    // calculates the smallest rectangle containing the object. 
    757761    // returns true if bounding box has changed. 
    758     AW_pos         sum_width  = 0; 
    759     AW_pos         sum_height = 0; 
    760     AW_pos         max_x      = 0; 
    761     AW_pos         max_y      = 0; 
    762     AW_pos         dummy      = 0; 
    763     ED4_index      i          = 0; 
    764     bool           bb_changed = false; 
    765     ED4_list_elem *current_list_elem; 
    766     ED4_base      *child, *object; 
     762    AW_pos     sum_width  = 0; 
     763    AW_pos     sum_height = 0; 
     764    AW_pos     max_x      = 0; 
     765    AW_pos     max_y      = 0; 
     766    AW_pos     dummy      = 0; 
     767    ED4_index  i          = 0; 
     768    bool       bb_changed = false; 
     769    ED4_base  *child; 
    767770 
    768771    // initialize with first child 
     
    809812    } 
    810813 
    811     if (bb_changed) { // tell linked objects about our change of bounding box 
    812         current_list_elem = linked_objects.first(); 
    813         while (current_list_elem) { 
    814             object = (ED4_base *) current_list_elem->elem(); 
    815             if (object) { 
    816                 object->link_changed(this); 
    817             } 
    818  
    819             current_list_elem = current_list_elem->next(); 
    820         } 
    821     } 
     814    if (bb_changed) request_resize_of_linked(); 
    822815    return bb_changed; 
    823816} 
     
    873866} 
    874867 
    875 ED4_returncode ED4_manager::resize_requested_by_parent() { 
     868void ED4_manager::resize_requested_children() { 
    876869    if (update_info.resize) { // object wants to resize 
    877870        update_info.set_resize(0); // first clear the resize flag (remember it could be set again from somewhere below the hierarchy) 
     
    884877 
    885878            child->update_info.set_resize(1); 
    886             child->resize_requested_by_parent(); 
     879            child->resize_requested_children(); 
    887880        } 
    888881 
    889882        distribute_children(); 
    890         if (calc_bounding_box()) {                      // recalculate current object's bounding_box 
    891             resize_requested_by_child(); 
    892         } 
    893     } 
    894  
    895     return ED4_R_OK; 
    896 } 
    897 ED4_returncode ED4_root_group_manager::resize_requested_by_parent() { 
    898     ED4_returncode result = ED4_R_OK; 
    899  
     883        if (calc_bounding_box()) request_resize(); 
     884    } 
     885} 
     886void ED4_root_group_manager::resize_requested_children() { 
    900887    if (update_info.resize) { 
    901         update_remap(); 
    902         result = ED4_manager::resize_requested_by_parent(); 
    903     } 
    904  
    905     return result; 
     888        update_remap(); // @@@ should this better be handled by an update request? 
     889        ED4_manager::resize_requested_children(); 
     890    } 
    906891} 
    907892 
    908893static void update_scrolled_rectangles(ED4_window *win) { win->update_scrolled_rectangle(); } 
    909 ED4_returncode ED4_main_manager::resize_requested_by_parent() { 
     894void ED4_main_manager::resize_requested_children() { 
    910895    if (update_info.resize) { 
    911         ED4_manager::resize_requested_by_parent(); 
     896        ED4_manager::resize_requested_children(); 
    912897        ED4_with_all_edit_windows(update_scrolled_rectangles); 
    913898    } 
    914     return ED4_R_OK; 
    915 } 
    916  
    917 ED4_returncode ED4_manager::Resize() { 
    918     if (!flag.hidden) { 
    919         while (update_info.resize) { 
    920             resize_requested_by_parent(); 
    921             if (parent) break; 
    922         } 
    923     } 
    924  
    925     return ED4_R_OK; 
    926 } 
    927 ED4_returncode ED4_terminal::Resize() { 
    928     return ED4_R_OK; 
    929899} 
    930900 
     
    11781148} 
    11791149 
    1180 ED4_returncode ED4_manager::resize_requested_by_child() { 
    1181     // handles a resize-request from a child 
    1182     if (!update_info.resize) {  // this is the first resize request 
    1183         if (parent) {           // if we have a parent, tell him about our resize 
    1184             parent->resize_requested_by_child(); 
    1185         } 
    1186         update_info.set_resize(1); 
    1187     } 
    1188     return ED4_R_OK; 
    1189 } 
    1190  
    1191 void ED4_manager::update_requested_by_child() { 
     1150void ED4_manager::update_requested_by_child() { // @@@ same as set_update -> DRY 
    11921151    if (!update_info.update_requested) { 
    11931152        if (parent) parent->update_requested_by_child(); 
     
    18831842    } 
    18841843} 
    1885 void ED4_remap::mark_compile_needed() { 
    1886     if (mode!=ED4_RM_NONE && !update_needed) { 
    1887         update_needed = 1; 
    1888         if (ED4_ROOT && ED4_ROOT->root_group_man) {                     // test if root_group_man already exists 
    1889             ED4_ROOT->root_group_man->resize_requested_by_child();      // remapping is recompiled while re-displaying the root_group_manager 
    1890         } 
    1891     } 
    1892 } 
    18931844void ED4_remap::mark_compile_needed_force() { 
    18941845    if (!update_needed) { 
     
    18991850    } 
    19001851} 
     1852void ED4_remap::mark_compile_needed() { 
     1853    if (mode!=ED4_RM_NONE) mark_compile_needed_force(); 
     1854} 
     1855 
    19011856GB_ERROR ED4_remap::compile(ED4_root_group_manager *gm) 
    19021857{ 
  • branches/e4fix/EDIT4/ED4_members.cxx

    r8159 r8345  
    154154} 
    155155 
    156 ED4_returncode ED4_members::insert_member(ED4_base *new_member)                         // inserts a new member into current owners's member array and 
    157 {                                                                                       // asks to adjust owner's bounding box 
    158     ED4_index   index; 
    159     ED4_properties      prop; 
    160  
    161     prop = owner()->spec.static_prop;                                          // properties of parent object 
    162  
     156ED4_returncode ED4_members::insert_member(ED4_base *new_member) { 
     157    // inserts a new member into current owners's member array and 
     158    // asks to adjust owner's bounding box 
     159 
     160    ED4_properties prop = owner()->spec.static_prop; // properties of parent object 
     161 
     162    ED4_index index; 
    163163    if ((index = search_member(&(new_member->extension), prop)) < 0) {          // search list for a suitable position 
    164164        index = 0;                                                              // list was empty 
     
    186186    new_member->index = index; 
    187187 
    188     owner()->resize_requested_by_child();                                      // tell owner about resize 
     188    owner()->request_resize(); // tell owner about resize 
    189189 
    190190    return (ED4_R_OK); 
     
    228228 
    229229    owner()->spec.announce_added(new_member->spec.level); 
    230  
    231     owner()->resize_requested_by_child(); 
     230    owner()->request_resize(); 
     231 
    232232    return ED4_R_OK; 
    233233} 
     
    250250    e4_assert(members_ok()); 
    251251 
    252     owner()->resize_requested_by_child(); // tell owner about resize 
     252    owner()->request_resize(); 
    253253 
    254254    return (ED4_R_OK); 
  • branches/e4fix/EDIT4/ED4_nds.cxx

    r8344 r8345  
    5252        ED4_calc_terminal_extentions(); 
    5353        ED4_ROOT->main_manager->route_down_hierarchy(update_terminal_extension).expect_no_error(); 
    54         ED4_ROOT->main_manager->resize_requested_by_child(); 
     54        ED4_ROOT->main_manager->request_resize(); 
    5555    } 
    5656} 
  • branches/e4fix/EDIT4/ED4_no_class.cxx

    r8344 r8345  
    10251025    } 
    10261026 
    1027     if (this_object->parent) { 
    1028         this_object->parent->resize_requested_by_child(); 
    1029     } 
     1027    this_object->request_resize(); 
    10301028 
    10311029    return NULL; 
  • branches/e4fix/EDIT4/ED4_root.cxx

    r8343 r8345  
    111111    if (main_manager->update_info.update_requested) { 
    112112        main_manager->update_requested_children(); 
    113         redraw = true; 
     113        redraw = true; // @@@ needed ?  
    114114    } 
    115115 
    116116    while (main_manager->update_info.resize) { 
    117         main_manager->resize_requested_by_parent(); 
     117        main_manager->resize_requested_children(); 
    118118        redraw = true; 
    119119    } 
     
    473473} 
    474474 
    475 ED4_returncode ED4_root::resize_all() 
    476 { 
     475void ED4_root::resize_all() { 
    477476    while (main_manager->update_info.resize) { 
    478         main_manager->resize_requested_by_parent(); 
    479     } 
    480  
    481     return (ED4_R_OK); 
     477        main_manager->resize_requested_children(); 
     478    } 
    482479} 
    483480 
     
    739736    first_window->update_window_coords(); 
    740737    resize_all(); 
    741  
    742738 
    743739    main_manager->route_down_hierarchy(force_group_update).expect_no_error(); 
  • branches/e4fix/EDIT4/ED4_terminal.cxx

    r8341 r8345  
    331331    e4_assert(0); 
    332332    return NULL; 
    333 } 
    334  
    335 ED4_returncode ED4_terminal::resize_requested_by_child() 
    336 { 
    337     e4_assert(0); 
    338     return ED4_R_IMPOSSIBLE; 
    339333} 
    340334 
     
    645639} 
    646640 
    647  
    648 ED4_returncode  ED4_terminal::calc_size_requested_by_parent() 
    649 { 
    650     return ED4_R_OK; 
    651 } 
    652  
    653641void ED4_terminal::update_requested_children() {} 
    654642 
     
    656644    // calculates the smallest rectangle containing the object. 
    657645    // requests refresh and returns true if bounding box has changed. 
    658      
    659     bool           bb_changed = false; 
    660     ED4_list_elem *current_list_elem; 
    661     ED4_base      *object; 
     646 
     647    bool bb_changed = false; 
    662648 
    663649    if (width_link) { 
     
    677663 
    678664    if (bb_changed) { 
    679         current_list_elem = linked_objects.first(); 
    680         while (current_list_elem) { 
    681             object = (ED4_base *) current_list_elem->elem(); 
    682  
    683             if (object != NULL) { 
    684                 object->link_changed(this); 
    685             } 
    686  
    687             current_list_elem = current_list_elem->next(); 
    688         } 
    689  
     665        request_resize_of_linked(); 
    690666        request_refresh(); 
    691667    } 
    692  
    693668    return bb_changed; 
    694669} 
    695670 
    696 ED4_returncode ED4_terminal::resize_requested_by_parent() { 
     671void ED4_terminal::resize_requested_children() { 
    697672    if (update_info.resize) { // likes to resize? 
    698         if (calc_bounding_box()) { // size changed? 
    699             parent->resize_requested_by_child(); // tell parent! 
    700         } 
    701     } 
    702  
    703     return ED4_R_OK; 
     673        if (calc_bounding_box()) {  
     674            request_resize(); 
     675        } 
     676    } 
    704677} 
    705678 
  • branches/e4fix/EDIT4/EDB_root_bact.cxx

    r8337 r8345  
    584584    sequence_terminal->set_links(ref_sequence_terminal, ref_sequence_terminal); 
    585585    sequence_manager->children->append_member(sequence_terminal); 
    586     sequence_terminal->parent->resize_requested_by_child(); 
    587586 
    588587    (*y) += height_terminal + height_spacer; 
  • branches/e4fix/EDIT4/ed4_class.hxx

    r8344 r8345  
    10631063    virtual int adjust_clipping_rectangle();     // sets scrolling area in AW_MIDDLE_AREA 
    10641064    virtual ED4_returncode  Show(int refresh_all=0, int is_cleared=0) = 0; 
    1065     virtual ED4_returncode  Resize()                                  = 0; 
    10661065    virtual bool calc_bounding_box()                                  = 0; 
    10671066 
    10681067    ED4_returncode  clear_background(int color=0); 
    10691068 
    1070     // functions concerned with links in the hierarchy 
    1071     ED4_returncode  set_links(ED4_base *width_link, ED4_base *height_link); 
    1072     ED4_returncode  link_changed(ED4_base *link); 
     1069    void set_links(ED4_base *width_link, ED4_base *height_link); 
    10731070 
    10741071    // functions concerned with special initialization 
     
    10951092 
    10961093    // functions which refer to the object as a child, i.e. travelling down the hierarchy 
    1097     virtual void request_refresh(int clear=1)=0; 
    1098     virtual ED4_returncode  resize_requested_by_child()=0; 
    1099     virtual ED4_returncode  resize_requested_by_parent()=0; // @@@ name is wrong! should be resize_requested_children! 
     1094    virtual void request_refresh(int clear=1) = 0; 
     1095 
     1096    inline void request_resize(); 
     1097    void request_resize_of_linked(); 
     1098    void resize_requested_by_link(ED4_base *link); 
     1099    virtual void resize_requested_children() = 0; 
    11001100 
    11011101    virtual void delete_requested_children() = 0; 
    11021102    virtual void Delete()                    = 0; 
    1103      
     1103 
    11041104    inline void set_update(); 
    11051105    virtual void update_requested_children() = 0; 
    11061106 
    1107     virtual ED4_returncode  calc_size_requested_by_parent()=0; 
    11081107    virtual ED4_returncode  move_requested_by_parent(ED4_move_info *mi)=0; 
    11091108    virtual ED4_returncode  event_sent_by_parent(AW_event *event, AW_window *aww); 
     
    12521251    // functions concerned with graphics 
    12531252    virtual ED4_returncode  Show(int refresh_all=0, int is_cleared=0); 
    1254     virtual ED4_returncode  Resize(); 
    12551253    virtual bool calc_bounding_box(); 
    12561254 
     
    12591257    // top-down functions, means travelling down the hierarchy 
    12601258    virtual ED4_returncode event_sent_by_parent(AW_event *event, AW_window *aww); 
     1259 
    12611260    virtual void request_refresh(int clear=1); 
    12621261    ED4_returncode clear_refresh(); 
    1263     virtual ED4_returncode resize_requested_by_parent(); 
     1262 
     1263    virtual void resize_requested_children(); 
    12641264 
    12651265    virtual void update_requested_children(); 
     
    12681268    virtual void Delete(); 
    12691269 
    1270     virtual ED4_returncode  calc_size_requested_by_parent(); 
    12711270    virtual ED4_returncode  move_requested_by_parent(ED4_move_info *mi); 
    12721271 
     
    12841283     // bottom-up functions 
    12851284    virtual ED4_returncode  move_requested_by_child(ED4_move_info *moveinfo); 
    1286     virtual ED4_returncode resize_requested_by_child(); 
     1285    inline void resize_requested_by_child(); 
    12871286    virtual ED4_returncode  refresh_requested_by_child(); 
    12881287    void delete_requested_by_child(); 
     
    13221321    ED4_terminal *get_last_terminal(int start_index=-1) const; 
    13231322 
    1324     ED4_returncode hide_children(); 
    1325     ED4_returncode unhide_children(); 
     1323    void hide_children(); 
     1324    void unhide_children(); 
    13261325 
    13271326    bool is_hidden() const { 
     
    13541353    // functions concerning graphic output 
    13551354    virtual ED4_returncode Show(int refresh_all=0, int is_cleared=0) = 0; 
    1356     virtual ED4_returncode Resize(); 
    13571355    virtual ED4_returncode draw() = 0; 
    13581356 
    13591357    virtual int  adjust_clipping_rectangle(); 
    13601358    virtual bool calc_bounding_box(); 
    1361     virtual ED4_returncode  calc_size_requested_by_parent(); 
    13621359 
    13631360    ED4_returncode draw_drag_box(AW_pos x, AW_pos y, GB_CSTR text = NULL, int cursor_y=-1); 
     
    13651362    // functions which concern the object as a child 
    13661363    virtual void request_refresh(int clear=1); 
    1367     virtual ED4_returncode resize_requested_by_child(); 
    1368     virtual ED4_returncode resize_requested_by_parent(); 
     1364 
     1365    virtual void resize_requested_children(); 
    13691366 
    13701367    virtual void update_requested_children(); 
     
    15231520 
    15241521    // functions concerned with global refresh and resize 
    1525     ED4_returncode resize_all(); 
     1522    void resize_all(); 
    15261523 
    15271524    ED4_returncode special_window_refresh(); 
     
    16071604 
    16081605    virtual ED4_returncode Show(int refresh_all=0, int is_cleared=0); 
    1609     virtual ED4_returncode resize_requested_by_parent(); 
     1606    virtual void resize_requested_children(); 
    16101607     
    16111608    void clear_whole_background(); 
     
    18021799 
    18031800    virtual ED4_returncode Show(int refresh_all=0, int is_cleared=0); 
    1804     virtual ED4_returncode resize_requested_by_parent(); 
     1801    virtual void resize_requested_children(); 
    18051802 
    18061803    DECLARE_DUMP_FOR_LEAFCLASS(ED4_abstract_group_manager); 
     
    21342131//      inlines which need complete classdefs 
    21352132 
    2136 inline void ED4_base::set_update() { 
     2133inline void ED4_base::set_update() { // @@@ rename into request_update 
    21372134    if (!update_info.update_requested) { 
    21382135        update_info.update_requested = 1; 
     
    21402137    } 
    21412138} 
     2139 
     2140inline void ED4_base::request_resize() { 
     2141    update_info.set_resize(1); 
     2142    if (parent) parent->resize_requested_by_child(); 
     2143} 
     2144 
     2145void ED4_manager::resize_requested_by_child() {  
     2146    if (!update_info.resize) request_resize(); 
     2147} 
     2148 
    21422149 
    21432150inline bool ED4_terminal::setCursorTo(ED4_cursor *cursor, int seq_pos, bool unfoldGroups, ED4_CursorJumpType jump_type) {