WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V3.1.0 June 4, 2023)

User projects written in or related to FreeBASIC.
Post Reply
deltarho[1859]
Posts: 4308
Joined: Jan 02, 2017 0:34
Location: UK
Contact:

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by deltarho[1859] »

Hi Paul

Does your new approach require that the toolchains be WinFBE compatible toolchains, or can we still use existing toolchains but relocated to the subfolder “Toolchains”?
PaulSquires
Posts: 1002
Joined: Jul 14, 2005 23:41

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by PaulSquires »

deltarho[1859] wrote:Hi Paul

Does your new approach require that the toolchains be WinFBE compatible toolchains, or can we still use existing toolchains but relocated to the subfolder “Toolchains”?
As long as WinFBE can find the fbc32.exe and fbc64.exe in the folder for the particular toolchain then WinFBE will use it.
deltarho[1859]
Posts: 4308
Joined: Jan 02, 2017 0:34
Location: UK
Contact:

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by deltarho[1859] »

PHEW!

In that case, I look forward to the next version.

Thanks, Paul
Jeromyal
Posts: 2
Joined: Jan 22, 2013 19:29

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by Jeromyal »

Please Paul,

Please add the ability for WinFBE to use more than one inc folder location.

EDIT: Umm, you just went "wha?" right? Yeah, me to when I gave it a minute to sink in. I must have been thinking about the PowerBasic ide.

Sorry disregard.
wallyg
Posts: 270
Joined: May 08, 2009 7:08
Location: Tucson Arizona

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by wallyg »

I was wondering if it was possible to have multiple source text windows visible at the same time. I use a 55" TV as a monitor and it would be nice to have several text files all open and visible on different areas of the tv. This way as I work on a routine, I could see the definition of the *.bi for a structure I am working on or the source of a function I want to call (especially the header which describes all the parameters and their restrictions) at the same time without flipping back and forth between several windows. Hopefully, as separate windows that could be moved to different placements and sizes on the tv.

Thank you for your kind consideration.

Wally
PaulSquires
Posts: 1002
Joined: Jul 14, 2005 23:41

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by PaulSquires »

Hi Wally,

Could you accomplish your goal by opening multiple instances of WinFBE and move the instances to locations where you need them? The only issue I see with that is that the WinFBE configuration file will be overwritten and only save the values from the last instance of the editor that you close. So, if you change configuration settings in one or more instances of these WinFBE editors then it is possible that your choice may not get saved.

Do you have an example of an editor that allows for internal edit windows to be detached and moved around the screen? I can't say that I have ever seen such a thing in the editors that I have used.... or, maybe I haven't looked close enough because that is a functionality that I do not need. If you can point me to an editor that does this kind of stuff then maybe I can emulate it in WinFBE. I am in the midst of a huge WinFBE update so now would be a good time to point me a good example of what you're thinking of.
jj2007
Posts: 2326
Joined: Oct 23, 2016 15:28
Location: Roma, Italia
Contact:

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by jj2007 »

PaulSquires wrote:an editor that allows for internal edit windows to be detached and moved around the screen?
Feasible, but it's a nightmare if the edit controls refer to the same file. A detached read-only control, as shown below, is much simpler.
wallyg wrote:I was wondering if it was possible to have multiple source text windows visible at the same time. I use a 55" TV as a monitor and it would be nice to have several text files all open and visible on different areas of the tv. This way as I work on a routine, I could see the definition of the *.bi for a structure I am working on or the source of a function I want to call
If you need to look at different files, opening (as Paul writes above) multiple instances and Alt Tab switching is the best option.

If you need to look at routines or structures in the same source, it becomes more complicated. What I do is place a read-only control in the upper right corner. Select a structure, or, in the example below, some lines of a WinMain, then hit Ctrl F12, and there is that sticky little extra window. The art is, as always, to make intelligent use of the available monitor space...Image
SARG
Posts: 1764
Joined: May 27, 2005 7:15
Location: FRANCE

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by SARG »

@wally
Try notepad++. You can clone the file in another view (but same main window) so each modification made appears on both views.
But you can't move the child windows everywhere on the screen. And highlighting is minimal.

The better feature I often use is comparison of files.

Image
dodicat
Posts: 7983
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by dodicat »

wally
You now have a spare drop down (in all ides which have one) which can be free to float around your desktop.
I am sure a good use for it will be found.

Code: Select all


