[DEVELOPMENT ENVIRONMENT]

* NEW: In Gambas, javascript, HTML and CSS editor, a button to insert 
  a color definition, or a color already defined in the current source 
  code.
* NEW: Allow links with title ([<link>|<title>]) in help comment syntax.

[GB.FORM]
* BUG: In FileView, file sizes are really written with 1 Kib = 1024 bytes.
* BUG: MenuButton has an Action property again.
* BUG: MenuButton raise its basic events.

[GB.IMAGE]
* BUG: COlor.Darker() works correctly for black, white and gray colors now.

[GB.IMAGE.IO]
* BUG: Image.Save() quality is correctly handled. For PNG format, the 
  quality is actually the compression level, between 0 and 9.

[GB.QT4.WEBKIT]
* NEW: WebFrame.HTML is a new property that returns the HTML contents of a 
  specific frame.
* NEW: WebFrame.Text  is a new property that returns the text inside a 
  specific frame.

[GB.WEB]
* NEW: When the session is abandonned, the Session_Abandon() static public 
  method is called in the startup class.


git-svn-id: svn://localhost/gambas/trunk@3096 867c0c6c-44f3-4631-809d-bfa615b0a4ec
This commit is contained in:
Benoît Minisini 2010-08-06 11:49:57 +00:00
parent e75d1e59cf
commit 055e187a6a
35 changed files with 5037 additions and 4894 deletions

View file

