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
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 have no time to test it all self.

Would be great if you can compile all your source code and report the problems if any.

Thank you.
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

@Joshy, if i see well , only 'win9SetGadgetColor.bas' is new as external/user kwd ? why 'win9' ?
I hope i will recompile soon , with a lot of courage ...
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

enform wrote:@Joshy, if i see well , only 'win9SetGadgetColor.bas' is new as external/user kwd ? why 'win9' ?
I hope i will recompile soon , with a lot of courage ...
SetGadgetColor.bas is the exported user command

the prefix win9 means win9SetGadgetColor.bas it's for internal usage

Only new are "FastCRC16.bas"

Joshy

new vs old internal names:

Code: Select all

win9GetAcceleratorInfo GetAcceleratorInfo
win9GetCurrent GETGURRENTAL
win9AddNewGadget ADDIN9999
win9GetGadgetFont GGF
win9AddColor ColorAdd
win9GetGuiWinProc GetFbGuiWinProc
win9GetGuiMSG GetfbguiMSG
win9SetDCPrint SETDCPrint
win9SetGadgetColor DSGC
win9SetErrorColor ERR_
win9SetCurrentColors COOLOOR
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FBGUI library for windows 2

Post by D.J.Peters »

fixed some bugs in:
FindItemComboBox
Grab_imageA
Resize_imageA

changed all:
BYVAL as string to BYREF as string

added x86_64 assembler code to:
fast_copy
fast_crc32

Joshy
RNBW
Posts: 267
Joined: Apr 11, 2015 11:06
Location: UK

Re: FBGUI library for windows 2

Post by RNBW »

Those who have been following my thread in Tips & Tricks for Numeric Entry Into a Textbox may be interested in my first attempt to convert it to use the FBGUI for windows 2 library viewtopic.php?f=7&t=26816&start=60.
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

Hello to all!

I am writing a Linux version of the library. I do not know how much patience I have :) You can try what I have written now. Of course this is only part of the library. The link will be the archive in the archive source files. In the Remark file lists the currently available functions and describes some of the differences from the Windows versions. The library can be compiled using the GTK2 or GTK3 subsystem (settings GTK2 or GTK3 in the file window9.bi __USE_GTK3__). However, I advise GTK2, because the GTK3 subsystem does not give full control over the size of the gadgets. Also, to compile window9, you will need libraries (dev-version): zlib, webkitgtk

link: https://sourceforge.net/projects/guiwin ... p/download
Coolman
Posts: 294
Joined: Nov 05, 2010 15:09

Re: FBGUI library for windows 2

Post by Coolman »

VANYA wrote:Hello to all!

I am writing a Linux version of the library. I do not know how much patience I have :) You can try what I have written now. Of course this is only part of the library. The link will be the archive in the archive source files. In the Remark file lists the currently available functions and describes some of the differences from the Windows versions. The library can be compiled using the GTK2 or GTK3 subsystem (settings GTK2 or GTK3 in the file window9.bi __USE_GTK3__). However, I advise GTK2, because the GTK3 subsystem does not give full control over the size of the gadgets. Also, to compile window9, you will need libraries (dev-version): zlib, webkitgtk

link: https://sourceforge.net/projects/guiwin ... p/download
very good news. if the linux version can keep some compatibility with that for windows. it would be even better.
but why gtk *. did you think about FLTK ? https://www.fltk.org/
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

Coolman wrote: but why gtk *. did you think about FLTK ? https://www.fltk.org/
Probably because GTK is more widespread, better help. More people can help, if some sort of problem.
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

Hi Vanya,

Yes , good news . Even if I've never used GTK ...
You are one of the benefactors of this forum !
What is your editor under Linux ? Geany ?

I read : AESrypt.bas and the 'C' ? :)
I translated the 2 txt files in English : Easy ! ... ;-) ( if you want to add )


RemarkEn.txt

Code: Select all