#include "crt.bi"
Type V2
      As Long x,y
End Type

Type Tab 
      As Long x,y,w,h
      As String caption
      Declare  Sub Draw(As Ulong,As Ulong)
      Declare Function in(As Long,As Long) As Long
End Type

Type ltab 
      As Tab m               'main uppermost
      As Tab t(Any)          'the sub tabs
      As Long exflag        'expand flag
      As Long subflag(Any)   'do something at each sub tab 
      Declare Sub expand() 'drop the sub tabs
      Declare Sub checkmouse(As Long,As Long,As Long)'contract the sub tabs when not in use
End Type

Sub tab.draw(bc As Ulong,ic As Ulong)'bc border colour, ic fill colour
      Line(x,y)-(x+w,y+h),ic,bf
      Line(x,y)-(x+w,y+h),bc,b
      Var L=Len(caption)*8
      Var spx=(x+w/2-L/2),spy=(y+h/2-4)
      ..draw String(spx,spy),caption,0
End Sub

Sub ltab.expand 'drop the sub tabs
      For z As Long=Lbound(t) To Ubound(t)
            t(z).draw(Rgb(25,25,25),Rgb(0,200,255))
      Next
End Sub

Function tab.in(mx As Long,my As Long) As Long 
      Return mx>=x And mx<=x+w And my>=y And my<=y+h
End Function

Sub ltab.checkmouse(mx As Long,my As Long,mb As Long=0)
      If this. m.in(mx,my)   Then exflag=1:Return
      For z As Long=Lbound(t) To Ubound(t)
            If this.t(z).in(mx,my) Then exflag=1:Return
      Next z
      exflag=0
End Sub

Sub _line(x1 As Integer,y1 As Integer,x2 As Integer,y2 As Integer,l As Integer,col As Ulong,Byref xp As Integer=0,Byref yp As Integer=0)
      Dim As Integer diffx=x2-x1,diffy=y2-y1,ln=Sqr(diffx*diffx+diffy*diffy)
      'If ln=0 Then ln=1e-6
      Dim As Single nx=diffx/ln,ny=diffy/ln
      xp=x1+l*nx:yp=y1+l*ny
      Line(x1,y1)-(xp,yp),col
End Sub
Sub Bmouse(mx As Integer,my As Integer,sz As Integer)
      Dim As Integer xp,yp
      Dim As Ulong c=Rgb(255,255,255)
      _line(mx,my,mx+sz,my+.8*sz,sz,c,xp,yp)
      _line(xp,yp,mx+sz/2,yp+.03*sz,.4*sz,c,xp,yp)
      Var tx=xp,ty=yp
      _line(mx,my,mx,my+1.2*sz,sz,c,xp,yp)
      _line(xp,yp,mx+sz/2,yp-sz/2,.4*sz,c,xp,yp)
      _line(xp,yp,mx+sz/2,yp+sz/2,sz,c,xp,yp)
      _line(xp,yp,xp+sz/2,yp-.4*sz,.2*sz,c,xp,yp)
      _line(xp,yp,tx,ty,.95*sz,c,xp,yp)
      Paint(mx+.1*sz,my+.2*sz),c,c
End Sub

Sub drawstring(xpos As Long,ypos As Long,text As String,colour As Ulong,size As Single,im As Any Pointer=0)
      Type D2
            As long x,y
            As Ulong col
      End Type
      Static As d2 cpt(),XY()
      Static As Long runflag
      If runflag=0 Then   
            Redim  XY(128,127)
            Redim cpt(1 To 64*2)
            Screen 8
            width 640\8,200\16
            Dim As Ulong Pointer img
            Dim count As Long
            For ch As Long=1 To 127
                  img=Imagecreate(640,200)
                  Draw String img,(1,1),Chr(ch)
                  For x As Long=1 To 8 
                        For y As Long=1 To 16
                              If Point(x,y,img)<>0 Then
                                    count=count+1
                                    XY(count,ch)=Type<D2>(x,y)
                              End If
                        Next y
                  Next x
                  count=0
                  Imagedestroy img
            Next ch
            runflag=1
      End If
      If size=0 Then Exit Sub
      Dim As D2 np,t
      #macro Scale(p1,p2,d)
      np.col=p2.col
      np.x=d*(p2.x-p1.x)+p1.x
      np.y=d*(p2.y-p1.y)+p1.y
      #endmacro
      
      Dim As D2 c=Type<D2>(xpos,ypos)
      Dim As Long dx=xpos,dy=ypos
      For z6 As Long=1 To Len(text)
            Var asci=text[z6-1]
            For _x1 As Long=1 To 64*2
                  t=Type<D2>(XY(_x1,asci).x+dx,XY(_x1,asci).y+dy,colour)         
                  Scale(c,t,size)
                  cpt(_x1)=np
                  
                  If XY(_x1,asci).x<>0 Then
                        If Abs(size)>1 Then
                              Line im,(cpt(_x1).x-size/2,cpt(_x1).y-size/2)-(cpt(_x1).x+size/2,cpt(_x1).y+size/2),cpt(_x1).col,bf
                        Else
                              Pset im,(cpt(_x1).x,cpt(_x1).y),cpt(_x1).col
                        End If
                  End If
            Next _x1
            dx=dx+8
      Next z6
