diff --git a/src/gui.cpp b/src/gui.cpp index f8d6748..85f71c1 100644 --- a/src/gui.cpp +++ b/src/gui.cpp @@ -495,59 +495,78 @@ NernstGUI::howDoIUse() "the length of time the simulation will run. Additional iterations " "can be added while the simulation is paused or after it has " "finished.
" + "
" "Width and height: These sliders control the size of the " "world.
" + "
" "Dielectric constant: This is a property of the membrane. " "Changing its value affects the dynamics of the system.
" + "
" "Random start: The integer input here, called the seed, " "determines the set of random numbers used in the simulation. " "Running the simulation twice with the same seed and parameters " - "will result in identical runs.
" + "will result in identical runs." ); + + QString *part2 = new QString( + "

A Short Tutorial


" + "
" "Concentration sliders: Move these sliders to change the " "initial values of the concentrations of each ion type in each " "compartment. You can also enter a value in the text box. Units " "are in millimolar.
" + "
" "Permeability sliders: The number of pores in the membrane " "is proportional to these values. Each ion type has its own " "selective ion channel that only allows that type to pass through. " "Increasing or decreasing the permeability of an ion will increase " - "or decrease the number of pores for that ion." ); - - QString *part2 = new QString( - "

A Short Tutorial


" + "or decrease the number of pores for that ion.
" "
" "Selective Permeability: Unchecking this box allows ions of " "any type to pass through any channel.
" + "
" "Electrostatics: Unchecking this box causes the ions to " "be treated like neutral particles. The current membrane potential " "is ignored for determining the probability of ion transport, and " "each ion has a 50/50 chance of moving across the membrane when " - "it approaches a pore.
" + "it approaches a pore." ); + + QString *part3 = new QString( + "

A Short Tutorial


" + "
" "Tracking ions: Clicking on ions in either the full world " "view or the zoomed view after a simulation has begun will cause " "them to become highlighted. This makes following the movements of " "an individual ion much easier. Tracking can be removed from all " "ions through the \"View\" menu.
" + "
" "Zoomed view: This window provides a closer look at the " "central membrane and ion transport activity. The level of " "magnification can be manipulated with the buttons marked " "\"+\" and \"-\".
" + "
" "Membrane potential plot: This plots the potential across " "the membrane in millivolts every iteration. A red line indicates " "the steady state value predicted by either the Nernst equation or " "the Goldman-Hodgkin-Katz voltage equation.
" + "
" "Measured concentrations table: This table displays the " "current concentrations of ions in each compartment." ); QMessageBox *msg1 = new QMessageBox( QMessageBox::Information, "How do I use the simulator?", *part1, NULL, this ); QMessageBox *msg2 = new QMessageBox( QMessageBox::Information, "How do I use the simulator?", *part2, NULL, this ); - QPushButton *moreBtn = msg1->addButton( "More", QMessageBox::ActionRole ); + QMessageBox *msg3 = new QMessageBox( QMessageBox::Information, "How do I use the simulator?", *part3, NULL, this ); + QPushButton *moreBtn1 = msg1->addButton( "More", QMessageBox::ActionRole ); + QPushButton *moreBtn2 = msg2->addButton( "More", QMessageBox::ActionRole ); msg1->exec(); - if( msg1->clickedButton() == moreBtn ) + if( msg1->clickedButton() == moreBtn1 ) { msg2->exec(); + if( msg2->clickedButton() == moreBtn2 ) + { + msg3->exec(); + } } }