GUI library for Windows \ Linux (window9)
Re: FBGUI library for Windows 2
VANYA
Thank you for your prompt response. It's much clearer to me now.
Thank you for your prompt response. It's much clearer to me now.
Re: FBGUI library for Windows 2
Update Library.
Applies only to the version for the Linux platform. In short, added printer functionality and improved window resizing on GTK3.
Added functions:
Startprinter
Stopprinter
Framepage
Printtext
Printimage
Colorprinter
Fontprinter
Getrealsize
Getfullsize
Getlenstring
Getcountdoc
Pagestart
Pageend
Textprinter
Hwndprinter
GetDesktopWindow
Changes:
Main window on GTK3 now behave the same as on GTK2 when resized (thanks to Xusinboy Bekchanov for the tip).
Applies only to the version for the Linux platform. In short, added printer functionality and improved window resizing on GTK3.
Added functions:
Startprinter
Stopprinter
Framepage
Printtext
Printimage
Colorprinter
Fontprinter
Getrealsize
Getfullsize
Getlenstring
Getcountdoc
Pagestart
Pageend
Textprinter
Hwndprinter
GetDesktopWindow
Changes:
Main window on GTK3 now behave the same as on GTK2 when resized (thanks to Xusinboy Bekchanov for the tip).
Re: FBGUI library for Windows 2
Hi Vanya ,
Thank you for the new version , its' a pleasure to work with it !
thanks to RNBW for the work++ of translation .
Simply reading the gtk3.bi file is FFFFFFFFF !!! ... courageous coders ... you are , guys .
I have adapted to Linux Xubuntu at least one code now ! And I have just uploaded it to the forum : CompileAndRunLin4 ;
If you can report how it works for you , thanks .
In the execution of different codes , i have the impression that gtk send more warnings or 'critical' messages ( and crashes ! ) than Windows .
In the chm , i read : ClearClipBoard and FreeGpBitmap but they are missing .
If i try SetClipBoardText("") gtk crashes but with a space SetClipBoardText("") it's ok .
Can you verify if the height of a window OpenWindow(......200) gives the same size in Window and Linux , for me the diff is 15 pixels .
I have had a problem with GetTopIndexListBox with a lines of text long enough to trigger the auto Horizontal scroll bar , the text moves
horizontally when the bin is executed . I found a solution on internet ! for that , the 'column' parameter should be NULL .
greetings !
the code below works for me :
Thank you for the new version , its' a pleasure to work with it !
thanks to RNBW for the work++ of translation .
Simply reading the gtk3.bi file is FFFFFFFFF !!! ... courageous coders ... you are , guys .
I have adapted to Linux Xubuntu at least one code now ! And I have just uploaded it to the forum : CompileAndRunLin4 ;
If you can report how it works for you , thanks .
In the execution of different codes , i have the impression that gtk send more warnings or 'critical' messages ( and crashes ! ) than Windows .
In the chm , i read : ClearClipBoard and FreeGpBitmap but they are missing .
If i try SetClipBoardText("") gtk crashes but with a space SetClipBoardText("") it's ok .
Can you verify if the height of a window OpenWindow(......200) gives the same size in Window and Linux , for me the diff is 15 pixels .
I have had a problem with GetTopIndexListBox with a lines of text long enough to trigger the auto Horizontal scroll bar , the text moves
horizontally when the bin is executed . I found a solution on internet ! for that , the 'column' parameter should be NULL .
greetings !
the code below works for me :
Code: Select all
#Include "window9.bi"
OpenWindow("",10,10,400,150)
Function GetTopIndexListBoxA (iGadget as long) as Long
dim as GtkWidget ptr listbox = GadgetId(iGadget)
dim as GtkTreePath ptr path
dim as any ptr column
dim as Gint cell_x , cell_y
gtk_tree_view_get_path_at_pos (cast(any ptr ,listbox), 1,1, @path, @column, @cell_x,@cell_y)
'gtk_tree_view_scroll_to_cell(cast(any ptr ,listbox) , path , Column , FALSE,0,0) ' align rows on the upper edge
gtk_tree_view_scroll_to_cell(cast(any ptr ,listbox) , path , NULL , FALSE,0,0) ' align rows on the upper edge
function = *gtk_tree_path_get_indices( path )
gtk_tree_path_free(path)
End Function
ListBoxGadget(1,10,10,100,80)
For a As Integer=1000 To 1400
AddListBoxItem(1,Str(a) + "00000000000000000000000000000000000000000000000000000000000000")
Next
Do
Var event=WaitEvent
Select Case event
Case EventClose
End
Case EventGadget
If EventNumber=1 Then
? GetTopIndexListBoxA(1)
endif
End Select
Loop
Re: FBGUI library for Windows 2
Hi enform!
This function has been renamed to Free_ImageA: viewtopic.php?p=283352#p283352FreeGpBitmap
On Windows 10, the window size may not match: viewtopic.php?p=278750#p278750Can you verify if the height of a window OpenWindow(......200) gives the same size in Window and Linux , for me the diff is 15 pixels .
Fixed. The library has been updated.ClearClipBoard ... GetTopIndexListBox ... SetClipBoardText ...
The dimensions of buttongadget, textgadget and some others should preferably be at least 25 (or better than 30) in height, otherwise there will be such an effect:I have adapted to Linux Xubuntu at least one code now ! And I have just uploaded it to the forum : CompileAndRunLin4 ;
If you can report how it works for you , thanks .
Re: FBGUI library for windows 2
------------------------petan wrote:Another.
Matrix values are printed Ok in listbox, which is scrollable Ok.
Now I need scan fo keypress F1, ( which opens second window with menu - sort matrix by XY column; by this choice is matrix completely resorted and again called window with listbox and printed rearranged all values of matrix).Assuming here is needed some loop for key scan.Window with listbox will be keeped alive.Do
ev=WaitEvent() 'wait key button press
'Loop Until ev=EventClose
Loop Until ev=EventKeyDown
'Loop Until ev=EventClose Or ev=EventKey
'Loop Until (ev=EventClose Or ev=EventKeyDown)
'Loop Until (ev=EventClose Or ev=EventKeyDown Or ev=EventGadget)
'Loop Until (ev=EventClose Or ev=EventKeyDown Or ev=EventLBDOWN Or ev=EventRBDOWN)PeteCode: Select all
Do ev=WaitEvent() 'wait key press ' ?? recognize F1 keypress Loop REM 'Loop Until (ev=EventClose Or ev=EventKeyDown) does not work for me REM 'Loop Until ev=EventGadget this close window
I had the same issue and read all this stuff from here...I found my solution....
I am in windows 7, we need to test it in linus window9.bi say run in linux too I dont know,
I was searching in winapi and winwos9i help I could do it, is running ok for example I have a ListboxGadget
I have several modules...i am using common shared..
Common Shared As hwnd hwndC, hwndListBox
hwndC = OpenWindow("RollMusic Control ver 0.4.3.2",10,10,ancho*3/4,alto*4/5,,WS_EX_ACCEPTFILES )
hwndListBox= ListBoxGadget(3,10,10,240,650,LBS_EXTENDEDSEL Or LBS_DISABLENOSCROLL Or WS_VSCROLL Or WS_HSCROLL Or LBS_WANTKEYBOARDINPUT )
The important thing is to add th flag LBS_WANTKEYBOARDINPUT in my case that is in the help
and then the help talk about WM_VKEYTOITEM , with the flag LBS_WANTKEYBOARDINPUT you can receive WM_VKEYTOITEM , that flag only say "you receive a keybord event" and then I select
If EventKEY = VK_DELETE Then ....and put my code for that event,.,,,
but all this occurs inside a gadget event, you have 4 levels to detect
eventgadget ---> eventnumber()--->WM_VKEYTOITEM----> EventKEY
GADGET --> NUMBER OF GADGET --> WM_VKKEYTOITEM ----> EventKEy as VK_DELETE or any other....
Structure of the code:.....
Common Shared As hwnd hwndC, hwndListBox
COMMON Shared As Long eventC
hwndC = OpenWindow("RollMusic Control ver 0.4.3.2",10,10,ancho*3/4,alto*4/5,,WS_EX_ACCEPTFILES )
hwndListBox= ListBoxGadget(3,10,10,240,650,LBS_EXTENDEDSEL Or LBS_DISABLENOSCROLL Or WS_VSCROLL Or WS_HSCROLL Or LBS_WANTKEYBOARDINPUT )
Do
eventC=WaitEvent()
Select Case EVENTC
Case EventMenu
Select case EventNumber
Case 1010
Case 1020
Case 1040
Case 1050
Case 1060
End Select
Case eventgadget
If eventnumber()=3 Then ''' 3 from ListBoxGadget(3,<--3 is the number of the listbox gadget
.....
item=GetListBoxText(3,GetItemListBox(3)) '''' 3 from ListBoxGadget(3,<--
.....
If WM_VKEYTOITEM Then ' enabled with the flag LBS_WANTKEYBOARDINPUT
Print #1,"---------->>> PRESS KEYBOARDa "
If EventKEY = VK_DELETE Then
DeleteListBoxItem(3,GetItemListBox(3)) '''' 3 from ListBoxGadget(3, <---
endif
else
' here for default take the click mouse event....
endif
end if
Case EventClose
Close:End 0
End Select
Loop
----
And All run ok I can detect keyboards in a gadget easily with windows9.bi
WM_VKEYTOITEM and VK_DELETE and other are all in HELP of windows9.bi and in windows API searching
with google..
Greetings
jose
Re: FBGUI library for Windows 2
Could you build the dynamic library? I only see static library.
Re: FBGUI library for Windows 2
I dabbled somehow and created a dynamic library for linux 64-bit. For Windows did not try to create.miilvyxg wrote:Could you build the dynamic library? I only see static library.
If you want, you can try a dynamic library with an example and header files for the C ++ language. The version of window9 in the archive is not the newest, it was just for testing:
test window9+language C++
Re: FBGUI library for Windows 2
Your library could be used from C++? Does the C++ binding complete or only as a proof of concept?VANYA wrote:I dabbled somehow and created a dynamic library for linux 64-bit. For Windows did not try to create.miilvyxg wrote:Could you build the dynamic library? I only see static library.
If you want, you can try a dynamic library with an example and header files for the C ++ language. The version of window9 in the archive is not the newest, it was just for testing:
test window9+language C++
If it's a complete binding then with swig I could create binding for many languages.
Re: FBGUI library for Windows 2
I haven't done full testing, but in principle almost all functions should work in C ++. Again I write: the library being built is not the newest version of the library. In addition, it will not work so easily to translate into other programming languages, since the library actively uses the freebasic type "STRING". For C ++, I wrote a similar analogue (file string.h).j8w344c6 wrote:Your library could be used from C++? Does the C++ binding complete or only as a proof of concept?VANYA wrote:I dabbled somehow and created a dynamic library for linux 64-bit. For Windows did not try to create.miilvyxg wrote:Could you build the dynamic library? I only see static library.
If you want, you can try a dynamic library with an example and header files for the C ++ language. The version of window9 in the archive is not the newest, it was just for testing:
test window9+language C++
If it's a complete binding then with swig I could create binding for many languages.
Re: FBGUI library for Windows 2
It's already enough to generate binding with swig my friend. I will try.VANYA wrote:I haven't done full testing, but in principle almost all functions should work in C ++. Again I write: the library being built is not the newest version of the library. In addition, it will not work so easily to translate into other programming languages, since the library actively uses the freebasic type "STRING". For C ++, I wrote a similar analogue (file string.h).j8w344c6 wrote:Your library could be used from C++? Does the C++ binding complete or only as a proof of concept?VANYA wrote:
I dabbled somehow and created a dynamic library for linux 64-bit. For Windows did not try to create.
If you want, you can try a dynamic library with an example and header files for the C ++ language. The version of window9 in the archive is not the newest, it was just for testing:
test window9+language C++
If it's a complete binding then with swig I could create binding for many languages.
Re: FBGUI library for Windows 2
Generating binding for this library using swig is pretty straight forward. But I have a few questions to ask you.
What does these operators mean?
operator[]
operator==
operator!=
operator=
operator+=
operator+
I have real trouble understanding what the last three operators do. Thank you.
What does these operators mean?
operator[]
operator==
operator!=
operator=
operator+=
operator+
I have real trouble understanding what the last three operators do. Thank you.
Re: FBGUI library for Windows 2
this C++ operators overloading.j8w344c6 wrote:Generating binding for this library using swig is pretty straight forward. But I have a few questions to ask you.
What does these operators mean?
operator[]
operator==
operator!=
operator=
operator+=
operator+
I have real trouble understanding what the last three operators do. Thank you.
Re: FBGUI library for Windows 2
I know my friend. But what do they do?VANYA wrote:this C++ operators overloading.j8w344c6 wrote:Generating binding for this library using swig is pretty straight forward. But I have a few questions to ask you.
What does these operators mean?
operator[]
operator==
operator!=
operator=
operator+=
operator+
I have real trouble understanding what the last three operators do. Thank you.
operator= is assignment of the current string with the string in argument?
operator+= and operator+, which is append, which is concat?
It's very difficult for someone doesn't know C/C++ to read and understand the code. There is no comments.
Re: FBGUI library for Windows 2
There are C++ reference books for such questions. This forum thread is not for learning the basics of C++.j8w344c6 wrote: I know my friend. But what do they do?
operator= is assignment of the current string with the string in argument?
operator+= and operator+, which is append, which is concat?
It's very difficult for someone doesn't know C/C++ to read and understand the code. There is no comments.
Re: FBGUI library for Windows 2
Wikipedia:
Personally, I never really understood the need of operator overloading. FB supports it as many other languages do, but I never used it once in over 30 years of programming.Operator overloading is syntactic sugar, and is used because it allows programming using notation nearer to the target domain[1] and allows user-defined types a similar level of syntactic support as types built into a language. It is common, for example, in scientific computing, where it allows computing representations of mathematical objects to be manipulated with the same syntax as on paper.