Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/PdfViewerDemo/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/PdfViewerDemo/MainForm.cs

using System;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using DevExpress.Utils;
using DevExpress.Utils.Frames;
using DevExpress.Utils.About;
using DevExpress.XtraBars;
using DevExpress.XtraBars.Ribbon;
using DevExpress.XtraBars.Ribbon.ViewInfo;
using DevExpress.XtraBars.Helpers;
using DevExpress.XtraPdfViewer;

namespace PdfViewerDemo {
    public partial class MainForm : RibbonForm {
        string mainFormText;

        public static Image GetImage(string name) {
            if (String.IsNullOrEmpty(name)) 
                return null;
            return ResourceImageHelper.CreateImageFromResources(name, Assembly.GetExecutingAssembly());
        }

        public MainForm() {
            InitializeComponent();
            pdfViewer.CreateRibbon();
            foreach (RibbonPage page in ribbonControl.Pages)
                if (page.Text == "PDF Viewer") {
                    RibbonPageGroup skinsPage = new RibbonPageGroup(ribbonGallerySkins.Caption);
                    SkinHelper.InitSkinGallery(ribbonGallerySkins, true);
                    skinsPage.ItemLinks.Add(ribbonGallerySkins);
                    RibbonPageGroup infoPage = new RibbonPageGroup("Info");
                    BarButtonItem aboutItem = new BarButtonItem(ribbonControl.Manager, "About");
                    aboutItem.Glyph = GetImage("PdfViewerDemo.Images.Info_16x16.png");
                    aboutItem.LargeGlyph = GetImage("PdfViewerDemo.Images.Info_32x32.png");
                    aboutItem.ItemClick += new ItemClickEventHandler(OnAboutItemClicked);
                    infoPage.ItemLinks.Add(aboutItem);
                    page.Groups.AddRange(new RibbonPageGroup[] { skinsPage, infoPage });
                    break;
                }
            mainFormText = Text;
            pdfViewer.DocumentChanged += new PdfDocumentChangedEventHandler(OnPdfViewerDocumentChanged);
            using (Stream pdfStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("PdfViewerDemo.Data.Demo.pdf"))
                pdfViewer.LoadDocument(pdfStream);
        }
        void OnRibbonControlPaint(object sender, PaintEventArgs e) {
            RibbonViewInfo ribbonViewInfo = ribbonControl.ViewInfo;
            if (ribbonViewInfo != null) {
                RibbonPanelViewInfo panelViewInfo = ribbonViewInfo.Panel;
                if (panelViewInfo != null) {
                    RibbonPageGroupViewInfoCollection groups = panelViewInfo.Groups;
                    if (groups != null) {
                        Rectangle bounds = panelViewInfo.Bounds;
                        Image image = ApplicationCaption8_1.GetImageLogoEx(LookAndFeel);
                        int imageHeight = image.Height;
                        int yOffset = bounds.Height - imageHeight;
                        if (yOffset >= 0) {
                            int minX;
                            if (groups.Count > 0)
                                minX = groups[groups.Count - 1].Bounds.Right;
                            else
                                minX = bounds.X;
                            int imageWidth = image.Width + 15;
                            int xOffset = bounds.Width - imageWidth;
                            if (xOffset >= minX) {
                                bounds.X = xOffset;
                                bounds.Y += yOffset / 2;
                                bounds.Width = imageWidth;
                                bounds.Height = imageHeight;
                                e.Graphics.DrawImage(image, bounds.Location);
                            }
                        }
                    }
                }
            }
        }
        void OnPdfViewerDocumentChanged(object sender, PdfDocumentChangedEventArgs e) {
            string fileName = Path.GetFileName(e.DocumentFilePath);
            if (String.IsNullOrEmpty(fileName)) 
                Text = mainFormText;
            else
                Text = fileName + " - " + mainFormText;
        }
        void OnAboutItemClicked(object sender, ItemClickEventArgs e) {
            AboutForm.Show(typeof(PdfViewer), ProductKind.DXperienceWin, ProductInfoStage.Registered);
        }
    }
}