This file describes all cross-platform functions of window9 library. 
The main attention is paid to distinctions with functions on the Windows platform. 
I tried to minimize distinctions, but because of the fact that initially the library was not 
it is intended for other platforms except Windows, distinction often considerable. 
If function is completely compatible, then except its name there are no hints!
Perhaps in the future I will make the normal help file for now it is necessary to use 
just the file of hints the help file for windows .

////////////////////////////////////////////////////////////////////////////////////////

AddComboBoxImageItem

AddComboBoxItem

AddListBoxItem

AddListViewColumn (the parameters iStyleColumnTEXT, iStyleMask are not used)

AddListViewItem ((in the iMaskItem parameter only styles LVIF_TEXT, LVIF_IMAGE are used)

AddTreeViewItem  (in the iPos parameter the constant TVI_SORT will not bring result)

AESDecoder

AESEncoder

BGR

ButtonGadget (the style parameter can accept only two values:
 0 - ordinary button
 BS_PUSHLIKE - toggle the button)

ButtonImageGadget (the style parameter can accept only two values:
 0 - ordinary button
 BS_PUSHLIKE - toggle the button)

	
CalendarGadget (the style parameter is not used)

CenterWindow

CheckBoxGadget (the style parameter is not used)

ClearString

Close_File

Close_window

CloseFBini

ColorRequester

ComboBoxGadget (the iStyle parameter is not used)

ComboBoxImageGadget (the sizeicon and style parameters are not used)

CompressFile

CompressMem

ContainerGadget

CopyDir (the iFlag parameter is not used)

Copy_Image

CountItemComboBox

CountItemListBox

CreateCopyImageDesktop

CreateCopyImageRect (the optional iFlag parameter, specific to Linux is added)

CreateCopyImageWindow (the optional iFlag parameter, specific to Linux is added)

CreateDir

Create_File

CreateFBini

Create_Image

Decode64

DeCompressFile

DeCompressMem

DeleteComboBoxItem

DeleteDir (the iFlag parameter is not used)

DeleteFile (in parameter the line, but not the address as in Windows is routed live)

DeleteIndexImageListView (For Linux this function is not required as the widget does not store images but only pointers on images)

DeleteItemListView (it is undesirable to use this function in events from ListViewGadget)

DeleteListBoxItem

DeleteListViewColumn

DeleteListViewItemsAll

DeleteTreeViewItem

DirectoryEntryAttributes

DirectoryEntryDate (time of creation of the file returns incorrectly)

DirectoryEntryName

DirectoryEntrySize

DisableGadget

DisableWindow (does inactive only kliyensky area of a window (that is all gadgets placed at a window). 
 The window continues to take actions from the user for window title (maximize |minimize| close) and also drag and drop)
 
EditorGadget (style can be:
 GTK_SHADOW_NONE - without frame {by default}
 GTK_SHADOW_IN , GTK_SHADOW_OUT , GTK_SHADOW_ETCHED_IN , GTK_SHADOW_ETCHED_OUT  - с рамкой 
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 the tag parameter { only for Linux } can be:
  0 - to default, at this tag for highlighting of selection of the text it will be created automatically with colors bg "#8EAD6F", fg "#FFFFFF" 
  1 - it is necessary to create tag most before SetSelectTextEditorGadget function use, but after EditorGadget function use. The name should be "gui_tag_bg_fg". Example of creation:
  dim as GtkTextBuffer ptr  buffer
  buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( gadgetid(NUMBER_GADGET) ))
  gtk_text_buffer_create_tag(buffer, "gui_tag_bg_fg","background", "#444444", "foreground", "#FFFFFF", NULL)


Decode64

E_O_F

ExamineDirectory

FastCopy

FastCRC32

FileComboBoxItem (differences in the last iAttribut parameter). 
 For windows parameter can include flags:
  DDL_ARCHIVE , DDL_DIRECTORY , DDL_DRIVES , DDL_EXCLUSIVE , DDL_HIDDEN , DDL_READONLY , DDL_READWRITE , DDL_SYSTEM
 For Linux parameter can include flags:
  fbReadOnly , fbHidden , fbSystem , fbDirectory , fbArchive , fbNormal

		
FileListBoxItem (отличия в последнем параметре iAttribut). 
	Для windows параметр может включать флаги:
		DDL_ARCHIVE , DDL_DIRECTORY , DDL_DRIVES , DDL_EXCLUSIVE , DDL_HIDDEN , DDL_READONLY , DDL_READWRITE , DDL_SYSTEM
	For Linux parameter can include flags:
		fbReadOnly , fbHidden , fbSystem , fbDirectory , fbArchive , fbNormal		

FindItemComboBox

FindItemListBox

FinishDirectory

FlagKeyListView (returns the same numbers when clicking the SHIFT keys, ctrl, shift ctrl, ctrl alt, as in Windows (it is important: only in the English layout). 
    In other cases or there is no opportunity to use a key (for example in a case with ALT)
    Or returns numbers specific to Linux (for example at the clicked CAPS or in other layout)

FreeGadget

Free_Image

GadgetHeight

GadgetID

GadgetWidth

GadgetX

GadgetY

GetColumnListView (It is necessary to check only in EventGadget event)

GetColumnWidthListView

GetComboBoxText

GetCountItemTreeView

GetCurentDir

GetCurrentIndexCharEditor

GetExtensionPart

GetFilePart

Get_File_Pointer

GetGadgetColor (is not completed)

GetGadgetState

GetGadgetText

GetIndexImageTreeView (For Linux this function is not required as the widget does not store images but only pointers on images)

GetItemComboBox

GetItemCountListView

GetItemListBox

GetItemListView

GetItemTreeView (the required parameter iGadget is added)

GetLineCountEditor

GetLineTextEditor (the third iSizeBuffer parameter is not used)

GetListBoxText

GetModifyEditor

GetPathPart

GetSelectTextEditorGadget

GetSelCountListBox

GetSelectedCountListView (the optional iArray parameter is added. It is possible to return indexes of all selected points to it)

GetSelectedListViewItem (the iMask parameter is not used)

GetStateCalendar (does not return a day of the week, that is bFlag = returns 3 nothing)

GetSubItemListView

GetTextItemListView

GetTextTreeView

GetTrackBarPos

GetTopIndexListBox

GetWindowText

GlobalMouseX

GlobalMouseY

Grab_Image

HideGadget

HideWindow

HyperLinkGadget

ImageGadget (style1 and style2 parameters are not used)

Image_Height

Image_Width

InputBox

InsertString

IsMouseOver

KillTimer

LenItemTextComboBox

LenItemTextListBox

ListBoxGadget (the iStyle parameter can be: LBS_SORT, LBS_EXTENDEDSEL; iStyle2 parameter is not used)

ListViewGadget (works only in the mode of detailed viewing LVS_REPORT, other modes are not implemented)
 iExStyle (can be: LVS_EX_GRIDLINES, LVS_EX_SUBITEMIMAGES is always included; the others are not used)
 iStyle (only styles LVS_NOCOLUMNHEADER, LVS_SINGLESEL are available)
 iStyle2 (is not used)
 SizeIcon (it is not used, the size depends on the size of icons \images)
 StyleIcon (it is not used, the size depends on the size of icons \images)

Load_Image (the ColorBack parameter is not used, it seems and so all with transparency....)

MD5createHash

MD5createFileHash

MessBox (the flag parameter prinimt only two values: 
 MB_OK - the normal message; 
 MB_YESNO - the message with the questions YES\No, at the same time a returned value of IDYES or IDNO)
 the optional ParentWin parameter for installation of a parent window for dialog is added. 
 If not to point a parent window to Linux, then in the terminal warning gets out (at least with GTK3)
 This warning does not bear any problem for the program so if it does not disturb the user,
 that the ParentWin parameter can be not used as well as on Windows.  

MouseX

MouseY

MoveDir (the iFlag parameter is not used)

MoveItemTreeView

NextDirectoryEntry

Open_File

OpenFBini

OpenFileRequester (the optional ParentWin parameter for installation of a parent window for dialog is added. 
 If not to point a parent window to Linux, then in the terminal warning gets out (at least with GTK3)
 This warning does not bear any problem for the program so if it does not disturb the user,
 that the ParentWin parameter can be not used as well as on Windows.)

OpenWindow (the style parameter can accept only these parameters:
 WS_POPUP - a window without frame
 WS_VISIBLE - a visible window
 WS_OVERLAPPEDWINDOW - a window with a frame
 WS_MAXIMIZE - the window which is originally unrolled
 WS_MINIMIZE - the window which is originally minimized
 style2 parameter is not used)

OptionGadget (the style parameter is not used)

PasteEditor

PeekS

ProgressBarGadget (for GTK3 the iStyle parameter is not used)

Read_Byte

Read_Character

Read_Data

Read_DataA

Read_DataS

Read_Double

Read_File

Read_Integer

Read_Longint

ReadByteValueFBini

ReadDoubleValueFBini

ReadIntegerValueFBini

ReadLongintValueFBini

ReadOnlyEditor

ReadShortValueFBini

ReadStringValueFBini

Read_Single

Read_String

Read_Word

RenameDir (the iFlag parameter is not used)

RenameItemTreeView

ReplaceImageItemTreeView

ReplaceImageListView (not compatible to Windows implementation function)

ReplaceString

ReplaceTextColumnListView

ReplaceTextItemListView

ResetAllComboBox

ResetAllListBox

ResizeGadget

Resize_Image

ResizeWindow

Rotate4_Image

SaveFileRequester (the iDefaultSetPattern parameter is not used)

Save_Image

SetColumnWidthListView

SetCurentDir

Set_File_Pointer

SetGadgetColor (is not completed)

SetGadgetState

SetGadgetText

SetItemComboBox

SetItemListBox

SetModifyEditor

SetRangeProgressBar

SetSelectListViewItem

SetSelectManyItem

SetSelectTextEditorGadget (we read attentively about the tag parameter in the description of EditorGadget)

SetStateCalendar

SetTimer (1 HWND parameter is not used)

SetTopIndexListBox

SetTrackBarMaxPos (the iFlag parameter is not used)

SetTrackBarMinPos (the iFlag parameter is not used)

SetTrackBarPos

SetTransferTextLineEditorGadget

SetWindowText

SetWindowTop

SHA1create

SHA1createFile

SHA512create

SHA512createFile

ShowListComboBox

Size_File

SpinGadget

StringGadget (the style parameter can be: ES_PASSWORD, ES_READONLY; style2 parameter is not used)

TextGadget (the style parameter can accept one of three values: SS_LEFT, SS_RIGHT, SS_CENTER)

TrackBarGadget (the Style parameter can accept values: TBS_HORZ, TBS_VERT)

TreeViewGadget (the parameters iStyle, iStyle2, iSizeIcon are not used)

UpdateItem (For Linux it is not required)

UseGadgetList

WaitEvent

WebGadget (style { only for GTK2 } can be:
 GTK_SHADOW_NONE - without frame {by default}
 GTK_SHADOW_IN , GTK_SHADOW_OUT , GTK_SHADOW_ETCHED_IN , GTK_SHADOW_ETCHED_OUT  - с рамкой 
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 style2 is not used

WebGadgetGetBody (Function works only in the library compiled with GTK2. 
    In difference from Windows of the version, function returns html codes of all HTML page). 
    At function call with GTK3, in the terminal there will be a hint, than it is possible to replace the WebGadgetGetBody function
    The iFlag parameter is not used 
WebGadgetGetURL

WebGadgetGoBack 
   
WebGadgetGoForward
 
WebGadgetNavigate

WebGadgetRefresh

WebGadgetSetBody (In difference from Windows of the version, function sets to HTML codes of all HTML page)

		
WebGadgetState		

WindowBounds

WindowColor

WindowEvent

WindowHeight

WindowWidth

WindowX

WindowY

Write_Byte

Write_Character

Write_Data

Write_Double

Write_Integer

Write_Longint

Write_Single

Write_String

Write_StringN

Write_Word

WriteGroupFBini
Management of colors .txt

Code: Select all

GTK3

1) buttongadget 			+- 		(только цвет текста)
2) editorgadget 			++
5) TextGadget 				++
6) StringGadget 			+- 		(только цвет текста и цвет его выделения мышью)
7) SpinGadget 				+- 		(только цвет текста и цвет его выделения мышью)
8) CalendarGadget 			++
9) CheckBoxGadget			++
10) OptionGadget			++
11) HyperLinkGadget			++
12) TrackBarGadget			++
15) ListBoxGadget 			++ 	
16) GroupGadget				++
19) ListViewGadget			++
 
