📄 pagewalk.cpp
字号:
voidprocess_selected_words ( //process wordsBLOCK_LIST * block_list, //blocks to check //function to callBOX & selection_box, BOOL8 word_processor (BLOCK *,ROW *,WERD *)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; WERD_IT word_it; WERD *word; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (block->bounding_box ().overlap (selection_box)) { row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (row->bounding_box ().overlap (selection_box)) { word_it.set_to_list (row->word_list ()); for (word_it.mark_cycle_pt (); !word_it.cycled_list (); word_it.forward ()) { word = word_it.data (); if (word->bounding_box ().overlap (selection_box)) { if (!word_processor (block, row, word) || selection_quit) return; } } } } } }}/********************************************************************** * process_all_words_it() PASS ITERATORS * * Walk the current block list applying the specified word processor function * to all words **********************************************************************/voidprocess_all_words_it ( //process wordsBLOCK_LIST * block_list, //blocks to checkBOOL8 word_processor ( //function to callBLOCK *,ROW *,WERD *,BLOCK_IT &,ROW_IT &, WERD_IT &)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; WERD_IT word_it; WERD *word; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); word_it.set_to_list (row->word_list ()); for (word_it.mark_cycle_pt (); !word_it.cycled_list (); word_it.forward ()) { word = word_it.data (); if (!word_processor (block, row, word, block_it, row_it, word_it) || selection_quit) return; } } }}/********************************************************************** * process_selected_words_it() PASS ITERATORS * * Walk the current block list applying the specified word processor function * to each word selected. **********************************************************************/voidprocess_selected_words_it ( //process wordsBLOCK_LIST * block_list, //blocks to check //function to callBOX & selection_box, BOOL8 word_processor (BLOCK*,ROW *,WERD*,BLOCK_IT&,ROW_IT&,WERD_IT&)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; WERD_IT word_it; WERD *word; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (block->bounding_box ().overlap (selection_box)) { row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (row->bounding_box ().overlap (selection_box)) { word_it.set_to_list (row->word_list ()); for (word_it.mark_cycle_pt (); !word_it.cycled_list (); word_it.forward ()) { word = word_it.data (); if (word->bounding_box ().overlap (selection_box)) { if (!word_processor (block, row, word, block_it, row_it, word_it) || selection_quit) return; } } } } } }}/********************************************************************** * process_all_blocks() * * Walk the current block list applying the specified block processor function * to each block. **********************************************************************/voidprocess_all_blocks ( //process blocksBLOCK_LIST * block_list, //blocks to checkBOOL8 block_processor ( //function to callBLOCK *)) { BLOCK_IT block_it(block_list); BLOCK *block; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (!block_processor (block) || selection_quit) return; }}/********************************************************************** * process_selected_blocks() * * Walk the current block list applying the specified block processor function * to each block selected. **********************************************************************/voidprocess_selected_blocks ( //process blocksBLOCK_LIST * block_list, //blocks to check //function to callBOX & selection_box, BOOL8 block_processor (BLOCK*)) { BLOCK_IT block_it(block_list); BLOCK *block; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (block->bounding_box ().overlap (selection_box)) { if (!block_processor (block) || selection_quit) return; } }}/********************************************************************** * process_all_rows() * * Walk the current block list applying the specified row processor function * to all rows **********************************************************************/voidprocess_all_rows ( //process wordsBLOCK_LIST * block_list, //blocks to checkBOOL8 row_processor ( //function to callBLOCK *, ROW *)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (!row_processor (block, row) || selection_quit) return; } }}/********************************************************************** * process_selected_rows() * * Walk the current block list applying the specified row processor function * to each row selected. **********************************************************************/voidprocess_selected_rows ( //process rowsBLOCK_LIST * block_list, //blocks to check //function to callBOX & selection_box, BOOL8 row_processor (BLOCK *,ROW *)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (block->bounding_box ().overlap (selection_box)) { row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (row->bounding_box ().overlap (selection_box)) { if (!row_processor (block, row) || selection_quit) return; } } } }}/********************************************************************** * process_all_rows_it() PASS ITERATORS * * Walk the current block list applying the specified row processor function * to all rows **********************************************************************/voidprocess_all_rows_it ( //process wordsBLOCK_LIST * block_list, //blocks to checkBOOL8 row_processor ( //function to callBLOCK *,ROW *, BLOCK_IT &, ROW_IT &)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (!row_processor (block, row, block_it, row_it) || selection_quit) return; } }}/********************************************************************** * process_selected_rows_it() PASS ITERATORS * * Walk the current block list applying the specified row processor function * to each row selected. **********************************************************************/voidprocess_selected_rows_it ( //process rowsBLOCK_LIST * block_list, //blocks to check //function to callBOX & selection_box, BOOL8 row_processor (BLOCK *,ROW *,BLOCK_IT&,ROW_IT&)) { BLOCK_IT block_it(block_list); BLOCK *block; ROW_IT row_it; ROW *row; for (block_it.mark_cycle_pt (); !block_it.cycled_list (); block_it.forward ()) { block = block_it.data (); if (block->bounding_box ().overlap (selection_box)) { row_it.set_to_list (block->row_list ()); for (row_it.mark_cycle_pt (); !row_it.cycled_list (); row_it.forward ()) { row = row_it.data (); if (row->bounding_box ().overlap (selection_box)) { if (!row_processor (block, row, block_it, row_it) || selection_quit) return; } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -