GUI library for Windows \ Linux (window9)

Headers, Bindings, Libraries for use with FreeBASIC, Please include example of use to help ensure they are tested and usable.
Post Reply
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

hi Vanya,
you said ' the popularity of the library is close to zero ' but considering the number of views 92240 , it is not close to zero !

And every weeks your lib is downloaded from sf.net , 36 times this week .
Probably the question is the lack of projects , the number of freewares , etc ,is huge .
And also , window9 is so easy to use , even than PureBasic ... the users don't have questions for you or only time to time ...
Our friend D.J.Peters takes the time to convert it to 64 bits , it is a good sign of interest , for sure .
Yourself , you have built an editor with ... IUP ... ok , it's for Linux too :-)
window9 was the best news ! in 2010-2011 for somebody like me ,beginner looking for a simple and fast language .
Fltk-c is good too , but with +2000 functions to learn ...

A few years ago,i'have uploaded here a little trace-debug code to add as a library . More comfortable to use than 'Print to console' and with more
features : no success , 0 comment . ok . More recently , i'have read on the PowerBasic forum a similar code , not better i think, with less functions : 40 comments for the thread .

Don't give up !

Maybe you can add the English translation of the presentation on sf.net ?
This is the gogole translation :

There are three archives for downloading. LIBFB.zip contains the compiled library files window9 and linkedlist and their header files, as well as a help file and several examples of using Source.zip contains the source libraries and compiled library files, as well as header files. Also two English help files : helpWindow9en.zip contains an English help file, kindly translated by a person who calls himself FXG861 ; Window9HelpEng.zip is another English help file kindly translated by a person who calls himself RNBW .

Greetings
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: FBGUI library for windows 2

Post by srvaldez »

I have a problem when trying to compile viewtopic.php?p=160004#p160004

Code: Select all

