public void Print(bool showDialog, bool isRunningOnMono)
{
if (_diagram == null)
{
throw new InvalidOperationException("There is no diagram to print");
}
if (showDialog)
{
PrintDialog printDlg = new PrintDialog();
printDlg.UseEXDialog = !isRunningOnMono;
printDlg.Document = _printDocument;
if (printDlg.ShowDialog(Form.ActiveForm) == DialogResult.OK)
{
_printDocument.Print();
}
}
else
{
_printDocument.Print();
}
}