[DEVELOPMENT ENVIRONMENT]

* OPT: Share the same completion and signature window between all opened 
  editors.
* BUG: Correctly displays the native datatype help in automatic completion.
* NEW: A new option for enabling the display of online help in automatic 
  completion.
* NEW: A new option not used yet, for defining the default image editor.


git-svn-id: svn://localhost/gambas/trunk@2463 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2009-12-08 22:19:03 +00:00
parent 48eb48908b
commit 7c290f5c06
13 changed files with 602 additions and 600 deletions

2
TODO
View file

@ -51,7 +51,7 @@ DEVELOPMENT ENVIRONMENT
- Be able to open a .tar.gz project, and compress it back when the project is closed.
- Ability to merge projects.
- Conditional breakpoints.
- Show the value of optional arguments in signatures.
- Allow changing the case of class names.
GUI RELATED STUFF

View file

@ -290,7 +290,7 @@ msgstr ""
msgid "Loading information on component &1..."
msgstr ""
#: CModule.class:28 FCreateFile.class:625 FEditor.class:3376 FForm.class:3540
#: CModule.class:28 FCreateFile.class:625 FEditor.class:3378 FForm.class:3540
#: FInfo.class:88
msgid "Form"
msgstr ""
@ -434,7 +434,7 @@ msgstr ""
#: FColorChooser.class:203 FCommit.class:397 FConflict.class:191
#: FConnectionEditor.class:261 FCreateFile.class:885 FDebugInfo.class:492
#: FEditor.class:2128 FFindList.class:195 FFind.class:114
#: FEditor.class:2130 FFindList.class:195 FFind.class:114
#: FFontChooser.class:86 FForm.class:2831 FGotoLine.class:63
#: FIconEditor.class:1393 FImportTable.class:38 FList.class:155
#: FMain.class:203 FMakeExecutable.class:144 FMakeInstall.class:309
@ -476,40 +476,40 @@ msgid ""
msgstr ""
#: FCommit.class:234 FConflict.class:327 FConnectionEditor.class:1790
#: FEditor.class:3200 FForm.class:3381 FIconEditor.class:2168
#: FEditor.class:3202 FForm.class:3381 FIconEditor.class:2168
#: FOutput.class:473 FTextEditor.class:660
msgid "Cut"
msgstr ""
#: FCommit.class:241 FConflict.class:334 FConnectionEditor.class:1688
#: FEditor.class:3206 FForm.class:3388 FIconEditor.class:2177
#: FEditor.class:3208 FForm.class:3388 FIconEditor.class:2177
#: FOutput.class:480 FTextEditor.class:667
msgid "Copy"
msgstr ""
#: FCommit.class:248 FConflict.class:341 FConnectionEditor.class:1814
#: FEditor.class:3213 FForm.class:3395 FIconEditor.class:2186
#: FEditor.class:3215 FForm.class:3395 FIconEditor.class:2186
#: FOutput.class:487 FTextEditor.class:674
msgid "Paste"
msgstr ""
#: FCommit.class:255 FConflict.class:348 FConnectionEditor.class:1822
#: FEditor.class:3183 FForm.class:3623 FIconEditor.class:2150
#: FOption.class:1146 FOutput.class:455 FTextEditor.class:642
#: FEditor.class:3185 FForm.class:3623 FIconEditor.class:2150
#: FOption.class:1166 FOutput.class:455 FTextEditor.class:642
msgid "Undo"
msgstr ""
#: FCommit.class:262 FConflict.class:355 FConnectionEditor.class:1830
#: FEditor.class:3190 FForm.class:3634 FOutput.class:462 FTextEditor.class:649
#: FEditor.class:3192 FForm.class:3634 FOutput.class:462 FTextEditor.class:649
msgid "Redo"
msgstr ""
#: FCommit.class:269 FConflict.class:362 FEditor.class:3434
#: FCommit.class:269 FConflict.class:362 FEditor.class:3436
#: FTextEditor.class:841
msgid "Indent"
msgstr ""
#: FCommit.class:276 FConflict.class:369 FEditor.class:3443
#: FCommit.class:276 FConflict.class:369 FEditor.class:3445
#: FTextEditor.class:849
msgid "Unindent"
msgstr ""
@ -542,7 +542,7 @@ msgstr ""
msgid "Changes"
msgstr ""
#: FCompletion.class:817 MHelp.module:255
#: FCompletion.class:790 MHelp.module:257
msgid "No help found."
msgstr ""
@ -558,7 +558,7 @@ msgstr ""
#: FConflict.class:25 FFindList.class:203 FIconEditor.class:1412
#: FImportTable.class:656 FInfo.class:427 FMakeInstall.class:260
#: FOption.class:1167 FTips.class:232
#: FOption.class:1187 FTips.class:232
msgid "Close"
msgstr ""
@ -662,7 +662,7 @@ msgstr ""
msgid "The table '&1' has been modified. Do you want to save it?"
msgstr ""
#: FConnectionEditor.class:261 FEditor.class:3324 FForm.class:3526
#: FConnectionEditor.class:261 FEditor.class:3326 FForm.class:3526
#: FIconEditor.class:1412 FTextEditor.class:755
msgid "Save"
msgstr ""
@ -784,7 +784,7 @@ msgstr ""
msgid "Connection editor"
msgstr ""
#: FConnectionEditor.class:1547 FEditor.class:2128 FForm.class:2831
#: FConnectionEditor.class:1547 FEditor.class:2130 FForm.class:2831
#: FIconEditor.class:2032 FTextEditor.class:462 FTranslate.class:700
msgid "Reload"
msgstr ""
@ -911,7 +911,7 @@ msgid "Style sheet"
msgstr ""
#: FCreateFile.class:744 FCreateProject.class:537 FImportTable.class:489
#: FOption.class:973 FPropertyProject.class:1654
#: FOption.class:993 FPropertyProject.class:1654
msgid "Options"
msgstr ""
@ -1115,7 +1115,7 @@ msgid "Function"
msgstr ""
#: FDebugInfo.class:52 FFindList.class:73 FIconEditor.class:2278
#: FOption.class:991
#: FOption.class:1011
msgid "Line"
msgstr ""
@ -1148,7 +1148,7 @@ msgstr ""
msgid "Console"
msgstr ""
#: FDebugInfo.class:1039 FOption.class:892
#: FDebugInfo.class:1039 FOption.class:912
msgid "Help"
msgstr ""
@ -1217,118 +1217,118 @@ msgstr ""
msgid "Stack backtrace"
msgstr ""
#: FEditor.class:2128 FIconEditor.class:2032 FTextEditor.class:462
#: FEditor.class:2130 FIconEditor.class:2032 FTextEditor.class:462
msgid ""
"The file has been modified.\n"
"\n"
"All your changes will be lost."
msgstr ""
#: FEditor.class:2522
#: FEditor.class:2524
msgid "(Declarations)"
msgstr ""
#: FEditor.class:3117
#: FEditor.class:3119
msgid "Go to"
msgstr ""
#: FEditor.class:3122 FTextEditor.class:632
#: FEditor.class:3124 FTextEditor.class:632
msgid "Go to line..."
msgstr ""
#: FEditor.class:3128
#: FEditor.class:3130
msgid "Find definition"
msgstr ""
#: FEditor.class:3135
#: FEditor.class:3137
msgid "Go back"
msgstr ""
#: FEditor.class:3142
#: FEditor.class:3144
msgid "Open form"
msgstr ""
#: FEditor.class:3149 FForm.class:3309 FMain.class:2329
#: FEditor.class:3151 FForm.class:3309 FMain.class:2329
msgid "&Startup class"
msgstr ""
#: FEditor.class:3158
#: FEditor.class:3160
msgid "Run &until current line"
msgstr ""
#: FEditor.class:3165
#: FEditor.class:3167
msgid "Toggle &breakpoint"
msgstr ""
#: FEditor.class:3172
#: FEditor.class:3174
msgid "&Watch expression..."
msgstr ""
#: FEditor.class:3220
#: FEditor.class:3222
msgid "Paste special..."
msgstr ""
#: FEditor.class:3230 FTextEditor.class:685
#: FEditor.class:3232 FTextEditor.class:685
msgid "Select &All"
msgstr ""
#: FEditor.class:3240
#: FEditor.class:3242
msgid "Comment"
msgstr ""
#: FEditor.class:3247
#: FEditor.class:3249
msgid "Uncomment"
msgstr ""
#: FEditor.class:3258 FTextEditor.class:695
#: FEditor.class:3260 FTextEditor.class:695
msgid "Find..."
msgstr ""
#: FEditor.class:3264 FTextEditor.class:701
#: FEditor.class:3266 FTextEditor.class:701
msgid "Replace..."
msgstr ""
#: FEditor.class:3271 FTextEditor.class:708
#: FEditor.class:3273 FTextEditor.class:708
msgid "Find Next"
msgstr ""
#: FEditor.class:3278 FTextEditor.class:715
#: FEditor.class:3280 FTextEditor.class:715
msgid "Find Previous"
msgstr ""
#: FEditor.class:3288 FTextEditor.class:725
#: FEditor.class:3290 FTextEditor.class:725
msgid "View"
msgstr ""
#: FEditor.class:3292 FTextEditor.class:729
#: FEditor.class:3294 FTextEditor.class:729
msgid "No split"
msgstr ""
#: FEditor.class:3299 FTextEditor.class:736
#: FEditor.class:3301 FTextEditor.class:736
msgid "Horizontal split"
msgstr ""
#: FEditor.class:3306 FTextEditor.class:743
#: FEditor.class:3308 FTextEditor.class:743
msgid "Vertical split"
msgstr ""
#: FEditor.class:3335 FPasteSpecial.class:253
#: FEditor.class:3337 FPasteSpecial.class:253
msgid "Paste as string"
msgstr ""
#: FEditor.class:3340 FPasteSpecial.class:258
#: FEditor.class:3342 FPasteSpecial.class:258
msgid "Paste as multi-line string"
msgstr ""
#: FEditor.class:3345 FPasteSpecial.class:243
#: FEditor.class:3347 FPasteSpecial.class:243
msgid "Paste as comments"
msgstr ""
#: FEditor.class:3352 FOption.class:954
#: FEditor.class:3354 FOption.class:974
msgid "Editor"
msgstr ""
#: FEditor.class:3501
#: FEditor.class:3503
msgid "Procedure list"
msgstr ""
@ -1921,7 +1921,7 @@ msgstr ""
msgid "This file has not been modified since the last commit."
msgstr ""
#: FInfo.class:309 FOption.class:691 FPropertyProject.class:1571
#: FInfo.class:309 FOption.class:711 FPropertyProject.class:1571
msgid "General"
msgstr ""
@ -2337,7 +2337,7 @@ msgstr ""
msgid "Refresh project"
msgstr ""
#: FMain.class:2465 FOption.class:648
#: FMain.class:2465 FOption.class:668
msgid "Preferences"
msgstr ""
@ -2931,191 +2931,191 @@ msgstr ""
msgid "Quick"
msgstr ""
#: FOption.class:56
#: FOption.class:57
msgid "Select a theme"
msgstr ""
#: FOption.class:57
#: FOption.class:58
msgid "Desktop"
msgstr ""
#: FOption.class:58
#: FOption.class:59
msgid "(Default)"
msgstr ""
#: FOption.class:98
#: FOption.class:102
msgid "Define..."
msgstr ""
#: FOption.class:127
#: FOption.class:131
msgid "Gambas highlight theme files"
msgstr ""
#: FOption.class:128
#: FOption.class:132
msgid "Export a theme file"
msgstr ""
#: FOption.class:272
#: FOption.class:276
msgid "Select a theme file"
msgstr ""
#: FOption.class:302
#: FOption.class:306
msgid "You need to restart the application to see your changes."
msgstr ""
#: FOption.class:660
#: FOption.class:680
msgid "Foreground color..."
msgstr ""
#: FOption.class:664
#: FOption.class:684
msgid "Background color..."
msgstr ""
#: FOption.class:672
#: FOption.class:692
msgid "Bold"
msgstr ""
#: FOption.class:676
#: FOption.class:696
msgid "Italic"
msgstr ""
#: FOption.class:680
#: FOption.class:700
msgid "Underline"
msgstr ""
#: FOption.class:696
#: FOption.class:716
msgid "Interface"
msgstr ""
#: FOption.class:706
#: FOption.class:726
msgid "Font size"
msgstr ""
#: FOption.class:714
#: FOption.class:734
msgid "Normal"
msgstr ""
#: FOption.class:714
#: FOption.class:734
msgid "Small"
msgstr ""
#: FOption.class:725
#: FOption.class:745
msgid "Tabstrip font size"
msgstr ""
#: FOption.class:733
#: FOption.class:753
msgid "Tiny"
msgstr ""
#: FOption.class:744
#: FOption.class:764
msgid "Toolbox size"
msgstr ""
#: FOption.class:763
#: FOption.class:783
msgid "Sort properties"
msgstr ""
#: FOption.class:770 FPropertyProject.class:1708
#: FOption.class:790 FPropertyProject.class:1708
msgid "No"
msgstr ""
#: FOption.class:770 FPropertyProject.class:1708
#: FOption.class:790 FPropertyProject.class:1708
msgid "Yes"
msgstr ""
#: FOption.class:781
#: FOption.class:801
msgid "Quiet external commands"
msgstr ""
#: FOption.class:799
#: FOption.class:819
msgid "Minimize at runtime"
msgstr ""
#: FOption.class:817
#: FOption.class:837
msgid "Icon theme"
msgstr ""
#: FOption.class:832
#: FOption.class:852
msgid "Applications"
msgstr ""
#: FOption.class:842
#: FOption.class:862
msgid "Browser"
msgstr ""
#: FOption.class:861
#: FOption.class:881
msgid "Terminal"
msgstr ""
#: FOption.class:880
#: FOption.class:900
msgid "Image editor"
msgstr ""
#: FOption.class:907
#: FOption.class:927
msgid "Display property help"
msgstr ""
#: FOption.class:925
#: FOption.class:945
msgid "Show tooltips"
msgstr ""
#: FOption.class:943
msgid "Show help in automatic completion"
#: FOption.class:963
msgid "Show documentation in popups"
msgstr ""
#: FOption.class:959
#: FOption.class:979
msgid "Font"
msgstr ""
#: FOption.class:983
#: FOption.class:1003
msgid "Procedure separation"
msgstr ""
#: FOption.class:991 FProperty.class:714
#: FOption.class:1011 FProperty.class:714
msgid "None"
msgstr ""
#: FOption.class:991
#: FOption.class:1011
msgid "Blend"
msgstr ""
#: FOption.class:1002
#: FOption.class:1022
msgid "Highlight current line"
msgstr ""
#: FOption.class:1020
#: FOption.class:1040
msgid "Highlight modified lines"
msgstr ""
#: FOption.class:1038
#: FOption.class:1058
msgid "Show line numbers"
msgstr ""
#: FOption.class:1056
#: FOption.class:1076
msgid "Fold procedures by default"
msgstr ""
#: FOption.class:1074
#: FOption.class:1094
msgid "Default tab size"
msgstr ""
#: FOption.class:1087
#: FOption.class:1107
msgid "spaces"
msgstr ""
#: FOption.class:1098
#: FOption.class:1118
msgid "Keywords in upper case"
msgstr ""
#: FOption.class:1109
#: FOption.class:1129
msgid "Theme"
msgstr ""
#: FOption.class:1132
#: FOption.class:1152
msgid "Import theme"
msgstr ""
#: FOption.class:1139
#: FOption.class:1159
msgid "Export theme"
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -308,22 +308,7 @@ End
Public Sub GetHelpURL() As String
Dim sRes As String
Dim sPath As String
Dim sComp As String
Dim sName As String
If Component Then
sPath = "http://gambasdoc.org/help/comp"
sComp = Component
If sComp = "gb.qt4" Or If sComp = "gb.gtk" Or If sComp = "gb.gui" Then sComp = "gb.qt"
sPath &/= LCase(sComp)
sPath &/= Replace(LCase(Name), "_", ".")
Return sPath
Endif
If Component Then Return MHelp.GetClassURL(Component, Name)
End

