/////////////////////////////////////////////////////////////////////// // File: pgedit.h // Description: Page structure file editor // Author: Joern Wanke // Created: Wed Jul 18 10:05:01 PDT 2007 // // (C) Copyright 2007, Google Inc. // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // /////////////////////////////////////////////////////////////////////// #ifndef PGEDIT_H #define PGEDIT_H #include "ocrblock.h" #include "ocrrow.h" #include "werd.h" #include "rect.h" #include "pagewalk.h" #include "varable.h" #include "notdll.h" #include "tesseractclass.h" class ScrollView; class SVMenuNode; struct SVEvent; // A small event handler class to process incoming events to // this window. class PGEventHandler : public SVEventHandler { public: PGEventHandler(tesseract::Tesseract* tess) : tess_(tess) { } void Notify(const SVEvent* sve); private: tesseract::Tesseract* tess_; }; extern BLOCK_LIST *current_block_list; extern BOOL8 *current_image_changed; extern STRING_VAR_H (editor_image_win_name, "EditorImage", "Editor image window name"); extern INT_VAR_H (editor_image_xpos, 590, "Editor image X Pos"); extern INT_VAR_H (editor_image_ypos, 10, "Editor image Y Pos"); extern INT_VAR_H (editor_image_height, 680, "Editor image height"); extern INT_VAR_H (editor_image_width, 655, "Editor image width"); extern INT_VAR_H (editor_image_word_bb_color, BLUE, "Word bounding box colour"); extern INT_VAR_H (editor_image_blob_bb_color, YELLOW, "Blob bounding box colour"); extern INT_VAR_H (editor_image_text_color, WHITE, "Correct text colour"); extern STRING_VAR_H (editor_dbwin_name, "EditorDBWin", "Editor debug window name"); extern INT_VAR_H (editor_dbwin_xpos, 50, "Editor debug window X Pos"); extern INT_VAR_H (editor_dbwin_ypos, 500, "Editor debug window Y Pos"); extern INT_VAR_H (editor_dbwin_height, 24, "Editor debug window height"); extern INT_VAR_H (editor_dbwin_width, 80, "Editor debug window width"); extern STRING_VAR_H (editor_word_name, "BlnWords", "BL normalised word window"); extern INT_VAR_H (editor_word_xpos, 60, "Word window X Pos"); extern INT_VAR_H (editor_word_ypos, 510, "Word window Y Pos"); extern INT_VAR_H (editor_word_height, 240, "Word window height"); extern INT_VAR_H (editor_word_width, 655, "Word window width"); extern double_VAR_H (editor_smd_scale_factor, 1.0, "Scaling for smd image"); void add_word( //to block list WERD *word, //word to be added ROW *src_row, //source row BLOCK *src_block, //source block BLOCK_LIST *dest_block_list //add to this ); ScrollView* bln_word_window_handle(); //return handle void build_image_window(TBOX page_bounding_box); void display_bln_lines(ScrollView window, ScrollView::Color colour, float scale_factor, float y_offset, float minx, float maxx); //function to call void do_re_display (BOOL8 word_painter ( BLOCK *, ROW *, WERD *)); const TBOX do_tidy_cmd(); //tidy void do_view_cmd(); void do_write_file( //serialise char *name //file name ); void pgeditor_msg( //message display const char *msg); void pgeditor_show_point( //display coords SVEvent *event); void pgeditor_write_file( //serialise char *name, //file name BLOCK_LIST *blocks //block list to write ); //put bln word in box float re_scale_and_move_bln_word(WERD *norm_word, //BL normalised word const TBOX &box //destination box ); void re_segment_word( //break/join words BLOCK_LIST *block_list, //blocks to check TBOX &selection_box); void block_space_stat( //show space stats BLOCK_LIST *block_list, //blocks to check TBOX &selection_box); void row_space_stat( //show space stats BLOCK_LIST *block_list, //blocks to check TBOX &selection_box); void show_point( //display posn of bloba word BLOCK_LIST *block_list, //blocks to check float x, float y); //display a word BOOL8 word_blank_and_set_display(BLOCK *block, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_bln_display( //bln & display BLOCK *, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_change_text( //change correct text BLOCK *block, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_copy( //copy a word BLOCK *block, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_delete( //delete a word BLOCK *block, //block holding word ROW *row, //row holding word WERD *word, //word to be processed BLOCK_IT &block_it, //block list iterator ROW_IT &row_it, //row list iterator WERD_IT &word_it //word list iterator ); BOOL8 word_display( // display a word BLOCK *, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_dumper( //dump word BLOCK *block, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_set_display( //display a word BLOCK *block, //block holding word ROW *row, //row holding word WERD *word //word to be processed ); BOOL8 word_toggle_seg( //toggle seg flag BLOCK *, //block holding word ROW *, //row holding word WERD *word //word to be processed ); void do_check_mem( //do it inT32 level); #endif