From c31c915f1d9b6166569469b52e09c065850d7830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Minisini?= Date: Fri, 12 Dec 2014 23:33:39 +0000 Subject: [PATCH] [DEVELOPMENT ENVIRONMENT] * NEW: Animate wizards. * NEW: Software farm: The software description is now selectable. * NEW: Software farm: The software box text contents is now displayed without waiting for the icon to be available. [EXAMPLES] * BUG: Fix the GNUBoxWorld icon. [GB.FORM] * NEW: Wizard.Animated is a new property that animate the wizard when going to the next or previous step. git-svn-id: svn://localhost/gambas/trunk@6728 867c0c6c-44f3-4631-809d-bfa615b0a4ec --- app/examples/Drawing/Fractal/.project | 9 ++- app/examples/Drawing/Painting/.project | 9 ++- app/examples/Drawing/Painting/.startup | 2 +- app/examples/Drawing/QuasiRegular/.project | 8 +- app/examples/Drawing/QuasiRegular/.startup | 2 +- app/examples/Games/GNUBoxWorld/.icon.png | Bin 4583 -> 3790 bytes app/examples/Games/GNUBoxWorld/.project | 2 +- .../Games/GNUBoxWorld/.src/FMain.class | 3 +- .../Games/GNUBoxWorld/.src/FMain.form | 2 +- app/examples/Games/GNUBoxWorld/icon.png | Bin 0 -> 5966 bytes app/examples/Networking/ClientSocket/.project | 9 ++- app/examples/Networking/ServerSocket/.project | 8 +- .../gambas3/.src/Packager/FMakeInstall.form | 1 + .../gambas3/.src/Project/FCreateProject.form | 1 + .../gambas3/.src/Project/Farm/FPublish.form | 1 + .../.src/Project/Farm/FSoftwareFarm.class | 3 +- .../.src/Project/Farm/FSoftwareFarm.form | 9 ++- .../.src/Project/Farm/SoftwareBox.class | 2 +- .../.src/Project/Patch/FMakePatch.form | 1 + comp/src/gb.form/.info | 6 +- comp/src/gb.form/.project | 2 +- comp/src/gb.form/.src/Test/FTestWizard.class | 8 ++ comp/src/gb.form/.src/Test/FTestWizard.form | 30 +++++++ comp/src/gb.form/.src/Wizard/Wizard.class | 73 +++++++++++++++++- 24 files changed, 160 insertions(+), 31 deletions(-) create mode 100644 app/examples/Games/GNUBoxWorld/icon.png create mode 100644 comp/src/gb.form/.src/Test/FTestWizard.class create mode 100644 comp/src/gb.form/.src/Test/FTestWizard.form diff --git a/app/examples/Drawing/Fractal/.project b/app/examples/Drawing/Fractal/.project index 34e3dffaf..75fd451b7 100644 --- a/app/examples/Drawing/Fractal/.project +++ b/app/examples/Drawing/Fractal/.project @@ -1,16 +1,19 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.6.0 +# Compiled with Gambas 3.6.90 Title=Fractal Startup=FFractal Icon=icon.png -Version=3.6.2 +Version=3.6.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.form -Description="Mandelbrot Fractal with Just-In-Time compilation" +Description="Mandelbrot Fractal with Just-In-Time compilation.\n\nThis example allows to freely zoom into the Mandelbrot fractal in real-time. You can toggle just-in-time compilation by hitting the \"F\" key." Authors="Benoît Minisini" TabSize=2 Translate=1 Language=en +Vendor=Example Packager=1 +Tags=JustInTime +Screenshot=/home/benoit/fractal.jpg diff --git a/app/examples/Drawing/Painting/.project b/app/examples/Drawing/Painting/.project index 4bacb3157..57fa134ba 100644 --- a/app/examples/Drawing/Painting/.project +++ b/app/examples/Drawing/Painting/.project @@ -1,17 +1,18 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.5.90 +# Compiled with Gambas 3.6.90 Title=Anti-Aliased Drawing Startup=FMain Icon=icon.png -Version=3.6.2 +Version=3.6.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.form -Description="Anti-aliased drawing with the Paint class" +Description="Anti-aliased drawing with the Paint class.\n\nThis example shows the different methods of the Paint class." Authors="Fabien Bodard\nBenoît Minisini" -Environment="GB_GUI=gb.gtk3" TabSize=2 Translate=1 Language=en +Vendor=Example Packager=1 +Screenshot=/home/benoit/Painting.jpg diff --git a/app/examples/Drawing/Painting/.startup b/app/examples/Drawing/Painting/.startup index 131157c2c..d74d299b1 100644 --- a/app/examples/Drawing/Painting/.startup +++ b/app/examples/Drawing/Painting/.startup @@ -2,7 +2,7 @@ FMain Anti-Aliased Drawing 0 0 -3.5.90 +3.6.90 gb.image gb.gui diff --git a/app/examples/Drawing/QuasiRegular/.project b/app/examples/Drawing/QuasiRegular/.project index 264f00c3d..7fd985125 100644 --- a/app/examples/Drawing/QuasiRegular/.project +++ b/app/examples/Drawing/QuasiRegular/.project @@ -1,13 +1,15 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.5.90 +# Compiled with Gambas 3.6.90 Title=QuasiRegular Startup=FMain Icon=icon.png -Version=3.6.2 +Version=3.6.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.form -Description="An example of a quasi-regular pattern." +Description="An example of a quasi-regular pattern.\n\nThe drawing is the result of an exclusive-or between a black & white chess pattern and the same pattern rotated by 90°." TabSize=2 +Vendor=Example Packager=1 +Screenshot=/home/benoit/QuasiRegular.jpg diff --git a/app/examples/Drawing/QuasiRegular/.startup b/app/examples/Drawing/QuasiRegular/.startup index 37589fc05..aedf68a0c 100644 --- a/app/examples/Drawing/QuasiRegular/.startup +++ b/app/examples/Drawing/QuasiRegular/.startup @@ -2,7 +2,7 @@ FMain QuasiRegular 0 0 -3.5.90 +3.6.90 gb.image gb.gui diff --git a/app/examples/Games/GNUBoxWorld/.icon.png b/app/examples/Games/GNUBoxWorld/.icon.png index e9bbb010e6f28aa063e51c50d09e815f398215b9..91123b14cc58ba3d9e7ff1de7f1baa46a7c44189 100644 GIT binary patch delta 3754 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 delta 4553 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 diff --git a/app/examples/Games/GNUBoxWorld/.project b/app/examples/Games/GNUBoxWorld/.project index 6b1373646..056a32dc3 100644 --- a/app/examples/Games/GNUBoxWorld/.project +++ b/app/examples/Games/GNUBoxWorld/.project @@ -2,7 +2,7 @@ # Compiled with Gambas 3.6.90 Title=GNUBoxWorld Startup=FMain -Icon=logo.png +Icon=icon.png Version=3.6.90 VersionFile=1 Component=gb.image diff --git a/app/examples/Games/GNUBoxWorld/.src/FMain.class b/app/examples/Games/GNUBoxWorld/.src/FMain.class index 31f15d1ef..62896ebd2 100644 --- a/app/examples/Games/GNUBoxWorld/.src/FMain.class +++ b/app/examples/Games/GNUBoxWorld/.src/FMain.class @@ -180,7 +180,7 @@ Private Function WhoMove(direction As Integer) As Picture End Public Sub ShowGameBoard() - Dim control As Object + Dim row As Integer Dim col As Integer For row = 0 To 9 @@ -188,6 +188,7 @@ Public Sub ShowGameBoard() PicturesBoxes[row, col].Picture = Game.Cells[row, col].Pic Next Next + End Public Sub MakePictureBoxes() diff --git a/app/examples/Games/GNUBoxWorld/.src/FMain.form b/app/examples/Games/GNUBoxWorld/.src/FMain.form index d3c231da5..4b64be774 100644 --- a/app/examples/Games/GNUBoxWorld/.src/FMain.form +++ b/app/examples/Games/GNUBoxWorld/.src/FMain.form @@ -2,7 +2,7 @@ { Form Form MoveScaled(0,0,42,16) - Icon = Picture["logo.png"] + Icon = Picture["icon.png"] Resizable = False { MnuGame Menu Text = ("Game") diff --git a/app/examples/Games/GNUBoxWorld/icon.png b/app/examples/Games/GNUBoxWorld/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5381d41d829688ffda49b725c647de0ae1cc62 GIT binary patch literal 5966 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 literal 0 HcmV?d00001 diff --git a/app/examples/Networking/ClientSocket/.project b/app/examples/Networking/ClientSocket/.project index ca64186b3..ee718be16 100644 --- a/app/examples/Networking/ClientSocket/.project +++ b/app/examples/Networking/ClientSocket/.project @@ -1,20 +1,21 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.5.90 +# Compiled with Gambas 3.6.90 Title=Client Socket Example Startup=FrmMain Icon=socket.png -Version=3.6.2 +Version=3.6.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.net +Description="Client socket example.\n\nThis example shows how to use a socket to connect to a server. You should use the \"ServerSocket\" example as a testing peer." Authors="Daniel Campos Fernández\nBenoît Minisini" -Environment="GB_GUI=gb.gtk" TabSize=2 Translate=1 Language=fr Maintainer=benoit -Vendor=Princeton +Vendor=Example Address=benoit@desnouettes License=General Public Licence Packager=1 +Tags=Network diff --git a/app/examples/Networking/ServerSocket/.project b/app/examples/Networking/ServerSocket/.project index e3df95d19..93bb534f1 100644 --- a/app/examples/Networking/ServerSocket/.project +++ b/app/examples/Networking/ServerSocket/.project @@ -1,20 +1,22 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.5.90 +# Compiled with Gambas 3.6.90 Title=Server socket example Startup=FrmMain Icon=serversocket.png -Version=3.6.2 +Version=3.6.90 VersionFile=1 Component=gb.image Component=gb.gui Component=gb.net Component=gb.net.curl +Description="Server socket example.\n\nThis example shows how to implement a TCP server accepting and managing multiple connections in the same process. You can use the 'ClientSocket' example as a testing peer." Environment="GB_GUI=gb.qt4" TabSize=2 Translate=1 Language=fr Maintainer=benoit -Vendor=Princeton +Vendor=Example Address=benoit@desnouettes License=General Public Licence Packager=1 +Tags=Network diff --git a/app/src/gambas3/.src/Packager/FMakeInstall.form b/app/src/gambas3/.src/Packager/FMakeInstall.form index e7a732aa3..8204d770e 100644 --- a/app/src/gambas3/.src/Packager/FMakeInstall.form +++ b/app/src/gambas3/.src/Packager/FMakeInstall.form @@ -14,6 +14,7 @@ TextFont = Font["Bold,+3"] ShowIndex = True Border = False + Animated = True Index = 0 Text = ("Package information") { TextLabel1 TextLabel diff --git a/app/src/gambas3/.src/Project/FCreateProject.form b/app/src/gambas3/.src/Project/FCreateProject.form index 489928024..5a92acf21 100644 --- a/app/src/gambas3/.src/Project/FCreateProject.form +++ b/app/src/gambas3/.src/Project/FCreateProject.form @@ -15,6 +15,7 @@ TextFont = Font["Bold,+3"] ShowIndex = True Border = False + Animated = True Index = 0 Text = ("Project type") { HBox5 HBox diff --git a/app/src/gambas3/.src/Project/Farm/FPublish.form b/app/src/gambas3/.src/Project/Farm/FPublish.form index 52b0387e7..abf3c9ca7 100644 --- a/app/src/gambas3/.src/Project/Farm/FPublish.form +++ b/app/src/gambas3/.src/Project/Farm/FPublish.form @@ -16,6 +16,7 @@ Border = False ActionText = "Publish" ActionPicture = Picture["icon:/small/internet"] + Animated = True Index = 0 Text = ("Information") { HBox9 HBox diff --git a/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.class b/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.class index a97619f49..f5e6fa58f 100644 --- a/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.class +++ b/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.class @@ -300,7 +300,8 @@ Private Sub UpdateSoftware() Else - txtDescription.Text = Replace(Html(sText), "\n", "
") + txtDescription.Text = sText + txtDescription.H = txtDescription.Font.RichTextHeight(Replace(Html(sText), "\n", "
"), txtDescription.W) Endif diff --git a/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.form b/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.form index f1fab1d90..5b0936efb 100644 --- a/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.form +++ b/app/src/gambas3/.src/Project/Farm/FSoftwareFarm.form @@ -98,9 +98,12 @@ Font = Font["Bold"] Text = ("Description") } - { txtDescription TextLabel - MoveScaled(2,4,35,5) - AutoResize = True + { txtDescription TextArea + MoveScaled(2,5,29,4) + ReadOnly = True + Wrap = True + Border = False + ScrollBar = Scroll.None } { panURL HBox MoveScaled(2,10,29,4) diff --git a/app/src/gambas3/.src/Project/Farm/SoftwareBox.class b/app/src/gambas3/.src/Project/Farm/SoftwareBox.class index 846cb7dc6..d3cf7ceaf 100644 --- a/app/src/gambas3/.src/Project/Farm/SoftwareBox.class +++ b/app/src/gambas3/.src/Project/Farm/SoftwareBox.class @@ -154,7 +154,7 @@ Public Sub DrawingArea_Draw() Paint.Stroke Paint.AntiAlias = True - If Not $hSoft Or If $hSoft.State < CSoftware.STATE_READY Then Return + If Not $hSoft Then Return If $hSoft.IsInstalled() Then If $hSoft.CanUpgrade() Then diff --git a/app/src/gambas3/.src/Project/Patch/FMakePatch.form b/app/src/gambas3/.src/Project/Patch/FMakePatch.form index 59677b10e..6d850f469 100644 --- a/app/src/gambas3/.src/Project/Patch/FMakePatch.form +++ b/app/src/gambas3/.src/Project/Patch/FMakePatch.form @@ -16,6 +16,7 @@ TextFont = Font["Bold,+3"] ShowIndex = True Border = False + Animated = True Index = 0 Text = ("Select patch origin") { Panel1 VBox diff --git a/comp/src/gb.form/.info b/comp/src/gb.form/.info index 53d812890..718083bcd 100644 --- a/comp/src/gb.form/.info +++ b/comp/src/gb.form/.info @@ -2977,7 +2977,7 @@ C _Properties C s -*,Count{Range:1;256}=1,Index,Text,TextFont,Picture,ShowTitle=True,ShowIndex=False,Border=True,ActionText,ActionPicture +*,Count{Range:1;256}=1,Index,Text,TextFont,Picture,ShowTitle=True,ShowIndex=False,Border=True,ActionText,ActionPicture,Animated _DefaultEvent C s @@ -3054,6 +3054,10 @@ ActionPicture p Picture +Animated +p +b + _new m diff --git a/comp/src/gb.form/.project b/comp/src/gb.form/.project index c8208b838..2a9df827f 100644 --- a/comp/src/gb.form/.project +++ b/comp/src/gb.form/.project @@ -1,7 +1,7 @@ # Gambas Project File 3.0 # Compiled with Gambas 3.6.90 Title=More controls for graphical components -Startup=Form1 +Startup=FTestWizard Version=3.6.90 VersionFile=1 Component=gb.image diff --git a/comp/src/gb.form/.src/Test/FTestWizard.class b/comp/src/gb.form/.src/Test/FTestWizard.class new file mode 100644 index 000000000..0ec054ab0 --- /dev/null +++ b/comp/src/gb.form/.src/Test/FTestWizard.class @@ -0,0 +1,8 @@ +' Gambas class file + + +Public Sub Wizard1_Cancel() + + Me.Close + +End diff --git a/comp/src/gb.form/.src/Test/FTestWizard.form b/comp/src/gb.form/.src/Test/FTestWizard.form new file mode 100644 index 000000000..11a44a013 --- /dev/null +++ b/comp/src/gb.form/.src/Test/FTestWizard.form @@ -0,0 +1,30 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,71,64) + Arrangement = Arrange.Fill + Margin = True + { Wizard1 Wizard + MoveScaled(4,4,64,54) + Count = 4 + Border = False + Animated = True + Index = 0 + Text = ("Étape n°1") + { Button1 Button + MoveScaled(19,22,17,6) + Text = ("Button1") + } + Index = 1 + Text = ("Étape n°2") + { LCDLabel1 LCDLabel + MoveScaled(8,9,44,16) + Text = ("LCDLabel1") + } + Index = 2 + Text = ("Étape n°3") + Index = 3 + Text = ("Étape n°4") + Index = 0 + } +} diff --git a/comp/src/gb.form/.src/Wizard/Wizard.class b/comp/src/gb.form/.src/Wizard/Wizard.class index 7d636921c..11efd93fe 100644 --- a/comp/src/gb.form/.src/Wizard/Wizard.class +++ b/comp/src/gb.form/.src/Wizard/Wizard.class @@ -3,7 +3,7 @@ Export Inherits UserContainer -Public Const _Properties As String = "*,Count{Range:1;256}=1,Index,Text,TextFont,Picture,ShowTitle=True,ShowIndex=False,Border=True,ActionText,ActionPicture" +Public Const _Properties As String = "*,Count{Range:1;256}=1,Index,Text,TextFont,Picture,ShowTitle=True,ShowIndex=False,Border=True,ActionText,ActionPicture,Animated" Public Const _DefaultEvent As String = "Change" Public Const _Similar As String = "TabStrip" Public Const _IsMultiContainer As Boolean = True @@ -25,6 +25,7 @@ Property Border As Boolean Property TextFont As Font Property ActionText As String Property ActionPicture As Picture +Property Animated As Boolean Private $hWizard As FWizard Private $aStep As New _WizardContainer[] @@ -33,6 +34,8 @@ Private $iLast As Integer = -1 Private $bShowIndex As Boolean Private $sActionText As String Private $hActionPicture As Picture +Private $iAllowAnimation As Integer +Private $bAnimated As Boolean Public Sub _new() @@ -114,6 +117,52 @@ Private Function Index_Read() As Integer End +Private Sub DoAnimate(iSrc As Integer, iDest As Integer) + + Dim fTime As Float + Dim hCont As Container + Dim hSrc As _WizardContainer + Dim hDest As _WizardContainer + + hCont = $hWizard.GetContainer() + hSrc = $aStep[iSrc] + hDest = $aStep[iDest] + + hSrc.Show + hDest.Show + hSrc.Ignore = True + hDest.Ignore = True + + If iDest > iSrc Then + + hDest.Move(hCont.W, 0) + + fTime = Timer + While hDest.X > 0 + hDest.X = Max(0, hCont.W * (1 - (Timer - fTime) * 8)) + hSrc.X = hDest.X - hCont.W + Wait + Wend + + Else + + hDest.Move(- hCont.W, 0) + + fTime = Timer + While hDest.X < 0 + hDest.X = Min(0, - hCont.W * (1 - (Timer - fTime) * 8)) + hSrc.X = hDest.X + hCont.W + Wait + Wend + + Endif + + hDest.Raise + hSrc.Ignore = False + hDest.Ignore = False + +End + Private Sub Index_Write(iIndex As Integer) Dim bCancel As Boolean @@ -139,6 +188,8 @@ Private Sub Index_Write(iIndex As Integer) Endif + If $bAnimated And If $iAllowAnimation Then DoAnimate($iCurrent, iIndex) + Me._Container = $aStep[iIndex] $iLast = $iCurrent @@ -239,7 +290,11 @@ End Public Sub Wizard_Previous() Dim iInd As Integer = GetPrevious($iCurrent) - If iInd >= 0 Then Index_Write(iInd) + If iInd >= 0 Then + Inc $iAllowAnimation + Index_Write(iInd) + Dec $iAllowAnimation + Endif End @@ -247,7 +302,9 @@ Public Sub Wizard_Next() Dim iInd As Integer = GetNext($iCurrent) If iInd >= 0 Then + Inc $iAllowAnimation Index_Write(iInd) + Dec $iAllowAnimation Else Raise BeforeChange Raise {Close} @@ -339,3 +396,15 @@ Private Sub ActionPicture_Write(Value As Picture) $hActionPicture = Value End + +Private Function Animated_Read() As Boolean + + Return $bAnimated + +End + +Private Sub Animated_Write(Value As Boolean) + + $bAnimated = Value + +End