GTK2

1) buttongadget 			+- 		(только цвет текста)
2) editorgadget 			++
5) TextGadget 				++		
6) StringGadget 			++ 		
7) SpinGadget 				++ 
8) CalendarGadget 			++
9) CheckBoxGadget			+-		(только цвет текста)
10) OptionGadget			+-		(только цвет текста)
15) ListBoxGadget 			++ 
18) ProgressBarGadget		++
19) ListViewGadget			++ 

English :

1) buttongadget - (only text color)
2) editorgadget      
5) TextGadget       
6) StringGadget - (only text color and color of its selection by a mouse)
7) SpinGadget - (only text color and color of its selection by a mouse)
8) CalendarGadget      
9) CheckBoxGadget     
10) OptionGadget     
11) HyperLinkGadget     
12) TrackBarGadget     
15) ListBoxGadget        
16) GroupGadget      
19) ListViewGadget     
 
GTK2

1) buttongadget - (only text color)
2) editorgadget      
5) TextGadget         
6) StringGadget         
7) SpinGadget        
8) CalendarGadget      
9) CheckBoxGadget - (only text color)
10) OptionGadget - (only text color)
15) ListBoxGadget       
18) ProgressBarGadget    
19) ListViewGadget
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

Hi enform! Thank you for your flattering review!
I read : AESrypt.bas and the 'C' ? :)
I do not understand about what speech
What is your editor under Linux ? Geany ?
IUP_FB_EDITOR
I translated the 2 txt files in English
file Remark will be constantly updated , so it is not necessary to translate (while don't need ).
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

AESrypt.bas or AESCrypt.bas ?

Oh yes , ATM i forgot your new IDE ...
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

enform wrote:AESrypt.bas or AESCrypt.bas ?
This bug is still in windows version :)

Thank you, fixed on the local disk.
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FBGUI library for windows 2

Post by VANYA »

enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: FBGUI library for windows 2

Post by enform »

Downloaded ! Thank you for your patience !
I use currently Lubuntu in Virtualbox but just for Firefox , not for prog ... but ...
Coolman
Posts: 294
Joined: Nov 05, 2010 15:09

Re: FBGUI library for windows 2

Post by Coolman »

it seems that installing gtk2 and gtk3 is a bad idea. some libraries conflict... for example the compilation of IUP_FB_EDITOR has been successful but the program does not run with an error message:

Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

for some examples of win9linux. the compilation was successful but nothing is displayed on screen. you should choose between gtk2 or gtk3. this library is really very heavy with many dependencies. i tested in a lxd container. i don't think i'll install this library in my system. distribute a program with gtk risk of being very restrictive under linux. this is my opinion. good continuation...
Post Reply