View file

@ -685,18 +685,6 @@ End
Public Sub GetHelpURL() As String
Dim sPath As String
Dim sName As String
If Component Then
sPath = CComponent.Classes[Component &/ Class].GetHelpURL()
sName = LCase(Name)
If Kind = ":" Then sName = Replace(sName, "_", ".")
sPath &/= sName
Return sPath
Endif
If Component Then Return MHelp.GetSymbolURL(Component, Class, Name)
End

View file

@ -16,6 +16,15 @@ Private $iMinW As Integer
Private $iMinH As Integer
Private $iMaxY As Integer
Private $hEditor As Editor
Private Const TYPE_NATIVE As Integer = 0
Private Const TYPE_CLASS As Integer = 1
Private Const TYPE_CONTROL As Integer = 2
Private Const TYPE_SYMBOL As Integer = 3
Private Const TYPE_EVENT As Integer = 4
Private Const TYPE_SPECIAL As Integer = 5
Static Public Sub _init()
Dim sPath As String
@ -39,17 +48,6 @@ Public Sub RefreshLibrary()
End
Private Function GetEditor() As Editor
Dim hForm As FEditor
hForm = Me.Parent.Window
Return hForm.Editor
End
Private Function GetClass() As String
Dim hForm As FEditor
@ -59,9 +57,8 @@ Private Function GetClass() As String
End
Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As Boolean, Optional bPrivate As Boolean)
Public Sub Open(hForm As FEditor, sMode As String, Optional sClass As String, Optional bStatic As Boolean, Optional bPrivate As Boolean)
Dim hEditor As Editor
Dim iX As Integer
Dim iY As Integer
Dim iPos As Integer
@ -69,8 +66,8 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
Dim sText As String
Dim W, H As Integer
hEditor = GetEditor()
Me.Font = hEditor.font
$hEditor = hForm.Editor
Me.Font = $hEditor.font
Inc Application.Busy
@ -78,7 +75,7 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
$sMode = sMode
$iLen = 0
$iMaxLen = 16
$iCol = hEditor.Column + 1
$iCol = $hEditor.Column + 1
$bShowHelp = False
Select $sMode
@ -122,6 +119,8 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
Return
Endif
If Settings["/ShowHelpInPopup", 1] = 0 Then $bShowHelp = False
'PRINT "Open: $hEditor = "; $hEditor
lvwComp.MoveFirst
@ -157,20 +156,20 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
Me.Resize(W + 4, H * Min(8, lvwComp.Count) + 2)
Endif
sText = String.Left(hEditor.Lines[hEditor.Line].Text, $iCol)
sText = String.Left($hEditor.Lines[$hEditor.Line].Text, $iCol)
If InStr(" .", sMode) And If Key.Code <> Key.Backspace Then
sText &= Key.Text
Endif
iX = hEditor.X + hEditor.ToPosX(0) + hEditor.Font.Width(sText)
iX = $hEditor.X + $hEditor.ToPosX(0) + $hEditor.Font.Width(sText)
iX = Max(0, Min(iX, Me.Parent.Window.ClientW - Me.Width))
iY = hEditor.Y + hEditor.CursorY + hEditor.LineHeight
iY = $hEditor.Y + $hEditor.CursorY + $hEditor.LineHeight
If (iY + Me.Height) > (hEditor.Y + hEditor.H) Then
iY = hEditor.Y + hEditor.CursorY - Me.Height
If (iY + Me.Height) > ($hEditor.Y + $hEditor.H) Then
iY = $hEditor.Y + $hEditor.CursorY - Me.Height
panResizeBottom.Hide
panResizeTop.Show
Else
@ -178,7 +177,7 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
panResizeTop.Hide
Endif
hCont = hEditor.Parent
hCont = $hEditor.Parent
Do
If hCont Is Form Then Break
iX += hCont.X
@ -186,12 +185,14 @@ Public Sub Open(sMode As String, Optional sClass As String, Optional bStatic As
hCont = hCont.Parent
Loop
Me.Move(iX, iY)
Dec Application.Busy
If Me.Parent = hForm And If iX = Me.X And iY = Me.Y And Me.Visible Then Return
Me.Reparent(hForm, iX, iY)
Me.Show
Me.Raise
hEditor.SetFocus
Dec Application.Busy
$hEditor.SetFocus
End
@ -251,7 +252,7 @@ Private Sub AddClassesAndFill(aClass As String[], Optional sBegin As String)
For Each sClass In aClass
iType = Val(Right$(sClass))
sClass = Left$(sClass, -2)
Try lvwComp.Add(sClass, sClass, hPic[iType])
Try lvwComp.Add(CStr(iType) & sClass, sClass, hPic[iType])
$iMaxLen = Max($iMaxLen, Len(sClass))
Next
@ -298,7 +299,7 @@ Public Sub FillWithSymbol(sClass As String, bStatic As Boolean, bPrivate As Bool
For Each sSymbol In aSymbol
hSymbol = cSymbol[sSymbol]
Try lvwComp.Add(sSymbol, sSymbol, Picture[hSymbol.GetIcon()])
Try lvwComp.Add(CStr(TYPE_SYMBOL) & sSymbol, sSymbol, Picture[hSymbol.GetIcon()])
$iMaxLen = Max($iMaxLen, Len(sSymbol))
Next
@ -341,7 +342,6 @@ End
Private Sub FillWithIdent(sWord As String)
Dim hEditor As Editor
Dim iInd As Integer
Dim sLine As String
Dim iPos As Integer
@ -360,8 +360,6 @@ Private Sub FillWithIdent(sWord As String)
lvwComp.Clear
hEditor = GetEditor()
sOrg = sWord
sWord = UCase(sWord)
@ -387,11 +385,11 @@ Private Sub FillWithIdent(sWord As String)
iLine = -1
Do
iLine = hEditor.FindNextWord(sWord, iLine + 1)
iLine = $hEditor.FindNextWord(sWord, iLine + 1)
If iLine < 0 Then Break
If iLine = hEditor.Line Then Continue
If iLine = $hEditor.Line Then Continue
sLine = Highlight.Purge(hEditor.Lines[iLine].Text)
sLine = Highlight.Purge($hEditor.Lines[iLine].Text)
sUCaseLine = UCase(sLine) ' Only ASCII characters are interesting there...
iPos = 0
@ -416,36 +414,6 @@ Private Sub FillWithIdent(sWord As String)
Loop
'ENDIF
' sText = hEditor.Text
' DO
' INC iPos
' iPos = InStr(sText, sWord, iPos, gb.Text)
' IF iPos = 0 THEN BREAK
'
' iPos2 = RInStr(sText, "\n", iPos) + 1
' iPos3 = InStr(sText, "\n", iPos)
' IF iPos3 = 0 THEN iPos3 = Len(sText) + 1
' sLine = Mid$(sText, iPos2, iPos3 - iPos2)
'
' iUPos = String.Index(sLine, iPos - iPos2 + 1)
' IF iUPos > 1 THEN
' sCar = String.Mid$(sLine, iUPos - 1, 1)
' IF InStr(FEditor.IDENT_CAR, sCar) THEN CONTINUE
' ENDIF
' FOR iPos2 = iUPos + String.Len(sWord) TO String.Len(sLine)
' sCar = String.Mid$(sLine, iPos2, 1)
' IF String.InStr(FEditor.IDENT_CAR, sCar) = 0 THEN BREAK
' NEXT
' sCar = String.Mid$(sLine, iUPos, iPos2 - iUPos)
' IF IsDigit(Left$(sCar)) THEN CONTINUE
' IF cKey.Exist(sCar) THEN CONTINUE
' aResult.Add(sCar & " 3")
' cKey[sCar] = TRUE
' LOOP
cSymbol = CComponent.GetClassSymbols(GetClass())
If cSymbol Then
For Each hSymbol In cSymbol
@ -474,7 +442,7 @@ Private Sub FillWithSpecial()
lvwComp.Clear
For Each sName In ["_call", "_compare", "_exit", "_get", "_init", "_new", "_next", "_put", "_unknown"]
Try lvwComp.Add(sName, sName, hPict)
Try lvwComp.Add(CStr(TYPE_SPECIAL) & sName, sName, hPict)
Next
End
@ -679,7 +647,6 @@ End
Private Function InsertItem(Optional bNoSpace As Boolean) As Boolean
Dim sText As String
Dim hEditor As Editor
Try sText = lvwComp.Current.Text
If Not lvwComp.Current.Selected Then Return
@ -689,8 +656,7 @@ Private Function InsertItem(Optional bNoSpace As Boolean) As Boolean
If Right(sText) = " " Then sText = Left$(sText, -1)
Endif
hEditor = GetEditor()
With hEditor
With $hEditor
.Select(.Line, $iCol, .Line, .Column)
.Insert(sText)
End With
@ -707,14 +673,12 @@ End
Public Sub lvwComp_KeyPress()
Dim hEditor As Editor
Dim hForm As FEditor
'IF Key.Code = Key.Escape THEN ME.Hide
hEditor = GetEditor()
hEditor.SetFocus
hForm = hEditor.Window
$hEditor.SetFocus
hForm = $hEditor.Window
hForm.Editors_KeyPress
End
@ -725,7 +689,6 @@ Private Sub CompleteItem() As Boolean
Dim sNext As String
Dim sText As String
Dim iPos As Integer
Dim hEditor As Editor
sCurrent = lvwComp.Current.Text
lvwComp.MoveCurrent
@ -742,8 +705,7 @@ Private Sub CompleteItem() As Boolean
Else
$sText = sText
hEditor = GetEditor()
With hEditor
With $hEditor
.Select(.Line, $iCol, .Line, .Column)
.Insert($sText)
End With
@ -779,33 +741,44 @@ Public Sub timHelp_Timer()
Dim sUrl As String
Dim sHtml As String
Dim sLang As String
Dim iType As Integer
Try sSymbol = lvwComp.Current.Text
If sSymbol Then
Select Case $sMode
Case "."
Try hSymbol = CComponent.GetClassSymbols($sClass)[sSymbol]
If hSymbol Then
sUrl = hSymbol.GetHelpURL()
If Not sUrl Then
sHtml = "<html><body><pre>" & hSymbol.GetSignature() & "</pre></body></html>"
Endif
Endif
iType = CInt(Left(lvwComp.Key))
Case " "
Try hClass = CComponent.Classes[sSymbol]
If hClass Then sUrl = hClass.GetHelpURL()
Case "A", "<"
'FillWithIdent(sClass)
Case "_"
'FillWithSpecial()
If iType = TYPE_NATIVE Then
End Select
sUrl = MHelp.GetLangURL("type" &/ sSymbol)
Else
Select Case $sMode
Case "."
Try hSymbol = CComponent.GetClassSymbols($sClass)[sSymbol]
If hSymbol Then
sUrl = hSymbol.GetHelpURL()
If Not sUrl Then
sHtml = "<html><body><pre>" & hSymbol.GetSignature() & "</pre></body></html>"
Endif
Endif
Case " "
Try hClass = CComponent.Classes[sSymbol]
If hClass Then sUrl = hClass.GetHelpURL()
Case "A", "<"
'FillWithIdent(sClass)
Case "_"
'FillWithSpecial()
End Select
Endif
webHelp.Stop
If sUrl Then
@ -876,3 +849,9 @@ Public Sub panResizeTop_MouseMove()
Me.Move(Me.X, Y, W, Me.H + Me.Y - Y)
End
Public Sub Form_Close()
$hEditor = Null
End

View file

@ -46,8 +46,8 @@ Private Const TYPE_ARRAY As Integer = 2
'PRIVATE $iSymbolType AS Integer
Private $bLastStatic As Boolean
Public frmCompletion As FCompletion
Public frmSignature As FSignature
Static Private frmCompletion As FCompletion
Static Private frmSignature As FSignature
Private $iViewMode As Integer
Private VIEWMODE_NORMAL As Integer = 0
@ -94,10 +94,12 @@ Public Sub _new(sPath As String)
edtEditor.Flags[Editor.HighlightBraces] = True
edtEditor.Highlight = Highlight.Gambas
frmCompletion = New FCompletion(Me)
frmCompletion.Hide
frmSignature = New FSignature(Me)
frmSignature.Hide
If Not frmCompletion Then
frmCompletion = New FCompletion(Me)
frmCompletion.Hide
frmSignature = New FSignature(Me)
frmSignature.Hide
Endif
ReadConfig
Refresh
@ -1844,7 +1846,7 @@ Private Sub CheckCompletion(sMode As String)
If sMode = " " Then
If UCase(Right$(sLine, 3)) = " AS" Or UCase(Right$(sLine, 4)) = " NEW" Or UCase(Right$(sLine, 3)) = " IS" Then
HideCompletion
frmCompletion.Open(sMode)
frmCompletion.Open(Me, sMode)
Endif
Else If sMode = "." Then
Highlight.Analyze(sLine & ".")
@ -1855,21 +1857,21 @@ Private Sub CheckCompletion(sMode As String)
sType = GetExpressionType(aSymbols, aTypes, True)
If sType Then
'PRINT "Type: "; sType
frmCompletion.Open(sMode, sType, $bLastStatic, False) 'LCase(sType) = LCase(ME.Name))
frmCompletion.Open(Me, sMode, sType, $bLastStatic, False) 'LCase(sType) = LCase(ME.Name))
Endif
Else If sMode = "A" Then
If Not frmCompletion.Visible Then
sWord = GetIdentifier(sLine & Key.Text, Editor.Column + 1)
If Len(sWord) >= 3 Then frmCompletion.Open(sMode, sWord)
If Len(sWord) >= 3 Then frmCompletion.Open(Me, sMode, sWord)
'IF Len(sWord) >= 3 THEN DEBUG FindCompletion(sWord).Join(" ")
Endif
Else If sMode = "_" Then
If Not frmCompletion.Visible Then
sWord = GetIdentifier(sLine, Editor.Column)
If Not sWord Then
frmCompletion.Open(sMode)
frmCompletion.Open(Me, sMode)
Else If Len(sWord) >= 3 Then
frmCompletion.Open("A", sWord & "_")
frmCompletion.Open(Me, "A", sWord & "_")
Endif
'IF Len(sWord) >= 3 THEN DEBUG FindCompletion(sWord).Join(" ")
Endif
@ -1885,7 +1887,7 @@ Private Sub CheckCompletion(sMode As String)
Editor.Goto(Editor.Line, iPos)
Return
Endif
If Len(sWord) >= 3 Then frmCompletion.Open(sMode, sWord)
If Len(sWord) >= 3 Then frmCompletion.Open(Me, sMode, sWord)
'IF Len(sWord) >= 3 THEN DEBUG FindCompletion(sWord).Join(" ")
Endif
Else
@ -2054,7 +2056,7 @@ Private Sub CheckSignature(Optional sText As String)
If hSymbol Then
If LCase(hSymbol.Kind) = "m" Then
frmSignature.Open($iPosSignature, hSymbol, $iArgSignature, Not sText)
frmSignature.Open(Me, $iPosSignature, hSymbol, $iArgSignature, Not sText)
If frmCompletion.Visible Then frmCompletion.Raise
Endif
Return

View file

@ -1,45 +1,17 @@
' Gambas class file
Private $hEditor As Editor
Private Function GetEditor() As Editor
Dim hForm As FEditor
hForm = Me.Parent.Window
Return hForm.Editor
End
' PUBLIC SUB OnMove()
'
' DIM iX AS Integer
' DIM iY AS Integer
'
' iX = $iDX + $hEditor.Window.X
' iY = $iDY + $hEditor.Window.Y
'
' iX = Max(0, Min(Desktop.Width - ME.Width, iX))
'
' IF (iY + ME.Height) > Desktop.Height THEN
' iY = iY - $hEditor.LineHeight - ME.Height
' ENDIF
'
' ME.Move(iX, iY)
'
' END
Public Sub Open(iX As Integer, hSymbol As CSymbolInfo, iArg As Integer, Optional bDoNotUseKey As Boolean)
Public Sub Open(hForm As FEditor, iX As Integer, hSymbol As CSymbolInfo, iArg As Integer, Optional bDoNotUseKey As Boolean)
Dim sSign As String
Dim hEditor As Editor
Dim $hEditor As Editor
Dim iY As Integer
Dim hCont As Container
Dim sName As String
hEditor = GetEditor()
Me.Font = hEditor.Font
$hEditor = hForm.Editor
Me.Font = $hEditor.Font
sSign = hSymbol.GetSignature(iArg)
If Not sSign Then Return
@ -48,7 +20,7 @@ Public Sub Open(iX As Integer, hSymbol As CSymbolInfo, iArg As Integer, Optional
If Left$(sName) = "_" Then sName = hSymbol.Class
sSign = "<b>" & sName & "</b>" & sSign
lblNewSignature.W = Max(64, hEditor.W - 64)
lblNewSignature.W = Max(64, $hEditor.W - 64)
lblNewSignature.Text = sSign
lblNewSignature.Adjust
'lblSignature.AutoResize = FALSE
@ -61,13 +33,13 @@ Public Sub Open(iX As Integer, hSymbol As CSymbolInfo, iArg As Integer, Optional
Me.Resize(lblSignature.W, lblSignature.H)
iY = hEditor.Y + hEditor.CursorY + hEditor.LineHeight
iY = $hEditor.Y + $hEditor.CursorY + $hEditor.LineHeight
If (iY + Me.Height) > (hEditor.Y + hEditor.H) Then
iY = hEditor.Y + hEditor.CursorY - Me.Height
If (iY + Me.Height) > ($hEditor.Y + $hEditor.H) Then
iY = $hEditor.Y + $hEditor.CursorY - Me.Height
Endif
hCont = hEditor.Parent
hCont = $hEditor.Parent
Do
If hCont Is Form Then Break
iX += hCont.X
@ -75,14 +47,14 @@ Public Sub Open(iX As Integer, hSymbol As CSymbolInfo, iArg As Integer, Optional
hCont = hCont.Parent
Loop
iX = Max(0, Min(iX, hEditor.W - Me.Width))
iX = Max(0, Min(iX, $hEditor.W - Me.Width))
If iX = Me.X And iY = Me.Y And Me.Visible Then Return
If Me.Parent = hForm And If iX = Me.X And iY = Me.Y And Me.Visible Then Return
Me.Move(iX, iY)
Me.Reparent(hForm, iX, iY)
Me.Show
Me.Raise
hEditor.SetFocus
$hEditor.SetFocus
End

View file

@ -17,7 +17,7 @@
}
{ lblSignature TextLabel
MoveScaled(0,0,34,4)
Background = &HFFFFDF&
Background = Color.TextBackground
Foreground = &H000000&
Padding = 2
Text = ("")

View file

@ -4,6 +4,7 @@ Static Private $aTheme As String[] = ["amethyst", "amber", "emerald", "ruby", "s
Static Private $aThemeName As String[] = [("Amethyst"), ("Amber"), ("Emerald"), ("Ruby"), ("Sapphire"), ("Visual"), ("Obsidian"), ("Quest"), ("Quick")]
Static Private $aBrowser As String[] = ["konqueror", "firefox", "epiphany", "seamonkey", "opera"]
Static Private $aTerminal As String[] = ["konsole", "gnome-terminal", "Terminal", "xterm"]
Static Private $aImageEditor As String[] = ["gimp", "kolourpaint", "krita"]
Private $cLast As Collection
Private $cCurrent As Collection
@ -57,6 +58,7 @@ Public Sub _new()
cmbIconTheme.List = [("Desktop"), "Gnome", "KDE", "KDE4"]
cmbBrowser.List = [("(Default)"), "Konqueror", "Firefox", "Epiphany", "SeaMonkey", "Opera"]
cmbTerminal.List = [("(Default)"), "Konsole", "Gnome Terminal", "XFCE Terminal", "XTerm"]
cmbImageEditor.List = [("(Default)"), "GIMP", "Kolour Paint", "Krita"]
$cLast = MTheme.ReadSettings(Settings, "/Highlight", True)
$cCurrent = MTheme.Copy($cLast)
@ -76,6 +78,7 @@ Public Sub _new()
[cmbOutput, "/QuietExternalCommands", 0],
[cmbTooltip, "/ShowTooltip", 0],
[cmbIntegratedHelp, "/PropertyHelp", 1],
[cmbHelpCompletion, "/ShowHelpInPopup", 1],
[cmbMinimize, "/MinimizeOnRun", 0],
[cmbUpperCaseKeywords, "/Editor/KeywordsUseUpperCase", 0]]
@ -84,6 +87,7 @@ Public Sub _new()
cmbIconTheme.Index = ["gnome", "kde"].Find(Settings["/Theme"]) + 1
cmbBrowser.Index = $aBrowser.Find(Settings["/Browser"]) + 1
cmbTerminal.Index = $aTerminal.Find(Settings["/Terminal"]) + 1
cmbImageEditor.Index = $aImageEditor.Find(Settings["/ImageEditor"]) + 1
$bNoChange = False
For iInd = 0 To MTheme.ColorKeys.Max
@ -338,6 +342,16 @@ Public Sub cmbTerminal_Click()
End
Public Sub cmbImageEditor_Click()
If cmbImageEditor.Index > 0 Then
Settings["/ImageEditor"] = $aTerminal[cmbImageEditor.Index - 1]
Else
Settings["/ImageEditor"] = ""
Endif
End
' PUBLIC SUB cmbImageEditor_Click()
'
' IF cmbImageEditor.Index > 0 THEN
@ -383,6 +397,12 @@ Public Sub cmbIntegratedHelp_Click()
End
Public Sub cmbHelpCompletion_Click()
Settings["/ShowHelpInPopup"] = cmbHelpCompletion.Index = 1
End
Public Sub cmbMinimize_Click()
Settings["/MinimizeOnRun"] = cmbMinimize.Index = 1

View file

@ -249,7 +249,7 @@
Indent = True
{ Label23 Label
MoveScaled(0,0,47,4)
Text = ("Show help in automatic completion")
Text = ("Show documentation in popups")
}
{ cmbHelpCompletion ComboBox
MoveScaled(48,0,10,4)

View file

@ -1,5 +1,7 @@
' Gambas module file
Private Const ROOT_URL As String = "http://gambasdoc.org/help"
Public $PopupHelpCache As Collection
Private Sub GetPath(sPath As String) As String
@ -259,3 +261,45 @@ Finally
End
Public Sub GetURL(sPath As String) As String
Return ROOT_URL &/ sPath
End
Public Sub GetClassURL(sComponent As String, sClass As String) As String
Dim sRes As String
Dim sPath As String
Dim sComp As String
sPath = GetURL("comp")
sComp = sComponent
If sComp = "gb.qt4" Or If sComp = "gb.gtk" Or If sComp = "gb.gui" Then sComp = "gb.qt"
sPath &/= LCase(sComp)
sPath &/= Replace(LCase(sClass), "_", ".")
Return sPath
End
Public Sub GetSymbolURL(sComponent As String, sClass As String, sSymbol As String) As String
Dim sPath As String
Dim sName As String
sPath = GetClassURL(sComponent, sClass)
sName = LCase(sSymbol)
sName = Replace(sName, "_", ".")
sPath &/= sName
Return sPath
End
Public Sub GetLangURL(sSymbol As String) As String
Return GetURL("lang") &/ LCase(sSymbol)
End