Mini Kabibi Habibi

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

Imports Microsoft.VisualBasic
Imports System
Imports System.Drawing
Imports System.IO
Imports System.Reflection
Imports System.Windows.Forms
Imports DevExpress.Utils
Imports DevExpress.Utils.Frames
Imports DevExpress.Utils.About
Imports DevExpress.XtraBars
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.XtraBars.Ribbon.ViewInfo
Imports DevExpress.XtraBars.Helpers
Imports DevExpress.XtraPdfViewer

Namespace PdfViewerDemo
	Partial Public Class MainForm
		Inherits RibbonForm
		Private mainFormText As String

		Public Shared Function GetImage(ByVal name As String) As Image
			If String.IsNullOrEmpty(name) Then
				Return Nothing
			End If
			Return ResourceImageHelper.CreateImageFromResources(name, System.Reflection.Assembly.GetExecutingAssembly())
		End Function

		Public Sub New()
			InitializeComponent()
			pdfViewer.CreateRibbon()
			For Each page As RibbonPage In ribbonControl.Pages
				If page.Text = "PDF Viewer" Then
					Dim skinsPage As New RibbonPageGroup(ribbonGallerySkins.Caption)
					SkinHelper.InitSkinGallery(ribbonGallerySkins, True)
					skinsPage.ItemLinks.Add(ribbonGallerySkins)
					Dim infoPage As New RibbonPageGroup("Info")
					Dim aboutItem As New BarButtonItem(ribbonControl.Manager, "About")
					aboutItem.Glyph = GetImage("PdfViewerDemo.Images.Info_16x16.png")
					aboutItem.LargeGlyph = GetImage("PdfViewerDemo.Images.Info_32x32.png")
					AddHandler aboutItem.ItemClick, AddressOf OnAboutItemClicked
					infoPage.ItemLinks.Add(aboutItem)
					page.Groups.AddRange(New RibbonPageGroup() { skinsPage, infoPage })
					Exit For
				End If
			Next page
			mainFormText = Text
			AddHandler pdfViewer.DocumentChanged, AddressOf OnPdfViewerDocumentChanged
			Using pdfStream As Stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("PdfViewerDemo.Data.Demo.pdf")
				pdfViewer.LoadDocument(pdfStream)
			End Using
		End Sub
		Private Sub OnRibbonControlPaint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles ribbonControl.Paint
			Dim ribbonViewInfo As RibbonViewInfo = ribbonControl.ViewInfo
			If ribbonViewInfo IsNot Nothing Then
				Dim panelViewInfo As RibbonPanelViewInfo = ribbonViewInfo.Panel
				If panelViewInfo IsNot Nothing Then
					Dim groups As RibbonPageGroupViewInfoCollection = panelViewInfo.Groups
					If groups IsNot Nothing Then
						Dim bounds As Rectangle = panelViewInfo.Bounds
						Dim image As Image = ApplicationCaption8_1.GetImageLogoEx(LookAndFeel)
						Dim imageHeight As Integer = image.Height
						Dim yOffset As Integer = bounds.Height - imageHeight
						If yOffset >= 0 Then
							Dim minX As Integer
							If groups.Count > 0 Then
								minX = groups(groups.Count - 1).Bounds.Right
							Else
								minX = bounds.X
							End If
							Dim imageWidth As Integer = image.Width + 15
							Dim xOffset As Integer = bounds.Width - imageWidth
							If xOffset >= minX Then
								bounds.X = xOffset
								bounds.Y += yOffset \ 2
								bounds.Width = imageWidth
								bounds.Height = imageHeight
								e.Graphics.DrawImage(image, bounds.Location)
							End If
						End If
					End If
				End If
			End If
		End Sub
		Private Sub OnPdfViewerDocumentChanged(ByVal sender As Object, ByVal e As PdfDocumentChangedEventArgs)
			Dim fileName As String = Path.GetFileName(e.DocumentFilePath)
			If String.IsNullOrEmpty(fileName) Then
				Text = mainFormText
			Else
				Text = fileName & " - " & mainFormText
			End If
		End Sub
		Private Sub OnAboutItemClicked(ByVal sender As Object, ByVal e As ItemClickEventArgs)
			AboutForm.Show(GetType(PdfViewer), ProductKind.DXperienceWin, ProductInfoStage.Registered)
		End Sub
	End Class
End Namespace