Ejemplo n.º 1
0
bool wxCommandProcessor::Undo()
{
    wxCommand *command = GetCurrentCommand();
    if ( command && command->CanUndo() )
    {
        if ( UndoCommand(*command) )
        {
            m_currentCommand = m_currentCommand->GetPrevious();
            SetMenuStrings();
            return true;
        }
    }

    return false;
}
Ejemplo n.º 2
0
bool 		_HYParameterTable::_ProcessMenuSelection (long msel)
{
	
	_HYTable*   table = (_HYTable*)GetCellObject(HY_PARAMETER_TABLE_TABLE_ROW,0);
	bool		res = false;
		
	switch (msel)
	{
		case HY_WINDOW_MENU_ID_FILE+1: // save
		{
			DoSave ();
			res = true;
			break;
		}
		case HY_WINDOW_MENU_ID_FILE+2: // print
		{
			_SimpleList columns,
							sel;
			columns << 0;
			columns << 1;
			columns << 2;
			columns << 3;
			table->GetSelection (sel);
			char    resp = 3;
			if (sel.lLength)
			{
				_String pr ("Would you like to print only the selected cells? (Click \"No\" to print the entire table).");
				resp = YesNoCancelPrompt (pr);
			}
			if (resp == 3)
				table->_PrintTable(columns,(_HYTable*)GetCellObject(HY_PARAMETER_TABLE_TABLE_ROW-1,0));
			else
				if (resp == 1)
				{
					_SimpleList rows;
					for (long k = 0; k < sel.lLength; k+=4)
						rows << sel.lData[k]/4;
					table->_PrintTable(columns,rows,(_HYTable*)GetCellObject(HY_PARAMETER_TABLE_TABLE_ROW-1,0));
				}
			res = true;
			break;
		}

		case HY_WINDOW_MENU_ID_EDIT: // undo
		{
			UndoCommand();
			_UpdateUndoMenu (nil,nil);
			res = true;
			break;
		}

		case HY_WINDOW_MENU_ID_EDIT+5: // undo
		{
			SelectAll();
			res = true;
			break;
		}

		case HY_PT_WIN32_MENU_BASE+10:
		case HY_PT_WIN32_MENU_BASE+11:
		case HY_PT_WIN32_MENU_BASE+12:
		case HY_PT_WIN32_MENU_BASE+13:
		{
			res = true;
			char   toggleFlag;
			GtkWidget * checkMI = gtk_item_factory_get_widget_by_action(menu_items,msel);
			msel -= HY_PT_WIN32_MENU_BASE+10;
			switch (msel)
			{
				case 0:
					toggleFlag = HY_PARAMETER_TABLE_VIEW_LOCAL;
					break;
				case 1:
					toggleFlag = HY_PARAMETER_TABLE_VIEW_GLOBAL;
					break;
				case 2:
					toggleFlag = HY_PARAMETER_TABLE_VIEW_CONSTRAINED;
					break;
				case 3:
					toggleFlag = HY_PARAMETER_TABLE_VIEW_CATEGORY;
					break;
					
			}
			if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM(checkMI)) != (bool)viewOptions&toggleFlag)
			{
				if (viewOptions&toggleFlag)
				{
					if (viewOptions-toggleFlag)
						viewOptions-=toggleFlag;
					else
						break;
				}
				else
					viewOptions+=toggleFlag;
					
				gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM(checkMI), viewOptions&toggleFlag);
				ConstructTheTable();
				SetWindowRectangle (top,left,bottom,right);
			}
			break;
		}
		
		case HY_PT_WIN32_MENU_BASE+1:
			OptimizeLikelihoodFunction();
			res = true;
			break;
			
		case HY_PT_WIN32_MENU_BASE+2:
			DoEnterConstraint ();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+3:
			DoCleanUp	();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+4:
			HandleVarianceEstimates	();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+5:
			HandleProfilePlot	();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+6:
			HandleCategories	();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+7:
			HandleSelectParameters	();
			res = true;
			break;

		case HY_PT_WIN32_MENU_BASE+8:
			HandleOpenInChart	();
			res = true;
			break;
	}

	if (!res)
		res = _HYTWindow::_ProcessMenuSelection(msel);
	return res;
}