gambas-source-code/app/examples/Image/PhotoTouch/.src/FBrightness.class
Benoît Minisini c6a9cd69c2 [EXAMPLES]
* NEW: Add examples again. I hope correctly this time.


git-svn-id: svn://localhost/gambas/trunk@6726 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2014-12-12 19:58:52 +00:00

146 lines
3 KiB
Text

' Gambas class file
Private $bNoChange As Boolean
Private $MX As Integer
Private $MY As Integer
Private $hRect As Rect
Private $bBegin As Boolean
Private btnUndo As CButton
Private btnApply As CButton
Private btnBrightness As CButton
Private btnContrast As CButton
Private btnGamma As CButton
Public Sub _new()
btnUndo = New CButton(Me) As "btnUndo"
btnUndo.Move(Me.W - 96 - Desktop.Scale * 4, Desktop.Scale * 3, 48, 48)
btnUndo.Image = Image.Load("undo.png")
btnApply = New CButton(Me) As "btnApply"
btnApply.Move(btnUndo.X + btnUndo.W + Desktop.Scale, btnUndo.Y, 48, 48)
btnApply.Image = Image.Load("ok.png")
btnBrightness = New CButton(Me)
btnBrightness.Enabled = False
btnBrightness.Move(Desktop.Scale * 3, Desktop.Scale * 10, 48, 48)
btnBrightness.Image = Image.Load("brightness.png")
btnBrightness.Shortcut = "B"
sldBrightness.Move(btnBrightness.X + 64, btnBrightness.Y + 4)
sldBrightness.Tag = btnBrightness
btnContrast = New CButton(Me)
btnContrast.Enabled = False
btnContrast.Move(btnBrightness.X, btnBrightness.Y + 64, 48, 48)
btnContrast.Image = Image.Load("contrast.png")
btnContrast.Shortcut = "C"
sldContrast.Move(btnContrast.X + 64, btnContrast.Y + 4)
sldContrast.Tag = btnContrast
btnGamma = New CButton(Me)
btnGamma.Enabled = False
btnGamma.Move(btnBrightness.X, btnContrast.Y + 64, 48, 48)
btnGamma.Image = Image.Load("gamma.png")
btnGamma.Shortcut = "G"
sldGamma.Move(btnGamma.X + 64, btnGamma.Y + 4)
sldGamma.Tag = btnGamma
End
Public Sub Form_Open()
Me.Center
End
Public Sub btnUndo_Click()
$bNoChange = True
sldBrightness.Value = 50
sldContrast.Value = 50
sldGamma.Value = 50
$bNoChange = False
Balance_Change
End
Public Sub btnApply_Click()
If $bBegin Then FMain.Apply
End
Public Sub Balance_Change()
If $bNoChange Then Return
If Not $bBegin Then
FMain.Begin
$bBegin = True
Endif
FMain.Balance(sldBrightness.Value, sldContrast.Value, sldGamma.Value)
End
Public Sub panBrightness_MouseDown()
$MX = Mouse.ScreenX
$MY = Mouse.ScreenY
$hRect = Rect(Me.X, Me.Y, Me.W, Me.H)
End
Public Sub panBrightness_MouseMove()
Dim X, Y As Integer
X = Min(Max($hRect.X + Mouse.ScreenX - $MX, 0), FMain.W - $hRect.W)
Y = Min(Max($hRect.Y + Mouse.ScreenY - $MY, 0), FMain.H - $hRect.H)
Me.Move(X, Y)
End
Public Sub Form_KeyPress()
If Key.Code = Key.Backspace Then
btnUndo_Click
Stop Event
Return
Endif
If Key.Code = Key.Return Or If Key.Code = Key.Enter Then
btnApply_Click
Stop Event
Return
Endif
Select Case UCase(Key.Text)
Case "B"
sldBrightness.SetFocus
Case "C"
sldContrast.SetFocus
Case "G"
sldGamma.SetFocus
Case Else
FMain.Form_KeyPress
Return
End Select
Stop Event
End
Public Sub Balance_GotFocus()
CAnimation.Start(Last.Tag, "Opacity", CButton.MAX_OPACITY, 250)
End
Public Sub Balance_LostFocus()
CAnimation.Start(Last.Tag, "Opacity", CButton.MIN_OPACITY, 250)
End