Mini Kabibi Habibi

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

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Data
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraEditors

Namespace PhotoViewer
	Partial Public Class SimpleFilterParams
		Inherits XtraUserControl
		Private filterInfo As FilterInfo

		Public Sub New()
			InitializeComponent()
		End Sub

		Public Overridable Function GetParams() As Object()
			Return New Object() { }
		End Function
		Public Property Filter() As FilterInfo
			Get
				Return filterInfo
			End Get
			Set(ByVal value As FilterInfo)
				filterInfo = value
			End Set
		End Property
		Private imageToFilter_Renamed As Image
		Public Property ImageToFilter() As Image
			Get
				Return imageToFilter_Renamed
			End Get
			Set(ByVal value As Image)
				If ImageToFilter Is value Then
					Return
				End If
				imageToFilter_Renamed = value
				OnImageToFilterChanged()
			End Set
		End Property
		Private Sub OnImageToFilterChanged()
			Dim img As Image = TryCast(pictureEdit1.Tag, Image)
			If img IsNot Nothing Then
				img.Dispose()
			End If
			pictureEdit1.Tag = Nothing
			img = pictureEdit1.Image
			pictureEdit1.Image = Nothing
			If img IsNot Nothing Then
				img.Dispose()
			End If
			If ImageToFilter IsNot Nothing Then
				pictureEdit1.Image = ThumbnailHelper.Default.CreateThumbnail(ImageToFilter, 128)
				UpdatePreview()
			End If
		End Sub
		Public Custom Event ApplyFilter As EventHandler
			AddHandler(ByVal value As EventHandler)
				AddHandler applyFilterButton.Click, value
			End AddHandler
			RemoveHandler(ByVal value As EventHandler)
				RemoveHandler applyFilterButton.Click, value
			End RemoveHandler
			RaiseEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
			End RaiseEvent
		End Event
		Public Overridable Sub UpdatePreview()
			Dim oldImage As Image
			If pictureEdit1.Tag Is Nothing Then
				oldImage = Nothing
			Else
				oldImage = pictureEdit1.Image
			End If
			If pictureEdit1.Tag Is Nothing Then
				pictureEdit1.Tag = pictureEdit1.Image
			End If
			If pictureEdit1.Tag Is Nothing Then
				Return
			End If
			pictureEdit1.Image = FilterHelper.ApplyFilter(Filter.Name, CType(pictureEdit1.Tag, Image), GetParams())
			If oldImage IsNot Nothing Then
				oldImage.Dispose()
			End If
		End Sub
		Protected Overrides Sub OnParentChanged(ByVal e As EventArgs)
			MyBase.OnParentChanged(e)
			If Parent IsNot Nothing AndAlso Filter IsNot Nothing Then
				UpdatePreview()
			ElseIf Parent Is Nothing Then
				ImageToFilter = Nothing
			End If
		End Sub
	End Class
End Namespace