End Sub

Sub initfont Constructor 'automatic loader
      drawstring(0,0,"",0,0)
      Screen 0
End Sub

Screen 17,32
Dim As ltab A

Redim a.t(1 To 8) 

Redim A.subflag(Lbound(A.t) To Ubound(A.t))
With A
      .m.x=150
      .m.y=0
      .m.w=300
      .m.h=25
      .m.caption="Command line options"
      For z As Long=Lbound(A.t) To Ubound(A.t)
            With .t(z)
                  .x=150
                  .y=25+(z-1)*25
                  .w=300
                  .h=25
                  Select Case z
                  Case 1:.caption="Windows console"
                  Case 2:.caption="Windows gui"
                  Case 3:.caption="Windows dll"
                  Case 4:.caption="Static library"
                  Case 5:.caption="Gcc backend"
                  Case 6:.caption="64 bit gas"
                  Case 7:.caption="Optimised gcc backend"
                  End Select
                  If z=Ubound(A.t) Then .caption="== I don't need you anymore =="
            End With
      Next z
End With

Dim As v2 p(1 To  1023)
For n As Integer=Lbound(p) To Ubound(p)
      Read p(n).x
Next n
For n As Integer=Lbound(p) To Ubound(p)
      Read p(n).y
Next n


#macro border(z)
Line(A.t(z).x,A.t(z).y)-(A.t(z).x+A.t(z).w,A.t(z).y+A.t(z).h),Rgb(255,125,0),b
#endmacro

Dim As Integer mx,my,mb,flag
Dim As Long st
Dim As String message
dim as single ctr=1
Windowtitle "Any ide"
setmouse 0,0,0
Do
      st=0
      mx=p(ctr).x
      my=p(ctr).y
      ctr+=.25
      Select Case Int(ctr)
      Case 69 :message="#cmdline "+ Chr(34)+"-s console"+Chr(34)
      Case 201:message="#cmdline "+ Chr(34)+"-s gui"+Chr(34)
      Case 333:message="#cmdline "+ Chr(34)+"-dll"+Chr(34)
      Case 465:message="#cmdline "+ Chr(34)+"-lib"+Chr(34)
      Case 597:message="#cmdline "+ Chr(34)+"-gen gcc"+Chr(34)
      Case 729:message="#cmdline "+ Chr(34)+"-gen gas64"+Chr(34)
      Case 862:message="#cmdline "+ Chr(34)+"-gen gcc -Wc -O3"+Chr(34)
      Case 925
            Locate 19
            drawstring(30,350,"Done, press a key to end . . .",rgb(200,0,0),2)
            Sleep
            End
      End Select
      
      Select Case Int(ctr)
      Case 28,128,260,392,524,656,788
            A.exflag=1
            _beep (3000,10)
            ctr+=1
            st=200
            mb=1
      Case 69,201,333,465,597,729,862
            mb=0
            _beep (3000,10)
            ctr+=1
            st=200
      End Select
      
      If ctr>Ubound(p) Then Exit Do
      Screenlock
      Cls
      drawstring(30,300,message,Rgb(100,100,100),2)
      A.m.draw(Rgb(25,25,25),Rgb(200,200,200))
      If A.m.in(mx,my) And mb=1  Then a.exflag=1
      If A.exflag Then A.expand: A.checkmouse(mx,my,mb)
      
      For z As Long=Lbound(A.t) To Ubound(A.t)
            If z>Ubound(A.t) Then Exit For
            If A.t(z).in(mx,my)  And A.exflag  Then border(z)
            Redim A.subflag(Lbound(A.subflag) To Ubound(A.subflag))
            A.subflag(z)=1
      Next z
       bmouse(p(ctr).x,p(ctr).y,15)
      Screenunlock
      flag=mb
      Sleep 1+st
