Changeset 8275

Show
Ignore:
Timestamp:
03/12/11 12:28:00 (6 months ago)
Author:
westram
Message:
  • define window-contexts by instanciating context-objects
    • ED4_LocalWinContext (used where calls are triggered via a window)
    • ED4_MostRecentWinContext (uses "last used window"; used when window is not known)
    • iterate over all windows and define context foreach, e.g. in
      • announce_deletion (buggy, not called from kill-mode)
      • ED4_edit_direction_changed
      • ED4_with_whole_block (restore cursor; buggy)
      • resize_requested_by_parent
  • Note: the design of EDIT4 does not fit well with multiple edit-windows (which is only a hack in my view)
    • this patch only helps to detect wrong/missing contexts, but definitely doesnt fix the broken design
Location:
branches/e4fix
Files:
18 modified

Legend:

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

    r8193 r8275  
    399399    } 
    400400    // Refresh all windows 
    401      ED4_refresh_window(0, 0, 0); 
    402      ED4_ROOT->refresh_all_windows(0); 
     401    ED4_ROOT->refresh_all_windows(0); 
    403402} 
    404403 
  • branches/e4fix/EDIT4/ED4_base.cxx

    r8274 r8275  
    110110#endif // DEBUG 
    111111    } 
    112     ED4_ROOT->main_manager->Show(); 
     112 
     113    ED4_ROOT->refresh_all_windows(0); 
    113114} 
    114115 
     
    326327// ----------------- 
    327328 
    328 bool ED4_base::is_visible(AW_pos x, AW_pos y, ED4_direction direction) { 
    329     // indicates whether x, y are in the visible scrolling area 
    330     // x, y are calculated by calc_world_coords 
     329bool ED4_base::is_visible(ED4_window *in_ed4w, AW_pos x, AW_pos y, ED4_direction direction) { 
     330    // return true if position (world coordinates) is visible in_ed4w 
     331    // (tests only into direction) 
    331332    bool        visible = true; 
    332     ED4_coords& coords  = current_ed4w()->coords; 
     333    ED4_coords& coords  = in_ed4w->coords; 
    333334 
    334335    switch (direction) 
     
    377378} 
    378379 
    379 bool ED4_base::is_visible(AW_pos x1, AW_pos y1, AW_pos x2, AW_pos y2, ED4_direction IF_ASSERTION_USED(direction)) 
    380 // optimized case of function above (to avoid the need to call it 4 times) 
    381 { 
     380bool ED4_base::is_visible(ED4_window *in_ed4w, AW_pos x1, AW_pos y1, AW_pos x2, AW_pos y2, ED4_direction IF_ASSERTION_USED(direction)) { 
     381    // return true if rectangle x1/y1/x2/y2 overlaps with clipped screen 
    382382    e4_assert(direction == ED4_D_ALL_DIRECTION); 
    383383    e4_assert(x1 <= x2); 
    384384    e4_assert(y1 <= y2); 
    385385 
    386     ED4_coords& coords  = current_ed4w()->coords; 
     386    ED4_coords& coords  = in_ed4w->coords; 
    387387 
    388388    bool visible = (ranges_overlap(x1, x2, coords.window_left_clip_point, coords.window_right_clip_point) && 
  • branches/e4fix/EDIT4/ED4_block.cxx

    r8274 r8275  
    1313#include <climits> 
    1414#include <cctype> 
     15#include <map> 
     16 
     17using namespace std; 
    1518 
    1619// -------------------------------------------------------------------------------- 
     
    163166} 
    164167 
    165  
    166  
    167168void ED4_with_whole_block(ED4_blockoperation block_operation, int repeat) { 
    168     GB_ERROR    error    = GB_begin_transaction(GLOBAL_gb_main); 
    169     ED4_cursor *cursor   = &current_cursor(); 
    170     int         base_pos = (cursor && cursor->owner_of_cursor != 0) ? cursor->get_base_position() : -1; 
     169    GB_ERROR error = GB_begin_transaction(GLOBAL_gb_main); 
     170 
     171    typedef map<ED4_window*, int> CursorPositions; 
     172    CursorPositions at_base; 
     173 
     174    for (ED4_window *win = ED4_ROOT->first_window; win; win = win->next) { 
     175        ED4_cursor& cursor = win->cursor; 
     176        if (cursor.owner_of_cursor) at_base[win] = cursor.get_base_position(); 
     177    } 
     178 
    171179 
    172180    switch (blocktype) { 
     
    200208    GB_end_transaction_show_error(GLOBAL_gb_main, error, aw_message); 
    201209 
    202     if (!error && base_pos != -1) { 
    203         cursor->jump_base_pos(current_aww(), base_pos, ED4_JUMP_KEEP_VISIBLE); // restore cursor at same base 
     210    if (!error) { 
     211        for (CursorPositions::iterator ab = at_base.begin(); ab != at_base.end(); ++ab) { 
     212            ED4_window *win = ab->first; 
     213            win->cursor.jump_base_pos(win->aww, ab->second, ED4_JUMP_KEEP_VISIBLE); // restore cursor at same base 
     214             
     215#if defined(DEBUG) 
     216            ED4_cursor& cursor = win->cursor; 
     217            if (cursor.owner_of_cursor) { 
     218                int bp_now = cursor.get_base_position(); 
     219                e4_assert(bp_now == ab->second); 
     220            } 
     221#endif 
     222        } 
    204223    } 
    205224} 
  • branches/e4fix/EDIT4/ED4_cursor.cxx

    r8274 r8275  
    299299    } 
    300300    x = del_mark; 
    301     window()->world_to_win_coords(&x, &y); 
     301 
     302    ED4_window *win = window(); 
     303    win->world_to_win_coords(&x, &y); 
    302304 
    303305    // refresh own terminal + terminal above + terminal below 
     
    344346    // clear rectangle where cursor is displayed 
    345347 
    346     AW_device *dev = current_device(); 
     348    AW_device *dev = win->get_device(); 
    347349    dev->push_clip_scale(); 
    348350 
     
    393395} 
    394396 
    395 ED4_window *ED4_cursor::window() const 
    396 { 
     397ED4_window *ED4_cursor::window() const { 
    397398    ED4_window *win; 
    398  
    399399    for (win=ED4_ROOT->first_window; win; win=win->next) { 
    400400        if (&win->cursor==this) { 
     
    467467    ED4_species_name_terminal *name_term = ED4_find_species_name_terminal(name); 
    468468    if (name_term) { 
     469        ED4_MostRecentWinContext context; // use the last used window for selection 
     470 
    469471        // lookup current name term 
    470472        ED4_species_name_terminal *cursor_name_term = 0; 
     
    522524        } 
    523525    } 
    524     ignore_selected_SAI_changes_cb = false; 
    525526    ED4_update_global_cursor_awars_allowed = true; 
    526527} 
     
    537538#endif 
    538539            select_named_sequence_terminal(name); 
    539             free(name); 
    540         } 
     540        } 
     541        free(name); 
    541542    } 
    542543    else { 
     
    545546#endif 
    546547    } 
    547     ignore_selected_species_changes_cb = false; 
    548548    ED4_update_global_cursor_awars_allowed = true; 
    549549} 
    550550 
    551 void ED4_jump_to_current_species(AW_window * /* aw */, AW_CL) 
    552 { 
     551void ED4_jump_to_current_species(AW_window *aww, AW_CL) { 
     552    ED4_LocalWinContext uses(aww); 
    553553    char *name = GBT_read_string(GLOBAL_gb_main, AWAR_SPECIES_NAME); 
    554554    if (name && name[0]) { 
     
    676676} 
    677677 
    678 void ED4_get_and_jump_to_actual(AW_window *, AW_CL) 
    679 { 
     678void ED4_get_and_jump_to_actual(AW_window *aww, AW_CL) { // @@@ fix name 
     679    ED4_LocalWinContext uses(aww); 
    680680    char *name = GBT_read_string(GLOBAL_gb_main, AWAR_SPECIES_NAME); 
    681681    if (name && name[0]) { 
     
    996996    } 
    997997 
     998    ED4_LocalWinContext uses(aww); 
    998999    ED4_coords *coords = &current_ed4w()->coords; 
    9991000 
     
    12351236 
    12361237    switch (owner_of_cursor->get_area_level(0)) { 
    1237         case ED4_A_TOP_AREA: 
    1238             visible = 
    1239                 owner_of_cursor->is_visible(x1, 0, ED4_D_HORIZONTAL) || 
    1240                 owner_of_cursor->is_visible(x2, 0, ED4_D_HORIZONTAL); 
     1238        case ED4_A_TOP_AREA: { 
     1239            ED4_window *win = window(); 
     1240            visible =  
     1241                owner_of_cursor->is_visible(win, x1, 0, ED4_D_HORIZONTAL) || 
     1242                owner_of_cursor->is_visible(win, x2, 0, ED4_D_HORIZONTAL); 
    12411243            break; 
     1244        } 
    12421245        case ED4_A_MIDDLE_AREA: 
    1243             visible = owner_of_cursor->is_visible(x1, y1, x2, y2, ED4_D_ALL_DIRECTION); 
     1246            visible = owner_of_cursor->is_visible(window(), x1, y1, x2, y2, ED4_D_ALL_DIRECTION); 
    12441247            break; 
    12451248        default: 
     
    12511254 
    12521255void ED4_terminal::scroll_into_view(AW_window *aww) { // scroll y-position only 
     1256    ED4_LocalWinContext uses(aww); 
     1257 
    12531258    AW_pos termw_x, termw_y; 
    12541259    calc_world_coords(&termw_x, &termw_y); 
     
    15901595CursorPos *CursorPos::head = 0; 
    15911596 
    1592 void ED4_store_curpos(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) 
    1593 { 
    1594     GB_transaction dummy(GLOBAL_gb_main); 
    1595     ED4_ROOT->use_window(aww); 
    1596     ED4_cursor *cursor = &current_cursor(); 
     1597void ED4_store_curpos(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
     1598    GB_transaction       dummy(GLOBAL_gb_main); 
     1599    ED4_LocalWinContext  uses(aww); 
     1600    ED4_cursor          *cursor = &current_cursor(); 
     1601     
    15971602    if (!cursor->owner_of_cursor) { 
    15981603        aw_message("First you have to place the cursor."); 
    1599         return; 
    1600     } 
    1601  
    1602     new CursorPos(cursor->owner_of_cursor->to_terminal(), cursor->get_sequence_pos()); 
    1603 } 
    1604  
    1605 void ED4_restore_curpos(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) 
    1606 { 
    1607     GB_transaction dummy(GLOBAL_gb_main); 
    1608     ED4_ROOT->use_window(aww); 
    1609     ED4_cursor *cursor = &current_cursor(); 
     1604    } 
     1605    else { 
     1606        new CursorPos(cursor->owner_of_cursor->to_terminal(), cursor->get_sequence_pos()); 
     1607    } 
     1608} 
     1609 
     1610void ED4_restore_curpos(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
     1611    GB_transaction       dummy(GLOBAL_gb_main); 
     1612    ED4_LocalWinContext  uses(aww); 
     1613    ED4_cursor          *cursor = &current_cursor(); 
    16101614 
    16111615    CursorPos *pos = CursorPos::get_head(); 
     
    16281632   -------------------------------------------------------------------------------- */ 
    16291633 
    1630 void ED4_helix_jump_opposite(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) 
    1631 { 
    1632     GB_transaction  dummy(GLOBAL_gb_main); 
    1633     ED4_ROOT->use_window(aww); 
    1634     ED4_cursor     *cursor = &current_cursor(); 
     1634void ED4_helix_jump_opposite(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
     1635    GB_transaction       dummy(GLOBAL_gb_main); 
     1636    ED4_LocalWinContext  uses(aww); 
     1637    ED4_cursor          *cursor = &current_cursor(); 
    16351638 
    16361639    if (!cursor->owner_of_cursor) { 
     
    16521655} 
    16531656 
    1654 void ED4_change_cursor(AW_window * /* aww */, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
    1655     ED4_cursor *cursor = &current_cursor(); 
    1656     ED4_CursorType typ = cursor->getType(); 
     1657void ED4_change_cursor(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
     1658    ED4_LocalWinContext uses(aww); 
     1659    ED4_cursor     *cursor = &current_cursor(); 
     1660    ED4_CursorType  typ    = cursor->getType(); 
    16571661 
    16581662    cursor->changeType((ED4_CursorType)((typ+1)%ED4_CURSOR_TYPES)); 
  • branches/e4fix/EDIT4/ED4_dots.cxx

    r8193 r8275  
    9999 
    100100static void dot_missing_bases(AW_window *aww) { 
    101     ED4_window *ed4w     = current_ed4w(); 
    102     ED4_cursor *cursor   = &ed4w->cursor; 
     101    ED4_MostRecentWinContext context; 
     102 
     103    ED4_cursor *cursor   = &current_cursor(); 
    103104    ED4_base   *selected = cursor->owner_of_cursor; 
    104105 
     
    233234    static AW_window_simple *aws     = 0; 
    234235 
    235     ED4_ROOT->use_window(editor_window); 
     236    ED4_LocalWinContext uses(editor_window); 
    236237 
    237238    if (!aws) { 
  • branches/e4fix/EDIT4/ED4_edit_string.cxx

    r8193 r8275  
    772772                        } 
    773773                        case 'L': {  // CTRL-L = Refresh 
    774                             ED4_refresh_window(0, 0, 0); 
     774                            ED4_refresh_window(current_aww()); 
    775775                            cursor_jump = ED4_JUMP_CENTERED; 
    776776                            break; 
  • branches/e4fix/EDIT4/ED4_main.cxx

    r8274 r8275  
    321321} 
    322322 
     323void ED4_with_all_edit_windows(void (*cb)(ED4_window *)) { 
     324    for (ED4_window *win = ED4_ROOT->first_window; win; win = win->next) { 
     325        ED4_LocalWinContext uses(win); 
     326        cb(win); 
     327    } 
     328} 
     329 
     330static void redraw_cursor(ED4_window *win) { win->cursor.redraw(); } 
    323331static void ED4_edit_direction_changed(AW_root * /* awr */) { 
    324     current_cursor().redraw(); 
     332    ED4_with_all_edit_windows(redraw_cursor); 
    325333} 
    326334 
     
    554562 
    555563    ED4_ROOT->st_ml = STAT_create_ST_ML(GLOBAL_gb_main); 
    556     ED4_ROOT->sequence_colors = new AWT_seq_colors(AW_ROOT_DEFAULT, ED4_G_SEQUENCES, ED4_refresh_window, 0, 0); 
     564    ED4_ROOT->sequence_colors = new AWT_seq_colors(AW_ROOT_DEFAULT, ED4_G_SEQUENCES, (AW_CB)ED4_refresh_window, 0, 0); 
    557565 
    558566    ED4_ROOT->edk = new ed_key; 
     
    589597    { 
    590598        int found_config = 0; 
     599        ED4_LocalWinContext uses(ED4_ROOT->first_window); 
    591600 
    592601        if (config_name) 
     
    648657    AWT_install_postcb_cb(ED4_postcbcb); 
    649658    AWT_install_cb_guards(); 
     659    e4_assert(ED4_WinContext::dont_have_global_context()); // context shall be local 
    650660    ED4_ROOT->aw_root->main_loop(); // enter main-loop 
    651661 
  • branches/e4fix/EDIT4/ED4_manager.cxx

    r8274 r8275  
    905905} 
    906906 
     907static void update_scrolled_rectangles(ED4_window *win) { win->update_scrolled_rectangle(); } 
    907908ED4_returncode ED4_main_manager::resize_requested_by_parent() { 
    908909    if (update_info.resize) { 
    909910        ED4_manager::resize_requested_by_parent(); 
    910         current_ed4w()->update_scrolled_rectangle(); 
     911        ED4_with_all_edit_windows(update_scrolled_rectangles); 
    911912    } 
    912913    return ED4_R_OK; 
  • branches/e4fix/EDIT4/ED4_nds.cxx

    r8193 r8275  
    5959            aw_message_if(error); 
    6060        } 
    61         ED4_gc_is_modified(current_aww(), 0, 0); 
     61        ED4_gc_is_modified_cb(current_aww(), 0, 0); 
    6262    } 
    6363} 
  • branches/e4fix/EDIT4/ED4_no_class.cxx

    r8274 r8275  
    128128    static bool dummy = 0; 
    129129 
    130     ED4_ROOT->use_window(aww); 
     130    ED4_LocalWinContext uses(aww); 
    131131 
    132132    GB_push_transaction(GLOBAL_gb_main); 
     
    148148 
    149149void ED4_resize_cb(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    150     ED4_ROOT->use_window(aww); 
     150    ED4_LocalWinContext uses(aww); 
    151151 
    152152    GB_push_transaction(GLOBAL_gb_main); 
     
    367367    static int repeatCount; 
    368368 
    369     ED4_ROOT->use_window(aww); 
     369    ED4_LocalWinContext uses(aww); 
    370370 
    371371    aww->get_event(&event); 
     
    487487 
    488488void ED4_vertical_change_cb(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    489     ED4_ROOT->use_window(aww); 
     489    ED4_LocalWinContext uses(aww); 
    490490 
    491491    GB_push_transaction(GLOBAL_gb_main); 
     
    514514 
    515515void ED4_horizontal_change_cb(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    516     ED4_ROOT->use_window(aww); 
     516    ED4_LocalWinContext uses(aww); 
    517517 
    518518    GB_push_transaction(GLOBAL_gb_main); 
     
    541541 
    542542void ED4_scrollbar_change_cb(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    543     ED4_ROOT->use_window(aww); 
     543    ED4_LocalWinContext uses(aww); 
    544544 
    545545    GB_push_transaction(GLOBAL_gb_main); 
     
    583583    AW_event event; 
    584584 
    585     ED4_ROOT->use_window(aww); 
     585    ED4_LocalWinContext uses(aww); 
    586586 
    587587    aww->get_event(&event); 
     
    663663 
    664664void ED4_jump_to_cursor_position(AW_window *aww, AW_CL cl_awar_name, AW_CL cl_pos_type) { 
    665     const char   *awar_name = (const char *)cl_awar_name; 
    666     PositionType  posType   = (PositionType)cl_pos_type; 
    667     ED4_ROOT->use_window(aww); 
    668  
    669     ED4_cursor *cursor = &current_cursor(); 
    670     GB_ERROR    error  = 0; 
     665    const char          *awar_name = (const char *)cl_awar_name; 
     666    PositionType         posType   = (PositionType)cl_pos_type; 
     667    ED4_LocalWinContext  uses(aww); 
     668    ED4_cursor          *cursor    = &current_cursor(); 
     669    GB_ERROR             error     = 0; 
    671670 
    672671    long pos = aww->get_root()->awar(awar_name)->read_int(); 
     
    796795} 
    797796 
    798 void ED4_gc_is_modified(AW_window *aww, AW_CL cd1, AW_CL cd2)                       // callback if gc is modified 
    799 { 
    800     ED4_ROOT->use_window(aww); 
     797void ED4_gc_is_modified_cb(AW_window *aww, AW_CL cd1, AW_CL cd2) { 
     798    ED4_LocalWinContext uses(aww); 
    801799 
    802800    ED4_resize_cb(aww, cd1, cd2); 
     
    831829 
    832830void ED4_quit_editor(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
    833     ED4_ROOT->use_window(aww); 
     831    ED4_LocalWinContext uses(aww); 
    834832 
    835833    if (ED4_ROOT->first_window == current_ed4w()) { // quit button has been pressed in first window 
     
    839837    current_aww()->hide(); 
    840838    current_ed4w()->is_hidden = true; 
    841 } 
    842  
    843 void ED4_load_data(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    844     ED4_ROOT->use_window(aww); 
    845 } 
    846  
    847 void ED4_save_data(AW_window *aww, AW_CL /*cd1*/, AW_CL /*cd2*/) { 
    848     ED4_ROOT->use_window(aww); 
    849839} 
    850840 
     
    862852} 
    863853 
    864 void ED4_refresh_window(AW_window *aww, AW_CL cd_called_from_menu, AW_CL /* cd2 */) 
    865 { 
    866     GB_transaction dummy(GLOBAL_gb_main); 
    867  
    868     if (int(cd_called_from_menu)) { 
    869         ED4_ROOT->use_window(aww); 
    870     } 
     854void ED4_refresh_window(AW_window *aww) { 
     855    GB_transaction      dummy(GLOBAL_gb_main); // @@@ move down ? 
     856    ED4_LocalWinContext uses(aww); // @@@ move down ? 
    871857 
    872858    ED4_main_manager *mainman = ED4_ROOT->main_manager; 
     
    881867} 
    882868 
    883 void ED4_set_reference_species(AW_window *aww, AW_CL disable, AW_CL cd2) { 
     869void ED4_set_reference_species(AW_window *aww, AW_CL disable, AW_CL ) { 
     870    ED4_LocalWinContext uses(aww); 
    884871    GB_transaction dummy(GLOBAL_gb_main); 
    885872 
     
    922909    } 
    923910 
    924     ED4_refresh_window(aww, 0, cd2); 
     911    ED4_refresh_window(aww); 
    925912} 
    926913 
     
    964951} 
    965952 
    966 void ED4_toggle_detailed_column_stats(AW_window *aww, AW_CL, AW_CL) 
    967 { 
     953void ED4_toggle_detailed_column_stats(AW_window *aww, AW_CL, AW_CL) { 
    968954    while (!ED4_columnStat_terminal::threshold_is_set()) { 
    969955        ED4_set_col_stat_threshold(aww, 0, 0); 
    970956    } 
    971957 
     958    ED4_LocalWinContext uses(aww); 
    972959    ED4_cursor *cursor = &current_cursor(); 
    973960    if (!cursor->owner_of_cursor) { 
     
    11601147    GB_push_transaction(GLOBAL_gb_main); 
    11611148 
    1162     ED4_ROOT->use_window(use_as_main_window); 
     1149    ED4_LocalWinContext uses(use_as_main_window); 
    11631150 
    11641151    if (!use_field) { 
     
    14051392} 
    14061393 
    1407 void ED4_new_editor_window(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) 
    1408 { 
    1409     ED4_ROOT->use_window(aww); 
     1394void ED4_new_editor_window(AW_window *aww, AW_CL /* cd1 */, AW_CL /* cd2 */) { 
     1395    ED4_LocalWinContext uses(aww); 
    14101396 
    14111397    AW_device  *device; 
    14121398    ED4_window *new_window = 0; 
    14131399 
    1414     if (ED4_ROOT->generate_window(&device, &new_window) == ED4_R_BREAK)  // don't open more than five windows 
    1415         return; 
    1416  
    1417     ED4_ROOT->use_window(new_window); 
    1418  
    1419     new_window->set_scrolled_rectangle(ED4_ROOT->scroll_links.link_for_hor_slider, 
    1420                                        ED4_ROOT->scroll_links.link_for_ver_slider, 
    1421                                        ED4_ROOT->scroll_links.link_for_hor_slider, 
    1422                                        ED4_ROOT->scroll_links.link_for_ver_slider); 
    1423  
    1424     new_window->aww->show(); 
    1425     new_window->update_scrolled_rectangle(); 
    1426  
    1427     ED4_ROOT->use_window(aww); 
     1400    if (ED4_ROOT->generate_window(&device, &new_window) != ED4_R_BREAK) { 
     1401        ED4_LocalWinContext now_uses(new_window); 
     1402 
     1403        new_window->set_scrolled_rectangle(ED4_ROOT->scroll_links.link_for_hor_slider, 
     1404                                           ED4_ROOT->scroll_links.link_for_ver_slider, 
     1405                                           ED4_ROOT->scroll_links.link_for_hor_slider, 
     1406                                           ED4_ROOT->scroll_links.link_for_ver_slider); 
     1407 
     1408        new_window->aww->show(); 
     1409        new_window->update_scrolled_rectangle(); 
     1410    } 
    14281411} 
    14291412 
  • branches/e4fix/EDIT4/ED4_root.cxx

    r8238 r8275  
    3636#include <aw_root.hxx> 
    3737#include <aw_advice.hxx> 
     38#include "../WINDOW/aw_status.hxx" // @@@ hack - obsolete when EDIT4 status works like elsewhere 
    3839#include <arb_version.h> 
    3940#include <arb_file.h> 
     
    4344 
    4445AW_window *AWTC_create_island_hopping_window(AW_root *root, AW_CL); 
     46 
     47ED4_WinContext ED4_WinContext::current_context; 
    4548 
    4649ED4_returncode ED4_root::refresh_window_simple(int redraw) 
     
    7376} 
    7477 
    75 ED4_returncode ED4_root::refresh_all_windows(int redraw) 
    76 { 
    77     ED4_window *old_window = curr_ed4w(); 
    78  
     78ED4_returncode ED4_root::refresh_all_windows(int redraw) { 
    7979    last_window_reached = 0; 
    8080 
     
    9393    while (window) { 
    9494        if (!window->next) last_window_reached = 1; 
    95         use_window(window); 
     95        ED4_LocalWinContext uses(window); 
    9696        refresh_window_simple(redraw); 
    9797        window = window->next; 
    9898    } 
    99  
    100     use_window(old_window); 
    10199 
    102100    return (ED4_R_OK); 
     
    335333} 
    336334 
     335void ED4_window::announce_deletion(ED4_base *object) { 
     336    if (cursor.owner_of_cursor == object) { // about to delete owner_of_cursor 
     337        cursor.HideCursor(); 
     338        e4_assert(!cursor.owner_of_cursor); 
     339    } 
     340} 
    337341void ED4_root::announce_deletion(ED4_base *object) { 
    338342    // remove any links which might point to the object 
    339  
    340     ED4_cursor& cursor = curr_ed4w()->cursor; 
    341     if (cursor.owner_of_cursor == object) { // about to delete owner_of_cursor 
    342         cursor.HideCursor(); 
    343         e4_assert(cursor.owner_of_cursor != object); 
     343    // @@@ not triggered by kill_object() 
     344    for (ED4_window *win = first_window; win; win = win->next) { 
     345        ED4_LocalWinContext uses(win); 
     346        win->announce_deletion(object); 
    344347    } 
    345348} 
     
    527530    font_group.unregisterAll(); 
    528531    for (int f=ED4_G_FIRST_FONT; f<=ED4_G_LAST_FONT; f++) { 
    529         font_group.registerFont(curr_device(), f); 
     532        ED4_MostRecentWinContext context; 
     533        font_group.registerFont(current_device(), f); 
    530534    } 
    531535} 
     
    743747        new_window->aww->show(); 
    744748        new_window->update_scrolled_rectangle(); 
    745         ED4_refresh_window(new_window->aww, 0, 0); 
     749        ED4_refresh_window(new_window->aww); 
    746750        new_window = new_window->next; 
    747751    } 
     
    757761    // returns win-coordinates of area (defined by folding lines) which contains position x/y 
    758762    int                    x1, x2, y1, y2; 
    759     const AW_screen_area&  area_rect = curr_device()->get_area_size(); 
     763    const AW_screen_area&  area_rect = current_device()->get_area_size(); 
    760764 
    761765    x1 = area_rect.l; 
    762     for (const ED4_folding_line *flv=curr_ed4w()->get_vertical_folding(); ; flv = flv->get_next()) { 
     766    for (const ED4_folding_line *flv=current_ed4w()->get_vertical_folding(); ; flv = flv->get_next()) { 
    763767        if (flv) { 
    764768            x2 = int(flv->get_pos()); // @@@ use AW_INT ?  
     
    772776 
    773777        y1 = area_rect.t; 
    774         for (const ED4_folding_line *flh=curr_ed4w()->get_horizontal_folding(); ; flh = flh->get_next()) { 
     778        for (const ED4_folding_line *flh=current_ed4w()->get_horizontal_folding(); ; flh = flh->get_next()) { 
    775779            if (flh) { 
    776780                y2 = int(flh->get_pos()); // @@@ use AW_INT ?  
     
    807811 
    808812 
    809 void ED4_reload_helix_cb(AW_window *aww, AW_CL cd1, AW_CL cd2) { 
     813void ED4_reload_helix_cb(AW_window *aww) { 
    810814    const char *err = ED4_ROOT->helix->init(GLOBAL_gb_main); 
    811815    if (err) aw_message(err); 
    812     ED4_refresh_window(aww, cd1, cd2); 
    813 } 
    814  
    815  
    816 void ED4_reload_ecoli_cb(AW_window *aww, AW_CL cd1, AW_CL cd2) 
    817 { 
     816    ED4_refresh_window(aww); 
     817} 
     818 
     819 
     820void ED4_reload_ecoli_cb(AW_window *aww) { 
    818821    const char *err = ED4_ROOT->ecoli_ref->init(GLOBAL_gb_main); 
    819822    if (err) aw_message(err); 
    820     ED4_refresh_window(aww, cd1, cd2); 
     823    ED4_refresh_window(aww); 
    821824} 
    822825 
     
    10701073} 
    10711074 
    1072 void ED4_undo_redo(AW_window*, AW_CL undo_type) 
    1073 { 
     1075void ED4_undo_redo(AW_window *aww, AW_CL undo_type) { 
     1076    ED4_LocalWinContext uses(aww); 
    10741077    GB_ERROR error = GB_undo(GLOBAL_gb_main, (GB_UNDO_TYPE)undo_type); 
    10751078 
     
    10901093} 
    10911094 
    1092 void aw_clear_message_cb(AW_window *aww); 
    1093  
    1094 void ED4_clear_errors(AW_window*, AW_CL) 
    1095 { 
    1096     aw_clear_message_cb(current_aww()); 
     1095void ED4_clear_errors(AW_window *aww, AW_CL) { 
     1096    aw_clear_message_cb(aww); 
    10971097} 
    10981098 
     
    11581158} 
    11591159 
    1160 void ED4_set_protection(AW_window * /* aww */, AW_CL cd1, AW_CL /* cd2 */) { 
     1160void ED4_set_protection(AW_window *aww, AW_CL cd1, AW_CL /* cd2 */) { 
     1161    ED4_LocalWinContext uses(aww); 
    11611162    ED4_cursor *cursor = &current_cursor(); 
    11621163    GB_ERROR    error  = 0; 
     
    12721273    } 
    12731274 
    1274     ED4_refresh_window(aww, 1, 0); 
    1275 } 
    1276  
    1277 void ED4_menu_perform_block_operation(AW_window*, AW_CL type, AW_CL) { 
     1275    ED4_refresh_window(aww); 
     1276} 
     1277 
     1278void ED4_menu_perform_block_operation(AW_window */*aww*/, AW_CL type, AW_CL) { 
    12781279    ED4_perform_block_operation(ED4_blockoperation_type(type)); 
    12791280} 
     
    13861387    } 
    13871388 
     1389    ED4_LocalWinContext uses(*new_window); 
     1390     
    13881391    // each window has its own gc-manager 
    13891392    aw_gc_manager = AW_manage_GC(awmm,              // window 
     
    14671470 
    14681471    awmm->create_menu("Edit", "E", AWM_ALL); 
    1469     awmm->insert_menu_topic("refresh",     "Refresh [Ctrl-L]",           "f",  0, AWM_ALL, ED4_refresh_window,                   1, 0); 
     1472    awmm->insert_menu_topic("refresh",     "Refresh [Ctrl-L]",           "f", 0, AWM_ALL, (AW_CB)ED4_refresh_window,            0, 0); 
    14701473    awmm->insert_menu_topic("load_actual", "Load current species [GET]", "G", 0, AWM_ALL, ED4_get_and_jump_to_actual_from_menu, 0, 0); 
    14711474    awmm->insert_menu_topic("load_marked", "Load marked species",        "m", 0, AWM_ALL, ED4_get_marked_from_menu,             0, 0); 
    14721475    SEP________________________SEP; 
    1473     awmm->insert_menu_topic("refresh_ecoli",       "Reload Ecoli sequence",        "E", "ecoliref.hlp", AWM_ALL, ED4_reload_ecoli_cb,    0, 0); 
    1474     awmm->insert_menu_topic("refresh_helix",       "Reload Helix",                 "H", "helix.hlp",    AWM_ALL, ED4_reload_helix_cb,    0, 0); 
    1475     awmm->insert_menu_topic("helix_jump_opposite", "Jump helix opposite [Ctrl-J]", "J", 0,              AWM_ALL, ED4_helix_jump_opposite, 0, 0); 
     1476    awmm->insert_menu_topic("refresh_ecoli",       "Reload Ecoli sequence",        "E", "ecoliref.hlp", AWM_ALL, (AW_CB)ED4_reload_ecoli_cb, 0, 0); 
     1477    awmm->insert_menu_topic("refresh_helix",       "Reload Helix",                 "H", "helix.hlp",    AWM_ALL, (AW_CB)ED4_reload_helix_cb, 0, 0); 
     1478    awmm->insert_menu_topic("helix_jump_opposite", "Jump helix opposite [Ctrl-J]", "J", 0,              AWM_ALL, ED4_helix_jump_opposite,    0, 0); 
    14761479    SEP________________________SEP; 
    14771480 
     
    17211724 
    17221725    awmm->at("pos"); 
    1723     awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) curr_ed4w()->awar_path_for_cursor, AW_CL(ED4_POS_SEQUENCE)); 
    1724     awmm->create_input_field(curr_ed4w()->awar_path_for_cursor, 7); 
     1726    awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) current_ed4w()->awar_path_for_cursor, AW_CL(ED4_POS_SEQUENCE)); 
     1727    awmm->create_input_field(current_ed4w()->awar_path_for_cursor, 7); 
    17251728 
    17261729    awmm->at("ecoli"); 
    1727     awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) curr_ed4w()->awar_path_for_Ecoli, AW_CL(ED4_POS_ECOLI)); 
    1728     awmm->create_input_field(curr_ed4w()->awar_path_for_Ecoli, 6); 
     1730    awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) current_ed4w()->awar_path_for_Ecoli, AW_CL(ED4_POS_ECOLI)); 
     1731    awmm->create_input_field(current_ed4w()->awar_path_for_Ecoli, 6); 
    17291732 
    17301733    awmm->at("base"); 
    1731     awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) curr_ed4w()->awar_path_for_basePos, AW_CL(ED4_POS_BASE)); 
    1732     awmm->create_input_field(curr_ed4w()->awar_path_for_basePos, 6); 
     1734    awmm->callback((AW_CB)ED4_jump_to_cursor_position, (AW_CL) current_ed4w()->awar_path_for_basePos, AW_CL(ED4_POS_BASE)); 
     1735    awmm->create_input_field(current_ed4w()->awar_path_for_basePos, 6); 
    17331736 
    17341737    awmm->at("iupac"); 
    1735     awmm->callback((AW_CB)ED4_set_iupac, (AW_CL) curr_ed4w()->awar_path_for_IUPAC, AW_CL(0)); 
    1736     awmm->create_input_field(curr_ed4w()->awar_path_for_IUPAC, 4); 
     1738    awmm->callback((AW_CB)ED4_set_iupac, (AW_CL) current_ed4w()->awar_path_for_IUPAC, AW_CL(0)); 
     1739    awmm->create_input_field(current_ed4w()->awar_path_for_IUPAC, 4); 
    17371740 
    17381741    awmm->at("helixnr"); 
    1739     awmm->callback((AW_CB)ED4_set_helixnr, (AW_CL) curr_ed4w()->awar_path_for_helixNr, AW_CL(0)); 
    1740     awmm->create_input_field(curr_ed4w()->awar_path_for_helixNr, 5); 
     1742    awmm->callback((AW_CB)ED4_set_helixnr, (AW_CL) current_ed4w()->awar_path_for_helixNr, AW_CL(0)); 
     1743    awmm->create_input_field(current_ed4w()->awar_path_for_helixNr, 5); 
    17411744 
    17421745    // --------------------------- 
     
    19081911    // Buttons at left window border 
    19091912 
    1910     awmm->create_mode("edit/arrow.bitmap", "normal.hlp", AWM_ALL, (AW_CB)modes_cb, (AW_CL)0, (AW_CL)0); 
    1911     awmm->create_mode("edit/kill.bitmap",  "kill.hlp",   AWM_ALL, (AW_CB)modes_cb, (AW_CL)1, (AW_CL)0); 
    1912     awmm->create_mode("edit/mark.bitmap",  "mark.hlp",   AWM_ALL, (AW_CB)modes_cb, (AW_CL)2, (AW_CL)0); 
     1913    awmm->create_mode("edit/arrow.bitmap", "normal.hlp", AWM_ALL, (AW_CB)modes_cb, (AW_CL)ED4_SM_MOVE, (AW_CL)0); 
     1914    awmm->create_mode("edit/kill.bitmap",  "kill.hlp",   AWM_ALL, (AW_CB)modes_cb, (AW_CL)ED4_SM_KILL, (AW_CL)0); 
     1915    awmm->create_mode("edit/mark.bitmap",  "mark.hlp",   AWM_ALL, (AW_CB)modes_cb, (AW_CL)ED4_SM_MARK, (AW_CL)0); 
    19131916 
    19141917    FastAligner_create_variables(awmm->get_root(), props_db); 
     
    19241927    generate_window(&device, &new_window); 
    19251928 
     1929    ED4_LocalWinContext uses(new_window); 
     1930     
    19261931    ED4_calc_terminal_extentions(); 
    19271932 
  • branches/e4fix/EDIT4/ED4_search.cxx

    r8197 r8275  
    727727 
    728728    if (settings[type]->get_autoJump() && (action & DO_AUTO_JUMP)) { // auto jump 
     729        ED4_MostRecentWinContext context; 
    729730        ED4_cursor *cursor = &current_cursor(); 
    730         bool jumped = false; 
     731        bool        jumped = false; 
    731732 
    732733        if (cursor->owner_of_cursor && cursor->owner_of_cursor->is_sequence_terminal()) { 
     
    772773        bool old_update                        = ED4_update_global_cursor_awars_allowed; 
    773774        ED4_update_global_cursor_awars_allowed = false; 
    774         ED4_refresh_window(current_aww(), 0, 0); 
     775        ED4_ROOT->refresh_all_windows(0); 
    775776        ED4_update_global_cursor_awars_allowed = old_update; 
    776777    } 
     
    13411342} 
    13421343 
    1343 void ED4_search(AW_window * /* aww */, AW_CL searchDescriptor) 
    1344 { 
    1345     int direction; 
     1344void ED4_search(AW_window *aww , AW_CL searchDescriptor) { 
     1345    ED4_MostRecentWinContext context; 
     1346    int direction; // @@@ fix locals 
    13461347    ED4_SearchPositionType pattern; 
    13471348    int searchOnlyForShownPatterns; 
  • branches/e4fix/EDIT4/ED4_window.cxx

    r8237 r8275  
    106106 
    107107ED4_window *ED4_window::get_matching_ed4w(AW_window *aw) { 
     108    e4_assert(aw); 
     109     
    108110    ED4_window *window = ED4_ROOT->first_window; 
    109     while (window && window->aww != aw) window = window->next; 
     111    while (window && window->aww != aw) { 
     112        window = window->next; 
     113    } 
     114     
     115    e4_assert(window); // aw is not an edit-window 
    110116    return window; 
    111117} 
     
    336342 
    337343 
    338 void ED4_window::delete_window(ED4_window *window)  // delete from window list 
    339 { 
     344void ED4_window::delete_window(ED4_window *window) { 
     345    // delete from window list 
    340346    ED4_window *temp, *temp2; 
    341347 
     
    343349        temp = ED4_ROOT->first_window;                  // delete temp afterwards 
    344350        ED4_ROOT->first_window = ED4_ROOT->first_window->next; 
    345  
    346         if (no_of_windows > 1) { 
    347             ED4_ROOT->use_first_window(); 
    348         } 
    349351    } 
    350352    else { 
     
    357359 
    358360        temp2->next = temp->next; 
    359  
    360         ED4_ROOT->use_window(temp2); 
    361361    } 
    362362 
     
    370370 
    371371 
    372 ED4_window *ED4_window::insert_window(AW_window *new_aww) 
    373 { 
     372ED4_window *ED4_window::insert_window(AW_window *new_aww) { 
    374373    ED4_window *last, *temp; 
    375374 
     
    399398    new_aww->set_vertical_change_callback  (ED4_vertical_change_cb,   0, 0); 
    400399 
    401     ED4_ROOT->use_window(temp); 
    402400    ED4_ROOT->temp_gc = ED4_G_STANDARD; 
    403401 
  • branches/e4fix/EDIT4/EDB_root_bact.cxx

    r8160 r8275  
    168168    char       namebuffer[NAME_BUFFERSIZE]; 
    169169 
    170     device = ED4_ROOT->first_window->aww->get_device(AW_MIDDLE_AREA); 
     170    device = ED4_ROOT->first_window->get_device(); 
    171171 
    172172    if (alignment_flag == ED4_A_DEFAULT) { 
     
    577577    sequence_manager->children->append_member(sequence_info_terminal); 
    578578 
    579     device = ED4_ROOT->first_window->aww->get_device(AW_MIDDLE_AREA); 
     579    device = ED4_ROOT->first_window->get_device(); 
    580580    pixel_length = device->get_string_size(ED4_G_SEQUENCES, CONSENSUS,   0); 
    581581 
  • branches/e4fix/EDIT4/Makefile

    r8227 r8275  
    689689ED4_ProteinViewer.o: $(ARBHOME)/INCLUDE/Translate.hxx 
    690690 
     691ED4_root.o: ../WINDOW/aw_status.hxx 
    691692ED4_root.o: ed4_awars.hxx 
    692693ED4_root.o: ed4_block.hxx 
  • branches/e4fix/EDIT4/ed4_class.hxx

    r8274 r8275  
    689689    ED4_window *get_matching_ed4w(AW_window *aww); 
    690690 
     691    void announce_deletion(ED4_base *object); 
     692 
    691693    // functions concerned the scrolled area 
    692694    ED4_returncode      update_scrolled_rectangle(); 
     
    696698 
    697699    void update_window_coords(); 
     700 
     701    AW_device *get_device() const { return aww->get_device(AW_MIDDLE_AREA); } 
    698702 
    699703    ED4_window(AW_window *window); 
     
    10281032 
    10291033    ED4_returncode clear_whole_background();       // clear AW_MIDDLE_AREA 
    1030     bool is_visible(AW_pos x, AW_pos y, ED4_direction direction); 
    1031     bool is_visible(AW_pos x1, AW_pos y1, AW_pos x2, AW_pos y2, ED4_direction direction); 
     1034    bool is_visible(ED4_window *in_ed4w, AW_pos x, AW_pos y, ED4_direction direction); 
     1035    bool is_visible(ED4_window *in_ed4w, AW_pos x1, AW_pos y1, AW_pos x2, AW_pos y2, ED4_direction direction); 
    10321036 
    10331037    // functions concerned with links in the hierarchy 
     
    13811385        e4_assert(ew); 
    13821386        ed4w   = ew; 
    1383         device = ed4w->aww->get_device(AW_MIDDLE_AREA); 
    1384     } 
    1385  
    1386 public: 
     1387        device = ed4w->get_device(); 
     1388    } 
     1389 
     1390protected: 
    13871391    ED4_WinContext() : ed4w(0), device(0) {} 
    1388  
     1392    static ED4_WinContext current_context; 
     1393 
     1394public: 
    13891395    inline ED4_WinContext(AW_window *aww_); 
    13901396    ED4_WinContext(ED4_window *ed4w_) { init(ed4w_); } 
     
    13921398    AW_device *get_device() const { e4_assert(have_context()); return device; } 
    13931399    ED4_window *get_ed4w() const { e4_assert(have_context()); return ed4w; } 
    1394 }; 
     1400 
     1401    static const ED4_WinContext& get_current_context() { return current_context; } 
     1402    static bool dont_have_global_context() { return !current_context.have_context(); } 
     1403}; 
     1404 
     1405 
     1406inline AW_device *current_device() { return ED4_WinContext::get_current_context().get_device(); } 
     1407inline ED4_window *current_ed4w() { return ED4_WinContext::get_current_context().get_ed4w(); } 
     1408inline AW_window *current_aww() { return current_ed4w()->aww; } 
     1409inline ED4_cursor& current_cursor() { return current_ed4w()->cursor; } 
    13951410 
    13961411class ED4_root : virtual Noncopyable { 
     
    13991414    ED4_returncode refresh_window_simple(int redraw); 
    14001415 
    1401     ED4_WinContext  context; 
    1402     ED4_window     *most_recently_used_window; 
     1416    ED4_window *most_recently_used_window; 
    14031417 
    14041418public: 
     
    14411455    AW_font_group            font_group; 
    14421456 
    1443     void use_window(AW_window *aww) { context = ED4_WinContext(aww); } 
    1444     void use_window(ED4_window *ed4w) { context = ED4_WinContext(ed4w); } 
    1445     void use_first_window() { use_window(first_window); } 
    1446  
    1447     AW_device *curr_device() const { return context.get_device(); } 
    1448     ED4_window *curr_ed4w() const { return context.get_ed4w(); } 
    1449     AW_window *curr_aww() const { return context.get_ed4w()->aww; } 
    1450  
    14511457    void announce_useraction_in(AW_window *aww); 
    14521458    ED4_window *get_most_recently_used_window() const { return most_recently_used_window; } 
     
    14851491}; 
    14861492 
    1487 inline AW_window *current_aww() { return ED4_ROOT->curr_aww(); } 
    1488 inline AW_device *current_device() { return ED4_ROOT->curr_device(); } 
    1489 inline ED4_window *current_ed4w() { return ED4_ROOT->curr_ed4w(); } 
    1490 inline ED4_cursor& current_cursor() { return current_ed4w()->cursor; } 
    1491  
    1492 ED4_WinContext::ED4_WinContext(AW_window *aww_) { 
    1493     init(ED4_ROOT->first_window->get_matching_ed4w(aww_)); 
    1494 } 
     1493ED4_WinContext::ED4_WinContext(AW_window *aww_) { init(ED4_ROOT->first_window->get_matching_ed4w(aww_)); } 
     1494 
     1495class ED4_LocalWinContext : private ED4_WinContext { 
     1496public: 
     1497    ED4_LocalWinContext(AW_window *aww) : ED4_WinContext(current_context) { current_context = ED4_WinContext(aww); } 
     1498    ED4_LocalWinContext(ED4_window *ew) : ED4_WinContext(current_context) { current_context = ED4_WinContext(ew); } 
     1499    ~ED4_LocalWinContext() { current_context = *this; } 
     1500}; 
     1501 
     1502class ED4_MostRecentWinContext : virtual Noncopyable {  
     1503    ED4_LocalWinContext *most_recent; 
     1504public: 
     1505    ED4_MostRecentWinContext() : most_recent(0) { 
     1506        if (ED4_WinContext::dont_have_global_context()) { 
     1507            most_recent = new ED4_LocalWinContext(ED4_ROOT->get_most_recently_used_window()); 
     1508        } 
     1509    } 
     1510    ~ED4_MostRecentWinContext() { 
     1511        delete most_recent; 
     1512    } 
     1513}; 
     1514 
    14951515 
    14961516// ------------------------ 
     
    20762096extern      ST_ML *st_ml; 
    20772097 
     2098void ED4_with_all_edit_windows(void (*cb)(ED4_window *)); 
     2099 
    20782100void ED4_expose_cb(AW_window *aww, AW_CL cd1, AW_CL cd2); 
    20792101void ED4_expose_all_windows(); 
     
    20862108void ED4_remote_event(AW_event *faked_event); 
    20872109 
    2088 void        ED4_gc_is_modified      (AW_window *aww, AW_CL cd1, AW_CL cd2); 
    2089 void        ED4_quit            (AW_window *aww, AW_CL cd1, AW_CL cd2); 
     2110void        ED4_gc_is_modified_cb(AW_window *aww, AW_CL cd1, AW_CL cd2); 
     2111void        ED4_quit(AW_window *aww, AW_CL cd1, AW_CL cd2); 
    20902112 
    20912113void        ED4_motion_cb           (AW_window *aww, AW_CL cd1, AW_CL cd2); 
     
    21202142 
    21212143void        ED4_quit_editor         (AW_window *aww, AW_CL cd1, AW_CL cd2);                 // Be Careful: Is this the last window? 
    2122 void        ED4_load_data           (AW_window *aww, AW_CL cd1, AW_CL cd2); 
    2123 void        ED4_save_data           (AW_window *aww, AW_CL cd1, AW_CL cd2); 
    2124 void        ED4_refresh_window      (AW_window *aww, AW_CL cd1, AW_CL cd2); 
     2144void        ED4_refresh_window      (AW_window *aww); 
    21252145 
    21262146void        ED4_store_curpos        (AW_window *aww, AW_CL cd1, AW_CL cd2); 
     
    21852205 
    21862206 
     2207 
  • branches/e4fix/WINDOW/AW_status.cxx

    r8036 r8275  
    746746} 
    747747 
    748 void aw_clear_message_cb(AW_window *aww) 
    749 { 
    750     int i; 
     748void aw_clear_message_cb(AW_window *aww) { 
    751749    AW_root *awr = aww->get_root(); 
    752     for (i = 0; i< AW_MESSAGE_LINES; i++) freenull(aw_stg.lines[i]); 
     750    for (int i = 0; i< AW_MESSAGE_LINES; i++) freenull(aw_stg.lines[i]); 
    753751    awr->awar(AWAR_ERROR_MESSAGES)->write_string(""); 
    754752} 
  • branches/e4fix/WINDOW/aw_status.hxx

    r7186 r8275  
    2525void aw_closestatus();                 // hide status 
    2626 
     27// special for EDIT4 (obsolete - nobody listens to EDIT4-errors) 
     28void aw_clear_message_cb(AW_window *aww); 
     29 
    2730#else 
    2831#error aw_status.hxx included twice