void Browser::gotoByteMarkOffsetCB(Widget w, XtPointer client, XtPointer) { Browser *browser = (Browser *)client; XmTextPosition pos; theIBMApplication->setBusyCursor(TRUE); char *str = XmTextGetString(w); if(STRLEN(str) > 0) { pos = atoi(str) + browser->marker_pos; } else { theIBMApplication->setBusyCursor(FALSE); return; } if(!(pos >= browser->page_start) && (pos < (browser->page_start + browser->page_size)) ) { browser->page_start = browser->marker_pos - browser->page_size/2; if(browser->page_start + browser->page_size > browser->file_size) browser->page_start = browser->file_size - browser->page_size; /*if(browser->page_start < 0) browser->page_start = 0;*/ browser->loadBuffer(browser->page_start); } pos = pos - browser->page_start; XmTextShowPosition(browser->text, pos); XmTextSetInsertionPosition(browser->text, pos); theIBMApplication->setBusyCursor(FALSE); }