Changeset 87:b44281e4cca7 in glemon-0.x
- Timestamp:
- 11/04/05 20:07:15 (19 years ago)
- Branch:
- gui
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2309
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
graph_displayer_canvas-event.cc
r72 r87 309 309 active_item=NULL; 310 310 active_node=INVALID; 311 312 311 break; 313 312 default: -
graph_displayer_canvas-zoom.cc
r59 r87 17 17 void GraphDisplayerCanvas::zoomFit() 18 18 { 19 updateScrollRegion(); 20 19 21 // get the height and width of the canvas 20 22 Gtk::Allocation a = get_allocation(); 21 23 int aw = a.get_width(); 22 24 int ah = a.get_height(); 23 // add some space24 aw -= 5; if (aw < 0) aw = 0;25 ah -= 5; if (ah < 0) ah = 0;26 25 27 26 // get the bounding box of the graph 28 double wx1, wy1, wx2, wy2;29 Gnome::Canvas::Item* pCanvasItem = root();30 pCanvasItem->get_bounds(wx1, wy1, wx2, wy2);27 update_now(); 28 double x1, y1, x2, y2; 29 root()->get_bounds(x1, y1, x2, y2); 31 30 32 31 // fit the graph to the window 33 double ppu1 = (double) aw / fabs( wx2 - wx1);34 double ppu2 = (double) ah / fabs( wy2 - wy1);32 double ppu1 = (double) aw / fabs(x2 - x1); 33 double ppu2 = (double) ah / fabs(y2 - y1); 35 34 set_pixels_per_unit((ppu1 < ppu2) ? ppu1 : ppu2); 36 35 } … … 38 37 void GraphDisplayerCanvas::zoom100() 39 38 { 39 updateScrollRegion(); 40 40 set_pixels_per_unit(1.0); 41 41 } … … 43 43 void GraphDisplayerCanvas::updateScrollRegion() 44 44 { 45 double wx1, wy1, wx2, wy2; 46 Gnome::Canvas::Item* pCanvasItem = root(); 47 pCanvasItem->get_bounds(wx1, wy1, wx2, wy2); 48 set_scroll_region(wx1, wy1, wx2, wy2); 45 // get_bounds() yields something sane only when no updates are pending 46 // and it returns a sufficient, not an exact bounding box 47 update_now(); 48 double x1, y1, x2, y2; 49 root()->get_bounds(x1, y1, x2, y2); 50 set_scroll_region(x1, y1, x2, y2); 49 51 } -
main_win.cc
r82 r87 128 128 add_accel_group(uim->get_accel_group()); 129 129 130 /*131 " <menuitem action='ViewZoomFit' />"132 " <toolitem action='ViewZoomFit' />"133 */134 135 130 try 136 131 { … … 151 146 " <menuitem action='ViewZoomOut' />" 152 147 " <menuitem action='ViewZoom100' />" 148 " <menuitem action='ViewZoomFit' />" 153 149 " </menu>" 154 150 " <menu action='ShowMenu'>" … … 165 161 " <toolitem action='ViewZoomOut' />" 166 162 " <toolitem action='ViewZoom100' />" 163 " <toolitem action='ViewZoomFit' />" 167 164 " <separator />" 168 165 " <toolitem action='MoveItem' />" … … 198 195 199 196 Gtk::ScrolledWindow* pScrolledWindow = manage(new Gtk::ScrolledWindow()); 197 pScrolledWindow->set_shadow_type(Gtk::SHADOW_IN); 200 198 pScrolledWindow->add(gd_canvas); 201 199 vbox.pack_start(*pScrolledWindow);
Note: See TracChangeset
for help on using the changeset viewer.