1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-03 13:31:23 +00:00
Commit graph

1229 commits

Author SHA1 Message Date
FellippeHeitor 68a2ec44f9 Fixes sticky ALT key in Windows.
Minor tweak to Dark blue preset theme.
2017-10-03 23:13:08 -03:00
FellippeHeitor 997d2bb734 Improved highlighting of metacommands in comments. 2017-10-03 21:12:22 -03:00
FellippeHeitor b60fdb780a Fine adjustments to syntax highlighting. 2017-10-03 11:52:03 -03:00
FellippeHeitor 739aaef7ac Improves syntax highlighter with Keyword Highlight. 2017-10-02 01:16:35 -03:00
FellippeHeitor 19bbf5fde6 Build number update. 2017-10-01 19:06:46 -03:00
FellippeHeitor e6a265f0e4 Integrates qarnos's QB45BIN.
Upon attempting to load a binary file, the IDE will detect that the file type is a QuickBASIC 4.5 binary file and offer to convert it to plain text using qarnos's QB45BIN utility.
2017-10-01 17:51:28 -03:00
FellippeHeitor 89f2e12cc8 Remove references to DEPENDENCY_USER_MODS from subs_functions.bas. 2017-09-27 22:04:40 -03:00
FellippeHeitor 204ad079c9 Tweak to multihighlight.
Highlights only full matches.
2017-09-27 11:53:05 -03:00
FellippeHeitor 0e7b1c41af Window resizing improved (changes apply in real time). Also:
- Disable resizing when the help system is open and when dialogs are displayed.
- Minor fix to multi-highlighting to also allow it to hightlight instances of the same text seleted in the current line.
2017-09-27 10:10:04 -03:00
Luke Ceddia bdc3250b89 Resolved the issue of user mods not working for $console:only programs 2017-09-25 21:56:24 +10:00
FellippeHeitor 1330f8fa14 Make the "Change" dialog stay out of the way when "Find and verify"ing. 2017-09-25 03:11:38 -03:00
FellippeHeitor 37ab5feb0e Minor adjustments to menu shortcuts; Also:
- Fix to ALT+Key entering text in textboxes (dialogs).
2017-09-25 02:50:13 -03:00
FellippeHeitor 5f822f21ce Adds multi-highlight.
When a a single-line selection is made, every instance of the same "word" on the current screen gets highlighted. Can be disabled in Options->IDE colors.
2017-09-25 02:30:40 -03:00
FellippeHeitor 0a7099be53 Make sub indenting and "cursor after pasted content" default. 2017-09-25 02:29:18 -03:00
FellippeHeitor f0692d55b2 New IDE shortcuts.
- Ctrl+N = New file
- Ctrl+O = Open file
- Ctrl+R = Comment selection (add ')
- Ctrl+Shift+R = Uncomment selection (remove ')
2017-09-25 02:28:41 -03:00
SteveMcNeill 4f23fd9b7b Add function _AUTODISPLAY so user can get display/autodisplay staus 2017-09-24 18:41:00 -04:00
FellippeHeitor 5922d112bf Adds _WINDOWHANDLE, _WINDOWHASFOCUS and _TITLE$ (function).
- _WINDOWHANDLE exposes the current window's handle (Windows-only).
- _WINDOWHASFOCUS returns true (-1) when the program is the foremost window (Windows-only). Always returns -1 in other OSes.
- _TITLE$ (function) returns the last title set using the _TITLE statement.
2017-09-24 08:12:13 -03:00
SteveMcNeill d3a2424b73 Added right and middle button support for _SCREENCLICK with Windows 2017-09-24 01:08:29 -04:00
FellippeHeitor 887aff63dd Build number update. 2017-09-21 23:55:59 -03:00
FellippeHeitor 70ec5930a3 Build number update. 2017-09-11 10:30:49 -03:00
FellippeHeitor 8fe5804fa2 Sets the proper dependency (DEPENDENCY_SCREENIMAGE) for clipboard features.
Using $CONSOLE:ONLY without the above causes compilation fails.
2017-09-11 10:29:45 -03:00
FellippeHeitor f337403cd5 Build number update. 2017-09-09 13:18:34 -03:00
FellippeHeitor 8af68290e9 $EXEICON now automatically sets the window's _ICON.
Previously you'd have to call _ICON right after $EXEICON.

Old code that call _ICON after $EXEICON doesn't need to be adapted.
2017-09-06 11:21:39 -03:00
FellippeHeitor e3bb55da1a Add _CLIPBOARDIMAGE (statement and function)
- Fetch an image from the clipboard with handle& = _CLIPBOARDIMAGE
    - If there isn't an image in the clipboard, handle& will be -1.

- Copy a valid image to the clipboard (All screen modes, except 0) with _CLIPBOARDIMAGE = handle&
2017-09-06 11:19:54 -03:00
FellippeHeitor 862aacdeac Fix TAB + ELSE bug for command line compilation.
A line starting with a TAB character and an ELSE clause would be incorrectly regarded as having a syntax error when compiling via command line interface. This fixes that issue.
2017-08-22 00:30:44 -03:00
FellippeHeitor 34d6b239bf Build number update. 2017-08-17 23:15:30 -03:00
FellippeHeitor 2f217fce6b Function _BLINK returns -1 if blinking is enabled; 0 if disabled. 2017-08-16 00:40:37 -03:00
FellippeHeitor 2c153b3db0 Adds _BLINK {ON|OFF} to disable blinking in SCREEN 0 for colors 16-31.
Thanks to _vince for finding the right spots where blinking was set. Or flashing, you choose the naming.
2017-08-16 00:11:31 -03:00
Luke Ceddia 8238feba75 Squash annoying message from openal on quit 2017-08-11 21:47:05 +10:00
Luke Ceddia 2089a95b8b Separate left/right audio channels for stereo audio files.
No _SNDRAW or PLAY yet. Also removed need for sound capability strings.
2017-08-10 22:05:16 +10:00
FellippeHeitor b3afefe0dc Adds the ability to show contextual help (syntax) for SUB/FUNCTIONs. 2017-08-04 10:59:11 -03:00
SteveMcNeill dc22c6e5a8 Print Output Simplification
Minor change to simplify and clean up the output which QB64 creates with
PRINT statements with multiple print segments such as PRINT "A"; "B";
"C".
2017-08-02 21:40:32 -04:00
SteveMcNeill 78d4b607bd Minor change to mem structure
Change to mem.TYPE from LONG variable type to OFFSET.  This prevents
4-bytes padding from throwing off values for mem.ELEMENTSIZE and
mem.IMAGE on 64-bit systems.

Patch should work on Mac, Linux, and Windows; both 32-bit and 64-bit
versions, giving the correct results for mem.ELEMENTSIZE and mem.IMAGE
from now on.
2017-08-02 01:00:01 -04:00
FellippeHeitor 47437d28d0 Update version.bas
Build number update following commit b75eed2
2017-07-24 15:54:21 -03:00
FellippeHeitor f01d7252c2 Build number update (following changes introduced in cf99f38). 2017-06-28 22:48:47 -03:00
FellippeHeitor cf99f38bcf Add _CONTINUE, to jump to the end of FOR..NEXT/DO..LOOP/WHILE..WEND blocks. 2017-06-28 22:47:17 -03:00
FellippeHeitor fa75937aad Build number update (following changes introduced in 4a950c7). 2017-05-22 11:34:01 -03:00
FellippeHeitor 4a950c7c94 Implements multiple temp folders for Linux/macOS. 2017-05-18 01:08:06 -03:00
FellippeHeitor 60e4054aa5 Double-clicking on an $INCLUDE statement opens the file in a new window. 2017-05-14 23:10:47 -03:00
FellippeHeitor 0b9f507565 Add "Web" as a valid key for $VERSIONINFO 2017-04-29 17:41:04 -03:00
FellippeHeitor 8d961597d9 Implements $VERSIONINFO metacommand.
Allows embedding meta information on the final binary (Windows only).
2017-04-29 04:09:20 -03:00
FellippeHeitor d3fd0be2a4 [minor] Fix the status message for $EXEICON. 2017-04-29 00:34:16 -03:00
Luke Ceddia 380c7bc15e Restore SUB/FUNCTION sorting 2017-02-14 09:27:49 +11:00
FellippeHeitor 665dd67641 Remove SUB sorting in the SUBs dialog. 2017-01-20 22:56:50 -02:00
Luke Ceddia 2d065c3681 Add files for building via Travis 2016-11-09 15:23:02 +11:00
Luke Ceddia e3e1bde227 Update Buildnum$ 2016-10-10 23:21:02 +11:00
Galleondragon bb46b6d75c Updated version number to 1.1 2016-09-10 17:19:49 -07:00
FellippeHeitor b9ff7ce9b7 Proper embedding of qb64.ico into the Windows binary.
Changes made to the setup batch file used internally.
2016-09-04 12:12:30 -03:00
Luke Ceddia 01a697689b Revert "Add QB64's icon to the Windows binary."
This reverts commit cca11e8f90.

This and previous reverts remove ICON-related changes, which were
simply too questionable (in stability terms) this close to a planned
release.
2016-09-04 23:31:28 +10:00
Luke Ceddia 9a0bc93473 Revert "Make $EXEICON errors only a warning when compiling via command line."
This reverts commit 6ac4f79294.
2016-09-04 23:30:59 +10:00
Luke Ceddia 2655a35b3c Revert "Bring back the $EXEICON for Windows binaries."
This reverts commit 2e2a3de2be.
2016-09-04 23:30:50 +10:00
FellippeHeitor 2e2a3de2be Bring back the $EXEICON for Windows binaries. 2016-09-03 14:13:34 -03:00
FellippeHeitor 6ac4f79294 Make $EXEICON errors only a warning when compiling via command line. 2016-09-03 08:46:22 -03:00
FellippeHeitor cca11e8f90 Add QB64's icon to the Windows binary. 2016-09-03 00:53:21 -03:00
FellippeHeitor b4d71085bd BuildNum$ Update. 2016-09-01 23:43:11 -03:00
FellippeHeitor f829b4b640 Temporary remedy for confusing error messages after internal errors.
Bringing back the old "Compiler error (check for syntax errors)" message.
2016-09-01 23:37:37 -03:00
FellippeHeitor e6425a5f11 Give proper error message when 'internal' folder can't be found. 2016-09-01 21:38:24 -03:00
FellippeHeitor d93a2812bf Fix OPTION _EXPLICIT ignoring variables created with SHARED in SUBs.
Also:
- When a "variable not defined" error is triggered, the expected type is now also reported.
2016-08-27 15:09:15 -03:00
FellippeHeitor 366636e584 Fix to precompiler parser deleting $LET statements in SUBs. 2016-08-24 09:08:42 -03:00
FellippeHeitor 1146ca18bd Minor tweak to F1 key behavior.
F1 for contextual help previously required the cursor to be inside the keyword. Now it can be to the right of the word, just like in QB4.5.
2016-08-20 00:17:07 -03:00
FellippeHeitor 51b6fda556 Improved Backspace behavior (deletes a whole word at a time with CTRL)
Windows and Mac only.

Also: Improved behavior of Delete key when joining lines.
2016-08-18 23:45:43 -03:00
FellippeHeitor 26a6c94f63 Tweaks to $EXEICON implementation
No error message if not Windows, proper error message if icon.o can't be generated.
2016-08-18 07:25:56 -03:00
FellippeHeitor 127c4acd88 Add $EXEICON, which allows to embed an icon in the exe (Windows only).
Also:
- Revamp _ICON so it'll use the embed icon if it's called without parameters. The default QB64 icon is still used otherwise.
- Fix "Creating .EXE..." being printed in the wrong coordinates (IDE)
- Fix the new error message (when Debug is <> 0) so it'll show properly when compiling with -x.
2016-08-18 01:12:08 -03:00
Luke Ceddia 3f3016da6d Make DarkenFGBG a function so it gets treated as an array when IDE support is not compiled in. 2016-08-15 20:58:11 +10:00
Luke Ceddia a6ad741acf Fix scroll wheel on Linux (again). 2016-08-13 00:16:56 +10:00
Luke Ceddia e5226905bc Update buildnum$ 2016-08-12 12:14:14 +10:00
Luke Ceddia de14c256d9 When Debug is set, any QB errors will now trigger a more helpful error handler 2016-08-12 11:59:11 +10:00
Luke Ceddia 3a0c8ea521 Stop ide() throwing a silent IFC on startup 2016-08-11 21:41:40 +10:00
Luke Ceddia fc05f7d925 Fix parsing of corner-case negative exponents, such as 1-(1+r) ^ -y 2016-08-11 21:40:23 +10:00
FellippeHeitor 2576cbc7f4 Fix incorrect colorization of lines ending with '_
An underscore in the end of a line was being considered as a multiline indicator even if it was in a comment. That's fixed now.
2016-08-11 01:15:15 -03:00
Luke Ceddia b17fda7a61 Stop STATIC arrays in subroutines from segfaulting on Linux 2016-08-10 23:44:27 +10:00
FellippeHeitor 4bec88a288 Update BuildNum$
Matching build num update to the latest common.cpp alterations.
2016-08-07 21:13:57 -03:00
Luke Ceddia 84e542ef32 Fix evaluation of some boolean conditionals
Commit 7855219 introduced a regression which caused some IF
statements involving boolean operators and strings to
give a C++ compilation error.
2016-08-03 17:18:20 +10:00
FellippeHeitor 3045f6d7f5 Add preset color schemes and ability to create user defined schemes. 2016-08-02 03:17:15 -03:00
FellippeHeitor 073ab7e790 Fix stubborn textfield not letting you edit font size (Display dialog). 2016-07-31 20:36:34 -03:00
FellippeHeitor 2e89bed958 BuildNum$ update 2016-07-31 17:39:56 -03:00
FellippeHeitor 58199f7c22 Implements Bracket Highlighting
When the cursor is on a an open "(" or closing ")" bracket, the matching pair, to the left or right, will be highlighted (as seen in modern IDEs, like https://blogs.msdn.microsoft.com/zainnab/2010/09/07/automatic-delimiter-highlighting/)

Also:
- Overall visual adjustments.
- Improved IDE Colors dialog (Options menu), which includes an option to disable bracket highlighting.
- Adds Ctrl+S as a shortcut for File->Save.
- Displays an * on the filename in the title bar below the menu bar when the source has been edited.
- Fixes an old bug that would color strings incorrectly when the source view was scrolled to the right.
- Enables block indent functionality in the Edit menu even when autoindent is on.
- Allows the View SUBs dialog (F2) to be invoked while focus is on the quick search bar.
2016-07-31 17:36:14 -03:00
FellippeHeitor df50672e21 Mere indent/auto-format. No actual code change. 2016-07-23 21:26:06 -03:00
FellippeHeitor a8d200164e Prevent whole-word selection to be triggered when selecting multilines. 2016-07-20 01:08:25 -03:00
FellippeHeitor b29c90f293 Minor fix to whole word selection (double-click).
Variable wholeword.select failed to be reset properly before.
2016-07-20 00:25:42 -03:00
FellippeHeitor 01d3e06d73 Additional tweaks to whole-word selections (double-click + drag). 2016-07-20 00:07:47 -03:00
FellippeHeitor b8fa2ba18d BuildNum$ update 2016-07-19 20:46:21 -03:00
FellippeHeitor 1806d2ccbc Cancel selection after window is resized. 2016-07-19 19:45:54 -03:00
FellippeHeitor 637e524be8 Expand double-click whole word selection.
Double-click a word then drag left or right to keep selecting word for word.
2016-07-19 19:34:55 -03:00
FellippeHeitor a7a13b52ee Fix for double-click whole word selection while compiling. 2016-07-19 18:10:58 -03:00
FellippeHeitor a409f40826 Cosmetic: indicate subwindow focus (main, find or help). 2016-07-19 03:04:08 -03:00
FellippeHeitor a65a0f42f8 Double-click on code to select a whole word at once. 2016-07-19 02:03:33 -03:00
FellippeHeitor cedd2c6a47 Replace _KEYCLEAR so that script setup will work on OS X.
Probably for Linux too.
2016-07-18 12:03:29 -03:00
FellippeHeitor 41937222b5 Buildnum$ update. 2016-07-17 22:06:44 -03:00
FellippeHeitor c3cb1acae9 Darken all IDE colors while compiling or running attached. 2016-07-17 20:12:59 -03:00
FellippeHeitor c00c92e4a2 Fix to ignore input while the IDE is waiting for execution to end.
Previously, if the IDE had focus while a compiled program was being run (F5), any input on the window would later be processed, messing up the source code sometimes. That's been fixed.
2016-07-17 17:41:30 -03:00
FellippeHeitor a3c4bc4336 Darken the FG color too (while compiling with g++). 2016-07-17 17:40:10 -03:00
FellippeHeitor 94d1442060 Expand block indentation with TAB/Shift+TAB.
Block indentation is now allowed even with auto-indentation is on. A bit useless at first, as the IDE will override any custom indentation attempt while ideautoindent is on, but at least now TAB doesn't inadvertedly delete selection contents anymore.
2016-07-17 17:23:42 -03:00
FellippeHeitor 3020b7b631 Improved cursor behavior.
Expand cursor behavior to work even when auto layout/indentation are active, so that edition feels more natural.

Also:
- Improved cursor behavior when using backspace to collapse a line into the previous one (check out code comments for easier understanding).
2016-07-17 17:21:08 -03:00
FellippeHeitor 99e0b539af Cosmetic: Darken the interface while G++ is being run.
Uses _PALETTECOLOR to change the background of the IDE to a darker shade while external compilation is taking place, to give a sense of temporary unavailability.
2016-07-17 17:17:51 -03:00
FellippeHeitor 19ab48caec Add Ctrl+G as a shortcut to "Go to line". 2016-07-09 15:30:10 -03:00
FellippeHeitor ef791afcb6 Make use of _INCLERRORFILE$ for more meaningful error messages.
Also:
- Improved messagebox (allows multiline messages with CHR$(10) terminated lines.
- Fixed a minor bug that could be triggered by right-clicking a selection that contained only sigils.
2016-07-09 15:04:42 -03:00
FellippeHeitor 90923af3db Add _INCLERRORFILE$, which reports the included file that last errored.
Also:
Change qb64.bas to produce C code that reports INCLUDE file names.
2016-07-08 22:48:00 -03:00
FellippeHeitor c6b05376d4 Minor rewording to command line help 2016-07-02 21:24:22 -03:00
Fellippe Heitor 4550c333b7 Add command line help (-?, /?, -h or -help) 2016-07-02 16:25:21 -03:00
Fellippe Heitor 2f832cd15b Show selection length on the status bar 2016-07-02 03:48:58 -03:00
FellippeHeitor 240814c6cc Fix proper detection of output executable being run. 2016-07-02 02:50:43 -03:00
FellippeHeitor bad8133d16 Command line improvements.
- Add -e for compiling with OPTION _EXPLICIT activated from the command line - even if the source file doesn't have the directive.
- Add -o for specifying a different output executable file name.
- More flexible syntax, as switches can come after the file name, making the following acceptable: qb64 filename.bas -x -e -o myprog.exe
2016-07-02 01:32:03 -03:00
FellippeHeitor 8fa49e0411 BuildNum$ update. 2016-06-30 23:41:44 -03:00
FellippeHeitor e70f18178f Broader detection of OPTION _EXPLICIT in code.
- No two OPTION _EXPLICIT can be entered
- You can OPTION _EXPLICIT: DO OTHER STUFF 'and comment on the same line
- Extreme cases of bad formatting like OPTION        _EXPLICIT are fine.
2016-06-30 23:40:46 -03:00
FellippeHeitor 353838500e BuildNum$ update. 2016-06-30 05:25:45 -03:00
FellippeHeitor 7bb17d3d8d OPTION _EXPLICIT errors report the variable name.
Also:
Allow comments and empty lines before OPTION _EXPLICIT
2016-06-30 05:24:22 -03:00
FellippeHeitor aec3d3b4dd Fix for relative paths (./ or .\) in LIBRARY declarations.
These were having issues when compiling via command line.
2016-06-30 03:58:20 -03:00
FellippeHeitor b175c3f3b4 BuildNum$ update. 2016-06-30 03:12:00 -03:00
FellippeHeitor a7a3b1663d Implements OPTION _EXPLICIT
When you use OPTION _EXPLICIT, all variables and arrays must be defined with DIM (or equivalent statement) before they can be used. QB64's case check already aids in avoiding mistakes on that front, but now you will run into a compiler error if a variable or array is used before being defined.
Because OPTION _EXPLICIT sets a compiler behavior, it must come before any other statements in your code.
As this is a non-QB4.5 feature, the keyword uses an underscore, in order to avoid conflicts with existing code.
2016-06-30 02:50:10 -03:00
FellippeHeitor 6a26da51a5 QuickNav: minor change to "back" button wording. 2016-06-28 17:02:03 -03:00
FellippeHeitor f0b9d0dadd QuickNav: minor change to "back" button wording. 2016-06-28 16:59:16 -03:00
FellippeHeitor 1e3cb88fc9 Allow Shift+ENTER to edit RGB values without the contextual menu. 2016-06-28 11:29:46 -03:00
FellippeHeitor 1ba7270cdb Supress "'Hit Shift+ENTER" message if _RGB is in a comment or quote. 2016-06-28 02:04:05 -03:00
FellippeHeitor e28997f3f5 Quick Navigation "Back" button's hover behavior improved.
Upon hovering the Back button right below the menu bar, the next QuickNav location will be shown as "back to line ##".

Also:
- Fix label color in the "Google Android" dialog.
- Fix a bug that could occur when invoking the contextual menu with an empty selection.
- Relocate Undo/Redo to the top of the Edit menu.
2016-06-28 01:37:37 -03:00
FellippeHeitor ba968213a5 Add an RGB color mixer for inputting/editing _RGB/32/A/A32 values.
Upon entering any _RGB statement, the IDE will offer to launch the mixer dialog, which can be done by hitting Shift+ENTER. Right-clicking existing statements allows triggering the mixer dialog from the contextual menu.
2016-06-28 01:34:06 -03:00
FellippeHeitor 5b7411a583 Minor fix to settings output. 2016-06-26 00:37:08 -03:00
Fellippe Heitor 7cf18f13ad Add -s (settings) to command line. 2016-06-26 00:06:34 -03:00
Fellippe Heitor 81a0e7a4b7 Fix to relative paths for console compilation. 2016-06-25 22:36:36 -03:00
FellippeHeitor d8c01d89cb Properly check if the target .EXE can be replaced (no ide compilation). 2016-06-25 16:17:22 -03:00
FellippeHeitor 1e99a91293 Allow closing the IDE via the X when only the menu bar is active. 2016-06-25 16:16:49 -03:00
FellippeHeitor de6fd0a7a8 Allow closing the IDE via the X button while the menus are active. 2016-06-25 12:58:16 -03:00
FellippeHeitor 1ab3025ef3 Auto select the .exe when clicking the quick link to the output folder 2016-06-22 14:44:59 -03:00
FellippeHeitor b3c7c03558 Fix for unnecessary terminal window showing up in Windows 2016-06-22 14:05:28 -03:00
FellippeHeitor 22a2115fe8 Fix for relative library paths in Windows. 2016-06-22 01:13:54 -03:00
FellippeHeitor ee3f5f3d4a Version id update for latest edits. 2016-06-21 23:58:29 -03:00
Fellippe Heitor b8b4b13302 Relative paths for external libraries
External libraries can now sit in the same folder as your source file without the need to specify a full path. You can use .libraryname or ./libraryname with DECLARE LIBRARY statement blocks.
2016-06-21 23:53:43 -03:00
Fellippe Heitor 5e7e37ea0b Save executable with source (Mac, probably Linux too) 2016-06-21 11:59:37 -03:00
FellippeHeitor b7b6c760e1 Console mode compilation (-c, -x) also save EXE to source folder, if set. 2016-06-21 03:54:20 -03:00
FellippeHeitor 8f67d40330 Add "Save EXE in the source folder" to the Run menu.
(Windows only for now)
When active, this new setting will instruct the compiler to save the .EXE in the same folder as the source file. If the current program is not yet saved, the .EXE is placed in the same folder as QB64.EXE, as usual.

Also:
- When "Make EXE only (F11)" is used, the status area will show "Location: " and a link to the folder where the .EXE was saved. Clicking it launches Windows Explorer.
2016-06-21 03:38:42 -03:00
FellippeHeitor 86f79d8b29 Improved cursor behavior when auto indent is off.
When auto indent is turned off in Options->Code Layout, hitting ENTER to create a new line will cause the cursor to be aligned with the previous line start, making it easier to manually indent code.

Also:
- Hitting backspace when there's no text before the cursor will also cause it to jump back following the tab spacing set in the Code Layout dialog.
2016-06-21 01:31:42 -03:00
Fellippe Heitor e5487b3124 Allow Shift+TAB to change focus in dialogs (Mac) 2016-06-14 01:29:33 -03:00
FellippeHeitor 4925dfd990 Minor fix to textboxes in dialogs being autoselected when empty. 2016-06-14 01:05:54 -03:00
FellippeHeitor a0506884f8 Minor adjustments (cursor after pasted contents and textboxes in dialogs)
The setting to place the cursor after the pasted contents is now observed in textboxes (dialog boxes) and also in the quick search field.

Also:
- Textboxes are now always selected upon receiving focus in dialog boxes, in order to mimic modern OS's behavior.
2016-06-09 01:46:00 -03:00
FellippeHeitor 6f4231c86b Add a percentage bar to the status line while still compiling (F5/F11).
Also:
Progress has been grouped. No longer "Step 1/2" then "Step 2/2". It goes from 0% to 100% and that's that.
2016-05-24 21:35:30 -03:00
FellippeHeitor 64ca150f9c Supress progress indication if an error is found. 2016-05-24 02:10:33 -03:00
FellippeHeitor 546947d967 Show compilation progress (BASIC -> C++) in the status bar.
The only indication that the program was being compiled was the "..." on the status area. Now, if you hit F5 (or F11) and your program is still being compiled to C++, you will see a progress indicator on the bottom status line.

Also:
- Display "Start typing to search for text in this help page" upon invoking the help system (the search functionality is already built-in).
2016-05-24 01:35:28 -03:00
FellippeHeitor 218536343a Add "Cursor after pasted content" to Options menu.
Default behavior (which mimics Qbasic) is to keep the cursor in place even after pasting from the clipboard. This new option alters such behavior to act as modern systems, placing the cursor after the pasted content.

Also:
- Add visual indication that mouse buttons have been swapped (Options menu);
- Allows opening menus with a right-click (in case you forget you swapped mouse buttons);
- Minor tweaks to Code layout dialog box.
2016-05-07 01:38:52 -03:00
FellippeHeitor a6d7a7ac5c Add sliders to the Colors dialog (for RGB values). 2016-04-28 03:22:29 -03:00
FellippeHeitor c49272e64c Disable selection when Quick Navigation is used.
Previously, upon clicking the Quick Navigation button, the IDE could accidentally select all lines between the current and the destination line. Such behaviour has been fixed.
2016-04-28 00:09:30 -03:00
FellippeHeitor 1033468606 Adjust Color dialog size. 2016-04-21 23:33:29 -03:00
FellippeHeitor fa63f1feef Color dialog: allow an empty field while editing RGB values. 2016-04-21 18:10:56 -03:00
FellippeHeitor fa569c2fc4 Add a new dialog to allow changing of interface/code syntax colors. 2016-04-21 17:49:32 -03:00
FellippeHeitor f00c584454 Fix to extra console window being shown when no COMMAND$ is provided.
A trailing empty space was the culprit.
2016-04-15 10:01:58 -03:00
FellippeHeitor 4336d458f5 BuildNum$ update. 2016-04-15 00:55:55 -03:00
FellippeHeitor b243601d5a Add "Modify COMMAND$..." to Run menu.
Allows the user to set parameters to be sent to the current program when ran from inside the IDE using F5 or Ctrl+F5.
2016-04-15 00:47:26 -03:00
FellippeHeitor e40babc3a6 Build number update. 2016-04-09 17:33:43 -03:00
FellippeHeitor 336cfde4a0 Suggest a filename when first saving, based on _TITLE, if found. 2016-04-09 17:13:02 -03:00
FellippeHeitor 9c38822c13 Current line highlight properly identifies multilines (ending with _)
ALSO:
- Fix "back" button flickering while typing.
2016-04-06 23:39:54 -03:00
FellippeHeitor 490524628c Fix to active line color highlight. 2016-04-06 02:35:42 -03:00
FellippeHeitor 9aa08ce3cd BuildNum$ updated. 2016-04-06 02:28:54 -03:00
FellippeHeitor 14ddb620b3 Highlight the current line with a darker shade of the bg color.
Can be overriden by making BackgroundColor2 = BackgroundColor in the config.txt file.
2016-04-06 02:26:23 -03:00
FellippeHeitor 022218f7a7 Add current line to navigation history before going to line with error.
Saves current line before focusing on the line that has an error indicated in the status area.
2016-04-06 01:59:38 -03:00
FellippeHeitor 12010a273c Add a "Back" button [<] to browse back after using Quick Navigation.
After using any Quick Navigation method (Search > Goto line, Right-click > Goto SUB/FUNCTION or Goto label, Bookmark navigation, SUB/FUNCTION selection box), a left facing arrow will show right under the File menu, allowing to browse to where you were before navigation.

ALSO:
- "Goto line" dialog box now remembers the last line number that was input.
2016-04-06 01:43:39 -03:00
FellippeHeitor 310eb662d0 Use the new _INCLERRORLINE to give more detailed error messages (IDE). 2016-03-23 11:22:22 -03:00
FellippeHeitor fca4a96ef3 Remove unnecessary optional parameter in fix_error().
Also:
- "Unhandled error" message now only shows included line number when it's > 0.
- qb64.bas adds include line number to every evnt() call.
2016-03-23 08:29:32 -03:00
FellippeHeitor 398781b4af Build number increase. 2016-03-23 08:00:25 -03:00
FellippeHeitor e891ce0891 Extended error reporting, pointing to included lines.
The "Unhandled error" message will now display "Line: #### (included line: ####)" with the line number in the included file that generated the error. 0 will be reported if the error wasn't in an included line.

Also:
- Add function _INCLERRORLINE, which returns a value greater than zero when _ERRORLINE points to an $INCLUDEd file.
2016-03-23 07:45:51 -03:00
FellippeHeitor 3557828e95 Fix $precompiler layout.
$ELSEIF FLAG THEN was being turned into $ELSEIF IF FLAG THEN THEN when a precompiler condition had already been met in an $IF block before the current $ELSEIF.
2016-03-20 22:19:35 -03:00
FellippeHeitor 8d459da508 Increase build number to mark Galleon's latest additions 2016-03-20 15:44:37 -03:00
Galleondragon 0ea631d375 Implements the _DIR$("desktop") function which returns OS specific paths.
Implements changes to allow programs to run on ARMBI-v7 Android devices which also provides a massive performance boost to but runtime and startup time.
Implements changes to allow programs to run on x86-based Android devices.
Fix to ensure variables allocated in the "stack" are aligned on appropriate boundaries which would have otherwise crashed on Android.
Fix to _DEVICES to ensure variables are aligned on appropriate boundaries which would have otherwise crashed on Android (includes some refactoring).
Added permissions to allow reading from/writing to external storage. Use the _DIR$(...) function to help locate appropriate paths.
2016-03-20 18:56:10 +11:00
Luke Ceddia 773291198c Added a date and id stamp to appear in the About box.
This must be manually updated whenever you make a change to the code.
See source/global/version.bas for details.
2016-03-18 23:22:03 +11:00
SteveMcNeill 9761af33d5 Fix to precompiler to work inside $INCLUDE files 2016-03-08 20:53:35 -05:00
SteveMcNeill 87b4783dd7 Fix so IDE will catch DO WHILE (nothing) syntax errors 2016-03-04 22:34:28 -05:00
SteveMcNeill e9472743e5 Path to IDE Auto-position
Since _SCREENHIDE doesn't currently work on Linux, alterations were made
to the auto-position routine to keep the IDE from storing screen
positions when minimized and closed that would make it reopen off-screen
and impossible to move/position.
2016-03-04 14:51:08 -05:00
SteveMcNeill 117f12e4d4 Patch to correct IDE error messages
IDE error messages would give invalid reports if the program encountered
an error on the automatically included QB64 virtual keyboard files.
This should correct that and have the IDE reporting the proper messages
once again.
2016-03-04 11:21:16 -05:00
Fellippe Heitor 6af23d8039 Fix keyboard hotkey indicator in contextual menu.
When two 'Go to...' are shown (when label and procedure share the same name), the item that goes to procedure will have G highlighted and the item that goes to a label will have L highlighted.
2016-02-27 16:17:28 -03:00
Fellippe Heitor 95af7ff6a6 Improves the .command file generated to launch executables
The same improvements made to qb64_start_osx.command are now present in the .command file that is generated in OS X after a program is compiled into an executable. This way, Terminal is closed as soon as the program is launched.
2016-02-27 15:40:24 -03:00
FellippeHeitor 517f512c76 Add "Go to..." to contextual menu, for SUB/FUNCTION/Labels.
If a user right-clicks a SUB/FUNCTION name or a label name anywhere in the code, the contextual menu now offers to jump to the line where such procedure/label is defined, providing a quick way to navigate through code. Even if there are multiple identical labels in different procedures, scope is taken into consideration, leading you to the definition that's located inside the current procedure.
2016-02-26 22:01:03 -03:00
FellippeHeitor 2293beb692 Fix a leak when assigning values to an array of type STRING.
The issue happened with both fixed and variable length string arrays and variables with user defined types containing fixed string elements.
2016-02-22 08:19:54 -03:00
FellippeHeitor ce0c8a4507 Add option to restore last window position at startup (Display dialog).
Setting already existed in config.txt and could be manually set (actual code to remember window position written by Steve).
2016-02-12 07:20:17 -02:00
FellippeHeitor 48c99d2247 Fix title alignment of manually positioned dialog boxes. 2016-02-12 06:49:26 -02:00
FellippeHeitor 4901270af3 Fix an error invoking the contextual menu.
If the ide window was too small (e.g. default size 80x25) and a subwindow was being shown (help window) drawing the contextual menu caused an error.
2016-02-07 18:01:43 -02:00
FellippeHeitor ac333bb611 Minor customization specific for the SUBs list (external procedures).
- Change color of the external indicator (*) so that it looks less intrusive.
2016-01-17 12:03:25 -02:00
FellippeHeitor 7db635a043 Revert latest changes to SUBs sorting.
64 bit systems don't handle it at all. Will only be available in Windows and Linux 32bit.
2016-01-15 22:09:49 -02:00
FellippeHeitor d86b5c84b6 Fix evaluation of current OS.
Tested under Windows, OS X El Capitan, Linux 32 and 64 bit.
2016-01-15 15:00:17 -02:00
FellippeHeitor 2381e9aa20 Reenable SUBs sorting under 32bit Linux. 2016-01-15 04:55:48 -02:00
FellippeHeitor 0075adde2c Shows Shift+TAB in menus only in Windows and OS X.
QB64 doesn't recognize Shift+TAB under Linux.
2016-01-15 04:33:51 -02:00
FellippeHeitor 02f63c2457 Remove SUBs sorting (F2) from Linux and Mac versions.
The sorting routine isn't compatible with these platforms. For now, it is Windows-only.
2016-01-15 04:10:30 -02:00
FellippeHeitor 10c53de173 Merge branch 'selective-indent-shortcuts' 2016-01-14 16:25:18 -02:00
FellippeHeitor 55035849fd Remove SUBs sorting under OS X, until it gets fixed.
After the addition of sorting to SUBs dialog, it stopped working under OS X.
2016-01-14 15:30:55 -02:00
FellippeHeitor d684b6cf05 Fix Shift-TAB to decrease block indent on OS X.
In Linux, the option remains available only through Edit or contextual menu (right click).
2016-01-14 14:59:42 -02:00
FellippeHeitor e2a202084a Fix never ending lines when down arrow kept being pressed
The issue was introduced after CTRL+UP/DOWN was implemented.
2016-01-14 13:53:54 -02:00
FellippeHeitor fcf9334581 Internal: Make SUB Sort case insensitive.
A case backup array is no longer needed for sorting the SUBs list.
2016-01-14 11:41:44 -02:00
FellippeHeitor 2f2e93a276 Allow ESC to dismiss the "Are you sure you want to clear..." dialog. 2016-01-13 20:08:03 -02:00
FellippeHeitor 261d6fc97d Fix ESC deleting the current selection. 2016-01-07 00:20:29 -02:00
FellippeHeitor 96f450e2ff Small modification to Edit menu. 2016-01-06 23:28:22 -02:00
FellippeHeitor 8187641862 Add message box about the availability of manual block indent. 2016-01-06 23:14:58 -02:00
FellippeHeitor acee40bf72 Add increase/decrease block indent with TAB/Shift+TAB.
- Available only when auto indent is turned off (Options/Code layout).
- Also available from Edit menu and contextual right-click menu.

Known issue: When auto spacing is on, if you try to indent the first line the file, it is immediately repositioned at the start of the line. Only happens to the first line.
2016-01-06 22:57:11 -02:00
FellippeHeitor cc8f6605b5 Show a message box when no broken links are found. 2016-01-06 12:18:36 -02:00
FellippeHeitor af4f9f3918 Update ide_methods.bas
Mere naming convention: invalid links --> broken links.
2016-01-06 02:32:58 -02:00
FellippeHeitor 6493409400 Add "Remove broken links" to recent files dialog. 2016-01-06 02:25:03 -02:00
FellippeHeitor 4f8bb2634d Add clean invalid links in recent files list.
- After a file error, the user is prompted to clean up the recent file list, removing invalid links.
2016-01-06 02:10:00 -02:00
FellippeHeitor 3b251e4e05 Add option to clear the list of recently opened files.
- Add an option to the "Recent..." dialog.
- Add a menu entry for when the list contains less than 4 items.
2016-01-06 00:58:08 -02:00
FellippeHeitor 11e33dd3cb Add disabled menu items and make Edit menu context-aware.
- Menu items starting with a tilde ("~") are displayed with COLOR 8 and without hotkeys highlighted. Clicking on them does nothing, but closes the menu.
- Edit menu is now context-aware. Cut, copy and clear are only enabled if there is a selection. Paste is only enabled if _CLIPBOARD$ is not empty.
2016-01-05 23:14:51 -02:00
FellippeHeitor 47d5a0a473 Limit contextual menu items to available ones.
- Hides cut/copy/clear if no selection available.
- Hides paste if _CLIPBOARD$ is empty
2016-01-05 22:12:51 -02:00
FellippeHeitor 07c9c5442a Fix to quick search bar.
- Fix updating the display after selecting an item in search history.
- Add the ability to click the search field and unselect/position the cursor (overrides previous double-click to erase behavior).
2016-01-05 20:05:57 -02:00
FellippeHeitor 79f1557986 Add "Clear search history..." to Search menu. 2016-01-05 18:57:03 -02:00
FellippeHeitor 59eb5b234c UP and DOWN arrows invoke search history.
- UP and DOWN arrow keys invoke search history in Find and Change dialogs.
- Fix idesearchedbox$ crashing when no search history is found.
2016-01-05 18:24:52 -02:00
FellippeHeitor 1ab0814e5e Fix to display and focus of quick search field 2016-01-05 15:09:00 -02:00
FellippeHeitor 8028998939 Fix display of search term after ENTER 2016-01-05 14:55:12 -02:00
FellippeHeitor 26a66813bc Add extended textbox functionality to the quick search field. 2016-01-05 14:38:19 -02:00
FellippeHeitor aebb18088b Fix to dialog textboxes clipboard/selection behavior.
- Add Ctrl+A to select all.
- Add Ctrl+X to cut.
- Copy and Paste rewritten with selections in mind.
2016-01-05 01:29:21 -02:00
FellippeHeitor ac1fc6c794 Main window improvements.
- Place cursor inside the help window when it's first invoked (allows for quick peek and ESC to close the help window).
- Allow ESC to close the dialog (named "Which?"), used to clarify the help context.
- Allow CTRL+UP or DOWN to scroll the window by one line at a time, without moving the cursor.

- Fix quick link feature (F2) to recognize FUNCTION names ending with single or multiple sigils.
- Fix external procedures being considered local and placed in front of program name.
2016-01-04 21:42:02 -02:00
FellippeHeitor debc1e9792 Improvements to dialog boxes.
- Allow the spacebar to work like ENTER when a button has focus.
- Improve textbox behavior: allow selection, delete selection, replace selection when typing.
- Preselect textbox contents if it's preset when dialog is invoked (Save as, Find and Change dialogs)

- Fix: an asterisk sign will be only added to the valid searchable characters in a listbox if the user is explicitly searching for it.
2016-01-04 21:35:27 -02:00
FellippeHeitor 34e2f0593b Minor improvements to the search system.
- Move the quick search field to the status area.
- Add Ctrl+F to set focus to quick search field.
- Add Ctrl+F3 shortcut to invoke the Find dialog.
- Add Alt+UP or DOWN to invoke the recent searches dropdown list, if the focus is on the quick search field.
2016-01-04 21:26:15 -02:00
FellippeHeitor 2abab5a916 Add contextual menu and overall improvements to menu system.
- Show a contextual menu upon right-clicking on the text area. Includes the Edit menu options as well as contextual search and help.
- Add hovering to menus items.
- Adjust case of menu items (CTRL and Ctrl were being used interchangeably without a pattern).
2016-01-04 21:13:02 -02:00
FellippeHeitor deb80bdec6 Improvements to the SUBs dialog.
- Add sorting, using Steve's sorting routine.
- Add a visual indicator (*) that a procedure is external.
2016-01-04 20:41:47 -02:00
Luke Ceddia f8fea42a29 Incorporate additions to SUB list dialog (F2) and inner title bar, and fix ASCII picker.
-ASCII picker restores font upon exit
-SUB dialog preselects a sub if its name is selected by the cursor in the main window
2016-01-01 02:25:27 +11:00
FellippeHeitor 418e8aebcf Incorporated Luke's ASCII fix, to avoid going back in commits. 2015-12-31 10:28:34 -02:00
FellippeHeitor ebde55ec7e Fixed a crash when filename is too long to fit the screen. 2015-12-31 09:59:46 -02:00
FellippeHeitor 1749254321 Temporarily remove comments in front of SUB/FUNCTION before adding to window title or SUBs dialog. 2015-12-31 02:44:50 -02:00
FellippeHeitor cf05f689a4 Improves on listbox search, allowing for more than the first letter to be searched (repeatedly pressing the same letter still works as before). 2015-12-31 02:23:06 -02:00
Luke Ceddia 9c17efacf5 Removed non-ASCII characters and many hard tabs from source files, making it easier to use other text editors (special characters were being mangled in some cases). 2015-12-30 21:28:13 +11:00
FellippeHeitor 649d44b27e If the cursor is on a SUB/FUNC name, it is highlighted. 2015-12-29 16:56:58 -02:00
FellippeHeitor 24c65558f0 EDIT: Changed the code to also check that END SUB/END FUNCTION can be found after the current line, which eliminates the possibility of making the IDE believe that we are in a SUB/FUNCTION when we are actually just past the last one in the file. 2015-12-29 02:16:34 -02:00
FellippeHeitor 5846305079 Reworks main window title to look "Program.bas:CurrentSubFunc"
A quick current SUB/FUNCTION check was added to complement the program title with a colon and said SUB/FUNCTION name, exactly like it was done in QB4.5, for quick reference. Doesn't add much of a burden to the overall performance since FUNCTION ide2 already updates the main window title every main LOOP anyway.
2015-12-29 00:22:37 -02:00
FellippeHeitor 4037c9db3a A quick current SUB/FUNCTION check was added to complement the program title with a colon and said SUB/FUNCTION name, exactly like it was done in QB4.5, for quick reference. Doesn't add much of a burden to the overall performance since FUNCTION ide2 already updates the main window title every main LOOP anyway. 2015-12-29 00:12:22 -02:00
FellippeHeitor dc00352274 Change to FUNCTION idesubs$, which now checks if the cursor is currently inside any SUB/FUNCTION to position the selection properly in the list. 2015-12-25 23:39:28 -02:00
Luke Ceddia 86acbbbcdd Indent code in SUBs and FUNCTIONs by one level, with the option to turn on/off.
Adds option IDE_IndentSUBs to the config file. Credit to Fellippe Heitor for
doing the research and writing on the bulk of this commit.
2015-12-14 11:19:26 +11:00
Galleondragon ab6c51a6b2 Fix command line compilation 2015-11-02 21:32:45 +11:00
Galleondragon accdaf1ce0 Added support for Android & Virtual Keyboards 2015-10-30 23:18:44 +11:00
SteveMcNeill 0db73ad071 Fix to config.txt file error catching for auto indent spacing 2015-08-20 11:13:25 -04:00
Galleondragon a4867ea44c Test auto-build process via GitHub 2015-08-15 21:26:39 +10:00
SMcNeill 7fb1db97f6 Added function _SCREENICON to tell us if the window has been minimized to the taskbar (Iconified) 2015-08-08 12:50:45 -04:00
SMcNeill f9bb83066b Added "&B" support to VAL function.
Added extended math functionality into user mods. (COT, SEC, COT, and their deritives.)
Cleaned up old config setting from config.txt file.
2015-08-08 02:23:15 -04:00
SMcNeill 15649725e5 Patch to fix WriteConfigSetting from altering variables passed to it.
Fix to precompiler internal array allocation to prevent IDE Module Errors in some instances.
2015-08-05 17:44:43 -04:00
SMcNeill eb69e62827 Fix to custom font error-checking routine which used an invalid variable name and always failed.
Made use of _SCREENHIDE function so we don't update the IDE position when the screen is hidden.
2015-08-05 04:56:49 -04:00
Galleon 91e7ace500 (Automated push) Update internal/source/* from qb64.bas 2015-08-02 05:12:44 -07:00