void FrameKit::InitViewer () { Catalog* catalog = unidraw->GetCatalog(); const char* page_w = catalog->GetAttribute(page_width_attrib); const char* page_h = catalog->GetAttribute(page_height_attrib); const char* page_cols = catalog->GetAttribute(page_cols_attrib); const char* page_rows = catalog->GetAttribute(page_rows_attrib); const char* x_incr = catalog->GetAttribute(grid_x_incr); const char* y_incr = catalog->GetAttribute(grid_y_incr); GraphicView* view = (GraphicView*)((FrameEditor*)_ed)->_comp->Create(COMPONENT_VIEW); ((FrameEditor*)_ed)->_comp->Attach(view); view->Update(); Style* style = Session::instance()->style(); boolean bookgeom = style->value_is_on("bookgeom"); float w = bookgeom ? 700 : Math::round(atof(page_w) * ivinches); float h = bookgeom ? 906 : Math::round(atof(page_h) * ivinches); if (page_cols && page_rows) { int ncols = atoi(page_cols); int nrows = atoi(page_rows); if (ncols>0 && nrows>0) { w = ncols; h = nrows; } } OverlayPage* page = new OverlayPage(w, h); Grid* grid = new Grid(w, h, atof(x_incr), atof(y_incr)); grid->Visibility(false); if (!bookgeom) ((FrameEditor*)_ed)->_viewer = new FrameViewer(_ed, view, page, grid); else ((FrameEditor*)_ed)->_viewer = new FrameViewer(_ed, view, page, grid, (int) h+1, (int) w+1, Rotated); }