(empty message)
[qanava.git] / tests / layout / canMainWindow.ui.h
blob635649872bcdeeaa7b27db9b486c8195e1e3e391
1 /****************************************************************************
2 ** ui.h extension file, included from the uic-generated form implementation.
3 **
4 ** If you wish to add, delete or rename functions or slots use
5 ** Qt Designer which will update this file, preserving your code. Create an
6 ** init() function in place of a constructor, and a destroy() function in
7 ** place of a destructor.
8 *****************************************************************************/
11 void MainWindow::init()
13 // Create canvas
14 _canvas = new qan::can::Canvas( 300, 150 );
15 _canvas->setBackgroundColor( QColor( 255, 255, 255 ) );
18 // Add a canvas view
19 _canvasView = new qan::can::CanvasView( *_canvas, _frame, "niCanvasView" );
20 QVBoxLayout *vbox = new QVBoxLayout( _frame );
21 vbox->addWidget( _canvasView );
22 connect( _sldZoom, SIGNAL( valueChanged(int) ), _canvasView, SLOT( setZoom(int) ) );
25 // Create a graph
26 _graph = new qan::la::Graph( );
29 // Create a graphical view for the graph on the canvas
30 _graphView = new qan::can::GraphViewImpl( *_canvas, *_graph );
32 qan::can::AdvStyle* blueNode = new qan::can::AdvStyle( "bluenode" );
33 blueNode->addImage( "backimage", "images/gradblue.png" );
34 blueNode->addColor( "bordercolor", 0, 0, 0 );
36 qan::can::AdvStyle* greenNode = new qan::can::AdvStyle( "greennode" );
37 greenNode->addImage( "backimage", "images/gradgreen.png" );
38 greenNode->addColor( "bordercolor", 50, 100, 200 );
40 qan::can::AdvStyle* orangeNode = new qan::can::AdvStyle( "centernode" );
41 orangeNode->addImage( "backimage", "images/gradorange.png" );
42 orangeNode->addColor( "bordercolor", 50, 100, 200 );
43 orangeNode->addValue( "fontsize", 12 );
47 qan::la::Node* center = new qan::la::Node( "<b>Center</b>" );
48 _graph->registerNode( *center );
49 _graph->addRoot( *center );
50 _graphView->getStyleManager( ).setStyle( center, *orangeNode );
52 qan::la::Node* n = new qan::la::Node( "Node 1" );
53 _graph->registerNode( *n );
54 _graph->createEdge( *center, *n );
55 _graphView->getStyleManager( ).setStyle( n, *blueNode );
57 qan::la::Node* m = new qan::la::Node( "Node 11" );
58 _graph->registerNode( *m );
59 _graph->createEdge( *n, *m );
60 _graphView->getStyleManager( ).setStyle( m, *blueNode );
62 n = new qan::la::Node( "Node 2" );
63 _graph->registerNode( *n );
64 _graph->createEdge( *center, *n );
65 _graphView->getStyleManager( ).setStyle( n, *blueNode );
67 m = new qan::la::Node( "Node 21" );
68 _graph->registerNode( *m );
69 _graph->createEdge( *n, *m );
70 _graphView->getStyleManager( ).setStyle( m, *blueNode );
72 n = new qan::la::Node( "Node 3" );
73 _graph->registerNode( *n );
74 _graph->createEdge( *center, *n );
75 _graphView->getStyleManager( ).setStyle( n, *greenNode );
77 m = new qan::la::Node( "Node 31" );
78 _graph->registerNode( *m );
79 _graph->createEdge( *n, *m );
80 _graphView->getStyleManager( ).setStyle( m, *greenNode );
82 n = new qan::la::Node( "Node 4" );
83 _graph->registerNode( *n );
84 _graph->createEdge( *center, *n );
85 _graphView->getStyleManager( ).setStyle( n, *greenNode );
87 m = new qan::la::Node( "Node 41" );
88 _graph->registerNode( *m );
89 _graph->createEdge( *n, *m );
90 _graphView->getStyleManager( ).setStyle( m, *greenNode );
92 m = new qan::la::Node( "Node 42" );
93 _graph->registerNode( *m );
94 _graph->createEdge( *n, *m );
95 _graphView->getStyleManager( ).setStyle( m, *greenNode );
97 _graphView->update( );
99 _layout = new qan::la::Random( );
100 qan::utl::ProgressVoid progress;
101 _layout->layout( *_graph, _canvas->getGrid( ), _canvas->width( ), _canvas->height( ), progress );
102 _graphView->updatePositions( );
103 _graphView->show( );
105 _layout = 0;
110 void MainWindow::layout()
112 if ( _layout != 0 )
113 delete _layout;
115 switch ( _cbLayoutType->currentItem( ) )
117 case 0:
118 return;
119 break;
120 case 1:
122 qan::la::Vectorf origin( 2 ); origin( 0 ) = 10.f; origin( 1 ) = 10.f;
123 qan::la::Vectorf spacing( 2 ); spacing( 0 ) = 120.f; spacing( 1 ) = 55.f;
124 _layout = new qan::la::DirectedTree( origin, spacing, qan::la::DirectedTree::HORIZONTAL );
126 break;
127 case 2:
128 _layout = new qan::la::UndirectedGraph( );
129 break;
130 case 3:
131 _layout = new qan::la::Random( );
132 break;
133 default:
134 return;
135 break;
138 // Apply the settings if all needed parameters have been specified
139 if ( _layout != 0 && _canvas != 0 && _graph != 0 && _graphView != 0 )
141 // Update the graph layout
142 _graphView->hide( );
143 qan::qui::ProgressQt progressQt( this );
144 _layout->layout( *_graph, _canvas->getGrid( ), _canvas->width( ), _canvas->height( ), progressQt );
145 //progress->finish( );
146 _graphView->show( );
148 // Update the item position on the canvas to fit the new layout node's position, and show the nodes
149 _graphView->update( );
150 _canvasView->show( );