Changeset 34:2cb1fc37f742 in glemon-0.x for graph_displayer_canvas-event.cc
- Timestamp:
- 07/15/05 23:17:18 (20 years ago)
- Branch:
- gui
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk/gui@2061
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
graph_displayer_canvas-event.cc
r33 r34 14 14 void GraphDisplayerCanvas::changeEditorialTool(int newtool) 15 15 { 16 actual_handler.disconnect(); 17 18 if(actual_tool==CREATE_EDGE) 16 if(actual_tool!=newtool) 19 17 { 20 GdkEvent * generated=new GdkEvent(); 21 generated->type=GDK_BUTTON_RELEASE; 22 generated->button.button=3; 23 createEdgeEventHandler(generated); 24 } 25 26 actual_tool=newtool; 27 28 active_item=NULL; 29 target_item=NULL; 30 active_edge=INVALID; 31 active_node=INVALID; 32 33 switch(newtool) 34 { 35 case MOVE: 36 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false); 37 break; 38 39 case CREATE_NODE: 40 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createNodeEventHandler), false); 41 break; 42 43 case CREATE_EDGE: 44 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createEdgeEventHandler), false); 45 break; 46 47 case ERASER: 48 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::eraserEventHandler), false); 49 break; 50 51 case EDGE_MAP_EDIT: 52 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::edgeMapEditEventHandler), false); 53 break; 54 55 case NODE_MAP_EDIT: 56 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::nodeMapEditEventHandler), false); 57 break; 58 59 default: 60 break; 18 19 actual_handler.disconnect(); 20 21 switch(actual_tool) 22 { 23 case CREATE_EDGE: 24 { 25 GdkEvent * generated=new GdkEvent(); 26 generated->type=GDK_BUTTON_RELEASE; 27 generated->button.button=3; 28 createEdgeEventHandler(generated); 29 break; 30 } 31 case EDGE_MAP_EDIT: 32 break; 33 default: 34 break; 35 } 36 37 active_item=NULL; 38 target_item=NULL; 39 active_edge=INVALID; 40 active_node=INVALID; 41 42 43 actual_tool=newtool; 44 45 switch(newtool) 46 { 47 case MOVE: 48 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::moveEventHandler), false); 49 break; 50 51 case CREATE_NODE: 52 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createNodeEventHandler), false); 53 break; 54 55 case CREATE_EDGE: 56 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::createEdgeEventHandler), false); 57 break; 58 59 case ERASER: 60 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::eraserEventHandler), false); 61 break; 62 63 case EDGE_MAP_EDIT: 64 grab_focus(); 65 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::edgeMapEditEventHandler), false); 66 break; 67 68 case NODE_MAP_EDIT: 69 actual_handler=signal_event().connect(sigc::mem_fun(*this, &GraphDisplayerCanvas::nodeMapEditEventHandler), false); 70 break; 71 72 default: 73 break; 74 } 61 75 } 62 76 } … … 493 507 switch(e->type) 494 508 { 509 case GDK_KEY_PRESS: 510 { 511 std::cout << "Any button was pressed" << std::endl; 512 switch(((GdkEventKey*)e)->keyval) 513 { 514 case GDK_A: 515 std::cout << "A button was pressed" << std::endl; 516 break; 517 default: 518 break; 519 } 520 521 break; 522 } 495 523 case GDK_BUTTON_PRESS: 496 window_to_world (e->button.x, e->button.y, clicked_x, clicked_y); 497 active_item=(get_item_at(clicked_x, clicked_y)); 498 active_edge=INVALID; 499 for (EdgeIt i(g); i!=INVALID; ++i) 500 { 501 if(edgesmap[i]==active_item) 502 { 503 active_edge=i; 504 } 505 } 506 if((active_edge!=INVALID)&&(edgetextmap[active_edge]->property_text().get_value()!="")) 507 { 508 if(canvasentrywidget) 509 { 510 delete(canvasentrywidget); 511 } 512 entrywidget.show(); 513 entrywidget.set_text(edgetextmap[active_edge]->property_text().get_value()); 514 xy<double> entry_coos; 515 entry_coos.x=(edgetextmap[active_edge])->property_x().get_value(); 516 entry_coos.x-=edgetextmap[active_edge]->property_text_width().get_value()/2; 517 entry_coos.y=(edgetextmap[active_edge])->property_y().get_value(); 518 entry_coos.y-=edgetextmap[active_edge]->property_text_height().get_value()*1.5/2; 519 canvasentrywidget=new Gnome::Canvas::Widget(displayed_graph, entry_coos.x, entry_coos.y, entrywidget); 520 canvasentrywidget->property_width().set_value(edgetextmap[active_edge]->property_text_width().get_value()*1.5); 521 canvasentrywidget->property_height().set_value(edgetextmap[active_edge]->property_text_height().get_value()*1.5); 522 } 523 break; 524 { 525 window_to_world (e->button.x, e->button.y, clicked_x, clicked_y); 526 active_item=(get_item_at(clicked_x, clicked_y)); 527 Graph::EdgeIt clicked_edge=INVALID; 528 for (EdgeIt i(g); i!=INVALID; ++i) 529 { 530 if(edgesmap[i]==active_item) 531 { 532 clicked_edge=i; 533 } 534 } 535 if(clicked_edge!=INVALID) 536 { 537 if(edgetextmap[clicked_edge]->property_text().get_value()!="") 538 { 539 active_edge=clicked_edge; 540 if(canvasentrywidget) 541 { 542 delete(canvasentrywidget); 543 } 544 entrywidget.show(); 545 entrywidget.set_text(edgetextmap[active_edge]->property_text().get_value()); 546 xy<double> entry_coos; 547 entry_coos.x=(edgetextmap[active_edge])->property_x().get_value(); 548 entry_coos.x-=edgetextmap[active_edge]->property_text_width().get_value()/2; 549 entry_coos.y=(edgetextmap[active_edge])->property_y().get_value(); 550 entry_coos.y-=edgetextmap[active_edge]->property_text_height().get_value()*1.5/2; 551 canvasentrywidget=new Gnome::Canvas::Widget(displayed_graph, entry_coos.x, entry_coos.y, entrywidget); 552 canvasentrywidget->property_width().set_value(edgetextmap[active_edge]->property_text_width().get_value()*1.5); 553 canvasentrywidget->property_height().set_value(edgetextmap[active_edge]->property_text_height().get_value()*1.5); 554 } 555 } 556 else 557 { 558 //mentse el -> problema, hogy nem tudja melyik map-be 559 entrywidget.hide(); 560 } 561 break; 562 } 524 563 default: 525 564 break; … … 530 569 bool GraphDisplayerCanvas::nodeMapEditEventHandler(GdkEvent* e) 531 570 { 571 e=e; 572 return false; 573 } 574 575 bool GraphDisplayerCanvas::entryWidgetChangeHandler(GdkEvent* e) 576 { 577 Glib::ustring mapvalue = entrywidget.get_text(); 578 std::cout << mapvalue << std::endl; 532 579 e=e; 533 580 return false;
Note: See TracChangeset
for help on using the changeset viewer.