Loop Until Inkey=Chr(255)+"k"



X_values:

Data _
590,585,579,573,566,558,549,540,531,521,511,500,489,478,467,456, _
444,433,422,411,400,389,378,368,358,349,340,331,323,316,310,304, _
299,299,295,291,287,283,280,277,274,272,270,268,266,265,264,263, _
263,263,263,263,264,265,267,268,270,272,275,277,280,284,287,291, _
296,300,300,305,311,319,327,336,346,356,367,378,390,403,415,428, _
441,453,466,479,491,503,515,526,537,547,556,564,572,579,584,589, _
592,594,595,595,594,592,589,585,579,573,565,557,548,538,527,517, _
505,493,481,469,456,443,431,418,406,393,381,370,358,348,338,328, _
320,312,305,299,299,294,289,284,280,276,273,270,267,264,262,259, _
257,256,254,253,252,251,250,249,249,248,248,248,248,248,248,248, _
248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, _
249,249,250,250,251,252,253,255,256,258,260,262,265,267,270,274, _
277,281,285,290,295,300,300,306,313,321,329,339,349,360,371,382, _
394,407,419,432,444,457,470,482,494,506,518,529,539,549,558,566, _
574,580,586,590,593,595,596,596,595,593,590,586,580,574,566,558, _
549,539,529,518,506,494,482,470,457,444,432,419,407,394,382,371, _
359,349,339,329,321,313,306,300,300,295,290,285,281,277,274,271, _
268,265,263,260,258,257,255,254,253,252,251,250,250,250,249,249, _
249,249,249,249,249,249,249,249,249,249,249,249,249,249,249,249, _
249,249,249,249,249,249,250,250,251,252,253,254,256,258,259,262, _
264,267,270,273,276,280,284,289,294,299,299,305,312,320,329,338, _
348,359,370,382,394,406,419,432,445,457,470,483,495,507,519,530, _
540,550,559,568,575,582,587,592,595,597,598,598,597,595,592,588, _
582,576,568,560,551,541,531,520,508,496,484,472,459,446,433,421, _
408,396,384,372,361,350,340,331,322,314,307,301,301,296,291,286, _
282,278,274,271,268,265,263,260,258,256,255,253,252,251,250,249, _
249,248,248,248,247,247,247,247,247,247,247,247,247,247,247,247, _
247,247,247,247,247,247,247,248,248,248,249,250,251,252,253,254, _
256,258,260,262,264,267,270,274,277,281,285,290,295,300,300,306, _
313,321,329,339,349,359,371,382,394,406,419,431,444,457,469,482, _
494,505,517,528,538,548,557,565,573,579,585,589,592,594,595,595, _
594,592,589,585,579,573,566,557,548,539,528,517,506,494,482,470, _
457,445,432,420,407,395,383,371,360,350,340,330,322,314,307,301, _
301,296,291,286,282,278,275,271,268,265,263,261,259,257,255,254, _
252,251,250,250,249,248,248,248,247,247,247,247,247,247,247,247, _
247,247,247,247,247,247,247,247,247,247,247,247,247,248,248,249, _
250,251,252,253,255,257,259,261,263,266,269,272,276,280,284,289, _
294,299,299,305,312,320,329,338,348,359,370,382,394,407,419,432, _
445,458,470,483,495,507,519,530,540,550,559,568,575,582,587,592, _
595,597,598,598,597,595,592,588,582,576,568,560,551,541,531,520, _
508,496,484,472,459,446,434,421,408,396,384,372,361,350,340,331, _
322,314,307,301,301,296,291,286,282,278,274,271,267,265,262,260, _
257,256,254,252,251,250,249,248,247,247,246,246,246,245,245,245, _
245,245,245,245,245,245,245,245,245,245,245,245,245,245,246,246, _
246,247,248,248,249,250,252,253,255,257,259,261,264,267,270,273, _
277,281,285,290,295,300,300,306,313,321,330,339,349,360,371,383, _
395,407,420,432,445,458,470,483,495,507,518,529,540,550,559,567, _
574,581,587,591,594,596,597,597,596,594,591,587,581,575,568,559, _
550,541,530,519,508,496,484,472,459,447,434,421,409,397,385,373, _
362,351,341,332,323,315,308,302,302,297,292,287,283,278,275,271, _
268,265,262,260,258,256,254,252,251,249,248,247,246,246,245,245, _
244,244,244,243,243,243,243,243,243,243,243,243,243,243,243,243, _
243,243,243,244,244,245,245,246,247,248,250,251,253,255,257,259, _
262,265,268,271,275,279,283,288,293,298,298,304,311,319,327,337, _
347,358,369,380,392,405,417,430,442,455,468,480,492,504,515,526, _
537,547,556,564,571,578,583,588,591,593,594,594,593,591,588,584, _
579,572,565,557,548,538,528,517,506,494,482,470,458,445,433,420, _
408,396,384,372,361,351,341,331,323,315,308,302,302,297,292,287, _
283,279,275,271,268,265,262,260,258,256,254,252,251,249,248,247, _
246,246,245,245,244,244,244,243,243,243,243,243,243,243,243,243, _
243,243,243,243,243,244,244,244,245,246,246,247,249,250,251,253, _
255,257,259,261,264,267,270,273,277,281,285,290,295,300,300,306, _
312,319,327,335,344,353,363,373,383,393,404,415,426,437,448,459, _
470,481,492,502,512,522,532,541,549,558,565,572,578,584,589


