Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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
            {
            }
        }
Exemplo n.º 4
0
        /// <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;
        }
Exemplo n.º 5
0
 /// <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);
 }
Exemplo n.º 6
0
 /// <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);
 }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
 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();
 }
Exemplo n.º 9
0
 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();
 }
Exemplo n.º 10
0
 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);
     }
 }
Exemplo n.º 11
0
        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();
        }
Exemplo n.º 12
0
        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;
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
        /// <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;
        }
Exemplo n.º 15
0
        /// <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;
        }
Exemplo n.º 16
0
        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);
            }
        }
Exemplo n.º 17
0
        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;
            }
        }
Exemplo n.º 18
0
        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();
        }
Exemplo n.º 19
0
        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();
            }
        }