Beispiel #1
0
void PlotDefC::DoCallback(int reason)
{
    static double zooms[] = {0.9091, 0.5, 0.2, 1.1, 2.0, 5.0};
    if (reason < 6)
    {
        ChangeView(zooms[reason]);
    }
    else if (reason == 6)
    {
        SetAxesFromExtents();
        SetViewFromAxes();
        ResetView();
    }
    else if (reason == 7)
    {
        ChangeView(1.0);
    }
    else
    {
        PC_Platform* currPlatform = GetPlatformData();
        if (currPlatform)
            currPlatform->CopyToClipboard(true);
        return;
    }

    if (IsSubPlot())
        masterPlot->RedrawPlot();
}
void CNetSettingPage_Tools::OnTcnSelchangeTabToolsMain(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.

	int nSelectedTab = m_tabMain.GetCurSel();

	m_pViewPing->ShowWindow(SW_HIDE);
	
	if( m_pView != NULL )
	{
		m_pView->DestroyWindow();
		m_pView = NULL;
	}


	switch( nSelectedTab )
	{
	case TAB_PAGE_PING:
		m_pViewPing->ShowWindow(SW_SHOW);
		break;
	case TAB_PAGE_SCAN:
		ChangeView(IDD_NETSETTINGPAGE_TOOLS_SCANVIEW);
		break;
	case TAB_PAGE_LOG:
		ChangeView(IDD_NETSETTINGPAGE_TOOLS_LOGVIEW);
		break;
	}
	

	*pResult = 0;
}
bool UIListbox::MouseHandler(float x, float y) {
	UIPos pos = GetParentPos();
	
	if (items.size() > view_count) {
		//UP BOX
		UIRect up = UIRect( upbox.x + pos.x, upbox.y +pos.y, upbox.w, upbox.h);
		if (up.Intersects(x,y)) {
			//if first click, register it as a click
			if (!mouse_active) {
				mouse_active = true;
				ChangeView(-1);
				
			}
			return true;
		}
		
		//down
		UIRect down = UIRect( downbox.x + pos.x, downbox.y +pos.y, downbox.w, downbox.h);
		if (down.Intersects(x,y)) {
			//if first click, register it as a click
			if (!mouse_active) {
				mouse_active = true;
				ChangeView(1);
				
			}
			return true;
		}
	}
	//Check for selected
	UIRect temp  = UIRect(  pos.x, pos.y, rect.w, rect.h);
	
	if (temp.Intersects(x,y)) {
		//if first click, register it as a click
		if (!mouse_active) {
			mouse_active = true;
			gMouse = this;
			
			float new_y = y -temp.y;
			int old_selected_index = selected_index;
			for (int i = 0; i < view_count; ++i) {
				if (new_y <= item_height * (i +1)) {
					selected_index = view_pos + i;
					break;
				}
			}
			
			//Check to make sure our list box is populated that much
			if (items.size() -1 < selected_index) {
				selected_index = old_selected_index;
			}

		}
		return true;
	}
	
	
	return false;
}
void UIListbox::AddItemWithIcon(const std::string &item, sTexture *tex, UIColor c ) {
	items.push_back(item);
	icons.push_back(tex);
	colors.push_back(c);
	
	if (chat_mode) {
		
		ChangeView(max_lines);
	}
	
	
}
Beispiel #5
0
XyzGL::XyzGL(const QGLFormat& format,int view_type , QWidget* parent ,XyzWindow *mainWindow): QGLWidget(format,parent)
{
	qDebug()<<"XyzGL";
	mWin = mainWindow;
	mMousePressed = false;
	mClosing = false;
	mFirstDraw = true;
	mViewtype = view_type;
	mIsDynamicView = false;
	mViewTimer = new QTimer(this);
	mWay = LEFT;
	connect(mViewTimer , SIGNAL(timeout()) , this , SLOT(DynamicView()));
	connect(this , SIGNAL(ChangeView()) , mWin , SLOT(UpdateToolBar()));
}
Beispiel #6
0
static int
OnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
    HMENU hSysMenu;
    WCHAR lpAboutText[256];

    hCharmapDlg = CreateDialog(hInstance,
                               MAKEINTRESOURCE(IDD_CHARMAP),
                               hWnd,
                               CharMapDlgProc);

    hAdvancedDlg = CreateDialog(hInstance,
                               MAKEINTRESOURCE(IDD_ADVANCED),
                               hWnd,
                               AdvancedDlgProc);

    hStatusWnd = CreateWindow(STATUSCLASSNAME,
                              NULL,
                              WS_CHILD | WS_VISIBLE,
                              0, 0, 0, 0,
                              hWnd,
                              (HMENU)IDD_STATUSBAR,
                              hInstance,
                              NULL);

    // Set the status bar for multiple parts output
    SendMessage(hStatusWnd, SB_SIMPLE, (WPARAM)FALSE, (LPARAM)0);

    ChangeView(hWnd);

    hSysMenu = GetSystemMenu(hWnd, FALSE);

    if (hSysMenu != NULL)
    {
        if (LoadStringW(hInstance, IDS_ABOUT, lpAboutText, SIZEOF(lpAboutText)))
        {
            AppendMenuW(hSysMenu, MF_SEPARATOR, 0, NULL);
            AppendMenuW(hSysMenu, MF_STRING, ID_ABOUT, lpAboutText);
        }
    }

    return 0;
}
NewFromTemplateDlg::NewFromTemplateDlg(TemplateOutputType initial, const wxArrayString& user_templates)
    : m_Template(nullptr),
    m_pWizard(nullptr),
    m_WizardIndex(-1)
{
    //ctor
    wxXmlResource::Get()->LoadObject(this, nullptr, _T("dlgNewFromTemplate"),_T("wxScrollingDialog"));
    m_Wizards = Manager::Get()->GetPluginManager()->GetOffersFor(ptWizard);

    wxListbook* lb = XRCCTRL(*this, "nbMain", wxListbook);
    SetSettingsIconsStyle(lb->GetListView(), sisNoIcons);

    // create image lists
    XRCCTRL(*this, "listProjects", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_NORMAL);
    XRCCTRL(*this, "listProjects", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_SMALL);
    XRCCTRL(*this, "listTargets", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_NORMAL);
    XRCCTRL(*this, "listTargets", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_SMALL);
    XRCCTRL(*this, "listFiles", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_NORMAL);
    XRCCTRL(*this, "listFiles", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_SMALL);
    XRCCTRL(*this, "listCustoms", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_NORMAL);
    XRCCTRL(*this, "listCustoms", wxListCtrl)->SetImageList(new wxImageList(32, 32), wxIMAGE_LIST_SMALL);

    // load view prefs
    XRCCTRL(*this, "rbView", wxRadioBox)->SetSelection(Manager::Get()->GetConfigManager(_T("new_from_template"))->ReadInt(_T("/view"), 0));
    ChangeView();

    BuildCategories();
    BuildList();

    // fill user templates list
    XRCCTRL(*this, "lstUser", wxListBox)->Clear();
    for (unsigned int i = 0; i < user_templates.GetCount(); ++i)
    {
        XRCCTRL(*this, "lstUser", wxListBox)->Append(user_templates[i]);
    }

    lb->SetSelection((int)initial);
}
Beispiel #8
0
void XyzGL::MovieX()
{
	if(mWay == LEFT){
		if(mWin->cx==0){
			mWay = RIGHT;
			mWin->cx = 1;
		}
		else{
			mWin->cx--;
		}
	}
	else{
		if(mWin->cx == mWin->nx - 1){
			mWay = LEFT;
			mWin->cx--;
		}
		else{
			mWin->cx++;
		}
	}
	mWin->Update(ZY_VIEW);
	emit ChangeView();
}
Beispiel #9
0
bool PD_2D::ProcessRubberbandRegion(const PC_ObjLimitRect& rubberbandRegion)
{
    int dx, dy;
    rubberbandRegion.GetWidthHeight(dx, dy);

    //  skip tiny zooms
    if ((dx  < 3) || (dy <  3))
        return false;

    Point2D stAxes, endAxes;

    if (PixelXYtoUserXY(rubberbandRegion.ulXpos, rubberbandRegion.lrYpos, stAxes) &&
        PixelXYtoUserXY(rubberbandRegion.lrXpos, rubberbandRegion.ulYpos, endAxes))
    {
        PC_View newView;
        newView.viewLimits.minLim = Coord3D(stAxes);
        newView.viewLimits.maxLim = Coord3D(endAxes);
        ChangeView(newView);
        return true;
    }

    return false;
}
Beispiel #10
0
void XyzGL::MovieZ()
{
	if(mWay == LEFT){
		if(mWin->cz==0){
			mWay = RIGHT;
			mWin->cz = 1;
		}
		else{
			mWin->cz--;
		}
	}
	else{
		if(mWin->cz == mWin->nz - 1){
			mWay = LEFT;
			mWin->cz--;
		}
		else{
			mWin->cz++;
		}
	}
	mWin->Update(XY_VIEW);
	emit ChangeView();
}
Beispiel #11
0
void XyzGL::MovieY()
{
	if(mWay == LEFT){
		if(mWin->cy==0){
			mWay = RIGHT;
			mWin->cy = 1;
		}
		else{
			mWin->cy--;
		}
	}
	else{
		if(mWin->cy == mWin->ny - 1){
			mWay = LEFT;
			mWin->cy--;
		}
		else{
			mWin->cy++;
		}
	}
	mWin->Update(XZ_VIEW);
	emit ChangeView();
}
Beispiel #12
0
void FileListModel::list()
{
    struct notifyfs_entry_struct *parent=NULL;
    QByteArray newPath;

    if (parentPath.isEmpty()) return;

    newPath = parentPath.toLatin1();

    if ( ! oldPath.isEmpty()) {

	/* check the path is really changed */

	if (qstrcmp(oldPath.data(), newPath.data())==0) return;

    }

    if (oldPath.size() != newPath.size()) oldPath.resize(newPath.size());
    qstrcpy(oldPath.data(), newPath.data());

    parent = check_notifyfs_path(newPath.data());

    if (parent) {

	/* entry parent does exist */

	if (parent->index != parentEntry) {
	    int viewIndex;

	    parentEntry=parent->index;
    	    viewIndex=ChangeView(parentEntry);

	    beginResetModel();
	    totalCount=0;
	    clean_cachedirectory();
	    endResetModel();

	    if (viewIndex>=0) {

		lockview();
		setStatusView(0);
		unlockview();

		send_setwatch(viewIndex, NULL);

	    }

	}

    } else {
	int viewIndex;

	viewIndex=ChangeView(-1);

	beginResetModel();
	totalCount=0;
	clean_cachedirectory();
	endResetModel();

	lockview();
	setStatusView(0);
	unlockview();


	/* directory does not exist in the cache */

	send_setwatch(viewIndex, newPath.data());

    }

}
void NewFromTemplateDlg::OnViewChange(cb_unused wxCommandEvent& event)
{
    ChangeView();
}
void NewFromTemplateDlg::OnViewChange(wxCommandEvent& /*event*/)
{
    ChangeView();
}
Beispiel #15
0
void PlotDefC::ChangeView(double scaleFactor)
{
    Coord3D sc3D = Coord3D(scaleFactor);
    ChangeView(sc3D);
}
Beispiel #16
0
void MythControls::customEvent(QEvent *event)
{
    if (event->type() == DialogCompletionEvent::kEventType)
    {
        DialogCompletionEvent *dce = (DialogCompletionEvent*)(event);

        QString resultid  = dce->GetId();
        int     buttonnum = dce->GetResult();

        if (resultid == "action")
        {
            if (buttonnum == 0)
                GrabKey();
            else if (buttonnum == 1)
                DeleteKey();
        }
        else if (resultid == "option")
        {
            if (buttonnum == 0)
                Save();
            else if (buttonnum == 1)
                ChangeView();
            else if (buttonnum == 2)
                GetMythMainWindow()->JumpTo("Reset All Keys");
        }
        else if (resultid == "exit")
        {
            if (buttonnum == 1)
                Save();
            else
                Teardown();

            Close();
        }
        else if (resultid == "view")
        {
            QStringList contents;
            QString leftcaption, rightcaption;

            if (buttonnum == 0)
            {
                leftcaption = tr("Contexts");
                rightcaption = tr("Actions");
                m_currentView = kActionsByContext;
                contents = m_bindings->GetContexts();
            }
            else if (buttonnum == 1)
            {
                leftcaption = tr("Contexts");
                rightcaption = tr("Keys");
                m_currentView = kKeysByContext;
                contents = m_bindings->GetContexts();
            }
            else if (buttonnum == 2)
            {
                leftcaption = tr("Keys");
                rightcaption = tr("Contexts");
                m_currentView = kContextsByKey;
                contents = m_bindings->GetKeys();
            }
            else
                return;

            m_leftDescription->SetText(leftcaption);
            m_rightDescription->SetText(rightcaption);

            SetListContents(m_leftList, contents, true);
            RefreshKeyInformation();
            UpdateRightList();

            if (GetFocusWidget() != m_leftList)
                SetFocusWidget(m_leftList);
        }
        else if (resultid == "conflict")
        {
            if (buttonnum == 1)
            {
                QString key = dce->GetData().toString();
                AddKeyToAction(key, true);
            }
        }

        if (m_menuPopup)
            m_menuPopup = NULL;
    }

}
Beispiel #17
0
static
INT_PTR
CALLBACK
CharMapDlgProc(HWND hDlg,
               UINT Message,
               WPARAM wParam,
               LPARAM lParam)
{
    switch(Message)
    {
        case WM_INITDIALOG:
        {
            DWORD evMask;

            FillFontStyleComboList(GetDlgItem(hDlg,
                                              IDC_FONTCOMBO));

            ChangeMapFont(hDlg);

            // Configure Richedi control for sending notification changes.
            evMask = SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_GETEVENTMASK, 0, 0);
            evMask |= ENM_CHANGE;
            SendDlgItemMessage(hDlg, IDC_TEXTBOX, EM_SETEVENTMASK, 0, (LPARAM)evMask);

            return TRUE;
        }

        case WM_COMMAND:
        {
            switch(LOWORD(wParam))
            {
                case IDC_FONTMAP:
                    switch (HIWORD(wParam))
                    {
                        case FM_SETCHAR:
                            AddCharToSelection(hDlg, LOWORD(lParam));
                            break;
                    }
                    break;

                case IDC_FONTCOMBO:
                    if (HIWORD(wParam) == CBN_SELCHANGE)
                    {
                        ChangeMapFont(hDlg);
                    }
                    break;

                case IDC_SELECT:
                    AddCharToSelection(hDlg, 0);
                    break;

                case IDC_TEXTBOX:
                    switch (HIWORD(wParam)) {
                    case EN_CHANGE:
                        if (GetWindowTextLength(GetDlgItem(hDlg, IDC_TEXTBOX)) == 0)
                            EnableWindow(GetDlgItem(hDlg, IDC_COPY), FALSE);
                        else
                            EnableWindow(GetDlgItem(hDlg, IDC_COPY), TRUE);
                        break;
                    }
                    break;

                case IDC_COPY:
                    CopyCharacters(hDlg);
                    break;

                case IDC_CHECK_ADVANCED:
                    UpdateSettings(hDlg);
                    ChangeView(GetParent(hDlg));
                    break;
            }
        }
        break;

        default:
            break;
    }

    return FALSE;
}
Beispiel #18
0
void runlogic()
{
    NSDL2_RUNLOGIC(NULL, NULL, "Executing init_script()");

    init_script();

    NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - Start");
    {
        NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Home");
        Home();

        NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - ProductAdddedBlock");
        {
            int ProductAdddedBlockpercent = ns_get_random_number_int(1, 100);

            NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - ProductAdddedBlock = %d", ProductAdddedBlockpercent);

            if(ProductAdddedBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing dowhile block - BrowseLoop. NS Variable = BrowseLoop (pct value = 100%)");
                {

                    NSDL2_RUNLOGIC(NULL, NULL, "NS Variable value for block - BrowseLoop = %d", ns_get_int_val("BrowseLoop"));
                    do
                    {

                        NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - BrowseBlock (pct value = 100%)");
                        {
                            NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Browse");
                            Browse();

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - ProductSel (pct value = 100%)");
                            {
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ProductSelectionStart");
                                ProductSelectionStart();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - RefineSearch");
                                RefineSearch();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - PerformPagination");
                                PerformPagination();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - SortProducts");
                                SortProducts();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ChangeView");
                                ChangeView();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ProductSelectionEnd");
                                ProductSelectionEnd();
                            }
                            NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ViewProductDetail");
                            ViewProductDetail();

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - Block1 (pct value = 100%)");
                            {
                                int Block1percent = ns_get_random_number_int(1, 100);

                                NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - Block1 = %d", Block1percent);

                                if(Block1percent <= 100)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 100%)");
                                    Abandonment();
                                }
                                else if(Block1percent <= 100)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - AddToBag (pct value = 0%)");
                                    AddToBag();
                                }
                            }
                        }
                    } while(ns_get_int_val("BrowseLoop"));
                }
            }
            else if(ProductAdddedBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing dowhile block - SearchLoop. NS Variable = SearchLoop (pct value = 0%)");
                {

                    NSDL2_RUNLOGIC(NULL, NULL, "NS Variable value for block - SearchLoop = %d", ns_get_int_val("SearchLoop"));
                    do
                    {

                        NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - SearchKeywordBlock (pct value = 0%)");
                        {
                            NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - SearchKeyword");
                            SearchKeyword();

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - ProductSelection (pct value = 0%)");
                            {
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ProductSelectionStart");
                                ProductSelectionStart();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - RefineSearch");
                                RefineSearch();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - PerformPagination");
                                PerformPagination();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - SortProducts");
                                SortProducts();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ChangeView");
                                ChangeView();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ProductSelectionEnd");
                                ProductSelectionEnd();
                            }

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - Block2 (pct value = 0%)");
                            {
                                int Block2percent = ns_get_random_number_int(1, 100);

                                NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - Block2 = %d", Block2percent);

                                if(Block2percent <= 25)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 25%)");
                                    Abandonment();
                                }
                                else if(Block2percent <= 100)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ViewProductDetail (pct value = 75%)");
                                    ViewProductDetail();
                                }
                            }

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - Block2A (pct value = 0%)");
                            {
                                int Block2Apercent = ns_get_random_number_int(1, 100);

                                NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - Block2A = %d", Block2Apercent);

                                if(Block2Apercent <= 100)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 100%)");
                                    Abandonment();
                                }
                                else if(Block2Apercent <= 100)
                                {
                                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - AddToBag (pct value = 0%)");
                                    AddToBag();
                                }
                            }
                        }
                    } while(ns_get_int_val("SearchLoop"));
                }
            }
            else if(ProductAdddedBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - SearchPIDBlock (pct value = 0%)");
                {
                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - SearchProductId");
                    SearchProductId();

                    NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - Block3 (pct value = 0%)");
                    {
                        int Block3percent = ns_get_random_number_int(1, 100);

                        NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - Block3 = %d", Block3percent);

                        if(Block3percent <= 100)
                        {
                            NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 100%)");
                            Abandonment();
                        }
                        else if(Block3percent <= 100)
                        {
                            NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - AddToBag (pct value = 0%)");
                            AddToBag();
                        }
                        else if(Block3percent <= 100)
                        {

                            NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - Block3A (pct value = 0%)");
                            {
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Browse");
                                Browse();
                                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - ViewProductDetail");
                                ViewProductDetail();

                                NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - Block3B (pct value = 0%)");
                                {
                                    int Block3Bpercent = ns_get_random_number_int(1, 100);

                                    NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - Block3B = %d", Block3Bpercent);

                                    if(Block3Bpercent <= 25)
                                    {
                                        NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 25%)");
                                        Abandonment();
                                    }
                                    else if(Block3Bpercent <= 100)
                                    {
                                        NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - AddToBag (pct value = 75%)");
                                        AddToBag();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - CheckOutBlock");
        {
            int CheckOutBlockpercent = ns_get_random_number_int(1, 100);

            NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - CheckOutBlock = %d", CheckOutBlockpercent);

            if(CheckOutBlockpercent <= 0)
            {
                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - CheckOut (pct value = 0%)");
                CheckOut();
            }
            else if(CheckOutBlockpercent <= 100)
            {
                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 100%)");
                Abandonment();
            }
            else if(CheckOutBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - EditandCheckOutBlock (pct value = 0%)");
                {
                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - UpdateItem");
                    UpdateItem();
                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - CheckOut");
                    CheckOut();
                }
            }
        }

        NSDL2_RUNLOGIC(NULL, NULL, "Executing percent block - PlaceOrderBlock");
        {
            int PlaceOrderBlockpercent = ns_get_random_number_int(1, 100);

            NSDL2_RUNLOGIC(NULL, NULL, "Percentage random number for block - PlaceOrderBlock = %d", PlaceOrderBlockpercent);

            if(PlaceOrderBlockpercent <= 100)
            {
                NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - Abandonment (pct value = 100%)");
                Abandonment();
            }
            else if(PlaceOrderBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - RegBlock (pct value = 0%)");
                {
                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - RegCheckOut");
                    RegCheckOut();
                }
            }
            else if(PlaceOrderBlockpercent <= 100)
            {

                NSDL2_RUNLOGIC(NULL, NULL, "Executing sequence block - UnRegBlock (pct value = 0%)");
                {
                    NSDL2_RUNLOGIC(NULL, NULL, "Executing flow - UnRegCheckOut");
                    UnRegCheckOut();
                }
            }
        }
    }

    NSDL2_RUNLOGIC(NULL, NULL, "Executing ns_exit_session()");
    ns_exit_session();
}
void
EditButtonWindow::MessageReceived(BMessage *msg)
{
	BMessage mymsg(51000);
	int32 id,vl;
	BTextControl *xt = NULL;
	char *txt = "";
	WrkWindow *win = DefWin,*wi = OldWindow;

	msg->FindInt32("be:value",&vl);
	msg->FindInt32("index",&id);

	if (msg->FindPointer("source",(void **)&xt) == B_OK)
	{
		if (is_instance_of(xt,BTextControl))
		{
			txt = xt->Text();		
		}	
	}

	switch(msg->what)
	{
		case	73500:
		case	73501:
		case	73502:
		{
			CheckItemBox *it;
			int k;

			for (k = 0; k < idcmp->CountItems(); k++)
			{
				if (it = (CheckItemBox *)idcmp->ItemAt(k))
				{
					switch(msg->what)
					{
						case	73500:	it->checked = true;		break;
						case	73501:	it->checked = false;	break;
						case	73502:	it->checked = !it->checked;	break;
					}

					ChangeFlags(k,it->checked);

					idcmp->InvalidateItem(idcmp->IndexOf(it));
				}			
			}
		}
		break;

		case	73600:
		case	73601:
		case	73602:
		{
			CheckItemBox *it;
			int k;

			for (k = 0; k < lv->CountItems(); k++)
			{
				if (it = (CheckItemBox *)lv->ItemAt(k))
				{
					switch(msg->what)
					{
						case	73600:	it->checked = true;		break;
						case	73601:	it->checked = false;	break;
						case	73602:	it->checked = !it->checked;	break;
					}

					ChangeView(k,it->checked);

					lv->InvalidateItem(lv->IndexOf(it));
				}			
			}
		}
		break;

		case	2200:
		{
			OpenColorPicker(msg);
		}
		break;

		case BEAIM_NEW_COLOR_PICKED:
		{
			ColorView *bt;

			if (msg->FindPointer("pt",(void **)&bt) == B_OK)
			{
				rgb_color cl,*startColor;
				ssize_t size;
	
				msg->FindData( "color",B_RGB_COLOR_TYPE,(const void**)&startColor,&size );

				cl.red 		= startColor->red;
				cl.green 	= startColor->green;
				cl.blue 	= startColor->blue;

				bt->SetColor(cl);
			}

			SetNewColor(msg);
		}
		break;	

		case	tab_tab_list:
		{
			AddListWindow(win->sellist.ItemAt(0));
		}
		break;

		case	tab_menu_list:
		{
			create_mmxmenu();
		}
		break;

		case	tab_menu_editlist:
		{
			struct MyGadget *gad;

			if (gad = win->sellist.ItemAt(0))
			{
				window_menu(&gad->name);
			}
		}
		break;

		case	window_minh:
		{
			if (wi)
			{
				wi->minh = vl;			
			}
		}
		break;

		case	window_maxh:
		{
			if (wi)
			{
				wi->maxh = vl;			
			}
		}
		break;

		case	window_minw:
		{
			if (wi)
			{
				wi->minw = vl;			
			}
		}
		break;

		case	window_maxw:
		{
			if (wi)
			{
				wi->maxw = vl;			
			}
		}
		break;

		case	tab_font:
		{
			struct MyGadget *gad;

			if (wi = win)
			{
				if (gad = win->sellist.ItemAt(0))
				{
					font_window(gad->FontType,gad->FontSize,gad->FontAntiliasing,&gad->FontName[0],&gad->FontStyle[0]);
				}
					else
				{
					font_window(wi->FontType,wi->FontSize,wi->FontAntiliasing,&wi->FontName[0],&wi->FontStyle[0]);
				}
			}		
		}
		break;

		case	window_type:
		{
			if (wi)
			{
				wi->typewin = id;			

				ChangeWindowType(wi,id);
			}
		}
		break;

		case	window_look:
		{
			if (wi)
			{
				wi->look = id;			
			}
		}
		break;

		case	window_feel:
		{
			if (wi)
			{
				wi->feel = id;			
			}
		}
		break;

		case	window_workspace:
		{
			if (wi)
			{
				wi->wrk = id;			
			}
		}
		break;
			
		case	9000:
		{
			mymsg.AddInt32("x",vl);	
	
			win->PostMessage(&mymsg);
		}
		break;

		case	9001:
		{
			mymsg.AddInt32("y",vl);	
	
			win->PostMessage(&mymsg);
		}
		break;

		case	9002:
		{
			mymsg.AddInt32("w",vl);	
	
			win->PostMessage(&mymsg);
		}
		break;

		case	9003:
		{
			mymsg.AddInt32("h",vl);	
	
			win->PostMessage(&mymsg);
		}
		break;

		case	9004:
		{
			if (strcmp(txt,"") != 0)
			{
				if (is_title_available(txt))
				{
					if (win)
					{
						if (gad = win->sellist.ItemAt(0))
						{
							strcpy(&gad->Name[0],txt);		
						}
							else
						{
							strcpy(&win->Name[0],txt);		
						}
					}
				}
					else
				{
err:				if (EditorWin)
					{
						BAutolock lock(EditorWin);

						if (win)
						{
							if (gad = win->sellist.ItemAt(0))
							{
								EditorWin->name->SetText(&gad->Name[0]);
							}
								else
							{
								EditorWin->name->SetText(&win->Name[0]);
							}
						}	
					}	
				}	
			}
				else
			{
				::beep();
				
				goto err;
			}	
		}
		break;

		case	9005:
		{
			if (win)
			{
				if (gad = win->sellist.ItemAt(0))
				{
					strcpy(&gad->Title[0],txt);		

					ChangeGadgetLabel(gad,txt);
				}
					else
				{
					strcpy(&win->WTitle[0],txt);		

					win->Lock();

					win->ChangeTitleWindow();

					win->Unlock();
				}
			}	
		}
		break;

		case	9006:
		{
			if (gad)
			{
				gad->msg = atoi(txt);
			}
		}
		break;

		case	tab_focus:
		{
			gad->focus = id;		
		}
		break;

		case	align_type:
		{
			if (id == 2)
			{
				EnableRadio(true);

				SetChoiceInMenu(alignx->Menu(),gad->alignx,true);
				SetChoiceInMenu(aligny->Menu(),gad->aligny,true);

			}
				else
			{
				EnableRadio(false);
			}	

			gad->align = id;
		}
		break;
		
		case	align_x:
		{
			gad->alignx = id;
		}
		break;	

		case	align_y:
		{
			gad->aligny = id;
		}
		break;	

		case	gad_derived:
		{
			gad->derived = vl;
		}
		break;

//**************************** BUTTON *****************

		case	tab_button_default:
		{
			gad->data.button.defaut = id;

			set_button_defaut(gad,id);
		}
		break;

		case	tab_button_enabled:
		case	tab_checkbox_enabled:
		{
			gad->enable = id;

			SetEnableGadget(gad,id);
		}
		break;

//**************************** BBOX *****************

		case	tab_bbox_border:
		{
			gad->data.bbox.style = id;

			set_bbox_border(gad,id);
		}
		break;

		case	tab_bbox_label:
		{
			strcpy(&gad->data.bbox.Label[0],txt);

			set_bbox_label(gad,txt);		
		}
		break;

//**************************** CHECKBOX *****************

		case	tab_checkbox_checked:
		{
			gad->data.bcheckbox.checked = id;

			set_checkbox_checked(gad,id);
		}
		break;

//**************************** RADIO *****************

		case	tab_radio_value:
		{
			gad->data.rad.val = id;

			set_radio_checked(gad,id);
		}
		break;

		case	tab_radio_enable:
		{
			gad->enable = id;

			set_radio_enabled(gad,id);
		}
		break;

//**************************** STRING *****************

		case	tab_string_alignlab:
		{
			gad->data.string.alignlab = id;

			set_string_alignment_label(gad,id);		
		}
		break;

		case	tab_string_aligntxt:
		{
			gad->data.string.aligntxt = id;

			set_string_alignment_text(gad,id);		
		}
		break;

		case	tab_string_diviser:
		{
			gad->data.string.pixdiv = vl;

			set_string_divider(gad,vl);		
		}
		break;

		case	tab_string_label:
		{
			strcpy(&gad->data.string.Text[0],txt);

			set_string_label(gad,txt);		
		}
		break;

//**************************** STATUS *****************

		case	tab_status_trail:
		{
			strcpy(&gad->data.sta.Trail[0],txt);

			set_status_label(gad,txt);		
		}
		break;

		case	tab_status_label:
		{
			strcpy(&gad->data.sta.Label[0],txt);

			set_status_trail(gad,txt);		
		}
		break;

		case	tab_status_value:
		{
			gad->data.sta.value = vl;

			set_status_value(gad,vl);
		}
		break;

		case	tab_status_barheight:
		{
			gad->data.sta.barheight = vl;

			set_status_barheight(gad,vl);
		}
		break;

		case	tab_status_max:
		{
			gad->data.sta.maxvalue = vl;

			set_status_maxvalue(gad,vl);
		}
		break;

//**************************** SCROLLER *****************

		case	tab_scroller_value:
		{
			gad->data.bscroller.pos = vl;

			set_scroller_value(gad,vl);
		}
		break;

		case	tab_scroller_min:
		{
			gad->data.bscroller.min = vl;
		}
		break;

		case	tab_scroller_max:
		{
			gad->data.bscroller.max = vl;
		}
		break;

		case	tab_scroller_minstep:
		{
			gad->data.bscroller.minstep = vl;

			set_scroller_minstep(gad,vl);
		}
		break;

		case	tab_scroller_maxstep:
		{
			gad->data.bscroller.maxstep = vl;

			set_scroller_maxstep(gad,vl);
		}
		break;

		case	tab_scroller_minrange:
		{
			gad->data.bscroller.minrange = vl;

			set_scroller_minrange(gad,vl);
		}
		break;

		case	tab_scroller_maxrange:
		{
			gad->data.bscroller.maxrange = vl;

			set_scroller_maxrange(gad,vl);
		}
		break;

//**************************** TAB *****************

		case	tab_tab_width:
		{
			gad->data.tab.tabwidth = id;

			set_tab_width(gad,id);
		}
		break;

		case	tab_tab_height:
		{
			gad->data.tab.tabheight = vl;

			set_tab_height(gad,vl);
		}
		break;

		case	tab_tab_selected:
		{
			gad->data.tab.sel = vl;

			set_tab_select(gad,vl);
		}
		break;

//**************************** MX *****************

		case	tab_mx_align:
		{
			gad->data.mx.align = id;

			set_mx_align(gad,id);
		}
		break;

		case	tab_mx_diviser:
		{
			gad->data.mx.pixdiv = vl;

			set_mx_divider(gad,vl);
		}
		break;

		case	tab_mx_label:
		{
			strcpy(&gad->data.mx.Label[0],txt);

			set_mx_label(gad,txt);		
		}
		break;

//**************************** SLIDER *****************

		case	tab_slider_style:
		{
			gad->data.bslider.style = id;

			set_slider_style(gad,id);
		}
		break;

		case	tab_slider_hashtype:
		{
			gad->data.bslider.hashtype = id;

			set_slider_hashtype(gad,id);
		}
		break;

		case	tab_slider_hashcount:
		{
			gad->data.bslider.hashcount = vl;

			set_slider_hashcount(gad,vl);
		}
		break;

		case	tab_slider_value:
		{
			gad->data.bslider.pos = vl;

			set_slider_value(gad,vl);
		}
		break;

		case	tab_slider_min:
		{
			gad->data.bslider.min = vl;
		}
		break;

		case	tab_slider_max:
		{
			gad->data.bslider.max = vl;
		}
		break;

		case	tab_slider_thickness:
		{
			gad->data.bslider.thickness = vl;

			set_slider_thickness(gad,vl);
		}
		break;

		case	tab_slider_keyinc:
		{
			gad->data.bslider.keyinc = vl;

			set_slider_keyinc(gad,vl);
		}
		break;

		case	tab_slider_label:
		{
			strcpy(&gad->data.bslider.Label[0],txt);

			set_slider_label(gad,txt);		
		}
		break;

		case	tab_slider_minlabel:
		{
			strcpy(&gad->data.bslider.MinLabel[0],txt);

			set_slider_minlabel(gad,txt);		
		}
		break;

		case	tab_slider_maxlabel:
		{
			strcpy(&gad->data.bslider.MaxLabel[0],txt);

			set_slider_maxlabel(gad,txt);		
		}
		break;

//**************************** COLOR *****************

		case	tab_color_layout:
		{
			gad->data.col.layout = id;

			set_color_layout(gad,id);
		}
		break;

		case	tab_color_cellsize:
		{
			gad->data.col.cellsize = id;

			set_color_cellsize(gad,id);
		}
		break;

		case	tab_color_drawbuffered:
		{
			gad->data.col.redrawbuffer = id;
		}
		break;

//**************************** LV *****************

		case	tab_lv_multi:
		{
			gad->data.lv.multi = id;
		}
		break;

//**************************** OLV *****************

		case	tab_olv_multi:
		{
			gad->data.olv.multi = id;
		}
		break;

//**************************** TEXT *****************

		case	tab_text_align:
		{
			gad->data.txt.align = id;

			set_text_align(gad,id);
		}
		break;

		case	tab_number_align:
		{
			gad->data.num.align = id;

			set_text_align(gad,id);
		}
		break;

		case	tab_text_label:
		{
			strcpy(&gad->data.txt.Label[0],txt);

			set_text_text(gad,txt);		
		}
		break;

		case	tab_number_number:
		{
			strcpy(&gad->data.num.Label[0],txt);

			set_number_value(gad,atoi(txt));		
		}
		break;

//**************************** TEDIT *****************

		case	tab_tedit_align:
		{
			gad->data.edi.align = id;
		}
		break;

		case	tab_tedit_selectable:
		{
			gad->data.edi.selectable = id;
		}
		break;

		case	tab_tedit_editable:
		{
			gad->data.edi.editable = id;
		}
		break;

		case	tab_tedit_wordwrap:
		{
			gad->data.edi.wordwrap = id;
		}
		break;

		case	tab_tedit_setstylable:
		{
			gad->data.edi.stylable = id;
		}
		break;

		case	tab_tedit_autoident:
		{
			gad->data.edi.autoident = id;
		}
		break;

		case	tab_tedit_tabwidth:
		{
			gad->data.edi.tabwidth = vl;
		}
		break;

		case	tab_tedit_maxbytes:
		{
			gad->data.edi.maxchars = vl;
		}
		break;

//**************************** END *****************
	
		default:
		{
			BWindow::MessageReceived(msg);
		}
	}
}
        void DrawGLScene ()
        {
            glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
            glLoadIdentity ();

            glTranslatef (0.0f, 0.5f, -3.0f);

            float pos [4] = {0.0f, -1.0f, -1.0f, 0.0f};
            glLightfv (GL_LIGHT0, GL_POSITION, pos);

            if (!changeToViewPointB) ChangeView (&viewPointA, &viewPointB, 0.001f);

            glTranslatef (0.0f, 0.0f, viewPointA.zoomZ);

            glRotatef (viewPointA.angleX, 1.0f, 0.0f, 0.0f);
            glRotatef (viewPointA.angleY, 0.0f, 1.0f, 0.0f);
            glRotatef (viewPointA.angleZ, 0.0f, 0.0f, 1.0f);

            glEnable (GL_NORMALIZE);

            glEnable (GL_LIGHTING);

            glEnable (GL_TEXTURE_2D);

            glEnable (GL_CULL_FACE);
            glCullFace (GL_FRONT);

            glEnable (GL_DEPTH_TEST);

            glDisable (GL_TEXTURE_GEN_S);
            glDisable (GL_TEXTURE_GEN_T);

            glDisable (GL_BLEND);

            glBindTexture(GL_TEXTURE_2D, Texture [0]);


            glBegin(GL_QUADS);

                // Back Face
                glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.7f);  // Bottom Right Of The Texture and Quad
                glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.7f);  // Top Right Of The Texture and Quad
                glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.7f);  // Top Left Of The Texture and Quad
                glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.7f);  // Bottom Left Of The Texture and Quad

                // Top Face
                glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.7f);  // Top Left Of The Texture and Quad
                glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  0.3f);  // Bottom Left Of The Texture and Quad
                glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  0.3f);  // Bottom Right Of The Texture and Quad
                glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.7f);  // Top Right Of The Texture and Quad

                // Bottom Face
                glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, -1.7f);  // Top Right Of The Texture and Quad
                glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f, -1.7f);  // Top Left Of The Texture and Quad
                glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  0.3f);  // Bottom Left Of The Texture and Quad
                glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  0.3f);  // Bottom Right Of The Texture and Quad

                // Right face
                glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.7f);  // Bottom Right Of The Texture and Quad
                glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.7f);  // Top Right Of The Texture and Quad
                glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  0.3f);  // Top Left Of The Texture and Quad
                glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  0.3f);  // Bottom Left Of The Texture and Quad

                // Left Face
                glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.7f);  // Bottom Left Of The Texture and Quad
                glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  0.3f);  // Bottom Right Of The Texture and Quad
                glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  0.3f);  // Top Right Of The Texture and Quad
                glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.7f);  // Top Left Of The Texture and Quad

            glEnd ();


            glDisable (GL_TEXTURE_2D);

            glDisable (GL_NORMALIZE);

            glDisable (GL_LIGHTING);

            glDisable (GL_TEXTURE_GEN_S);
            glDisable (GL_TEXTURE_GEN_T);

            glDisable (GL_DEPTH_TEST);

            glEnable (GL_CULL_FACE);
            glCullFace (GL_BACK);

            glEnable (GL_BLEND);

            glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

            float alpha = 0.5f;


            glBegin (GL_QUADS);

                // Back Face
                glColor4f(0.3f, 0.3f, 1.0f, alpha);
                glVertex3f(-1.0f, -1.0f, -1.7f);
                glVertex3f(-1.0f,  1.0f, -1.7f);
                glVertex3f( 1.0f,  1.0f, -1.7f);
                glVertex3f( 1.0f, -1.0f, -1.7f);

                // Top Face
                glColor4f(0.3f, 0.3f, 1.0f, alpha);
                glVertex3f(-1.0f,  1.0f, -1.7f);
                glVertex3f(-1.0f,  1.0f,  0.0f);
                glVertex3f( 1.0f,  1.0f,  0.0f);
                glVertex3f( 1.0f,  1.0f, -1.7f);

                // Bottom Face
                glColor4f(0.3f, 0.3f, 1.0f, alpha);
                glVertex3f(-1.0f, -1.0f, -1.7f);
                glVertex3f( 1.0f, -1.0f, -1.7f);
                glVertex3f( 1.0f, -1.0f,  0.0f);
                glVertex3f(-1.0f, -1.0f,  0.0f);

                // Right face
                glColor4f(0.3f, 0.3f, 1.0f, alpha);
                glVertex3f( 1.0f, -1.0f, -1.7f);
                glVertex3f( 1.0f,  1.0f, -1.7f);
                glVertex3f( 1.0f,  1.0f,  0.0f);
                glVertex3f( 1.0f, -1.0f,  0.0f);

                // Left Face
                glColor4f(0.3f, 0.3f, 1.0f, alpha);
                glVertex3f(-1.0f, -1.0f, -1.7f);
                glVertex3f(-1.0f, -1.0f,  0.0f);
                glVertex3f(-1.0f,  1.0f,  0.0f);
                glVertex3f(-1.0f,  1.0f, -1.7f);

            glEnd ();


            DrawNextTimeLayer ();


            glDisable (GL_TEXTURE_2D);

            glDisable (GL_LIGHTING);

            glDisable (GL_DEPTH_TEST);

            glLoadIdentity ();

            glTranslatef (0.0f, 0.0f, -3.0f);

            glColor3f (1.0f, 1.0f, 1.0f);
            glRasterPos2f (-2.2f, 1.15f);

            if (ShowInfo) Print ("PRESS [I] TO SHOW INFO");
            else          Print ("PRESS [I] TO HIDE INFO");


            if (ShowInfo)
            {
                glDisable (GL_TEXTURE_2D);

                glDisable (GL_LIGHTING);

                glDisable (GL_DEPTH_TEST);

                glLoadIdentity ();

                glTranslatef (0.0f, 0.0f, -3.0f);

                glColor3f (1.0f, 1.0f, 1.0f);
                glRasterPos2f (-2.2f, 0.95f);

                if (!Pause) Print ("[SIMULATION]");
                else        Print ("[PAUSE]");


                glRasterPos2f (-2.2f, 0.85f);
                Print ("Fluid surface");

                glRasterPos2f (-2.2f, 0.75f);
                Print ("deformation coefficient: %2.1f", CurrentWaveAmplitudeMode);

                glRasterPos2f (-2.2f, 0.65f);
                Print ("One drop in %2.1f seconds", CurrentWaveFrequencyMode * 2.0f);

                glRasterPos2f (-2.2f, 0.55f);
                Print ("Viscosity: %0.5f", VIS);

                glRasterPos2f (-2.2f, 0.45f);
                Print ("Wave propogation speed: %0.3f", ALPHA);


                glRasterPos2f (-2.2f, 0.25f);
                Print ("[p] - wave propogation speed");

                glRasterPos2f (-2.2f, 0.15f);
                Print ("[t] - frequency [v] - viscosity");

                glRasterPos2f (-2.2f, 0.05f);
                Print ("[h] - amplitude");

                glRasterPos2f (-2.2f, -0.15f);
                Print ("Press [key] to decrease value");

                glRasterPos2f (-2.2f, -0.25f);
                Print ("Press [shift] + [key] to increase value");


                glRasterPos2f (-2.2f, -0.45f);
                Print ("Press [q][w][e][a][s][d] to rotate the pool");

                glRasterPos2f (-2.2f, -0.55f);
                Print ("Press [-][=] to zoom in/out the pool");

                glRasterPos2f (-2.2f, -0.75f);
                Print ("Press [spacebar] to stop time");

                glRasterPos2f (-2.2f, -0.85f);
                Print ("Hold [spacebar] to calm fluid surface");

                glRasterPos2f (-2.2f, -0.95f);
                Print ("Press [r] to reset settings");


                glRasterPos2f (0.4f, 1.15f);
                Print ("Maximal height: %4.4f", MaxHeight);

                glRasterPos2f (0.4f, 1.05f);
                Print ("Average velocity: %1.7f", VelocitySum / (SIZE_X * SIZE_Y));
            }


            glutSwapBuffers ();
        }