/// <summary> /// Erzeugt eine neue Seitenansicht mit einfacher Seite /// </summary> /// <param name="label">Titel der Seite</param> /// <param name="page">Instanz der anzuzeigenden Seite</param> public SinglePage(string label, KPage page) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; Frame frame = new Frame(); Toolbar toolbar = new Toolbar(frame, page); ScrollableFrame scrollableFrame = new ScrollableFrame(); ExtScrollViewer scrollViewer = scrollableFrame.createScrollableFrame(frame); DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top); mainWindow.subNavigation.Children.Clear(); frame.Margin = new Thickness(15, 0, 0, 0); frame.Content = page; page.parentFrame = frame; page.parentToolbar = toolbar; page.parentScrollViewer = scrollViewer; page.defineToolbarContent(); mainWindow.contentPanel.Children.Clear(); mainWindow.contentPanel.Children.Add(toolbar.dpToolbarPanel); mainWindow.contentPanel.Children.Add(scrollViewer); mainWindow.lbPageTitle.Content = label; }
public LayoutEditor(KPage page, InkControl inkControl = null) { InitializeComponent(); this.page = page; this.inkControl = inkControl; //backgroundSelectPanel1.ItemClicked += BackgroundSelectPanel1_ItemClicked; label1.Text = (page.Border / 10f) + "cm"; this.StartPosition = FormStartPosition.CenterParent; cbShowDate.Checked = page.ShowDate; cbInvertColor.Checked = page.Filter != ColorFilter.Normal; lvBackgrounds.SelectedIndexChanged += LvBackgrounds_SelectedIndexChanged; createBackgroundList(page.Background != null ? page.Background.GetType() : null); this.BackColor = Style.Default.MenuBackground; this.ForeColor = Style.Default.MenuForeground; foreach (Control control in Controls) { if (control is Button) { control.BackColor = Style.Default.MenuContrast; } } Translator.Translate(this); }
/// <summary> /// Die anzuzeigende Seite wechseln /// Erstellt neue Instanzen anstatt existierende wieder zu verwenden, da es Probleme mit dem .net Framework gab /// </summary> /// <param name="label">Der Titel der neuen Seite</param> /// <param name="pageType">Der Typ der neuen Seite</param> /// <param name="args">Parameter für den Konstruktor der neuen Seite</param> public void switchPage(string label, Type pageType, params object[] args) { try { KPage page = (KPage)Activator.CreateInstance(pageType, args); Frame frame = new Frame(); Toolbar toolbar = new Toolbar(frame, page); ScrollableFrame scrollableFrame = new ScrollableFrame(); ExtScrollViewer extScrollViewer = scrollableFrame.createScrollableFrame(frame); frame.Margin = new Thickness(15, 0, 0, 0); DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top); frame.Content = page; page.parentFrame = frame; page.parentToolbar = toolbar; page.parentScrollViewer = extScrollViewer; page.defineToolbarContent(); this.contentPanel.Children.Clear(); this.contentPanel.Children.Add(toolbar.dpToolbarPanel); this.contentPanel.Children.Add(extScrollViewer); this.lbPageTitle.Content = label; } catch { } }
/// <summary> /// Erzeugt eine neue Seitenansicht mit einfacher Seite /// </summary> /// <param name="label">Titel der Seite</param> /// <param name="page">Instanz der anzuzeigenden Seite</param> public SinglePage(string label, KPage page) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; Frame frame = new Frame(); Toolbar toolbar = new Toolbar(frame, page); ScrollableFrame scrollableFrame = new ScrollableFrame(); ExtScrollViewer scrollViewer = scrollableFrame.createScrollableFrame(frame); DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top); mainWindow.subNavigation.Children.Clear(); frame.Margin = new Thickness(15, 0, 0, 0); frame.Content = page; page.parentFrame = frame; page.parentToolbar = toolbar; page.parentScrollViewer = scrollViewer; page.defineToolbarContent(); mainWindow.contentPanel.Children.Clear(); mainWindow.contentPanel.Children.Add(toolbar.dpToolbarPanel); mainWindow.contentPanel.Children.Add(scrollViewer); mainWindow.lbPageTitle.Content = label; }
/// <summary> /// Legt Attribute fst /// </summary> /// <param name="label">Titel der Seite</param> /// <param name="page">Anzuzeigende KPage-Instanz</param> public SimpleTabItem(string label, KPage page) { this.frame = new Frame(); this.label = label; this.page = page; toolbar = new Toolbar(frame, page); DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top); }
/// <summary> /// Legt Attribute fst /// </summary> /// <param name="label">Titel der Seite</param> /// <param name="page">Anzuzeigende KPage-Instanz</param> public SimpleTabItem(string label, KPage page) { this.frame = new Frame(); this.label = label; this.page = page; toolbar = new Toolbar(frame, page); DockPanel.SetDock(toolbar.dpToolbarPanel, Dock.Top); }
public async Task SaveAs() { CloseMenu?.Invoke(); await Task.Delay(0); try { SaveFileDialog diagSaveDoc = new SaveFileDialog(); diagSaveDoc.Filter = "Kritzel Documents|*.krit|PDF Files|*.pdf|JPEG (Current Page)|*.jpg|Windows Bitmap (Current Page)|*.bmp|Portable Network Graphic (Current Page)|*.png"; if (diagSaveDoc.ShowDialog(window) == DialogResult.OK) { FileInfo info = new FileInfo(diagSaveDoc.FileName); string ext = info.Extension.ToLower(); if (ext == ".krit") { document.SaveDocument(diagSaveDoc.FileName); } else if (ext == ".pdf") { Dialogues.ProgressWindow wnd = new Dialogues.ProgressWindow("Save to PDF"); wnd.TopMost = true; wnd.Show(); try { document.SavePDF(diagSaveDoc.FileName, wnd.ProgressBar); //inkControl1.Page.SavePDF(sfd.FileName); } catch (Exception ex) { MessageBox.Show("Error while saving File:\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } wnd.Close(); } else if (ext == ".jpg" || ext == ".jpeg" || ext == ".bmp" || ext == ".png") { float factor = 5; KPage page = control.Page; SizeF size = page.Format.GetPixelSize(); Bitmap bmp = new Bitmap((int)(size.Width * factor), (int)(size.Height * factor)); Graphics g = Graphics.FromImage(bmp); g.Clear(Color.White); Renderer.GdiRenderer r = g.GetRenderer(); g.ScaleTransform(factor, factor); page.DrawPDFHQ(r, bmp.Height); page.Draw(r); bmp.Save(diagSaveDoc.FileName); } else { MessageBox.Show("Error export File"); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error saving File", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public Toolbar(Frame relatedFrame, KPage relatedPage) { this.relatedFrame = relatedFrame; this.relatedPage = relatedPage; this.buttonFunctionMappings = new List<ButtonFunctionMapping>(); dpToolbarPanel = new DockPanel(); dpToolbarPanel.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom(IniParser.GetSetting("APPSETTINGS", "toolbarColor"))); dpToolbarPanel.VerticalAlignment = VerticalAlignment.Top; clearContent(); }
public Toolbar(Frame relatedFrame, KPage relatedPage) { this.relatedFrame = relatedFrame; this.relatedPage = relatedPage; this.buttonFunctionMappings = new List <ButtonFunctionMapping>(); dpToolbarPanel = new DockPanel(); dpToolbarPanel.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom(IniParser.GetSetting("APPSETTINGS", "toolbarColor"))); dpToolbarPanel.VerticalAlignment = VerticalAlignment.Top; clearContent(); }
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && listView1.FocusedItem != null && listView1.FocusedItem.Tag is KPage) { KPage page = (KPage)listView1.FocusedItem.Tag; cltr.LoadPage(page); } }
private void btnOk_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; List <int> pageIndexes = new List <int>(); for (int i = 0; i < lvPages.Items.Count; i++) { if (lvPages.Items[i].Checked) { pageIndexes.Add(i); } } /*Bitmap[] bmps = MupdfSharp.PageRenderer.Render(path, PAGETHEIGHTPIXEL, pageIndexes.ToArray()); * for(int i = 0; i < bmps.Length; i++) * { * Bitmap tmp = bmps[i]; * bmps[i] = tmp.MakeBackgroundTransparent(Color.White); * tmp.Dispose(); * }*/ if (!Directory.Exists(TmpManager.GetTmpDir() + "\\render")) { Directory.CreateDirectory(TmpManager.GetTmpDir() + "\\render"); } Pages = new KPage[pageIndexes.Count]; pdf.PdfDocument pdfdoc = pdf_io.PdfReader.Open(path, pdf_io.PdfDocumentOpenMode.Modify | pdf_io.PdfDocumentOpenMode.Import); for (int i = 0; i < pageIndexes.Count; i++) { int p = pageIndexes[i]; KPage page = new KPage(KDocument.EmptyDocument); pdf.PdfPage pPage = pdfdoc.Pages[p]; float w = (float)pPage.Width.Millimeter; float h = (float)pPage.Height.Millimeter; if (pPage.Rotate == 90 || pPage.Rotate == 270) { Util.Swap(ref w, ref h); } page.Format = new PageFormat(w, h); page.Background = null; page.ShowDate = false; page.OriginalPage = pPage; /*page.BackgroundImage * = new Renderer.Image(bmps[i]);*/ page.PdfRenderPath = TmpManager.NewFilename(TmpManager.GetTmpDir() + "\\render", "page", ".png"); Pages[i] = page; } pdfdoc.Close(); }
public PageOverview(KDocument document, Form parent, KPage currentPage) { InitializeComponent(); thumbnailSize = (int)(4 * Util.GetGUISize()); int border = Util.GetGUISize(); this.Bounds = new Rectangle(border, border, parent.ClientSize.Width - border * 2, parent.ClientSize.Height - border * 2); this.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top; this.document = document; pageThumbnails = new Renderer.Image[document.Pages.Count]; for (int i = 0; i < pageThumbnails.Length; i++) { Bitmap bmp = document.Pages[i].GetThumbnail(thumbnailSize, thumbnailSize, Color.White, Color.Silver, 4); pageThumbnails[i] = new Renderer.Image(bmp); } renderer = GPURenderer.Create(this); mPos = Cursor.Position; tmDraw = new System.Windows.Forms.Timer(); tmDraw.Interval = 30; tmDraw.Start(); tmDraw.Tick += tmDraw_Tick; tmInput = new System.Windows.Forms.Timer(); tmInput.Interval = 200; tmInput.Start(); tmInput.Tick += TmInput_Tick; bmpAdd = new Renderer.Image(ResManager.LoadIcon("add.svg", thumbnailSize / 2)); if (currentPage == null) { currentPageIndex = -1; } else { currentPageIndex = document.Pages.IndexOf(currentPage); } this.Disposed += PageOverview_Disposed; this.MouseDown += PageOverview_MouseDown; this.MouseUp += PageOverview_MouseUp; this.MouseClick += PageOverview_MouseClick; this.VScroll = true; }
public TransformerRotate(KPage page, InkControl control) { rad = (int)(42 * Util.GetScaleFactor()); width = (int)(10 * Util.GetScaleFactor()); this.page = page; this.control = control; if (img == null) { imRect = new Rectangle(width * -2, -rad - width, width * 4, width * 2); Bitmap bmp = ResManager.LoadIcon("gui/rotator.svg", imRect.Width, imRect.Height); img = new Renderer.Image(bmp); } }
/// <summary> /// Erzeugt eine neue Seitenansicht mit TabControl /// </summary> /// <param name="source">Die aufrufende Seite vom Typ KPage</param> /// <param name="label">Titel der Seite</param> /// <param name="tabs">Liste von anzuzeigenden SimpleTabItem</param> public SinglePage(KPage source, string label, List<SimpleTabItem> tabs) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; // Erzeuge TabControl tabControl = new TabControl(); tabControl.FontSize = 14; tabControl.Background = Brushes.White; tabControl.Margin = new Thickness(-1, 15, -1, -1); source.parentTabControl = this.tabControl; mainWindow.subNavigation.Children.Clear(); // macht aus der tabs-Liste einen TabControl foreach (var tab in tabs) { DockPanel pageWrapper = new DockPanel(); ScrollableFrame scrollableFrame = new ScrollableFrame(); ExtScrollViewer scrollViewer = scrollableFrame.createScrollableFrame(tab.frame); tab.toolbar.relatedTabControl = tabControl; pageWrapper.Margin = new Thickness(-4); pageWrapper.Children.Add(tab.toolbar.dpToolbarPanel); pageWrapper.Children.Add(scrollViewer); tab.frame.Margin = new Thickness(15, 0, 0, 0); tab.frame.Content = tab.page; tab.page.parentFrame = tab.frame; tab.page.parentToolbar = tab.toolbar; tab.page.parentTabControl = tabControl; tab.page.parentScrollViewer = scrollViewer; tab.page.defineToolbarContent(); TabItem tabItem = new TabItem(); tabItem.Header = tab.label; tabItem.Content = pageWrapper; tabControl.Items.Add(tabItem); } mainWindow.contentPanel.Children.Clear(); mainWindow.contentPanel.Children.Add(tabControl); mainWindow.lbPageTitle.Content = label; }
/// <summary> /// Erzeugt eine neue Seitenansicht mit TabControl /// </summary> /// <param name="source">Die aufrufende Seite vom Typ KPage</param> /// <param name="label">Titel der Seite</param> /// <param name="tabs">Liste von anzuzeigenden SimpleTabItem</param> public SinglePage(KPage source, string label, List <SimpleTabItem> tabs) { MainWindow mainWindow = Application.Current.MainWindow as MainWindow; // Erzeuge TabControl tabControl = new TabControl(); tabControl.FontSize = 14; tabControl.Background = Brushes.White; tabControl.Margin = new Thickness(-1, 15, -1, -1); source.parentTabControl = this.tabControl; mainWindow.subNavigation.Children.Clear(); // macht aus der tabs-Liste einen TabControl foreach (var tab in tabs) { DockPanel pageWrapper = new DockPanel(); ScrollableFrame scrollableFrame = new ScrollableFrame(); ExtScrollViewer scrollViewer = scrollableFrame.createScrollableFrame(tab.frame); tab.toolbar.relatedTabControl = tabControl; pageWrapper.Margin = new Thickness(-4); pageWrapper.Children.Add(tab.toolbar.dpToolbarPanel); pageWrapper.Children.Add(scrollViewer); tab.frame.Margin = new Thickness(15, 0, 0, 0); tab.frame.Content = tab.page; tab.page.parentFrame = tab.frame; tab.page.parentToolbar = tab.toolbar; tab.page.parentTabControl = tabControl; tab.page.parentScrollViewer = scrollViewer; tab.page.defineToolbarContent(); TabItem tabItem = new TabItem(); tabItem.Header = tab.label; tabItem.Content = pageWrapper; tabControl.Items.Add(tabItem); } mainWindow.contentPanel.Children.Clear(); mainWindow.contentPanel.Children.Add(tabControl); mainWindow.lbPageTitle.Content = label; }
public PageList(KDocument doc, InkControl cltr) { InitializeComponent(); this.doc = doc; this.cltr = cltr; for (int i = 0; i < doc.Pages.Count; i++) { KPage page = doc.Pages[i]; int imgInd = imgList.Images.Count; imgList.Images.Add(page.GetThumbnail(imgList.ImageSize.Width, imgList.ImageSize.Height, Color.Transparent, Color.Teal, 4)); ListViewItem itm = new ListViewItem($"Page {i + 1}"); itm.ImageIndex = imgInd; itm.Tag = page; listView1.Items.Add(itm); } }
public TransformerTranslate(KPage page, InkControl control, params Transformer[] transformer) { innerRad = (int)(20 * Util.GetScaleFactor()); if (img == null || img.IsDisposed) { Bitmap bmp = ResManager.LoadIcon("gui/translator.svg", innerRad); img = new Renderer.Image(bmp); } this.control = control; this.page = page; this.pageVersion = page.Version; this.transformer = transformer; int c = 0; float _x = 0, _y = 0; selectedLines = new bool[page.LineCount]; for (int i = 0; i < page.LineCount; i++) { Line l = page.GetLine(i); if (l.Selected) { PointF center = new PointF(l.Bounds.X + l.Bounds.Width / 2, l.Bounds.Y + l.Bounds.Height / 2); _x += center.X; _y += center.Y; c++; } selectedLines[i] = l.Selected; } _x /= c; _y /= c; //control.GetTransform().Transform(ref _x, ref _y); //PointF pf = control.GetTransform().GetTranslation(); x = (int)(_x); y = (int)(_y); this.Others = new List <Transformer>(this.transformer); this.Others.Add(this); foreach (Transformer trans in this.transformer) { trans.SetPosition(x, y); trans.Others = this.Others; } }
private void btnCreate_Click(object sender, EventArgs e) { PageFormat pf = formats[cbPageFormat.Text]; KDocument doc = new KDocument(); KPage page = new KPage(doc); page.Format = pf; doc.DefaultFormat = cbPageFormat.Text; doc.Pages.Add(page); doc.SetCurrentStateAsSaved(); try { page.Filter = (ColorFilter)Enum.GetValues(typeof(ColorFilter)).GetValue(cbFilters.SelectedIndex); } catch (Exception) { } window.SetDocument(doc); Close?.Invoke(); }
private void btnAdd_Click(object sender, EventArgs e) { int index = GetInsertIndex(); if (pages == null) { KPage page = new KPage(document); page.Format = formats[comboBox1.Text]; document.Pages.Insert(index, page); control.LoadPage(page); Close?.Invoke(); } else { document.Pages.InsertRange(index, pages); foreach (KPage page in pages) { page.ChangeDocument(document); } Close?.Invoke(); } }