public TreeChartOptions() { FamilyVisible = true; NameVisible = true; PatronymicVisible = true; NickVisible = true; DiffLines = true; BirthDateVisible = true; DeathDateVisible = true; OnlyYears = true; Kinship = false; PortraitsVisible = true; DefaultPortraits = false; SignsVisible = false; CertaintyIndexVisible = false; TraceSelected = true; ChildlessExclude = false; Decorative = true; InvertedTree = false; MarriagesDates = false; ShowPlaces = false; HideUnknownSpouses = false; DottedLinesOfAdoptedChildren = false; SeparateDatesAndPlacesLines = false; BoldNames = false; SeparateDepth = false; AutoAlign = true; BorderStyle = GfxBorderStyle.None; DeepMode = DeepMode.None; MaleColor = ChartRenderer.GetColor(MALE_COLOR); FemaleColor = ChartRenderer.GetColor(FEMALE_COLOR); UnkSexColor = ChartRenderer.GetColor(UNK_SEX_COLOR); UnHusbandColor = ChartRenderer.GetColor(UN_HUSBAND_COLOR); UnWifeColor = ChartRenderer.GetColor(UN_WIFE_COLOR); DefFontName = AppHost.GfxProvider.GetDefaultFontName(); DefFontSize = 8; DefFontColor = ChartRenderer.GetColor(BSDColors.Black); DefFontStyle = BSDTypes.FontStyle.None; BranchDistance = TreeChartModel.DEF_BRANCH_DISTANCE; LevelDistance = TreeChartModel.DEF_LEVEL_DISTANCE; Margins = TreeChartModel.DEF_MARGINS; SpouseDistance = TreeChartModel.DEF_SPOUSE_DISTANCE; }
private void DrawDeep(DeepMode mode, int spx, int spy) { try { using (var deepModel = new TreeChartModel()) { deepModel.Assign(fModel); deepModel.SetRenderer(fRenderer); deepModel.DepthLimitAncestors = 2; deepModel.DepthLimitDescendants = 2; deepModel.GenChart(fSelected.Rec, TreeChartKind.ckBoth, true); deepModel.RecalcChart(true); var pers = deepModel.FindPersonByRec(fSelected.Rec); if (pers == null) { Logger.WriteError("TreeChartBox.DrawDeep(): unexpected failure"); return; } int dmX = (spx + (fSelected.PtX - pers.PtX)); int dmY = (spy + (fSelected.PtY - pers.PtY)); deepModel.SetOffsets(dmX, dmY); deepModel.VisibleArea = ExtRect.CreateBounds(0, 0, deepModel.ImageWidth, deepModel.ImageHeight); switch (mode) { case DeepMode.Background: fRenderer.SetTranslucent(0.75f); break; case DeepMode.Foreground: fRenderer.SetTranslucent(0.25f); IPen xpen = fRenderer.CreatePen(ChartRenderer.GetColor(BSDColors.Black), 2.0f); IColor bColor = ChartRenderer.GetColor(BSDColors.White); fRenderer.DrawRoundedRectangle(xpen, bColor, dmX, dmY, deepModel.ImageWidth, deepModel.ImageHeight, 6); fRenderer.SetTranslucent(0.00f); break; } deepModel.Draw(ChartDrawMode.dmStatic); } } catch (Exception ex) { Logger.WriteError("TreeChartBox.DrawDeep()", ex); } }
/// <summary> /// /// </summary> private void DoAddFolder( DirectoryInfo baseFolderPath, DirectoryInfo currentFolderPath, IZipEventSink eventSink, DeepMode deep, PathSaveMode pathSaveMode, string relativeRootPostfix ) { Debug.Assert( string.IsNullOrEmpty( relativeRootPostfix ) || pathSaveMode == PathSaveMode.Relative ); if ( eventSink == null || eventSink.OnBeforeEnterFolder( this, currentFolderPath ) ) { // All files. foreach ( FileInfo filePath in currentFolderPath.GetFiles() ) { if ( eventSink == null || eventSink.OnBeforeAddFile( this, filePath ) ) { string pathSaveValue; switch ( pathSaveMode ) { case PathSaveMode.Absolute: // Winzip always displays absolute paths with // the drive resp. server+share removed, so pack // it here in this way, too. pathSaveValue = PathHelper.SplitPath( filePath.FullName ).DirectoryAndNameWithExtension; break; case PathSaveMode.Relative: pathSaveValue = PathHelper.GetRelativePath( baseFolderPath.FullName, filePath.FullName ); if ( !string.IsNullOrEmpty( relativeRootPostfix ) ) { pathSaveValue = PathHelper.Combine( relativeRootPostfix, pathSaveValue ); } break; case PathSaveMode.None: pathSaveValue = filePath.Name; break; default: Debug.Assert( false ); pathSaveValue = filePath.Name; break; } using ( FileStream fs = new FileStream( filePath.FullName, FileMode.Open, FileAccess.Read, FileShare.Read ) ) using ( BinaryReader r = new BinaryReader( fs ) ) { byte[] buffer = new byte[fs.Length]; fs.Read( buffer, 0, buffer.Length ); AddBytes( buffer, pathSaveValue ); } } } // -- if ( deep == DeepMode.Deep ) { // All folders. foreach ( DirectoryInfo folderPath in currentFolderPath.GetDirectories() ) { DoAddFolder( baseFolderPath, folderPath, eventSink, deep, pathSaveMode, relativeRootPostfix ); } } } }
/// <summary> /// Add multiple files from the given folder, recursively. /// The filepaths are added relatively to the given folder path. /// </summary> public void AddFolder( DirectoryInfo folderPath, IZipEventSink eventSink, DeepMode deep, PathSaveMode pathSaveMode, string relativeRootPostfix ) { DoAddFolder( folderPath, folderPath, eventSink, deep, pathSaveMode, relativeRootPostfix ); }
/// <summary> /// Add multiple files from the given folder, recursively. /// The filepaths are added relatively to the given folder path. /// </summary> public void AddFolder( DirectoryInfo folderPath, IZipEventSink eventSink, DeepMode deep, PathSaveMode pathSaveMode ) { DoAddFolder( folderPath, folderPath, eventSink, deep, pathSaveMode, null ); }
/// <summary> /// Add multiple files from the given folder, recursively. /// The filepaths are added relatively to the given folder path. /// </summary> public void AddFolder( DirectoryInfo folderPath, IZipEventSink eventSink, DeepMode deep ) { AddFolder( folderPath, eventSink, deep, PathSaveMode.Relative ); }