Y_values:

Data _
89,88,86,84,82,80,77,74,72,69,66,63,59,56,53,49, _
46,43,40,36,33,30,27,24,22,19,17,14,12,11,9,8, _
7,7,6,6,5,5,5,5,5,6,6,7,8,8,9,10, _
11,13,14,15,17,18,20,21,23,24,26,27,29,31,32,34, _
35,37,37,39,41,43,45,47,50,52,55,58,61,64,67,70, _
73,76,79,82,85,87,90,92,95,97,99,100,102,103,104,105, _
105,105,105,105,104,103,102,100,97,95,92,89,85,82,78,74, _
70,66,61,57,53,49,44,40,36,32,29,25,22,19,16,13, _
11,9,8,7,7,6,6,6,6,7,8,9,10,12,13,15, _
17,19,21,23,26,28,30,33,35,38,40,42,44,46,48,50, _
52,54,55,56,57,57,58,58,59,59,60,60,60,60,60,60, _
60,60,59,59,59,58,58,58,58,57,57,57,57,57,57,57, _
57,58,58,59,59,60,60,61,62,63,65,67,69,71,73,75, _
77,80,82,84,87,89,92,94,96,98,100,102,104,106,107,108, _
109,110,111,111,111,111,110,110,109,107,105,103,100,98,94,91, _
87,83,79,75,70,66,61,57,52,48,43,39,35,31,27,23, _
20,17,14,12,10,8,7,6,6,6,6,6,7,8,10,11, _
13,16,18,21,23,26,29,32,36,39,42,45,49,52,55,58, _
61,64,67,69,72,74,76,78,79,79,80,81,82,83,83,84, _
84,85,85,85,85,85,85,85,85,85,85,85,85,84,84,84, _
84,84,84,84,84,84,85,85,85,86,86,87,88,89,90,91, _
93,94,96,98,99,101,103,105,106,108,110,112,113,115,116,117, _
119,120,120,121,121,122,122,121,121,120,119,119,118,116,113,110, _
107,104,100,96,92,87,83,78,73,68,63,58,53,49,44,39, _
35,31,27,23,19,16,13,11,9,8,6,6,6,6,7,7, _
9,11,13,15,18,21,24,28,32,36,40,44,48,52,57,61, _
65,70,74,78,82,86,89,93,96,98,101,103,105,105,107,108, _
109,110,111,112,112,113,113,113,113,113,113,113,113,112,112,112, _
112,111,111,110,110,110,110,109,109,109,109,109,110,110,110,110, _
111,112,113,114,115,116,117,119,120,121,123,124,125,127,128,129, _
130,131,132,133,134,134,135,135,135,135,134,134,133,131,130,130, _
128,126,123,120,116,112,108,103,99,94,89,83,78,73,67,62, _
56,51,46,41,36,32,27,24,20,17,14,11,9,8,7,7, _
7,7,8,10,12,14,17,20,24,28,32,37,42,47,52,57, _
63,68,74,79,85,90,95,100,105,110,114,119,122,126,129,132, _
134,134,136,138,139,140,141,142,143,143,143,143,143,143,143,143, _
142,142,141,141,140,140,139,138,138,137,137,136,136,135,135,135, _
135,135,135,135,136,136,137,137,138,139,140,141,142,142,143,144, _
145,146,147,148,148,149,150,150,150,150,150,150,149,149,148,147, _
145,144,142,142,140,137,134,130,126,121,117,111,106,101,95,89, _
83,77,71,65,59,54,48,43,37,33,28,24,20,16,13,11, _
9,8,7,7,7,8,9,11,14,17,20,24,29,34,39,45, _
51,57,63,70,76,83,89,96,103,109,115,121,127,133,138,143, _
148,152,156,159,162,162,164,166,168,169,171,172,172,173,173,173, _
173,173,173,173,172,172,171,170,169,169,168,167,166,165,164,164, _
163,162,162,161,161,161,161,161,161,161,162,162,162,163,163,164, _
165,165,166,166,167,167,168,168,168,169,169,169,168,168,168,167, _
166,165,164,162,160,158,156,156,153,150,146,142,137,132,127,121, _
115,109,102,96,89,82,76,69,63,56,50,44,39,33,28,23, _
19,16,12,10,8,6,6,6,6,7,9,11,14,18,22,27, _
33,39,45,52,58,66,73,81,88,96,104,112,119,127,134,142, _
149,155,162,167,173,178,182,186,189,189,192,194,196,198,199,200, _
201,202,202,202,202,202,202,201,201,200,199,198,197,196,195,194, _
193,192,191,190,189,188,187,186,186,185,185,185,184,184,184,184, _
183,183,183,183,183,183,183,183,182,182,182,181,181,180,180,179, _
178,177,176,174,173,171,169,167,165,163,160,160,157,153,149,145, _
139,134,128,122,116,109,103,96,89,82,76,69,62,56,50,43, _
38,32,27,23,19,15,12,10,8,7,7,7,7,8,11,14, _
17,22,27,33,39,46,53,60,68,76,85,94,102,111,120,129, _
137,146,154,162,170,178,185,192,198,203,208,212,216,216,219,222, _
224,226,227,229,230,230,231,231,231,231,230,230,229,228,227,226, _
225,224,222,221,220,219,217,216,215,214,213,212,212,211,211,211, _
210,209,209,208,207,207,206,205,204,203,202,201,201,200,199,198, _
197,196,195,194,193,193,192,191,190,190,189,188,188,187,187


 
wallyg
Posts: 270
Joined: May 08, 2009 7:08
Location: Tucson Arizona

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by wallyg »