@ -278,7 +278,11 @@ msgstr ""
msgid "Loading information on component &1..."
msgstr ""
#: CModule.class:28 FCreateFile.class:648 FEditor.class:3504 FForm.class:3704
#: CInsertColor.class:103 FEditor.class:3637 FTextEditor.class:912
msgid "Insert color"
msgstr ""
#: CModule.class:28 FCreateFile.class:648 FEditor.class:3527 FForm.class:3704
#: FInfo.class:88
msgid "Form"
msgstr ""
@ -316,19 +320,19 @@ msgid "Gambas reports"
msgstr ""
#: CProjectTree.class:290 FMain.class:2711 FSearch.class:95
#: FSelectIcon.class:216 Project.module:1316
#: FSelectIcon.class:216 Project.module:1337
msgid "Project"
msgstr ""
#: CProjectTree.class:293 Project.module:1319
#: CProjectTree.class:293 Project.module:1340
msgid "Sources"
msgstr ""
#: CProjectTree.class:296 Project.module:1322
#: CProjectTree.class:296 Project.module:1343
msgid "Connections"
msgstr ""
#: CProjectTree.class:305 Project.module:1331
#: CProjectTree.class:305 Project.module:1352
msgid "Data"
msgstr ""
@ -352,13 +356,13 @@ msgstr ""
msgid "This month"
msgstr ""
#: CWelcome.class:66
#: CWelcome.class:68
msgid ""
"This program is published under\n"
"the GNU General Public License."
msgstr ""
#: Design.module:216 Project.module:1768
#: Design.module:216 Project.module:1789
msgid "In class &1 at line &2."
msgstr ""
@ -377,11 +381,11 @@ msgid ""
"the value: &1"
msgstr ""
#: Design.module:381 FColorChooser.class:201 FCommit.class:380
#: Design.module:381 FColorChooser.class:209 FCommit.class:380
#: FConnectionEditor.class:411 FCreateFile.class:922 FFontChooser.class:79
#: FGotoLine.class:57 FList.class:331 FMain.class:3024 FMenu.class:1197
#: FNewConnection.class:573 FNewTable.class:159 FNewTranslation.class:64
#: FOpenProject.class:472 FPasteSpecial.class:273 FPropertyProject.class:258
#: FOpenProject.class:490 FPasteSpecial.class:273 FPropertyProject.class:258
#: FReportBorderChooser.class:213 FReportCoordChooser.class:120
#: FSelectExtraFile.class:72 FSelectIcon.class:268 FSnippet.class:136
#: FTableChooser.class:138 FText.class:100
@ -447,31 +451,31 @@ msgstr ""
msgid "&Copy"
msgstr ""
#: FColorChooser.class:161
#: FColorChooser.class:128
msgid "Select a color"
msgstr ""
#: FColorChooser.class:174
#: FColorChooser.class:182
msgid "System"
msgstr ""
#: FColorChooser.class:180
#: FColorChooser.class:188
msgid "Free"
msgstr ""
#: FColorChooser.class:207 FCommit.class:386 FConflict.class:191
#: FColorChooser.class:215 FCommit.class:386 FConflict.class:191
#: FConnectionEditor.class:261 FCreateFile.class:928 FDebugInfo.class:496
#: FEditor.class:2239 FFindList.class:195 FFontChooser.class:85
#: FEditor.class:2247 FFindList.class:195 FFontChooser.class:85
#: FForm.class:2955 FGotoLine.class:63 FHelpBrowser.class:275
#: FIconEditor.class:1396 FImportTable.class:38 FList.class:155
#: FMain.class:213 FMakeInstall.class:318 FMenu.class:1202
#: FNewConnection.class:317 FNewTable.class:165 FNewTranslation.class:70
#: FOpenProject.class:478 FOption.class:590 FPasteSpecial.class:279
#: FOpenProject.class:496 FOption.class:590 FPasteSpecial.class:279
#: FPropertyProject.class:1017 FReportBorderChooser.class:207
#: FReportCoordChooser.class:114 FSave.class:118 FSearch.class:502
#: FSelectExtraFile.class:78 FSelectIcon.class:273 FSnippet.class:142
#: FTableChooser.class:144 FTextEditor.class:454 FText.class:106
#: FTranslate.class:617 Project.module:372
#: FTableChooser.class:144 FTextEditor.class:476 FText.class:106
#: FTranslate.class:617 Project.module:393
msgid "Cancel"
msgstr ""
@ -505,46 +509,46 @@ msgid ""
msgstr ""
#: FCommit.class:234 FConflict.class:325 FConnectionEditor.class:1808
#: FEditor.class:3349 FForm.class:3534 FIconEditor.class:2165
#: FEditor.class:3366 FForm.class:3534 FIconEditor.class:2165
#: FImageEditor.class:77 FMenu.class:948 FOutput.class:377
#: FTextEditor.class:675
#: FTextEditor.class:706
msgid "Cut"
msgstr ""
#: FCommit.class:240 FConflict.class:331 FConnectionEditor.class:1708
#: FEditor.class:3355 FForm.class:3541 FIconEditor.class:2173
#: FEditor.class:3372 FForm.class:3541 FIconEditor.class:2173
#: FImageEditor.class:86 FMenu.class:954 FOutput.class:384
#: FTextEditor.class:682
#: FTextEditor.class:713
msgid "Copy"
msgstr ""
#: FCommit.class:246 FConflict.class:337 FConnectionEditor.class:1829
#: FEditor.class:3362 FForm.class:3554 FIconEditor.class:2181
#: FEditor.class:3379 FForm.class:3554 FIconEditor.class:2181
#: FImageEditor.class:95 FMenu.class:960 FOutput.class:391
#: FTextEditor.class:689
#: FTextEditor.class:720
msgid "Paste"
msgstr ""
#: FCommit.class:252 FConflict.class:343 FConnectionEditor.class:1836
#: FEditor.class:3333 FForm.class:3779 FIconEditor.class:2149
#: FEditor.class:3350 FForm.class:3779 FIconEditor.class:2149
#: FImageEditor.class:104 FOption.class:1461 FOutput.class:360
#: FTextEditor.class:658
#: FTextEditor.class:689
msgid "Undo"
msgstr ""
#: FCommit.class:258 FConflict.class:349 FConnectionEditor.class:1843
#: FEditor.class:3340 FForm.class:3789 FImageEditor.class:112
#: FOutput.class:367 FTextEditor.class:665
#: FEditor.class:3357 FForm.class:3789 FImageEditor.class:112
#: FOutput.class:367 FTextEditor.class:696
msgid "Redo"
msgstr ""
#: FCommit.class:264 FConflict.class:355 FEditor.class:3556 FMenu.class:970
#: FTextEditor.class:831
#: FCommit.class:264 FConflict.class:355 FEditor.class:3579 FMenu.class:970
#: FTextEditor.class:871
msgid "Indent"
msgstr ""
#: FCommit.class:270 FConflict.class:361 FEditor.class:3564 FMenu.class:976
#: FTextEditor.class:838
#: FCommit.class:270 FConflict.class:361 FEditor.class:3587 FMenu.class:976
#: FTextEditor.class:878
msgid "Unindent"
msgstr ""
@ -616,7 +620,7 @@ msgid ""
"Do you really want to open another file?"
msgstr ""
#: FConflict.class:254 FOpenProject.class:384 Project.module:372
#: FConflict.class:254 FOpenProject.class:402 Project.module:393
msgid "Open"
msgstr ""
@ -691,8 +695,8 @@ msgstr ""
msgid "The table '&1' has been modified. Do you want to save it?"
msgstr ""
#: FConnectionEditor.class:261 FEditor.class:3455 FForm.class:3695
#: FIconEditor.class:1415 FImageEditor.class:60 FTextEditor.class:753
#: FConnectionEditor.class:261 FEditor.class:3478 FForm.class:3695
#: FIconEditor.class:1415 FImageEditor.class:60 FTextEditor.class:790
msgid "Save"
msgstr ""
@ -813,9 +817,9 @@ msgstr ""
msgid "Connection editor"
msgstr ""
#: FConnectionEditor.class:1572 FEditor.class:2239 FForm.class:2955
#: FConnectionEditor.class:1572 FEditor.class:2247 FForm.class:2955
#: FHelpBrowser.class:281 FIconEditor.class:2035 FImageEditor.class:68
#: FTextEditor.class:454 FTranslate.class:711
#: FTextEditor.class:476 FTranslate.class:711
msgid "Reload"
msgstr ""
@ -1090,7 +1094,7 @@ msgstr ""
msgid "Title"
msgstr ""
#: FCreateProject.class:659 FOpenProject.class:462
#: FCreateProject.class:659 FOpenProject.class:480
msgid "Open in another window"
msgstr ""
@ -1234,110 +1238,114 @@ msgstr ""
msgid "Stack backtrace"
msgstr ""
#: FEditor.class:2239 FIconEditor.class:2035 FTextEditor.class:454
#: FEditor.class:2247 FIconEditor.class:2035 FTextEditor.class:476
msgid ""
"The file has been modified.\n"
"\n"
"All your changes will be lost."
msgstr ""
#: FEditor.class:2636
#: FEditor.class:2645
msgid "(Declarations)"
msgstr ""
#: FEditor.class:3269
#: FEditor.class:3286
msgid "Go to"
msgstr ""
#: FEditor.class:3274 FTextEditor.class:649
#: FEditor.class:3291 FTextEditor.class:680
msgid "Go to line..."
msgstr ""
#: FEditor.class:3280
#: FEditor.class:3297
msgid "Find definition"
msgstr ""
#: FEditor.class:3287 FHelpBrowser.class:263
#: FEditor.class:3304 FHelpBrowser.class:263
msgid "Go back"
msgstr ""
#: FEditor.class:3294
#: FEditor.class:3311
msgid "Open form"
msgstr ""
#: FEditor.class:3301 FForm.class:3466 FMain.class:2497
#: FEditor.class:3318 FForm.class:3466 FMain.class:2497
msgid "&Startup class"
msgstr ""
#: FEditor.class:3309
#: FEditor.class:3326
msgid "Run &until current line"
msgstr ""
#: FEditor.class:3316
#: FEditor.class:3333
msgid "Toggle &breakpoint"
msgstr ""
#: FEditor.class:3323
#: FEditor.class:3340
msgid "&Watch expression..."
msgstr ""
#: FEditor.class:3369
#: FEditor.class:3386
msgid "Paste special..."
msgstr ""
#: FEditor.class:3378 FTextEditor.class:699
#: FEditor.class:3392 FTextEditor.class:727
msgid "Insert color..."
msgstr ""
#: FEditor.class:3401 FTextEditor.class:736
msgid "Select &All"
msgstr ""
#: FEditor.class:3387
#: FEditor.class:3410
msgid "Comment"
msgstr ""
#: FEditor.class:3394
#: FEditor.class:3417
msgid "Uncomment"
msgstr ""
#: FEditor.class:3404 FOutput.class:408 FTextEditor.class:708
#: FEditor.class:3427 FOutput.class:408 FTextEditor.class:745
msgid "Find next"
msgstr ""
#: FEditor.class:3411 FOutput.class:415 FTextEditor.class:715
#: FEditor.class:3434 FOutput.class:415 FTextEditor.class:752
msgid "Find previous"
msgstr ""
#: FEditor.class:3420 FTextEditor.class:724
#: FEditor.class:3443 FTextEditor.class:761
msgid "View"
msgstr ""
#: FEditor.class:3424 FTextEditor.class:728
#: FEditor.class:3447 FTextEditor.class:765
msgid "No split"
msgstr ""
#: FEditor.class:3431 FTextEditor.class:735
#: FEditor.class:3454 FTextEditor.class:772
msgid "Horizontal split"
msgstr ""
#: FEditor.class:3438 FTextEditor.class:742
#: FEditor.class:3461 FTextEditor.class:779
msgid "Vertical split"
msgstr ""
#: FEditor.class:3465 FPasteSpecial.class:253
#: FEditor.class:3488 FPasteSpecial.class:253
msgid "Paste as string"
msgstr ""
#: FEditor.class:3470 FPasteSpecial.class:258
#: FEditor.class:3493 FPasteSpecial.class:258
msgid "Paste as multi-line string"
msgstr ""
#: FEditor.class:3475 FPasteSpecial.class:243
#: FEditor.class:3498 FPasteSpecial.class:243
msgid "Paste as comments"
msgstr ""
#: FEditor.class:3482 FOption.class:1080
#: FEditor.class:3505 FOption.class:1080
msgid "Editor"
msgstr ""
#: FEditor.class:3616
#: FEditor.class:3651
msgid "Procedure list"
msgstr ""
@ -1488,7 +1496,7 @@ msgstr ""
msgid "Menu editor..."
msgstr ""
#: FForm.class:3725 FTextEditor.class:784
#: FForm.class:3725 FTextEditor.class:821
msgid "Code"
msgstr ""
@ -1690,7 +1698,7 @@ msgstr ""
msgid "Pick a color"
msgstr ""
#: FImageEditor.class:54 FTextEditor.class:762
#: FImageEditor.class:54 FTextEditor.class:799
msgid "Text editor"
msgstr ""
@ -2314,7 +2322,7 @@ msgstr ""
msgid "Save project"
msgstr ""
#: FMain.class:2634 Project.module:2071
#: FMain.class:2634 Project.module:2092
msgid "Save project as"
msgstr ""
@ -2483,7 +2491,7 @@ msgid "There is no CHANGELOG entry for this release."
msgstr ""
#: FMakeInstall.class:318 FPropertyProject.class:1017 FSave.class:111
#: Project.module:2783
#: Project.module:2804
msgid "Continue"
msgstr ""
@ -2828,7 +2836,7 @@ msgstr ""
msgid "Path"
msgstr ""
#: FNewConnection.class:501 Project.module:155
#: FNewConnection.class:501 Project.module:176
msgid "Database"
msgstr ""
@ -2852,19 +2860,19 @@ msgstr ""
msgid "New translation"
msgstr ""
#: FOpenProject.class:370
#: FOpenProject.class:388
msgid "Select a project"
msgstr ""
#: FOpenProject.class:430
#: FOpenProject.class:448
msgid "Recent"
msgstr ""
#: FOpenProject.class:438 FWelcome.class:528
#: FOpenProject.class:456 FWelcome.class:528
msgid "Sort by path"
msgstr ""
#: FOpenProject.class:447 FWelcome.class:52
#: FOpenProject.class:465 FWelcome.class:52
msgid "Examples"
msgstr ""
@ -4979,292 +4987,292 @@ msgstr ""
msgid "Integrated Development Environment for Gambas"
msgstr ""
#: Project.module:153
#: Project.module:174
msgid "Automation"
msgstr ""
#: Project.module:154
#: Project.module:175
msgid "Basic"
msgstr ""
#: Project.module:156
#: Project.module:177
msgid "Drawing"
msgstr ""
#: Project.module:157
#: Project.module:178
msgid "Games"
msgstr ""
#: Project.module:158
#: Project.module:179
msgid "Miscellaneous"
msgstr ""
#: Project.module:159
#: Project.module:180
msgid "Networking"
msgstr ""
#: Project.module:160
#: Project.module:181
msgid "OpenGL"
msgstr ""
#: Project.module:161
#: Project.module:182
msgid "Printing"
msgstr ""
#: Project.module:162
#: Project.module:183
msgid "Sound"
msgstr ""
#: Project.module:163
#: Project.module:184
msgid "Video"
msgstr ""
#: Project.module:164
#: Project.module:185
msgid "Controls"
msgstr ""
#: Project.module:355
#: Project.module:376
msgid "This project does not exist."
msgstr ""
#: Project.module:370
#: Project.module:391
msgid "This is not a Gambas project."
msgstr ""
#: Project.module:372
#: Project.module:393
msgid ""
"This is a Gambas &1 project.\n"
"\n"
"Do you want to open it anyway?"
msgstr ""
#: Project.module:383
#: Project.module:404
msgid ""
"This project seems to be already opened.\n"
"\n"
"Opening the same project twice can lead to data loss."
msgstr ""
#: Project.module:383
#: Project.module:404
msgid "Open after all"
msgstr ""
#: Project.module:383
#: Project.module:404
msgid "Do not open"
msgstr ""
#: Project.module:406
#: Project.module:427
msgid "This project is read-only."
msgstr ""
#: Project.module:406
#: Project.module:427
msgid "It cannot be converted."
msgstr ""
#: Project.module:460
#: Project.module:481
msgid "Cannot open project file :\n"
msgstr ""
#: Project.module:1117
#: Project.module:1138
msgid "The following classes have circular inheritance:"
msgstr ""
#: Project.module:1279
#: Project.module:1300
msgid "read-only"
msgstr ""
#: Project.module:1281
#: Project.module:1302
msgid "ALPHA VERSION, USE AT YOUR OWN RISK! :-)"
msgstr ""
#: Project.module:1467
#: Project.module:1488
msgid "Loading &1..."
msgstr ""
#: Project.module:1516
#: Project.module:1537
msgid "Cannot open a binary file."
msgstr ""
#: Project.module:1549
#: Project.module:1570
msgid "Cannot open file."
msgstr ""
#: Project.module:1608
#: Project.module:1629
msgid "File not found!"
msgstr ""
#: Project.module:1713
#: Project.module:1734
msgid "first"
msgstr ""
#: Project.module:1715
#: Project.module:1736
msgid "second"
msgstr ""
#: Project.module:1717
#: Project.module:1738
msgid "third"
msgstr ""
#: Project.module:1719
#: Project.module:1740
msgid "&1th"
msgstr ""
#: Project.module:1764
#: Project.module:1785
msgid "in form definition"
msgstr ""
#: Project.module:1922
#: Project.module:1943
msgid ""
"Some project source files are in conflict.\n"
"Please solve them if you want to compile the project."
msgstr ""
#: Project.module:1926
#: Project.module:1947
msgid "Compiling project"
msgstr ""
#: Project.module:1938
#: Project.module:1959
msgid "Nothing to do."
msgstr ""
#: Project.module:2077
#: Project.module:2098
msgid "This project already exists."
msgstr ""
#: Project.module:2090
#: Project.module:2111
msgid "Unable to save the project."
msgstr ""
#: Project.module:2163
#: Project.module:2184
msgid "File already exists."
msgstr ""
#: Project.module:2197
#: Project.module:2218
msgid "Directory already exists."
msgstr ""
#: Project.module:2209
#: Project.module:2230
msgid "Cannot link template file."
msgstr ""
#: Project.module:2215
#: Project.module:2236
msgid "Cannot copy template file."
msgstr ""
#: Project.module:2391
#: Project.module:2412
msgid "Making executable..."
msgstr ""
#: Project.module:2435
#: Project.module:2456
msgid "Cannot make executable."
msgstr ""
#: Project.module:2782
#: Project.module:2803
msgid "Some components are missing: &1"
msgstr ""
#: Project.module:2989
#: Project.module:3010
msgid "Cannot write project file."
msgstr ""
#: Project.module:3022
#: Project.module:3043
msgid "Unable to create desktop shortcut."
msgstr ""
#: Project.module:3284
#: Project.module:3305
msgid "The directory will be removed at the next commit."
msgstr ""
#: Project.module:3303
#: Project.module:3324
msgid "You must define a startup class or form!"
msgstr ""
#: Project.module:3335
#: Project.module:3356
msgid "Please type a name."
msgstr ""
#: Project.module:3339
#: Project.module:3360
msgid "This name contains a forbidden character:"
msgstr ""
#: Project.module:3343
#: Project.module:3364
msgid "The name cannot begins with a dot."
msgstr ""
#: Project.module:3347
#: Project.module:3368
msgid "This name is already used. Choose another one."
msgstr ""
#: Project.module:3378
#: Project.module:3399
msgid ""
"A class name must begin with a letter or an underscore, followed by any "
"letter or digit."
msgstr ""
#: Project.module:3426
#: Project.module:3447
msgid "Destination already exists"
msgstr ""
#: Project.module:3628
#: Project.module:3649
msgid "Unable to rename '&1'"
msgstr ""
#: Project.module:3750
#: Project.module:3771
msgid "Please type a project name."
msgstr ""
#: Project.module:3758
#: Project.module:3779
msgid "The project name cannot begin with a dot."
msgstr ""
#: Project.module:3761
#: Project.module:3782
msgid "Non-ASCII characters are forbidden in a project name."
msgstr ""
#: Project.module:3762
#: Project.module:3783
msgid ""
"The following characters are forbidden in a project name: ? * / \\ SPACE"
msgstr ""
#: Project.module:3772
#: Project.module:3793
msgid "The project directory already exists."
msgstr ""
#: Project.module:3774
#: Project.module:3795
msgid ""
"The project directory cannot be created because a file with the same name "
"already exists."
msgstr ""
#: Project.module:3820
#: Project.module:3841
msgid "Create source package"
msgstr ""
#: Project.module:3821
#: Project.module:3842
msgid "Source packages"
msgstr ""
#: Project.module:4098
#: Project.module:4119
msgid "Cannot copy file &1."
msgstr ""
#: Project.module:4147
#: Project.module:4168
msgid "Cannot create link &1."
msgstr ""
#: Project.module:4164
#: Project.module:4185
msgid "Cannot move a directory inside itself."
msgstr ""
#: Project.module:4228
#: Project.module:4249
msgid "Cannot move file &1."
msgstr ""
#: Project.module:4775
#: Project.module:4796
msgid "modified"
msgstr ""
#: Project.module:4855
#: Project.module:4876
msgid "Unable to update all forms."
msgstr ""

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,120 @@
' Gambas class file
' Gambas module file
'Public Const MODE_GAMBAS As Integer = 0
'Public Const MODE_HTML As Integer = 1
'Public Const MODE_C As Integer = 2
Private $hEditor As Editor
Private $sPattern As String
Private $aPattern As String[]
Private $hMenu As Menu
Public Sub _new(hMenuButton As MenuButton, hEditor As Editor)
Dim hMenu As Menu
$hEditor = hEditor
Select Case $hEditor.Highlight
Case Highlight.Gambas
$aPattern = ["&H", "#"]
Case Highlight.CSS, Highlight.WebPage, Highlight.HTML
$aPattern = ["#"]
Case Highlight.JavaScript
$aPattern = ["#"]
Case Else
Return
End Select
$sPattern = $aPattern[0]
$hMenu = New Menu(hMenuButton.Window, True) As "Menu"
$hMenu.Name = "mnuInsertColor"
hMenu = New Menu($hMenu)
hMenuButton.Menu = $hMenu.Name
Object.Attach(hMenuButton, Me, "Button")
End
Public Sub Menu_Show()
Dim sText As String
Dim iPos As Integer
Dim sPattern As String
Dim sDigit As String
Dim aColor As String[]
Dim hMenu As Menu
Dim hImage As Image
Dim iColor As Integer
sText = $hEditor.Text
aColor = [$sPattern & "000000", $sPattern & "FFFFFF", $sPattern & "808080"]
For Each sPattern In $aPattern
iPos = 0
Do
iPos = InStr(sText, sPattern, iPos + 1)
If iPos = 0 Then Break
iPos += Len(sPattern)
sDigit = ""
While IsHexa(Mid$(sText, iPos, 1)) And Len(sDigit) < 6
sDigit &= Mid$(sText, iPos, 1)
Inc iPos
Wend
If Len(sDigit) = 0 Then Continue
If IsLetter(Mid$(sText, iPos, 1)) Then Continue
sDigit = String$(6 - Len(sDigit), "0") & sDigit
sDigit = sPattern & UCase$(sDigit)
If Not aColor.Exist(sDigit) Then aColor.Add(sDigit)
Loop
Next
aColor.Sort
$hMenu.Children.Clear
For Each sDigit In aColor
hMenu = New Menu($hMenu) As "MenuColor"
hMenu.Text = Replace(sDigit, "&", "&&")
hMenu.Tag = sDigit
hImage = New Image(16, 16)
hImage.FillRect(0, 0, 16, 16, Color.Black)
iColor = Val("&H" & Mid$(sDigit, Len($sPattern) + 1) & "&")
hImage.FillRect(1, 1, 14, 14, iColor)
hMenu.Picture = hImage.Picture
Next
End
Public Sub MenuColor_Click()
$hEditor.Insert(Last.Tag)
End
Public Sub Button_Click()
If FColorChooser.Run("", False, ("Insert color")) Then Return
$hEditor.Insert($sPattern & Hex$(FColorChooser.Value, 6))
End
Public Sub Insert()
Button_Click
End
Public Sub SetEditor(hEditor As Editor)
$hEditor = hEditor
End