Calculator.o:fake:(.text+0x1df): undefined reference to `SetGadgetText@8'
Calculator.o:fake:(.text+0x3e0): undefined reference to `SetGadgetText@8'
FreeBASIC-1.06.0-win32\bin\win32\ld.exe: Calculator.o: bad reloc address 0x1d in section `.text.startup'
linking failed: 'FreeBASIC-1.06.0-win32\bin\win32\ld.exe' terminated with exit code 1
Compilation failed.
the exported symbol in the lib is SetGadgetText@16 and the declare in Window9.bi is

Code: Select all

Declare Function SetGadgetText Alias "SetGadgetText" (ByVal gadget As Integer,ByVal Text As string) As integer
same problem if using FB 1.05
tried both the library as provided by VANYA and that of D.J.Peters
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

@srvaldez It works here tested with my build of libWindow9.

May be you have an old version of Window9.bi in FreeBASIC/inc or libWindow9.a FreeBASIC/lib/win32 or FreeBASIC/lib/win64 ?

Joshy
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: FBGUI library for windows 2

Post by srvaldez »

hello Joshy
compiling to 64-bit works OK but not in 32-bit, I copied the libraries and the bi files from your zip archive a few posts above but I also tried the files from VANYA's distribution with same result
strangely if I modify the Window9 build batch file _build.bat to use gen gcc and use that lib then I get the error

Code: Select all

Cannot export BUTTONGADGET@36: symbol not found
Cannot export LOADFONT@36: symbol not found
Cannot export OpenWindow@36: symbol not found
Cannot export STRINGGADGET@40: symbol not found
Cannot export SetGadgetText@16: symbol not found
but the symbol exported in the lib for SetGadgetText is SetGadgetText@8 whereas before it was SetGadgetText@16
so why is the linker first complaining that it can't find SetGadgetText@8 when indeed the symbol was not there but SetGadgetText@16 was, an now that the symbol SetGadgetText@8 is in the lib it complains that it can't find SetGadgetText@16 ???
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

In case of my build of libWindows9 It works here 32 and 64 bit !
By the way it's _build32.bat and _build64.bat not _build.bat ?

Joshy
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: FBGUI library for windows 2

Post by srvaldez »

yes it works when using -gen gas but not when using -gen gcc but that's OK for now.
it's just that I normally use -gen gcc
[edit] the reason I wanted it for 32-bit is that I wanted to test the executable on Windows 98, it works!
so now I can start and develop a program I promised to a friend that uses Windows 98
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

@srvaldez You are right
I rebuild the 32-bit version with -gen gcc
and I get the same error.
fbc wrote:D:\downloads\Progammierung\FreeBASIC\libWindow9>d:\FreeBASIC\fbc32 -gen gcc Calculator.bas -x Calculator32.exe
Cannot export ButtonGadget@36: symbol not found
Cannot export LoadFont@36: symbol not found
Cannot export OpenWindow@36: symbol not found
Cannot export SETGADGETTEXT@16: symbol not found
Cannot export STRINGGADGET@40: symbol not found
I tryed both with alias "" and without alias ""

Code: Select all

Function ButtonGadget alias "ButtonGadget" (ByVal gadget As Integer, _
                                            ByVal x As Integer,ByVal y As Integer, _
                                            ByVal w As Integer,ByVal h As Integer, _
                                            ByVal stri As String, ByVal par As Integer) As HWND Export
  Var hhh= CreateWindowEx( 0, "Button", stri, WS_VISIBLE Or WS_CHILD Or par, x,y,w,h, Cast(HWND,GETGURRENTAL()), Cast(HMENU,gadget), 0, 0)
  ADDIN9999 (gadget,hhh)
  If GGF()<>0 Then
    SendMessage(hhh,WM_SETFONT,GGF(),0)
  End If
  Return hhh
End Function
Looks like FreeBASIC 32-bit -gen gcc has a bug
In case of a wrong name mangling the message is wrong also
Cannot "export" ButtonGadget@36: symbol not found
makes no sense it must be
Cannot "import" ButtonGadget@36: symbol not found

How ever as a workaround don't use -gen gcc in 32-bit mode.

Joshy
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

enform, thanks for the kind words. Your translation I introduced sf.net

Joshy , I added a link to your project 32 \ 64 bit to the first page of the library description: https://freebasic.net/forum/viewtopic.php?f=14&t=17058 and added a project to sf.net
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

I made a massive upgrade last night.

I removed all alias declarations from functions and subs.
I renamed MessBox in MsgBox
I renamed and added a prefix to all "private" internal stuff also.

for example GGF() is win9GetGadgetFont() now and more meaningful.

Joshy

this old stuff:

Code: Select all

Declare Function GadgetClass(ByVal gadget As HWND) As Long
Declare Sub      GetAcceleratorInfo(ByVal aa As ACCELERATOR ptr)
Declare Function GETGURRENTAL Alias "GETGURRENTAL" () As HWND
Declare Function ADDIN9999 Alias "ADDIN9999" (ByVal gadget As Integer, ByVal hhh As HWND) As Integer
Declare Function GGF() As Integer
Declare Function ColorAdd Alias "ColorAdd" (byval hwnd as HWND,ByVal colorBKD_ as Integer,ByVal colorText_ as Integer ) As Integer
Declare Function GetFbGuiWinProc() As Integer
Declare Function GetfbguiMSG() As Integer 
Declare Sub      SETDCPrint(pHdc As HDC)
Declare Function DSGC(ByVal gadget As HWND,ByVal COLBND As integer,ByVal COLText As Integer,ByVal flag As byte) As byte
Declare Function ERR_(ByVal bk As Integer) As Integer
Declare Function COOLOOR(ByVal bk As Integer, ByVal te As integer) As Integer
declare Sub      MDISUB(ByVal hMDI As HWND)
Is now:

Code: Select all

Declare Function win9GetGadgetClass(ByVal hWin As HWND) As Long
Declare Sub      win9GetAcceleratorInfo(ByVal a As ACCELERATOR ptr)
Declare Function win9GetCurrent() As HWND
Declare Function win9AddNewGadget(ByVal gadget As Integer, ByVal hWin As HWND) As Integer
Declare Function win9GetGadgetFont() As Integer
Declare Function win9AddColor(byval hWin as HWND, ByVal colorBKD_ as Integer, ByVal colorText_ as Integer) As Integer
Declare Function win9GetGuiWinProc() As Integer
Declare Function win9GetGuiMSG() As Integer
Declare Sub      win9SetDCPrint(byval pHdc As HDC)
Declare Function win9SetGadgetColor(ByVal hWin As HWND,ByVal colorBKD_ As integer,ByVal colorText_ As Integer,ByVal flag As byte) As byte
Declare Function win9SetErrorColor(ByVal colorBKD_ As Integer) As Integer
Declare Function win9SetCurrentColors(ByVal colorBKD_ As Integer, ByVal colorText_ As integer) As Integer
Declare Sub      win9SetMDIClient(ByVal hWin As HWND)
srvaldez
Posts: 3379
Joined: Sep 25, 2005 21:54

Re: FBGUI library for windows 2

Post by srvaldez »

thank you :-)
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

D.J.Peters wrote: I renamed MessBox in MsgBox
Compatibility with existing source codes written with window9 will be lost. Can not it be more correct to delete, but simply add an extra declaration?

Something like:

Code: Select all


window9.bi
.....
.....
Declare Function MessBox Alias "MESSBOX" (ByVal Caption As String,ByVal Message As String,ByVal flag As Integer=0) As Integer
Declare Function MSGBOX Alias "MESSBOX" (ByVal Caption As String,ByVal Message As String,ByVal flag As Integer=0) As Integer
....
....
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

I don't know why you will name it MessBox how ever I added a define to solve this tiny problem.
It's -gen gcc compatible now.

Joshy

Code: Select all

#define MessBox MsgBox
Declare Function MsgBox(ByVal Caption As String, ByVal Message As String, ByVal flag As Integer=0) As Integer
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

D.J.Peters wrote:I don't know why you will name it MessBox
messbox = MESSageBOX
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

Joshy ,
Can you provide the 2 versions , old stuff and new one ? We will choose depending of our experience (7 years with w9) ,compatibility
or needs , gas ,gcc ...
Thank you .
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

@enform I created libWindows9 it's in the *.zip file it works for 32 and 64-bit Windows.

link is the same: libWindow9.zip

Joshy
Post Reply