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) + } } }