diff --git a/acinclude.m4 b/acinclude.m4 index db46cdad3..82b83092b 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -64,12 +64,12 @@ AC_DEFUN([GB_PRINT_MESSAGES], AC_DEFUN([GB_INIT_AUTOMAKE], [ - AM_INIT_AUTOMAKE($1, 3.0.0) + AM_INIT_AUTOMAKE($1, 3.0.90) ##AM_SILENT_RULES([yes]) AM_CONFIG_HEADER([config.h]) - AC_DEFINE(GAMBAS_FULL_VERSION, 0x03000000, [Full Gambas version]) + AC_DEFINE(GAMBAS_FULL_VERSION, 0x03000090, [Full Gambas version]) AC_DEFINE(GAMBAS_PCODE_VERSION, 0x03010000, [Gambas bytecode version]) - AC_DEFINE(GAMBAS_PCODE_VERSION_MIN, 0x03000000, [Gambas bytecode version]) + AC_DEFINE(GAMBAS_PCODE_VERSION_MIN, 0x03000000, [Minimum Gambas bytecode version]) GB_CLEAR_MESSAGES ]) diff --git a/app/src/gambas3/.lang/.pot b/app/src/gambas3/.lang/.pot index 60940c61a..64af7eb90 100644 --- a/app/src/gambas3/.lang/.pot +++ b/app/src/gambas3/.lang/.pot @@ -366,8 +366,8 @@ msgstr "" #: CWaitingAnimation.class:56 FColorChooser.form:60 FCommit.form:229 #: FConflict.class:191 FConnectionEditor.class:295 FCreateFile.form:436 -#: FDebugInfo.form:218 FEditor.class:2379 FExportData.class:126 -#: FFieldChooser.form:138 FFontChooser.form:40 FForm.class:3119 +#: FDebugInfo.form:218 FEditor.class:2381 FExportData.class:126 +#: FFieldChooser.form:138 FFontChooser.form:40 FForm.class:3129 #: FGotoLine.form:23 FHelpBrowser.form:61 FIconEditor.class:1415 #: FList.form:121 FMain.class:200 FMakeInstall.class:327 FMenu.form:378 #: FNewConnection.form:243 FNewTable.form:86 FNewTranslation.form:21 @@ -1433,14 +1433,14 @@ msgstr "" msgid "Procedure list" msgstr "" -#: FEditor.class:2379 FIconEditor.class:2048 FTextEditor.class:495 +#: FEditor.class:2381 FIconEditor.class:2048 FTextEditor.class:495 msgid "" "The file has been modified.\n" "\n" "All your changes will be lost." msgstr "" -#: FEditor.class:2808 +#: FEditor.class:2810 msgid "(Declarations)" msgstr "" @@ -1723,11 +1723,11 @@ msgstr "" msgid "Bad form file" msgstr "" -#: FForm.class:1286 +#: FForm.class:1296 msgid "Component missing for control &1" msgstr "" -#: FForm.class:3119 +#: FForm.class:3129 msgid "" "The form has been modified.\n" "\n" @@ -2957,23 +2957,23 @@ msgstr "" msgid "Ignore" msgstr "" -#: FMenu.class:297 +#: FMenu.class:300 msgid "Please enter a menu name." msgstr "" -#: FMenu.class:303 +#: FMenu.class:306 msgid "Bad menu name !" msgstr "" -#: FMenu.class:309 +#: FMenu.class:312 msgid "Bad group name !" msgstr "" -#: FMenu.class:569 +#: FMenu.class:572 msgid "This menu is too deep !" msgstr "" -#: FMenu.class:944 Project.module:5089 +#: FMenu.class:947 Project.module:5089 msgid "modified" msgstr "" diff --git a/app/src/gambas3/.src/Editor/CUndo.class b/app/src/gambas3/.src/Editor/CUndo.class index 84a3f34a7..faaf93306 100644 --- a/app/src/gambas3/.src/Editor/CUndo.class +++ b/app/src/gambas3/.src/Editor/CUndo.class @@ -7,10 +7,12 @@ End Struct Private Const DEBUG_ME As Boolean = False +Private Enum CONTEXT_NONE, CONTEXT_UNDO, CONTEXT_REDO + Private $aUndo As New UndoCommand[] Private $aRedo As New UndoCommand[] Private $iDisabled As Integer -Private $bInvert As Boolean +Private $iContext As Integer Private Const CMD_BEGIN As String = "[[" Private Const CMD_END As String = "]]" @@ -41,12 +43,13 @@ Public Sub Add(sCommand As String, Optional aArg As Variant[]) hCommand.Command = sCommand hCommand.Arg = aArg - If $bInvert Then + If $iContext = CONTEXT_UNDO Then $aRedo.Add(hCommand) If DEBUG_ME Then Print "Redo: "; Else $aUndo.Add(hCommand) If DEBUG_ME Then Print "Undo: "; + If $iContext = CONTEXT_NONE Then $aRedo.Clear Endif If DEBUG_ME Then Dump(hCommand) @@ -67,7 +70,7 @@ Public Sub End() If $iDisabled Then Return - If $bInvert Then + If $iContext = CONTEXT_UNDO Then aCmd = $aRedo Else aCmd = $aUndo @@ -90,12 +93,14 @@ Public Sub Undo(hEditor As Object, Optional bRedo As Boolean) Dim aCmd As UndoCommand[] If $iDisabled Then Return + If $iContext Then Return If bRedo Then aCmd = $aRedo + $iContext = CONTEXT_REDO Else aCmd = $aUndo - $bInvert = Not $bInvert + $iContext = CONTEXT_UNDO Endif Begin() @@ -127,13 +132,14 @@ Public Sub Undo(hEditor As Object, Optional bRedo As Boolean) End() - If Not bRedo Then $bInvert = Not $bInvert + $iContext = CONTEXT_NONE End Public Sub Redo(hEditor As Object) If $iDisabled Then Return + If $iContext Then Return Undo(hEditor, True) End diff --git a/app/src/gambas3/.src/Editor/Code/FEditor.class b/app/src/gambas3/.src/Editor/Code/FEditor.class index b279dbc4a..b8ef14e45 100644 --- a/app/src/gambas3/.src/Editor/Code/FEditor.class +++ b/app/src/gambas3/.src/Editor/Code/FEditor.class @@ -678,11 +678,13 @@ Private Function InsertFunction(sProc As String, sType As String, bPublic As Boo sPublic = If(bPublic, "Public", "Private") sStatic = If(bStatic, "Static ", "") + + Editor.Goto(iLine, 0) If sType Then - Editor.Insert("\n" & sStatic & sPublic & " FUNCTION " & sProc & "(" & sSign & ") AS " & sType & "\n\n" & Space$(Project.TabSize) & "\n\nEND\n", iLine, 0) + Editor.Insert("\n" & sStatic & sPublic & " FUNCTION " & sProc & "(" & sSign & ") AS " & sType & "\n\n" & Space$(Project.TabSize) & "\n\nEND\n") Else - Editor.Insert("\n" & sStatic & sPublic & " SUB " & sProc & "(" & sSign & ")\n\n" & Space$(Project.TabSize) & "\n\nEND\n", iLine, 0) + Editor.Insert("\n" & sStatic & sPublic & " SUB " & sProc & "(" & sSign & ")\n\n" & Space$(Project.TabSize) & "\n\nEND\n") Endif Editor.End diff --git a/app/src/gambas3/.src/Editor/Form/CControl.class b/app/src/gambas3/.src/Editor/Form/CControl.class index e29990278..70da21a61 100644 --- a/app/src/gambas3/.src/Editor/Form/CControl.class +++ b/app/src/gambas3/.src/Editor/Form/CControl.class @@ -962,6 +962,7 @@ Public Sub Select(hForm As FForm, Optional bMaster As Boolean) Dim hPanel As Panel If IsNull(Parent) Then Return + If Kind = "Menu" Then Return If Selected Then UnSelect(hForm) diff --git a/app/src/gambas3/.src/Editor/Form/FForm.class b/app/src/gambas3/.src/Editor/Form/FForm.class index d81dec062..950391870 100644 --- a/app/src/gambas3/.src/Editor/Form/FForm.class +++ b/app/src/gambas3/.src/Editor/Form/FForm.class @@ -896,13 +896,18 @@ Public Sub Control_MouseDown() Me.SetFocus Project.SetCurrentPopup(mnuForm) - $hUndo.Begin 'DrawControlFrame(Null) X = Mouse.X Y = Mouse.Y - + $hCurrent = Control[Last.Tag] + + If $hCurrent = RootControl And If Y < RootControl.Control.ClientY Then + $hCurrent = Null + Return + Endif + $sTool = FToolBox.GetTool() $X = Last.X @@ -910,6 +915,8 @@ Public Sub Control_MouseDown() $MX = Last.ScreenX + X $MY = Last.ScreenY + Y + $hUndo.Begin + 'IF $hCurrent.Kind = "GridView" THEN ' PRINT "MouseDown: $X ="; $X; " $Y ="; $Y; " $MX ="; $MX; " $MY ="; $MY ' PRINT "X ="; X; " Y ="; Y @@ -1002,6 +1009,7 @@ Public Sub Control_MouseMove() 'Debug Last;; Mouse.ScreenX - hForm.Control.ScreenX;; Mouse.ScreenY - hForm.Control.ScreenY If Not Mouse.Left Then Return + If Not $hCurrent Then Return 'PRINT "Control_MouseMove Mode ="; $iMode @@ -1123,6 +1131,8 @@ Public Sub Control_MouseUp() Dim hPrevious As CControl Dim sFocus As String + If Not $hCurrent Then Return + 'PRINT "Control_MouseUp Mode ="; $iMode If $iMode = MODE_CREATE Then @@ -1375,7 +1385,7 @@ Public Sub RemoveControl(sName As String) $hUndo.Add("PutSelection", [sCtrl, hCCtrl.Parent.Name]) Endif - Control[sName].Delete + hCCtrl.Delete Modify 'PRINT "< RemoveControl "; sName; " "; Control[sName] @@ -3701,3 +3711,15 @@ Public Sub Form_Close() $hUndo = Null End + +Public Sub ClearMenus() + + AllMenus.Clear + +End + +Public Sub RestoreMenus() + + $hUndo.Add("ClearMenus") + +End diff --git a/app/src/gambas3/.src/Editor/Form/FMenu.class b/app/src/gambas3/.src/Editor/Form/FMenu.class index cef77bb75..dc2776c2c 100644 --- a/app/src/gambas3/.src/Editor/Form/FMenu.class +++ b/app/src/gambas3/.src/Editor/Form/FMenu.class @@ -203,12 +203,13 @@ Private Sub SaveAllMenu() Dim iLevel As Integer Dim sText As String + $hForm.GetUndo().Begin + For Each hCtrl In $hForm.AllMenus - 'cDelete.Add(hCtrl) - hCtrl.Delete + $hForm.RemoveControl(hCtrl.Name) Next - If $hForm.AllMenus.Count Then $hForm.Modify + $hForm.GetUndo().Add("RestoreMenus") $hForm.AllMenus.Clear hCtrl = $hForm.Control[$hForm.Name] @@ -255,6 +256,8 @@ Private Sub SaveAllMenu() $hForm.UpdateBorder + $hForm.GetUndo().End + $bModified = False End diff --git a/comp/src/gb.form/.project b/comp/src/gb.form/.project index 723154198..62aceb86e 100644 --- a/comp/src/gb.form/.project +++ b/comp/src/gb.form/.project @@ -1,5 +1,5 @@ # Gambas Project File 3.0 -# Compiled with Gambas 3.0.0 +# Compiled with Gambas 3.0.90 Title=More controls for graphical components Startup=FMain Version=3.0.0 diff --git a/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class b/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class index f0e5b5670..0325c5f99 100644 --- a/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class +++ b/comp/src/gb.form/.src/TabPanel/_TabPanelButton.class @@ -126,14 +126,14 @@ Public Sub UpdateLayout() Select Case $iOrientation Case Align.Left, Align.Right - S = Me.Parent.Font.TextWidth($sText) + 8 - If $hPicture Then S += $hPicture.W - If bClosable Then S += BUTTON_SIZE + S = Me.Parent.Font.TextWidth($sText) + 16 + If $hPicture Then S += $hPicture.W - 4 + If bClosable Then S += BUTTON_SIZE - 4 Me.H = S Case Else - S = Me.Parent.Font.TextWidth($sText) + 8 - If $hPicture Then S += $hPicture.W - If bClosable Then S += BUTTON_SIZE + S = Me.Parent.Font.TextWidth($sText) + 16 + If $hPicture Then S += $hPicture.W - 4 + If bClosable Then S += BUTTON_SIZE - 4 Me.W = S End Select