Hi Paul,

I have tried to bring up two copies of WinFBE. The problem I have is that it comes up as FullScreen. Pressing the shrink window icon in the upper right corner makes the window only about 20 pixels smaller. I tried the Icon in the upper right corner of the Window title line and the "size" and "move" menu items are greyed out and do not respond to clicking on them. I then tried moving the mouse pointer to all edges of the window and cannot get the size of the window to change. So multiple copies of WinFBE does not seem like a possibility. Unless I have missed something in setting the sizes.

In the early 90s when I was visiting our office in Sydney I used an editor on a SUN system that used a version of Unix/Linux that had an editor that allowed multiple windows to be opened on the same screen that could be moved and sized. If the same file was open on more than one window, changes in one were reflected in the other copy.

My main concern is if running multiple copies at some point the same file appears in two different copies or WinFBE, changes to one will get lost because of the second copy being changed and saved without the modifications to the other. That is why I asked about the same program running multiple windows, then only one copy of any file is ever open. Also what happens if I add a routine to the project in one, then close that instance followed by a close of the other instance. I suspect that the system will lose the information on the changes originally saved. Sounds like a very dangerous situation. There just has to be one program that controls all the windows to avoid losing changes.

My mode of development is lots and lots of small files containing either structures that are intimately connected or one or two routines per file. And lots and lots and lots of #Include statements. So in WinFBE, I might have a large number of tabs that extend almost forever and the Explorer window has pages and pages of files (hundreds and hundreds) listed.

Thanks for the suggestion
Wally
wallyg
Posts: 270
Joined: May 08, 2009 7:08
Location: Tucson Arizona

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by wallyg »

Speaking of changes to WinFBE.