View file

@ -25,22 +25,23 @@ Private Sub PaintText(sText As String, X As Integer, Y As Integer, iColor As Int
Dim XR As Integer
Paint.Brush = Paint.Color(Color.RGB(0, 0, 0, 192))
Paint.Text(sText, X + 4, Y + 4)
Paint.Text(sText, X + 6, Y + 6)
Paint.Fill
Paint.Brush = Paint.Color(Color.RGB(128, 128, 128))
Paint.Text(sText, X - 1, Y - 1)
Paint.Text(sText, X + 1, Y - 1)
Paint.Text(sText, X + 1, Y + 1)
Paint.Text(sText, X - 1, Y + 1)
Paint.Fill
Paint.Brush = Paint.Color(iColor)
Paint.Text(sText, X, Y)
Paint.Fill(True)
XR = X + Paint.PathExtents.Width
Paint.Brush = Paint.Color(Color.RGB(0, 0, 0, 192))
Paint.LineWidth = 2
Paint.Stroke
Paint.Fill
Return XR
'Paint.LineWidth = 2
'hColor = Color[Color.LightBackground]
'hColor.Alpha = 128
'Paint.Brush = Paint.Color(hColor.Value)
'Paint.Stroke
End
@ -57,10 +58,11 @@ Public Sub dwgWelcome_Draw()
Paint.Font = Font["+12,Bold"]
X = PaintText("Gambas", 8, 48, Color.SelectedForeground)
Paint.Font = Font["+9,Bold"]
PaintText(Project.Version, X + 8, 32, Color.SelectedForeground)
Paint.Font = Font["+2"]
PaintText("http://gambas.sourceforge.net", 12, 68, Color.SelectedForeground)
PaintText("http://gambas.sourceforge.net", 12, 68, Color.LightForeground)
Paint.Font = Font["Bold,Italic,+2"]
PaintText(("This program is published under\nthe GNU General Public License."), 12, 104, Color.SelectedForeground)

View file

@ -761,6 +761,11 @@ Private Sub DecodeHelpLine(sLine As String) As String
sChar = sLink
If sLink Like "*://*" Then
Else
iPoint = InStr(sLink, "|")
If iPoint Then
sChar = Mid$(sLink, iPoint + 1)
sLink = Left(sLink, iPoint - 1)
Endif
iPoint = RInStr(sLink, ".")
If iPoint = 0 Then
If UCase(sLink) = sLink Then

View file

@ -6,15 +6,17 @@ Static Public Value As Integer
Static Private $sColor As String
Static Private $bAlpha As Boolean
Static Private $aSystem As String[] = ["Background", "Foreground", "SelectedBackground", "SelectedForeground", "LightBackground", "LightForeground", "TextBackground", "TextForeground", "ButtonBackground", "ButtonForeground"]
Static Private $sTitle As String
Private Const DEFAULT_COLOR As String = "-"
Private $cColor As New Collection
Static Public Function Run(Optional sColor As String, Optional bAlpha As Boolean) As Boolean
Static Public Function Run(Optional sColor As String, Optional bAlpha As Boolean, Optional sTitle As String) As Boolean
$sColor = sColor
$bAlpha = bAlpha
$sTitle = sTitle
'IF NOT $sColor THEN $sColor = Color
'IF NOT $sColor THEN $sColor = "&H" & Hex$(Value, 6)
If FColorChooser.ShowModal() Then
@ -43,12 +45,12 @@ End
Private Sub AddColor(sText As String, sTag As String, sColor As String)
Dim hBox As hBox
Dim hBox As HBox
Dim hLabel As Label
Dim hColor As Label
Dim hPict As PictureBox
hBox = New hBox(lstSystem)
hBox = New HBox(lstSystem)
hBox.Padding = 4
hBox.Spacing = 4
hBox.Height = 24
@ -119,6 +121,12 @@ Public Sub Form_Open()
Endif
dlgColor.ShowAlpha = $bAlpha
If $sTitle Then
Me.Title = $sTitle
Else
$sTitle = ("Select a color")
Endif
End

View file

@ -181,6 +181,7 @@ Private Sub Make(Optional iIndent As Integer) As String
Dim sMake As String
Dim iPos, iPos2 As Integer
Dim sCar As String
Dim sVar As String
For iPos = 1 To Len(Pattern)
@ -190,8 +191,17 @@ Private Sub Make(Optional iIndent As Integer) As String
iPos2 = InStr(Pattern, "}", iPos)
sCar = Mid$(Pattern, iPos, iPos2 - iPos)
iPos = InStr(sCar, ":")
If iPos Then
sCar = "{" & Mid$(sCar, iPos + 1) & "}"
If iPos Then
sVar = Mid$(sCar, iPos + 1)
If sVar = "$TITLE" Then
sCar = Project.Title
Else If sVar = "$DESCRIPTION" Then
sCar = Project.Description
Else If sVar = "$AUTHOR" Or If sVar = "$AUTHORS" Then
sCar = Split(Project.Authors, "\n", "", True).Join(", ")
Else
sCar = sVar
Endif
Else
sCar = ""
Endif

View file

@ -1,6 +1,9 @@
' Gambas class file
'
' Copyright (C) Benoît Minisini
' Gambas 3
' Integrated Development Environment for Gambas
'
' Copyright (C) Benoît Minisini, Fabien Bodard, Charlie Reinl, José Luis Redrejo, Robert Rowe
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
@ -23,9 +26,10 @@ Public Editor As Editor '' The current Editor control.
Public Scan As Collection '' The result of the class symbol analyze.
Public ParentClass As String '' The parent class.
Public ParentComponent As String '' The component of the parent class.
Public AutoCreatable As Boolean '' If the class has "CREATE [STATIC]".
Public NotCreatable As Boolean '' If the class has "CREATE PRIVATE".
Public Age As Integer
Public AutoCreatable As Boolean '' If the class has "[CREATESTATIC|CREATE STATIC]".
Public NotCreatable As Boolean '' If the class has "[CREATEPRIVATE|CREATE PRIVATE]".
Public Age As Integer '' The text age. It is incremented each time the text is modified
Property Read ReadOnly As Boolean '' If the editor is read-only.
@ -85,6 +89,8 @@ Private $iSampleStart As Integer
Private $iSampleEnd As Integer
Private $iSamplePos As Integer
Private $hInsertColor As CInsertColor
Static Public Sub _init()
$cType["Boolean"] = "b"
@ -126,6 +132,8 @@ Public Sub _new(sPath As String)
edtEditor.Flags[Editor.HighlightBraces] = True
edtEditor.Highlight = Highlight.Gambas
$hInsertColor = New CInsertColor(btnInsertColor, Editor)
' If Not frmCompletion Then
' frmCompletion = New FCompletion(Me)
' frmCompletion.Hide
@ -2486,6 +2494,7 @@ End
Public Sub Editors_GotFocus()
Editor = Last
$hInsertColor.SetEditor(Editor)
Project.SetCurrentPopup(mnuEditor)
End
@ -3180,3 +3189,9 @@ Public Sub GetSelection() As String
Return Editor.GetSelection()
End
Public Sub mnuInsertColor_Click()
$hInsertColor.Insert
End

View file

@ -92,6 +92,11 @@
Text = ("Paste special...")
Shortcut = "Ctrl+Shift+V"
}
{ mnuInsertColor Menu
Action = ".color"
Text = ("Insert color...")
Picture = Picture["icon:/small/color"]
}
{ Menu3 Menu
}
{ mnuSelectAll Menu
@ -223,8 +228,8 @@
{ btnPaste MenuButton mnuPaste
Name = "btnPaste"
MoveScaled(20,0,6,4)
Visible = False
ToolTip = ("Paste")
Action = ".paste"
Picture = Picture["icon:/small/paste"]
Border = False
Menu = "mnuPasteAs"
@ -274,6 +279,7 @@
{ btnNoSplit ToolButton mnuNoSplit
Name = "btnNoSplit"
MoveScaled(46,0,4,4)
Visible = False
ToolTip = ("No split")
Action = ".view-nosplit"
Picture = Picture["icon:/small/view-normal"]
@ -281,6 +287,7 @@
{ btnHorizontalSplit ToolButton mnuHorizontalSplit
Name = "btnHorizontalSplit"
MoveScaled(49,0,4,4)
Visible = False
ToolTip = ("Horizontal split")
Action = ".view-hsplit"
Picture = Picture["icon:/small/view-split-h"]
@ -288,15 +295,24 @@
{ btnVerticalSplit ToolButton mnuVerticalSplit
Name = "btnVerticalSplit"
MoveScaled(52,0,4,4)
Visible = False
ToolTip = ("Vertical split")
Action = ".view-vsplit"
Picture = Picture["icon:/small/view-split-v"]
}
{ btnInsertColor MenuButton
MoveScaled(56,0,6,4)
ToolTip = ("Insert color")
Action = ".color"
Picture = Picture["icon:/small/color"]
Border = False
Menu = "mnuColor"
}
{ Separator1 Separator
MoveScaled(56,0,1,4)
MoveScaled(63,0,1,4)
}
{ btnProc ToolButton
MoveScaled(57,0,46,4)
MoveScaled(64,0,46,4)
Action = ".proc"
Text = ("Procedure list")
Picture = Picture["img/16/procedure.png"]
@ -381,6 +397,11 @@
Shortcut = "F12"
Picture = "img/16/form.png"
}
{ Action color
Text = "Insert color..."
Shortcut = ""
Picture = "icon:/small/color"
}
{ Action comment
Text = "Comment"
Shortcut = "Ctrl+K"
@ -509,7 +530,7 @@
{ Toolbars
{ Toolbar editor
Text = "Editor"
List = "save,reload,show-form,cut,copy,undo,redo,indent,unindent,comment,uncomment,view-nosplit,view-hsplit,view-vsplit,proc,find-definition,go-back"
Default = "save,reload,show-form,undo,redo,comment,uncomment,view-nosplit,view-hsplit,view-vsplit,|,proc,$HBox1"
List = "save,reload,show-form,cut,copy,paste,undo,redo,indent,unindent,comment,uncomment,view-nosplit,view-hsplit,view-vsplit,color,proc,find-definition,go-back"
Default = "save,reload,show-form,paste,undo,redo,comment,uncomment,color,|,proc,$HBox1"
}
}

View file

@ -1,4 +1,22 @@
' Gambas class file
'
' Copyright (C) Benoît Minisini
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation; either version 2 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License
' along with this program; if not, write to the Free Software
' Foundation, Inc., 51 Franklin St, Fifth Floor,
' Boston, MA 02110-1301 USA
'
Public Path As String
Public Editor As Editor
@ -14,15 +32,16 @@ Static Private $aExt As String[] = ["htm", "html", "xml", "svg", "css", "webpage
' Private Const STYLE_JAVASCRIPT As Integer = 4
'
Private $bModify As Boolean
Private $iStyle As Integer
'Private $iStyle As Integer
Private $iViewMode As Integer
Private VIEWMODE_NORMAL As Integer = 0
Private VIEWMODE_HORIZONTAL As Integer = 1
Private VIEWMODE_VERTICAL As Integer = 2
Private Const VIEWMODE_NORMAL As Integer = 0
Private Const VIEWMODE_HORIZONTAL As Integer = 1
Private Const VIEWMODE_VERTICAL As Integer = 2
Private $hEditor1 As Editor
Private $hEditor2 As Editor
Private $hInsertColor As CInsertColor
Public Sub _new(sPath As String, Optional bModule As Boolean)
@ -36,7 +55,7 @@ Public Sub _new(sPath As String, Optional bModule As Boolean)
btnShowCode.Visible = False
Me.Name = File.Name(Path)
Endif
End
Public Sub LoadFile() As Boolean
@ -62,6 +81,8 @@ Public Sub LoadFile() As Boolean
End Select
Endif
$hInsertColor = New CInsertColor(btnInsertColor, Editor)
ReadConfig
Project.InitMove(Me)
@ -258,6 +279,7 @@ End
Public Sub Editors_GotFocus()
Editor = Last
$hInsertColor.SetEditor(Editor)
Project.SetCurrentPopup(mnuEditor)
End
@ -526,6 +548,7 @@ Private Sub SetViewMode(iViewMode As Integer)
End Select
$hInsertColor.SetEditor(Editor)
Editor.SetFocus
Form_Arrange
Editors_Cursor
@ -585,3 +608,9 @@ Public Sub GetSelection() As String
Return Editor.GetSelection()
End
Public Sub mnuInsertColor_Click()
$hInsertColor.Insert
End

View file

@ -46,6 +46,11 @@
Picture = Picture["icon:/small/paste"]
Shortcut = "Ctrl+V"
}
{ mnuInsertColor Menu
Action = ".color"
Text = ("Insert color...")
Picture = Picture["icon:/small/color"]
}
{ mnuSep3 Menu
}
{ mnuSelectAll Menu
@ -128,6 +133,7 @@
{ btnCut ToolButton mnuCut
Name = "btnCut"
MoveScaled(12,0,4,4)
Visible = False
ToolTip = ("Cut")
Action = ".cut"
Picture = Picture["icon:/small/cut"]
@ -135,6 +141,7 @@
{ btnCopy ToolButton mnuCopy
Name = "btnCopy"
MoveScaled(16,0,4,4)
Visible = False
ToolTip = ("Copy")
Action = ".copy"
Picture = Picture["icon:/small/copy"]
@ -142,6 +149,7 @@
{ btnPaste ToolButton mnuPaste
Name = "btnPaste"
MoveScaled(20,0,4,4)
Visible = False
ToolTip = ("Paste")
Action = ".paste"
Picture = Picture["icon:/small/paste"]
@ -175,6 +183,7 @@
{ btnNoSplit ToolButton mnuNoSplit
Name = "btnNoSplit"
MoveScaled(40,0,4,4)
Visible = False
ToolTip = ("No split")
Action = ".view-nosplit"
Picture = Picture["icon:/small/view-normal"]
@ -182,6 +191,7 @@
{ btnHorizontalSplit ToolButton mnuHorizontalSplit
Name = "btnHorizontalSplit"
MoveScaled(44,0,4,4)
Visible = False
ToolTip = ("Horizontal split")
Action = ".view-hsplit"
Picture = Picture["icon:/small/view-split-h"]
@ -189,12 +199,21 @@
{ btnVerticalSplit ToolButton mnuVerticalSplit
Name = "btnVerticalSplit"
MoveScaled(48,0,4,4)
Visible = False
ToolTip = ("Vertical split")
Action = ".view-vsplit"
Picture = Picture["icon:/small/view-split-v"]
}
{ btnInsertColor MenuButton
MoveScaled(52,0,6,4)
ToolTip = ("Insert color")
Action = ".color"
Picture = Picture["icon:/small/color"]
Border = False
Menu = "mnuColor"
}
{ HBox1 HBox
MoveScaled(52,0,16,4)
MoveScaled(62,0,16,4)
Expand = True
{ Panel1 Panel
MoveScaled(2,0,1,4)
@ -211,7 +230,7 @@
}
{ edtEditor Editor Editors
Name = "edtEditor"
MoveScaled(6,15,25,15)
MoveScaled(6,15,58,22)
Expand = True
Border = False
}
@ -228,6 +247,11 @@
# Gambas Action File 3.0
{ Actions
{ Action color
Text = "Insert color..."
Shortcut = ""
Picture = "icon:/small/color"
}
{ Action copy
Text = "Copy"
Shortcut = "Ctrl+C"
@ -312,7 +336,7 @@
{ Toolbars
{ Toolbar text
Text = "Text editor"
List = "save,reload,show-class,cut,copy,paste,undo,redo,indent,unindent,view-nosplit,view-hsplit,view-vsplit"
Default = "save,reload,show-class,cut,copy,paste,undo,redo,indent,unindent,view-nosplit,view-hsplit,view-vsplit,$HBox1"
List = "save,reload,show-class,cut,copy,paste,undo,redo,indent,unindent,view-nosplit,view-hsplit,view-vsplit,color"
Default = "save,reload,show-class,undo,redo,indent,unindent,color,$HBox1"
}
}

View file

@ -1,4 +1,25 @@
' Gambas module file
'
' Gambas 3
' Integrated Development Environment for Gambas
'
' Copyright (C) Benoît Minisini, Fabien Bodard, Charlie Reinl, José Luis Redrejo, Robert Rowe
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation; either version 2 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License
' along with this program; if not, write to the Free Software
' Foundation, Inc., 51 Franklin St, Fifth Floor,
' Boston, MA 02110-1301 USA
'
Public ProjectTree As ColumnView
Public ProjectMessage As Label

View file

@ -1,4 +1,22 @@
' Gambas class file
'
' Copyright (C) Benoît Minisini
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation; either version 2 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License
' along with this program; if not, write to the Free Software
' Foundation, Inc., 51 Franklin St, Fifth Floor,
' Boston, MA 02110-1301 USA
'
Static Private $sPath As String
Static Private $sLast As String

View file

@ -34,6 +34,6 @@ Snippet[31]="_g\nPublic Function _get(${1:Indexes}) As ${2:Type}\n\n ${}\n\nEnd
Snippet[32]="_p\nPublic Sub _put(${1:Value} As ${2:Type}, ${3:Indexes})\n\n ${}\n\nEnd"
Snippet[33]="_c\nPublic Function _compare(${1:Other} As ${2:Type}) As Integer\n\n ${}\n\nEnd"
Snippet[34]="ev\nEvent ${1:Name}"
Snippet[35]="gpl\n'\n' Copyright (C) ${1:Developper}\n'\n' This program is free software; you can redistribute it and/or modify\n' it under the terms of the GNU General Public License as published by\n' the Free Software Foundation; either version 2 of the License, or\n' (at your option) any later version.\n'\n' This program is distributed in the hope that it will be useful,\n' but WITHOUT ANY WARRANTY; without even the implied warranty of\n' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n' GNU General Public License for more details.\n'\n' You should have received a copy of the GNU General Public License\n' along with this program; if not, write to the Free Software\n' Foundation, Inc., 51 Franklin St, Fifth Floor, \n' Boston, MA 02110-1301 USA\n'\n"
Snippet[35]="gpl\n'\n' ${1:$TITLE}\n' ${2:$DESCRIPTION}\n' \n' Copyright (C) ${3:$AUTHORS}\n'\n' This program is free software; you can redistribute it and/or modify\n' it under the terms of the GNU General Public License as published by\n' the Free Software Foundation; either version 2 of the License, or\n' (at your option) any later version.\n'\n' This program is distributed in the hope that it will be useful,\n' but WITHOUT ANY WARRANTY; without even the implied warranty of\n' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n' GNU General Public License for more details.\n'\n' You should have received a copy of the GNU General Public License\n' along with this program; if not, write to the Free Software\n' Foundation, Inc., 51 Franklin St, Fifth Floor, \n' Boston, MA 02110-1301 USA\n'\n"
Snippet[36]="main\nPublic Sub Main()\n\n ${}\n\nEnd\n"
Snippet[37]="r\nReturn "

View file

@ -16,6 +16,7 @@
8 Two-Second Software
8 Boris Diskus
8 Jacky Tripoteau
7 John Laurence
7 Roy Jones
7 Robert Blick
6 Yves Ribéreau

View file

@ -1,7 +1,6 @@
# Gambas Project File 3.0
# Compiled with Gambas 2.99.0 (r2921)
Startup=FImageEditor
StackTrace=1
# Compiled with Gambas 2.99.0 (r3067)
Startup=FMain
Version=2.99.0
VersionProgram=gbx3 -V
Component=gb.image

View file

@ -1,23 +1 @@
' Gambas class file
Public Sub Button1_Click()
Dim hForm As New Form1
Workspace1.Add(hForm)
End
Public Sub Button2_Click()
Dim hForm As New Form1
Workspace1.Add(hForm)
End
Public Sub Button3_Click()
Dim hForm As New Form1
Workspace1.Add(hForm)
End

View file

@ -2,35 +2,41 @@
{ Form Form
MoveScaled(0,0,69,72)
Text = ("")
Arrangement = Arrange.Vertical
{ ToolBar1 ToolBar
MoveScaled(0,0,69,4)
MoveScaled(3,4,52,5)
Key = "main"
Text = ("ToolBar1")
{ Button4 Button
MoveScaled(1,0,16,4)
Text = ("Button4")
}
}
{ Workspace1 Workspace
MoveScaled(1,5,67,61)
Expand = True
Orientation = Align.Bottom
}
{ HBox1 HBox
MoveScaled(1,67,67,4)
Spacing = True
{ Button1 Button
MoveScaled(0,0,15,4)
MoveScaled(0,0,16,4)
Action = "button"
Text = ("Button1")
}
{ Button2 Button
MoveScaled(25,0,15,4)
Text = ("Button2")
}
{ Button3 Button
MoveScaled(50,0,16,4)
Text = ("Button3")
{ MenuButton1 MenuButton
MoveScaled(17,0,15,4)
Action = "test"
Text = ("MenuButton1")
}
}
}
# Gambas Action File 3.0
{ Actions
{ Action button
Text = "Button1"
Picture = "$Button"
}
{ Action test
Text = "MenuButton1"
Picture = "$MenuButton"
}
}
{ Toolbars
{ Toolbar main
Text = "ToolBar1"
List = "button,test"
Default = "button,test"
}
}

View file

@ -743,8 +743,11 @@ Private Sub OnMouseDrag(hCtrl As Control)
Dim iArr As Integer
Dim sAction As String
'Debug hCtrl
While hCtrl.Parent <> panToolBar
hCtrl = hCtrl.Parent
'Debug "-> "; hCtrl
Wend
If Not $bConfigure Then Return

View file

@ -1050,7 +1050,7 @@ C
_Properties
C
s
*,AutoResize,Text,Picture,Arrow=True,Border=True,Menu
*,Action,AutoResize,Text,Picture,Arrow=True,Border=True,Menu
_DefaultSize
C
s
@ -1063,22 +1063,6 @@ Button
:
:MouseDown
:
:MouseUp
:
:MouseWheel
:
:MouseDrag
:
Picture
p
Picture
@ -1119,22 +1103,6 @@ Arrow_Click
m
Button_MouseDown
m
Button_MouseUp
m
Button_MouseWheel
m
Button_MouseDrag
m
Panel_Arrange
m

View file

@ -130,16 +130,6 @@ msgstr ""
msgid "Cancel"
msgstr ""
#: FFocusBug.class:33
msgid ""
"Just press the Tab key.\n"
"A message should appear"
msgstr ""
#: FFocusBug.class:42
msgid "TextBox1"
msgstr ""
#: FFontChooser.class:411
msgid "Family"
msgstr ""

View file

@ -1,7 +1,7 @@
# Gambas Project File 3.0
# Compiled with Gambas 2.99.0 (r3067)
Title=More controls for graphical components
Startup=FFocusBug
Startup=FMain
Version=2.99.0
VersionProgram=gbx3 -V
Component=gb.image

View file

@ -1,13 +0,0 @@
' Gambas class file
Public Sub Form_Open()
End
Public Sub ValueBox1_LostFocus()
Debug
End

View file

@ -1,19 +0,0 @@
# Gambas Form File 3.0
{ Form Form
MoveScaled(12,12,79,38)
Icon = Picture["icon:/small/gambas"]
Spacing = True
Padding = 8
{ Label1 Label
MoveScaled(19,5,32,7)
Text = ("Just press the Tab key.\nA message should appear")
}
{ ValueBox1 ValueBox
MoveScaled(19,16,30,4)
}
{ TextBox1 TextBox
MoveScaled(22,25,24,3)
Text = ("TextBox1")
}
}

View file

@ -144,11 +144,11 @@ Private Sub GetFileSize(iSize As Long) As String
If iSize < 1000 Then
Return Subst("&1 B", CStr(iSize))
Else If iSize < 1000000 Then
Return Subst("&1 KiB", Format(iSize / 1000, "#.#"))
Return Subst("&1 KiB", Format(iSize / 1024, "#.#"))
Else If iSize < 1000000000 Then
Return Subst("&1 MiB", Format(iSize / 1000000, "#.#"))
Return Subst("&1 MiB", Format(iSize / 1048576, "#.#"))
Else
Return Subst("&1 GiB", Format(iSize / 1000000000, "#.#"))
Return Subst("&1 GiB", Format(iSize / 1073741824, "#.#"))
Endif
End

View file

@ -5,15 +5,15 @@ Export
Inherits UserControl
'Public Const _Properties As String = "*,AutoResize,Text,Picture,Border,Radio,Toggle,Value"
Public Const _Properties As String = "*,AutoResize,Text,Picture,Arrow=True,Border=True,Menu"
Public Const _Properties As String = "*,Action,AutoResize,Text,Picture,Arrow=True,Border=True,Menu"
Public Const _DefaultSize As String = "6,4"
Public Const _Similar As String = "Button"
Event Click
Event MouseDown
Event MouseUp
Event MouseWheel
Event MouseDrag
' Event MouseDown
' Event MouseUp
' Event MouseWheel
' Event MouseDrag
Property Picture As Picture
Property Text As String
@ -35,8 +35,12 @@ Private $bPressed As Boolean
Private $bArrow As Boolean
Private $bAutoResize As Boolean
Private $hObserver As Observer
Public Sub _new()
Dim sEventName As String = Object.LastEventName
$hPanel = New HBox(Me) As "Panel"
'Me._Arrangement = Arrange.Horizontal
$hButton = New Button($hPanel) As "Button"
@ -51,6 +55,9 @@ Public Sub _new()
'$hArrow.Raise
'$hWatcher = New Watcher(Me) As "Watcher"
$hObserver = New Observer($hButton)
Object.Attach($hObserver, Me.Parent, sEventName)
End
' Public Sub Watcher_Resize()
@ -109,29 +116,29 @@ Public Sub Button_Click()
End
Public Sub Button_MouseDown()
Raise MouseDown
End
Public Sub Button_MouseUp()
Raise MouseUp
End
Public Sub Button_MouseWheel()
Raise MouseWheel
End
Public Sub Button_MouseDrag()
Raise MouseDrag
End
' Public Sub Button_MouseDown()
'
' Raise MouseDown
'
' End
'
' Public Sub Button_MouseUp()
'
' Raise MouseUp
'
' End
'
' Public Sub Button_MouseWheel()
'
' Raise MouseWheel
'
' End
'
' Public Sub Button_MouseDrag()
'
' Raise MouseDrag
'
' End
Private Sub FindMenu(hWindow As Window) As Menu

View file

@ -328,6 +328,8 @@ _ABANDON:
UnlockSession
Endif
Try Object.Call(Application.Startup, "Session_Abandon")
Try Kill $sPath
Try Kill $sPath & ".lock"
$sId = ""
@ -440,6 +442,9 @@ Public Sub Abandon()
'Main.Log("Abandon")
If Not $sId Then Return
Try Object.Call(Application.Startup, "Session_Abandon")
Try Kill $sPath
Try Kill $sPath & ".lock"
Response.RemoveCookie("SESSION", $sId, "", File.Dir(CGI["SCRIPT_NAME"]))

View file

@ -119,6 +119,7 @@ BEGIN_METHOD(CIMAGE_save, GB_STRING path; GB_INTEGER quality)
GSList *formats, *iter;
GdkPixbuf *image = NULL;
int quality = VARGOPT(quality, -1);
char arg[4];
GError *error = NULL;
ext = FILE_get_ext(path);
@ -166,7 +167,24 @@ BEGIN_METHOD(CIMAGE_save, GB_STRING path; GB_INTEGER quality)
}
if (quality >= 0)
b = gdk_pixbuf_save(image, path, format, &error, "quality", quality, (void *)NULL);
{
if (!strcmp(format, "jpeg"))
{
if (quality > 100)
quality = 100;
sprintf(arg, "%d", quality);
b = gdk_pixbuf_save(image, path, format, &error, "quality", arg, (void *)NULL);
}
else if (!strcmp(format, "png"))
{
if (quality > 9)
quality = 9;
sprintf(arg, "%d", quality);
b = gdk_pixbuf_save(image, path, format, &error, "compression", arg, (void *)NULL);
}
else
b = gdk_pixbuf_save(image, path, format, &error, (void *)NULL);
}
else
b = gdk_pixbuf_save(image, path, format, &error, (void *)NULL);

View file

@ -373,7 +373,6 @@ void *CDRAG_drag(CWIDGET *source, GB_VARIANT_VALUE *data, GB_STRING *fmt)
return NULL;
}
drag = new QDrag(source->widget);
mimeData = new QMimeData();
if (data->type == GB_T_STRING)
@ -403,6 +402,9 @@ void *CDRAG_drag(CWIDGET *source, GB_VARIANT_VALUE *data, GB_STRING *fmt)
else
goto _BAD_FORMAT;
source->flag.dragging = true;
drag = new QDrag(source->widget);
drag->setMimeData(mimeData);
if (_picture)
@ -419,6 +421,8 @@ void *CDRAG_drag(CWIDGET *source, GB_VARIANT_VALUE *data, GB_STRING *fmt)
//qDebug("start drag");
drag->exec();
source->flag.dragging = false;
//qDebug("end drag");
hide_frame(NULL);

View file

@ -293,6 +293,12 @@ void CWIDGET_destroy(CWIDGET *object)
if (CWIDGET_test_flag(object, WF_DELETED))
return;
if (object->flag.dragging)
{
GB.Error("Control is being dragged");
return;
}
//qDebug("CWIDGET_destroy: %p (%p) :%p:%ld", object, object->widget, object->ob.klass, object->ob.ref);
//qDebug("CWIDGET_destroy: %s %p", GB.GetClassName(object), object);

View file

@ -50,7 +50,8 @@ typedef
unsigned tracking : 1;
unsigned old_tracking : 1;
unsigned grab : 1;
unsigned _reserved : 7;
unsigned dragging: 1;
unsigned _reserved : 6;
} flag;
GB_VARIANT_VALUE tag;
char *name;

View file

@ -999,23 +999,57 @@ bool MyPaintEngine::end()
return true;
}
void MyPaintEngine::updateState(const QPaintEngineState &state) {}
void MyPaintEngine::updateState(const QPaintEngineState &state)
{
//qDebug("MyPaintEngine::updateState: %04X", (int)state.state());
}
void MyPaintEngine::drawRects(const QRectF *rects, int rectCount) {}
void MyPaintEngine::drawRects(const QRectF *rects, int rectCount)
{
//qDebug("MyPaintEngine::drawRects");
}
void MyPaintEngine::drawLines(const QLineF *lines, int lineCount) {}
void MyPaintEngine::drawLines(const QLineF *lines, int lineCount)
{
//qDebug("MyPaintEngine::drawLines");
}
void MyPaintEngine::drawEllipse(const QRectF &r) {}
void MyPaintEngine::drawEllipse(const QRectF &r)
{
//qDebug("MyPaintEngine::drawEllipse");
}
void MyPaintEngine::drawPath(const QPainterPath &path) {}
void MyPaintEngine::drawPath(const QPainterPath &path)
{
//qDebug("MyPaintEngine::drawPath");
}
void MyPaintEngine::drawPoints(const QPointF *points, int pointCount) {}
void MyPaintEngine::drawPoints(const QPointF *points, int pointCount)
{
//qDebug("MyPaintEngine::drawPoints");
}
void MyPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode) {}
void MyPaintEngine::drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
{
//qDebug("MyPaintEngine::drawPolygon");
}
void MyPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr)
{
//qDebug("MyPaintEngine::drawPixmap");
}
void MyPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s)
{
//qDebug("MyPaintEngine::drawTiledPixmap");
}
void MyPaintEngine::drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags)
{
//qDebug("MyPaintEngine::drawImage");
}
void MyPaintEngine::drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) {}
void MyPaintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s) {}
void MyPaintEngine::drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags) {}
//QPoint MyPaintEngine::coordinateOffset() const;
@ -1026,7 +1060,8 @@ MyPaintEngine::Type MyPaintEngine::type() const
void MyPaintEngine::drawTextItem(const QPointF &p, const QTextItem &textItem)
{
//qDebug("drawTextItem: %g %g [%s] '%s'", p.x() + _draw_x, p.y() + _draw_y, (const char *)textItem.font().toString().toUtf8(), (const char *)textItem.text().toUtf8());
//qDebug("MyPaintEngine::drawTextItem: %g %g [%s] '%s'", p.x() + _draw_x, p.y() + _draw_y, (const char *)textItem.font().toString().toUtf8(), (const char *)textItem.text().toUtf8());
//_draw_path->moveTo(p.x() + _draw_x, p.y() + _draw_y);
_draw_path->addText(p.x() + _draw_x, p.y() + _draw_y, textItem.font(), textItem.text());
}

View file

@ -108,6 +108,18 @@ BEGIN_METHOD(WebFrame_Print, GB_OBJECT printer)
END_METHOD
BEGIN_PROPERTY(WebFrame_HTML)
GB.ReturnNewZeroString(TO_UTF8(FRAME->toHtml()));
END_PROPERTY
BEGIN_PROPERTY(WebFrame_Text)
GB.ReturnNewZeroString(TO_UTF8(FRAME->toPlainText()));
END_PROPERTY
#if 0
BEGIN_METHOD(WebFrame_EvalJavaScript, GB_STRING javascript)
@ -154,6 +166,8 @@ GB_DESC CWebFrameDesc[] =
GB_PROPERTY_READ("Parent", "WebFrame", WebFrame_Parent),
GB_PROPERTY("Url", "s", WebFrame_Url),
GB_METHOD("Print", NULL, WebFrame_Print, "(Printer)Printer;"),
GB_PROPERTY_READ("HTML", "s", WebFrame_HTML),
GB_PROPERTY_READ("Text", "s", WebFrame_Text),
//GB_METHOD("EvalJavaScript", NULL, WebFrame_EvalJavaScript, "(JavaScript)s"),
GB_END_DECLARE

View file

@ -47,7 +47,7 @@ void gt_color_to_rgba(uint color, int *r, int *g, int *b, int *a)
static uint gt_rgba_to_color(int r, int g, int b, int a)
{
return (uint)(b | (g << 8) | (r << 16) | (a << 24));
return (uint)((uchar)b | ((uchar)g << 8) | ((uchar)r << 16) | ((uchar)a << 24));
}
void COLOR_rgb_to_hsv(int r, int g, int b, int *H, int *S, int *V)
@ -120,7 +120,7 @@ void COLOR_hsv_to_rgb(int h, int s, int v, int *R, int *G, int *B)
S = ((double)s) / 255;
V = ((double)v) / 255;
if (S == 0)
if (s == 0)
{
*R = (int)(V * 255);
*G = (int)(V * 255);
@ -220,9 +220,11 @@ GB_COLOR COLOR_darker(GB_COLOR color)
gt_color_to_rgba(color, &r, &g, &b, &a);
COLOR_rgb_to_hsv(r, g, b, &h, &s, &v);
COLOR_hsv_to_rgb(h, 255 - (255 - s) / 2, v / 2, &r, &g, &b);
COLOR_hsv_to_rgb(h, s ? 255 - (255 - s) / 2 : 0, v / 2, &r, &g, &b);
return gt_rgba_to_color(r, g, b, a);
v = gt_rgba_to_color(r, g, b, a);
return v;
}
BEGIN_METHOD(CCOLOR_rgb, GB_INTEGER r; GB_INTEGER g; GB_INTEGER b; GB_INTEGER a)