diff --git a/TODO b/TODO
index 261f3a75e..40eddc29b 100644
--- a/TODO
+++ b/TODO
@@ -6,18 +6,9 @@ COMPILER
- Compilation error must indicate the column, not only the line.
- Conditional compilation #IF DEBUG
- Warn for unused local or private variables.
-- CASE LIKE
INTERPRETER
-/**** NEIN!
-- OPTIONAL arguments should take any expression.
-- Class synonymous.
-- Array[x] when x < 0 should return Array[Array.Count - x]
-- NEW Collection OF String
-- A ConstCopy() function for arrays, and const arrays.
-****/
-
- A special syntax to make variable writable once only (for controls variables).
- Add global parameters for each component. Or no, a global configuration repository, to
tell, for example, which socket the mysql component must use...
@@ -43,12 +34,10 @@ DEVELOPMENT ENVIRONMENT
- Generates an index control->component to suggest components for missing controls.
- Be able to open a .tar.gz project, and compress it back when the project is closed.
- Conditional breakpoints.
-- Finding files in the treeview.
GUI RELATED STUFF
- Deleting a currently expanding item in TreeView crashes.
-- Form.KeyPreview
- ValueBox.Value should be visible in the IDE.
- GridView automatic column resizing by code in gb.gtk, and in gb.qt.
diff --git a/app/src/gambas3/.lang/.pot b/app/src/gambas3/.lang/.pot
index d7c31770e..16335e7cb 100644
--- a/app/src/gambas3/.lang/.pot
+++ b/app/src/gambas3/.lang/.pot
@@ -466,7 +466,7 @@ msgstr ""
#: FColorChooser.class:215 FCommit.class:386 FConflict.class:191
#: FConnectionEditor.class:261 FCreateFile.class:928 FDebugInfo.class:496
#: FEditor.class:2221 FFontChooser.class:85 FForm.class:2955
-#: FGotoLine.class:63 FHelpBrowser.class:283 FIconEditor.class:1396
+#: FGotoLine.class:63 FHelpBrowser.class:336 FIconEditor.class:1396
#: FImportTable.class:38 FList.class:155 FMain.class:204
#: FMakeInstall.class:318 FMenu.class:1202 FNewConnection.class:317
#: FNewTable.class:165 FNewTranslation.class:70 FOpenProject.class:496
@@ -673,7 +673,7 @@ msgstr ""
msgid "Default value"
msgstr ""
-#: FConnectionEditor.class:58 FDebugExpr.class:425 FHelpBrowser.class:259
+#: FConnectionEditor.class:58 FDebugExpr.class:425 FHelpBrowser.class:316
msgid "Index"
msgstr ""
@@ -816,7 +816,7 @@ msgid "Connection editor"
msgstr ""
#: FConnectionEditor.class:1572 FEditor.class:2221 FForm.class:2955
-#: FHelpBrowser.class:289 FIconEditor.class:2035 FImageEditor.class:68
+#: FHelpBrowser.class:342 FIconEditor.class:2035 FImageEditor.class:68
#: FTextEditor.class:476 FTranslate.class:711
msgid "Reload"
msgstr ""
@@ -1259,7 +1259,7 @@ msgstr ""
msgid "Find definition"
msgstr ""
-#: FEditor.class:3318 FHelpBrowser.class:271
+#: FEditor.class:3318 FHelpBrowser.class:324
msgid "Go back"
msgstr ""
@@ -1578,35 +1578,43 @@ msgstr ""
msgid "Go to line"
msgstr ""
-#: FHelpBrowser.class:247
+#: FHelpBrowser.class:22 FPropertyProject.class:1717
+msgid "Default language"
+msgstr ""
+
+#: FHelpBrowser.class:304
msgid "Help browser"
msgstr ""
-#: FHelpBrowser.class:277
+#: FHelpBrowser.class:330
msgid "Go forward"
msgstr ""
-#: FHelpBrowser.class:296
+#: FHelpBrowser.class:349
msgid "Show help tree"
msgstr ""
-#: FHelpBrowser.class:307 FIconEditor.class:2215 FImageEditor.class:124
+#: FHelpBrowser.class:360 FIconEditor.class:2215 FImageEditor.class:124
msgid "Zoom in"
msgstr ""
-#: FHelpBrowser.class:313 FIconEditor.class:2223 FImageEditor.class:136
+#: FHelpBrowser.class:366 FIconEditor.class:2223 FImageEditor.class:136
msgid "Zoom out"
msgstr ""
-#: FHelpBrowser.class:319
+#: FHelpBrowser.class:372
msgid "No zoom"
msgstr ""
-#: FHelpBrowser.class:330
+#: FHelpBrowser.class:382
+msgid "Gambas site web"
+msgstr ""
+
+#: FHelpBrowser.class:389
msgid "Print"
msgstr ""
-#: FHelpBrowser.class:337
+#: FHelpBrowser.class:396
msgid "Modify documentation..."
msgstr ""
@@ -3341,10 +3349,6 @@ msgstr ""
msgid "Project is translatable"
msgstr ""
-#: FPropertyProject.class:1717
-msgid "Default language"
-msgstr ""
-
#: FPropertyProject.class:1732
msgid "Debugging"
msgstr ""
@@ -4807,17 +4811,17 @@ msgstr ""
msgid "Write error"
msgstr ""
-#: MHelp.module:267
+#: MHelp.module:284
msgid "No help found."
msgstr ""
-#: MHelp.module:542
+#: MHelp.module:546
msgid ""
"This class can be used like an object by creating an hidden instance on "
"demand.
"
msgstr ""
-#: MHelp.module:543
+#: MHelp.module:547
msgid "This class is creatable.
"
msgstr ""
diff --git a/app/src/gambas3/.src/Help/FHelpBrowser.class b/app/src/gambas3/.src/Help/FHelpBrowser.class
index d5c18b104..dd87ed731 100644
--- a/app/src/gambas3/.src/Help/FHelpBrowser.class
+++ b/app/src/gambas3/.src/Help/FHelpBrowser.class
@@ -2,24 +2,53 @@
Property Read {Error} As Boolean
+Static Private $aLang As String[] = ["en", "fr", "de", "es", "it", "nl", "pl", "pt", "pt_BR", "mk", "sq", "ca", "hu", "tr", "ar", "fa", "vi", "ko", "ja", "ru", "zh", "zh_TW", "eo"]
+
Private $bError As Boolean
Private $sLastUrl As String
Private $bPrint As Boolean
+Private mnuLang As Menu
Public Sub _new()
+ Dim sLang As String
+ Dim hMenu As Menu
+
Me.Utility = Settings["/UseUtilityWindows", 1]
+ mnuLang = New Menu(Me) As "mnuLang"
+
+ hMenu = New Menu(mnuLang) As "mnuSelectLanguage"
+ hMenu.Text = ("Default language")
+
+ For Each sLang In $aLang
+ hMenu = New Menu(mnuLang) As "mnuSelectLanguage"
+ hMenu.Text = Language.ToName(sLang)
+ hMenu.Tag = sLang
+ Next
+
+ btnHome.Menu = "mnuLang"
+
End
Public Sub Form_Open()
+ Dim sLang As String
+
Settings.Read(Me)
- splHelp.Layout = Settings["/ExplorerPnlLayout", [1, 4]]
- btnShowpnl.Value = Settings["/frmExplorerPan", False]
+ Settings.Read(splHelp)
+ btnShowPanel.Value = Settings["/FHelpBrowser/ShowPanel", False]
+
+ sLang = MHelp.GetLanguage(True)
+ If sLang Then
+ btnHome.Text = Language.ToName(sLang)
+ Else
+ btnHome.Text = ("Default language")
+ Endif
+
If Not webHelp.Url Then
- webHelp.Url = MHelp.GetURL() & "?help&" & MHelp.GetHelpLanguage()
+ webHelp.Url = MHelp.GetURL() & "?help&" & MHelp.GetLanguage()
webHelp.TextZoom = 0.8
Endif
@@ -28,13 +57,14 @@ End
Public Sub Form_Close()
Settings.Write(Me)
- Settings["/ExplorerPnlLayout"] = splHelp.Layout
- Settings["/frmExplorerPan"] = btnShowpnl.Value
+ Settings.Write(splHelp)
+ Settings["/FHelpBrowser/ShowPanel"] = btnShowPanel.Value
+
End
Public Sub btnHome_Click()
- webHelp.Url = MHelp.GetURL() & "?help&" & MHelp.GetHelpLanguage()
+ webHelp.Url = MHelp.GetURL() & "?help&" & MHelp.GetLanguage()
webHelp.TextZoom = 0.8
End
@@ -142,7 +172,7 @@ Public Sub btnModify_Click()
End
-Public Sub btnShowpnl_Click()
+Public Sub btnShowPanel_Click()
hbHelp.Visible = Last.Value
@@ -169,6 +199,8 @@ Private Sub FillTree()
For Each hClass In CComponent.Classes
If hClass.Name = "." Then Continue
+ If InStr(hClass.Name, "*") Then Continue
+
If hClass.Component = Null Then
sComponent = "gb"
Else
@@ -183,10 +215,12 @@ Private Sub FillTree()
Try tvClasses.Add(sComponent &/ sClass, sClass,, sComponent)
Next
+
End
Public Sub tvClasses_Click()
+
Dim ars As String[]
Dim iType As Integer
@@ -212,3 +246,26 @@ Public Sub Form_KeyPress()
End
+Private Sub SetLang(sLang As String)
+
+ Dim sUrl As String
+ Dim sOldLang As String = MHelp.GetLanguage()
+
+ MHelp.SetLanguage(sLang)
+ sLang = MHelp.GetLanguage()
+
+ sUrl = webHelp.Url
+ If sUrl Begins "http://gambasdoc.org/" Then
+ sUrl = Replace(sUrl, "&" & sOldLang, "")
+ webHelp.Url = sUrl & "&" & sLang
+ Endif
+
+End
+
+Public Sub mnuSelectLanguage_Click()
+
+ SetLang(Last.Tag)
+ btnHome.Text = Last.Text
+
+End
+
diff --git a/app/src/gambas3/.src/Help/FHelpBrowser.form b/app/src/gambas3/.src/Help/FHelpBrowser.form
index d2a43ec32..f04d3606f 100644
--- a/app/src/gambas3/.src/Help/FHelpBrowser.form
+++ b/app/src/gambas3/.src/Help/FHelpBrowser.form
@@ -1,7 +1,7 @@
# Gambas Form File 3.0
{ Form Form
- MoveScaled(0,0,24,15)
+ MoveScaled(0,0,113,52)
Action = "help"
Text = ("Help browser")
Icon = Picture["icon:/small/help"]
@@ -10,73 +10,75 @@
SkipTaskbar = True
Arrangement = Arrange.Vertical
{ panToolbar HBox
- MoveScaled(0,0,82,4)
- { btnHome ToolButton
- MoveScaled(0,0,4,4)
+ MoveScaled(0,0,107,4)
+ { btnHome MenuButton
+ MoveScaled(0,0,16,4)
ToolTip = ("Index")
+ AutoResize = True
Picture = Picture["icon:/small/home"]
- }
- { btnWebSite ToolButton
- MoveScaled(4,0,4,4)
- ToolTip = ("Index")
- Picture = Picture["icon:/small/gambas"]
+ Border = False
}
{ btnBack ToolButton
- MoveScaled(9,0,4,4)
+ MoveScaled(15,0,4,4)
ToolTip = ("Go back")
Picture = Picture["icon:/small/left"]
}
{ btnForward ToolButton
- MoveScaled(13,0,4,4)
+ MoveScaled(19,0,4,4)
ToolTip = ("Go forward")
Picture = Picture["icon:/small/right"]
}
{ btnStop ToolButton
- MoveScaled(17,0,4,4)
+ MoveScaled(23,0,4,4)
ToolTip = ("Cancel")
Picture = Picture["icon:/small/delete"]
}
{ btnReload ToolButton
- MoveScaled(21,0,4,4)
+ MoveScaled(27,0,4,4)
ToolTip = ("Reload")
Picture = Picture["icon:/small/refresh"]
}
- { btnShowpnl ToolButton
- MoveScaled(26,0,4,4)
+ { btnShowPanel ToolButton
+ MoveScaled(32,0,4,4)
Tracking = True
ToolTip = ("Show help tree")
Picture = Picture["icon:/small/view-detail"]
Toggle = True
}
{ Separator1 Separator
- MoveScaled(31,0,1,4)
+ MoveScaled(37,0,1,4)
}
{ btnZoomIn ToolButton
- MoveScaled(32,0,4,4)
+ MoveScaled(38,0,4,4)
ToolTip = ("Zoom in")
Picture = Picture["icon:/small/zoom-in"]
}
{ btnZoomOut ToolButton
- MoveScaled(36,0,4,4)
+ MoveScaled(42,0,4,4)
ToolTip = ("Zoom out")
Picture = Picture["icon:/small/zoom-out"]
}
{ btnZoomNormal ToolButton
- MoveScaled(40,0,4,4)
+ MoveScaled(46,0,4,4)
ToolTip = ("No zoom")
Picture = Picture["icon:/small/zoom-normal"]
}
{ Separator2 Separator
- MoveScaled(45,0,1,4)
+ MoveScaled(51,0,1,4)
+ }
+ { btnWebSite ToolButton
+ MoveScaled(52,0,4,4)
+ ToolTip = ("Gambas site web")
+ Picture = Picture["icon:/small/gambas"]
}
{ btnPrint ToolButton
- MoveScaled(47,0,15,4)
+ MoveScaled(56,0,11,4)
AutoResize = True
Text = ("Print")
Picture = Picture["icon:/small/print"]
}
{ btnModify ToolButton
- MoveScaled(56,0,25,4)
+ MoveScaled(68,0,25,4)
AutoResize = True
Text = ("Modify documentation...")
Picture = Picture["icon:/small/edit"]
diff --git a/app/src/gambas3/.src/Help/MHelp.module b/app/src/gambas3/.src/Help/MHelp.module
index 51548af0a..3a3933b9e 100644
--- a/app/src/gambas3/.src/Help/MHelp.module
+++ b/app/src/gambas3/.src/Help/MHelp.module
@@ -18,8 +18,37 @@ Private Sub GetPath(sPath As String) As String
sPath = Replace(sPath, "/gb+gui/", "/gb+qt/")
sPath = Replace(sPath, "/gb+gtk/", "/gb+qt/")
Return System.Path &/ "share/gambas" & CStr(System.Version) &/ "help" &/ sPath
+
End
+Public Sub SetLanguage(sLang As String)
+
+ Settings["/HelpLanguage"] = sLang
+
+End
+
+Public Sub GetLanguage(Optional bReturnVoidIfDefault As Boolean) As String
+
+ Dim sLang As String
+ Dim iPos As Integer
+ Dim sCar As String
+
+ sLang = Settings["/HelpLanguage"]
+ If sLang Then Return sLang
+ If bReturnVoidIfDefault Then Return
+
+ sLang = System.Language
+
+ For iPos = 1 To Len(sLang)
+ If Not IsLower(Mid$(sLang, iPos, 1)) Then Break
+ Next
+
+ Return Left$(sLang, iPos - 1)
+
+End
+
+
+
Public Sub Open()
@@ -47,18 +76,6 @@ Private Sub FormatName(sName As String) As String
End
-Private Sub GetLanguage() As String
-
- Dim sLang As String = System.Language
- Dim iPos As Integer
-
- iPos = InStr(sLang, ".")
- If iPos Then sLang = Left$(sLang, iPos - 1)
- Return sLang
-
-End
-
-
Public Sub GotoSymbol(hSymbol As CSymbolInfo)
Dim sLink As String
@@ -278,20 +295,6 @@ Public Sub GetURL(Optional sPath As String) As String
End
-Public Sub GetHelpLanguage() As String
-
- Dim sLang As String = System.Language
- Dim iPos As Integer
- Dim sCar As String
-
- For iPos = 1 To Len(sLang)
- If Not IsLower(Mid$(sLang, iPos, 1)) Then Break
- Next
-
- Return Left$(sLang, iPos - 1)
-
-End
-
Public Sub GetSymbolURL(sComponent As String, sClass As String, Optional sSymbol As String) As String
Dim sPath As String
@@ -313,7 +316,7 @@ Public Sub GetSymbolURL(sComponent As String, sClass As String, Optional sSymbol
sPath &/= sName
Endif
- Return sPath & "?help&v3&" & GetHelpLanguage()
+ Return sPath & "?help&v3&" & GetLanguage()
End
@@ -329,13 +332,13 @@ Public Sub GetLangURL(sSymbol As String) As String
sSymbol = Replace(sSymbol, "$", "")
If Right(sSymbol) = "?" Then sSymbol = "is" & Left(sSymbol, -1)
- Return GetURL("lang") &/ sSymbol & "?help&v3&" & GetHelpLanguage()
+ Return GetURL("lang") &/ sSymbol & "?help&v3&" & GetLanguage()
End
Public Sub GetSpecialURL(sSymbol As String) As String
- Return GetURL("lang") &/ "special" &/ Mid$(sSymbol, 2) & "?help&v3&" & GetHelpLanguage()
+ Return GetURL("lang") &/ "special" &/ Mid$(sSymbol, 2) & "?help&v3&" & GetLanguage()
End
@@ -423,6 +426,7 @@ Public Sub InitWebViewWith(hWebView As WebView, iType As Integer, sSymbol As Str
If sUrl Then
If sMore Then sUrl &= "&" & sMore
+ sMore &= "&" & GetLanguage()
If hWebView.Url = sUrl Then Return
Endif
diff --git a/app/src/gambas3/.src/Translation/Language.module b/app/src/gambas3/.src/Translation/Language.module
index 695426bac..9a6677891 100644
--- a/app/src/gambas3/.src/Translation/Language.module
+++ b/app/src/gambas3/.src/Translation/Language.module
@@ -31,7 +31,7 @@ Public Sub _init()
Name["en_AU"] = ("English (Australia)")
Name["en_CA"] = ("English (Canada)")
- Name["eo_XX"] = ("Esperanto (Anywhere!)")
+ Name["eo"] = ("Esperanto (Anywhere!)")
Name["es"] = ("Spanish (Spain)")
Name["es_AR"] = ("Spanish (Argentina)")
diff --git a/comp/src/gb.form/.lang/.pot b/comp/src/gb.form/.lang/.pot
index d9a1054bd..613a962b1 100644
--- a/comp/src/gb.form/.lang/.pot
+++ b/comp/src/gb.form/.lang/.pot
@@ -178,22 +178,26 @@ msgstr ""
msgid "Last modified"
msgstr ""
-#: FMain.class:40
+#: FMain.class:41
msgid "Menu2"
msgstr ""
-#: FMain.class:44
+#: FMain.class:45
msgid "Menu3"
msgstr ""
-#: FMain.class:48
+#: FMain.class:49
msgid "Menu4"
msgstr ""
-#: FMain.class:52
+#: FMain.class:53
msgid "Menu5"
msgstr ""
+#: FMain.class:60
+msgid "Expander1"
+msgstr ""
+
#: FWizard.class:55
msgid "&Next"
msgstr ""
diff --git a/comp/src/gb.form/.src/Expander/FExpander.class b/comp/src/gb.form/.src/Expander/FExpander.class
index 9d383ea7d..5c867e431 100644
--- a/comp/src/gb.form/.src/Expander/FExpander.class
+++ b/comp/src/gb.form/.src/Expander/FExpander.class
@@ -167,7 +167,8 @@ End
Private Sub UpdateTitle()
- panTitle.H = Max(Desktop.Scale * 2, ((lblTitle.Font.Height + Desktop.Scale - 1 + 6) \ Desktop.Scale) * Desktop.Scale)
+ panTitle.H = Max(Desktop.Scale * 2, ((lblTitle.Font.Height + Desktop.Scale - 1) \ Desktop.Scale) * Desktop.Scale)
+ btnExpand.W = Desktop.Scale * 2
End
@@ -176,7 +177,7 @@ Public Sub btnExpand_Draw()
Dim iFlag As Integer
Dim Y, W As Integer
- W = Desktop.Scale * 2
+ W = Desktop.Scale * 3 / 2
Y = (btnExpand.H - W) / 2
If Not Me.Enabled Then iFlag += Draw.Disabled
@@ -186,5 +187,24 @@ Public Sub btnExpand_Draw()
Endif
Draw.Style.Arrow(0, Y, W, W, If($bHidden, Align.Right, Align.Bottom), iFlag)
+ 'Draw.Rect(0, Y, W, W)
+
+End
+
+Public Sub panTitle_Enter()
+
+ panTitle.Background = Color.Merge(Color.Background, Color.TextBackground)
+
+End
+
+Public Sub panTitle_Leave()
+
+ panTitle.Background = Color.Default
+
+End
+
+Public Sub panTitle_MouseDown()
+
+ SetHidden(Not $bHidden)
End
diff --git a/comp/src/gb.form/.src/FMain.form b/comp/src/gb.form/.src/FMain.form
index 2115e4f68..51a43de3e 100644
--- a/comp/src/gb.form/.src/FMain.form
+++ b/comp/src/gb.form/.src/FMain.form
@@ -1,7 +1,7 @@
# Gambas Form File 3.0
{ Form Form
- MoveScaled(0,0,63,54)
+ MoveScaled(0,0,88,71)
Arrangement = Arrange.Fill
Spacing = True
{ Menu1 Menu
@@ -18,7 +18,12 @@
Text = ("Menu5")
}
}
- { DirChooser1 DirChooser
- MoveScaled(3,3,56,48)
+ { Expander1 Expander
+ MoveScaled(5,6,74,56)
+ Arrangement = Arrange.Fill
+ Text = ("Expander1")
+ { DirChooser1 DirChooser
+ MoveScaled(1,1,56,48)
+ }
}
}