I was wondering if, in the Explorer window, it was possible to create additional subsections so we have more than the 5 listed (Main, Resource, Header, Module, and Normal). It would be nice to be able to group sets of routines and only open one or two groups so the files in that group fit on the screen. I currently have the Normal section with over 200 routines, and in order to skip to a different file, I have to page and page and page to get it. And the tabs over the text editor just get way too long to be useful.

Also in the Add to Project menu item. By default, any *.bi file gets placed in the Header section (YES Thank you). However *.bas get placed in the Module section. Any chance they could be placed in the Normal section (or some other section) instead? I use GladeToBac which will take a Glade-designed UI and convert it to one event procedure to a file for every event and an "#INCLUDE ONCE filename" for every event in the GladeToBac data file which has to be #INCLUDEd at a certain point in the main program so all the GTK names and types and ... are already defined. So putting the events in the Module section causes them to be compiled before the GladeToBac data section. My current project has 240 events. Since I cannot move multiple items in one operation from Module to Normal, I have to move each one, one at a time. Hmmm maybe allow multiple files moved at the same time?

Thanks for your consideration

Wally
PaulSquires
Posts: 1002
Joined: Jul 14, 2005 23:41

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by PaulSquires »

wallyg wrote:...in the Explorer window, it was possible to create additional subsections so we have more than the 5 listed (Main, Resource, Header, Module, and Normal).
Thanks Wally, I still have this feature request in my log from when you mentioned it some time ago. I am pretty sure that I can have "user defined explorer nodes" implemented for the upcoming version.
*.bas get placed in the Module section. Any chance they could be placed in the Normal section (or some other section) instead?
My thought process here was that FB users compile *.bas files to object files and then link them to the *.bas Main designated file. That's why .bas files go in the Module section because WinFBE will shell to FBC to compile them to obj files. Maybe that's not the way most FB users structure their programs? Personally, I have one Main .bas and #include the files I need rather than use separate object files. Computers are fast enough these days that using this approach is acceptable. Granted, if you are compiling say, for example, the FB compiler source code, then you need to have the .bas files designated as Modules so that they compile as object files. Maybe I should default .bas to be "Normal" files and then let the user decide if they should be "Modules".
Since I cannot move multiple items in one operation from Module to Normal, I have to move each one, one at a time. Hmmm maybe allow multiple files moved at the same time?
Yes, or at a minimum, allow multiple files to be selected and then right-click popup menu and the resulting action of, say, changing the File Type from Module to Normal will then act upon all of the selected files.
Thanks for your consideration
You're welcome my friend, thanks for the suggestions.
jj2007
Posts: 2326
Joined: Oct 23, 2016 15:28
Location: Roma, Italia
Contact:

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by jj2007 »

wallyg wrote:My main concern is if running multiple copies at some point the same file appears in two different copies or WinFBE, changes to one will get lost because of the second copy being changed and saved without the modifications to the other. That is why I asked about the same program running multiple windows, then only one copy of any file is ever open. Also what happens if I add a routine to the project in one, then close that instance followed by a close of the other instance. I suspect that the system will lose the information on the changes originally saved. Sounds like a very dangerous situation.
Indeed, that's why I suggested a read-only control for displaying e.g. a structure in the same source. It might also be a good idea to prevent the editor from opening another instance of the same file. At least, you could display a box saying "Are you sure?", to protect the n00b from doing dangerous things.
wallyg
Posts: 270
Joined: May 08, 2009 7:08
Location: Tucson Arizona

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by wallyg »

A simple addition that would be nice is that on the Tool Bar that is at the top of the window, you have an Icon for SAVE of the current file. Would it be possible to add an additional Icon for File Menu's submenu SAVE ALL?

As I have mentioned before I use GLADE all the time. It does have one nice feature I was wondering if it was possible to add to WinFBE. Every XXX seconds (user settable - default is 5 seconds) if the text has been modified since the last Save/autoSave the System automatically saves the current source code to a file with the ~ appended to the suffix. When Glade starts up it checks to see if the *.*~ file exists, if it does, it checks the date on the ~file versus the non~file and if the ~file is newer asks the user if they want to use the *.* file verses the *.*~ file.

Respectfully submitted
Wally
Jeromyal
Posts: 2
Joined: Jan 22, 2013 19:29

Re: WinFBE Editor and FreeBASIC Compiler (All-in-One Package) (V2.2.0 March 26, 2021)

Post by Jeromyal »

If there were a WinFBE user tool parameter to send the current tabs text data, someone could just write a tool to open a window of that code that could be dragged to other monitors for viewing.
Post Reply