Hello ,
After weeks of learning Fltk and work , this Gui code maker is born ...
Fluid4Fb is a translator like Diawin and PFormTranslator ; This time the projects are made with Fluid .
Of course , the C++ part of Fluid is not used .
I've made my own compilation of Fluid.exe , a good thing for security , and i get a complete Visual Design
system for Windows and Linux ( with Geany ) . Very funny now to make projects .
About Fluid.exe , i was unable to remove the console + Gui mode before the compilation , so there is
a black console on the screen .
Fluid4Fb can translate all the widgets Fluid can create , but sadly , Fluid can't create all the possible widgets ...
So , i added a special feature that transforms a widget in to another , with 3 clicks . All is possible ,now ...
Concerning the colors , Fluid is limited to the pre-built 8 bits colors ... so ... i added a special feature that
- eliminates the 8 bits color in the '*.fl' file , if needed
- add ( or replace ) RGB colors with a Color chooser and / or another special tool ( see Help file )
- store ( unlimited ) in a specific file all the created RGB colors , for future projects .
- all the RGB colors are displayed in a combo box : 2 clicks and ... done .
- For the project , RGB colors are stored into the '*.fl' file made by Fluid , it is compatible . Fluid doesn't treat them , but the essential is to preserve the project in 1 file and it is possible to modify the prj with Fluid without problems .
This tool creates several files if needed :
- gui always ...
- Inc_xxxxxCB : include CB subs
- IncSub_xxxxx : other subs to include before the Gui
- IncMain_xxxxx : code to include after the Gui
More features :
- 4 tabs for displays : fl , bas , CBs , misc with Editor
- All the Fltk-c.bi instructions listed in several combos , selectables , then stored in the clipboard .
- Pointers : 2 modes at your choice :
- All ' Dim Shared As '
- gList(pName) : the only one ' Dim Shared As Any Ptr Ptr ' method created by D.J Peters .
- The pointers are auto-named if possible , from the callbacks ; if not possible , a name by default + index .
ex : @Button1CB --> pButton1 ( added a 'p' , removed 'CB' )
or , if no callback : pWid1 , pWid2 ...
- Reload '*.fl' : the actual project name is stored in the ini file ; just a click on 'Reload'.
- a mini-editor , for 1 line of the 'fl' or 'bas' tabs .
- a big-editor : Fl_Text_Editor , but simple . Loads , Saves or creates a bas file . ( Uses the clipboard ) .
- Bugs : my bugs ... , but not only : Under Windows , the 'Menus' features used in my tests files works well ,
but under Linux ( Xubuntu ) they crash ! And Fluid under Linux crashes too with the sames
executables with menus . Exactly , when Submenus in Submenus are used . There are 2
menus / sub-commands in Fluid : SubMenu and MenuItem ; so the first submenu is a Title ,
and i can add MenuItems , no pb with that ; But with a SubMenu in a Submenu the big crash ! ( the tool , not the PC ! )
Considering the 2 identical cases , maybe the lib ( dll ) fails ... ?
The help file is very detailed ...
The source code is not provided ... (no no no , no virus with me !) Don't worry .
This simple exe without install can be lauched with a sandbox like Sandboxie , wich displays all the files in access .
md5 calculated . 2 folders are zipped , with my version of Fluid.exe and examples .
Link : http://dl.free.fr/iO4DEcO7E
Fluid4FbV09.exe : CEA1CD88FB5DEED3D61191980F4B437F Flui4Fb-V09.exe
Fluid4FbV09 Linux : 90231F97BCDAFFC896AE12DD7A457424 Flui4Fb-V09
Need the .Dll / .so .
Enjoy and good luck with your bi-Os Gui codes !
enform
Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)
Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)
Last edited by enform on Apr 18, 2015 14:51, edited 1 time in total.
Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)
Copy of the Help file and example :
Example of original and translation :
Edit :
Include CBs :
Code: Select all
/' Fluid4Fb is a Gui code maker , it reads a *.fl file made with Fluid .
Fluid can create about 58 types ; But Fluid4Fb can transform a widget in to another type , so we
can manage all the possible widgets --> about 90 widgets (+32), with 3 clicks .
Features :
- Uses 3 Tabs : fl , bas , CBs ( callbacks )
- Load Or Reload a *.fl file made with Fluid . Its name is saved in the Ini file .
- Save *.bas or *.fl file ( and callback subs if these subs have been created )
- Edit , Copy , Paste , Cut a line ( About Paste : a line is created after! the selected line )
- Auto Clear bas and CBs tabs before (Re)load ( CBs are callbacks subs , stored in a separated file ) .
- RGB colors : This is not possible directly with Fluid , so this is a 'big' task ...
- 'Load col' button : RGB colors are displayed in a combobox : Load again from a 'RGB.col' file somewhere.
- Creation of the bas part with Shared variables , or not Shared ( Var )
- Creation of a CBs file ( callback subs ) or not . The extension is not 'bas but 'bak' for security
- Creation of a 'sub' empty file ( non Gui , non CBs subs ). The extension is not 'bas but 'bak' for security
- Creation of a 'main' empty file ( non subs code to include ). The extension is not 'bas but 'bak' for security
- Auto load of types of widgets and corresponding instructions from an 'ini' file
- Management of RGB colors with a 'RGB.col' file ( your own rgb colors are stored , no limits )
- Many features of Fluid are treated . Of course , in Fluid , C++ part is not our problem , just save a *.fl file !
- Auto-saving of 'ini' and 'RGB.col' if you quit with the 'Quit' button ; with the close 'X' button , no auto-saving )
- Lists of widgets 'New'(Fl_ButtonNew , ...) and all concerned instructions in 3 combos
autom' stored in to the clipboard , dispo for the editor ( or another ).
+ sort or find tool for the instructions in combos .
- Simple editor ; can import instructions from combos .
- 46 lists of values ( their names as : Fl_ALIGN_CENTER , Fl_ALIGN_TOP , etc from Enums ) in 2 combosbox
autom' stored in to the clipboard , dispo for your editor .
----------------------------------------------------------------------------------------------------
- 3 combos for the display ( and selection ) of the type of widgets and instructions ( from ini file )
with 2 cases : by Fl-xxxxx ' (by default) or 'by Title' : combo0 --> combo1 --> combo2 ( like a menu ).
- From the left to the right : combo0 , combo1 , combo2 .
- combo0 : choices of ' Sort by Fl-xxxxx ' or 'by Title' for combo1 , + a list of widgets possible
from Fluid ( Just a list for memo , not really selectable ... but copied in the clipboard ).
- combo1 : 1- list of possible widgets with this tool only ; 2- titles (extracted from Fltk-c.bi) .
- In the 1st case , a list of the Fl-xxxxx not provided by Fluid are dispo in order to replace a 'temporary'
widget from Fluid by the selected here . Dispo for the clipboard too . See below 'Replacement of ...' .
- In the 2nd case ,a list of titles . A click on the 'Ok' button sends the instructions correspnding to
the title , into the combo2 on the right (A line ,if selected , is copied in the clipboard) .
- combo2 : 1st case - ( choice of 'by Fl-xxxxx ' in combo0) all the instructions from fltk-c.bi , many , many ...
or : 2nd case - ( choice of 'by title ' in combo0) -->
titles Fl_xxxxx sorted in combo1
select a line in combo1
click Ok
combo2 displays instructions corresponding to the title
select a line in combo2 --> clipboard .
In short : combo0 : 'by Fl-xxxxx ' --> combo1 : complementary list of Fl_xxxx widgets ; combo2 : all ,not sorted
: combo0 : 'by title ' --> combo1 : complete list of Fl_xxxx widgets ; --> combo2 :
sub-list of the corresponding instructions for the selected widget .
I added this feature for the use of the clipboard , and it gives a sorted list of things ...
- when a line is selected in combo1 or combo2 , this line is stored in the clipboard , dispo
for your editor .
- there is no scrollbar for the long list of instructions ! I need to move the mouse to the
bottom of the visible part of the list , and i move the mouse to the right , to the left , etc !!!
and it is problematic with the taskbar ... ( A solution ? )
- 2 combos for the display and copy to clipboard of the values in Enums ( fltk-c.bi ), like Fl_ALIGN_CENTER , Fl_ALIGN_TOP , etc
- Sort / Find tool : ' Sort / Find ' is a text field + a 'Find' button .
- How to use the 'sort' mode :
- choose 'Combos by title' in combo0
- in the text field , enter in 'get' , for ex
- if you choose 'Fl_Preferences' in combo1 + a click on 'Ok'
- in combo2 , only the instructions with the expr 'get' or 'Get' are listed . ( case insensitive ).
- How to use the 'Find' mode :
- choose 'Combos by Fl_xxxx' in combo0 ( --> all the 2200 (?) instructions )
- in the text field , enter in 'get' , for ex
- click the 'Find' button :
- in combo2 , only the instructions with the expr 'get' or 'Get' are listed . ( case insensitive ).
or :
- in the text field , enter in 'choo get' , for ex ( 1 space between )
- click the 'Find' button :
- in combo2 , only the instructions with the expr 'choo' or 'Choo' + 'get' or 'Get' are listed . ( case insensitive ).
or :
- in the text field , enter in 'choo -get' , for ex
- click the 'Find' button :
- in combo2 , only the instructions with the expr 'choo' or 'Choo'
but Not 'get' or 'Get' are listed . ( case insensitive ).
----------------------------------------------------------------------------------------------------
- 2 combos in the 'misc' tab : combo3 and combo4 :
- combo3 : selection of titles : Fl_Align , Fl_Color , Fl_Font , Fl_events , etc
- combo4 : one of the values is stored in the clipboard .
----------------------------------------------------------------------------------------------------
- Uses 3 main multiline-browsers : fl , bas , CBs ( callbacks )
----------------------------------------------------------------------------------------------------
- Replacement of an original (temporary) widget by a widget from combo1 when the widget doesn't exist
in Fluid :
For example , with this fl code :
Fl_Progress {} {
label My clock !!!
xywh {20, 270, 290, 290}
}
- 'by Fl-xxxxx ' selected in combo0
- In this code select 1 line of your choice , from Fl_xxxx to xywh ....
- The new widget is selected in combo 1 ? ( Fl_Clock_OutputNew for ex ): click 'Ok'
- A new line is added : code0 { Fl_Clock_OutputNew }
where code0 .... is 1 of the 4 lines dispo for the user ( not treated by Fluid but by this
tool ).
- You will 'Save fl' after this action in order to save the work . You can reload the
file into Fluid for updates .
-----------------------------------------------------------------------------------------------------
- Pointers are created with indexes . The bases of these indexes can be changed ; By default 0 for
windows & 0 for widgets , so the first index used is '1' : 'pWin1' , 'pWid1' .
In the 'misc' tab , the bases can be changed into 2 text fields if you need new bases in order to add new
windows/widgets to an existent project . ( But the fusion of 2 projects is a manual task ... ).
- In this version , these 'pWidxx' are replaced by the modified names of the callback names
if the callback exists in 'fl' ... :
- 2 choices for the pointers ( made with a checkbox ' Shared ' ) :
- Dim Shared As Any Ptr
OR
- gList(aname) in 'Enum' + Dim Shared As Any Ptr Ptr
The names come from the callback + 'p' just before & without 'CB' at the end :
@ButtonCB --> Sub ButtonCB() and : Dim Shared As Any Ptr pButton
or gList(pButton)
- Actually , it is not possible to give automatic names to 'Fl_Menu_xxx' & 'MenuItem' , only 'pWidxx' .
-----------------------------------------------------------------------------------------------------
- Creation of the 'bas' code and callback subs : ( If created , CBs subs will be saved in a separated file ) .
- Click the 'fl to bas' button .
If the 'IncxxCB' checkbox is On , the callback subs are created ,in a separated tab ( CBs ) .
-----------------------------------------------------------------------------------------------------
- Creation of a 'Incsub' and 'Incmain empty files ( non Gui , non CBs subs )
The intention is to work with a Gui code that is only a GUI code ... , in order to modify it
with Fluid again and again , and recreate the 'bas' without destroying included subs , Callback subs ...
with the minimum of manual updates .
( Callback subs are already in a separated file .)
Click 'Create Inc' : A window is created , with 2 buttons 'Create' and 'Close' .
Click 'Create' , if you say 'Yes' in the messagebox , 2 inputbox appear with the names
you can change . It will be your work to change the extension from 'bak' to 'bas' later :
of course the creation of automatic '*.bas' files destroys the previous files ...
Click 'Close'
In the main bas file 3 lines are present but 2 are commented :
#Include "IncCB_xxx.bas" : usual , Callback subs
'#Include "IncSub_xxx.bas" : this file is made for your non-Gui subs
'#Include "IncMain_xxx.bas" : this file is made for your non-subs code
-----------------------------------------------------------------------------------------------------
- Edit , Copy , Paste , Cut a line : Select only 1 line in a browser
- If just a click on 'Paste' : a new line is created by duplication ; wich can be edited , modified .
-----------------------------------------------------------------------------------------------------
- Editor : ( in the 'misc' tab ).
- With Ctl-V , can paste the instruction and values selected in the combos .
- With the 'Import ptr' , can paste the pointer of the current widget
- 'Load bas' , 'Save bas' , 'Clr bas' buttons . ( 'Clr bas' : only the text in the editor ... ).
- How to :
- In the 'bas' tab , select the first line of a widget : gList(pButt1) = Fl_Button.....
- select the 'misc' tab ; select an instruction in combo1 or combo2 , then Ctl-V ( 'Fl_......' ) .
- click 'Import ptr' : (pButt1, ) is added .
- select a value with combo3 and combo4 , place the cursor before the ')' , Ctl-V
-----------------------------------------------------------------------------------------------------
- Removing the Fl_Color(s) made with Fluid .
You can manage the Fl_color with Fluid , normally . But ,later , if you want , it is possible to remove
these instructions for 1 or several widgets with a simple command : 'Del color' ( and replace them with RGBcolors) .
Open the 'RGB color' tool
In the multiline-browser ( 'fl' tab ) select 1 or several lines of code ( select all the lines of
several widget with the left mouse button pressed , continuously , Ctl + click is not needed )
Click 'Del color' : In all the lines with a 'color' or 'selection_color' or 'labelcolor' or 'text' instance ,
these instances will be removed , with their values too .
It is time to replace the Fl_colors by RGB colors ... ( or create ).
-----------------------------------------------------------------------------------------------------
RGB colors tool : with Fluid '255 shades of grey' are not possible ... RGB colors are more sexy !!
Commands and displays : A combo and a file 'RGB.col' are used to store the RGB values .
The wheel can be used , in order to change the colors for each r,g,b value or a Colorchooser or the keyboard .
Now , commands from left to right , top to bottom of the tool :
- main combo : displays the RGB colors of 4 elements maxi , like this :
bkg 011,022,033 lab 011,022,033 sel 011,022,033 tex 011,022,033 ( 011,022,033 are values ... 0-255 )
or
bkg 011,022,033
etc ... 1,2,3 or 4 of the 4 possibilities , but if i remember , bkg and sel work together in Fltk .
bkg = background (color in Fluid) , lab = label , sel = selection_color , tex = text .
Sorry , but the values are not limited to 0...255 automatically : the user is the limiter ...
- Button 'RGB bkg' : color of background with a Colorchooser ;
+ text field for 'bkg 011,022,033' : rgb values 0 to 255
+ color field : the resulting color is showed like in a colorchooser
- The same things for : RGB label , RGB sel and RGB tex : with 'lab 011,022,033' , 'sel 011,022,033' and 'tex 011,022,033'
It is possible to change the color without the Colorchooser :
Click into the text field just after a value , example for 'bkg 011,022,033' , click just
after the last '1' and turn the wheel : the text field is updated and the color too ...
The actual step is 5
The values can be changed with the keyboard , click a value before .
It is possible to work with 1, 2 ,3 or 4 of the 4 'bkg ,lab ,sel ,tex' colors : they can be stored in the combo .
Enter in a value ; after 0.5 second , the real color is updated .
- Button '000' : RGB Reset to 0,0,0 --> empty color text field
- Button 'Store in combo' : the previous settings ( 1,2,3 or 4 )are stored .
- Button 'Replace in combo' : A line is selected in the combo and it will be replaced by
new value(s) (for 1,2,3 or 4 ), actualised by your actions ( wheel for example ) , in the fields 'bkg ,lab, sel, tex'
- Button 'Del line in combo' : A line is selected in the combo and displayed in the text fields : this line will be deleted in the combo .
- Button 'Add/Replace all RGB in fl' : A special line ' code1 { 'RGB values ...' } ' is used for the RGB colors.
In the multiline-browser ( in 'fl' tab ) select 1 or several lines
of code ( !!! select all the lines of 1 or several widgets !!! , continuously , Ctl + click is not needed ) .
( just press the left mouse button and move , as usual ) .
Select a line in the RGB combo (or manually)
Click the button 'Add/..... ' : 1 or + line ' code1 { 'RGB values' } ' is added for the
1 or more widgets you have selected in the 'fl' browser ( the same colors ).
- text field : displays the selected line in the 'fl' browser . Not essential ... , a control for :
- Button 'Get RGB line (fl)' : Retrieves an existent RGB line in 'fl' tab and copy it into the combo :
Select 1 line with 'code 1 .....' in 'fl' tab and click the button . Can be stored in the combo .
- Button 'Close'
- How to import a RGB line from an external '*.fl' file into the 'fl' tab ?
- copy the 'code0 RGB...' line to the clipboard
- select a 'xywh ...' line
- click Paste , the line is duplicated
- click Edit ; in the mini-editor , highlight & replace the line with 'Ctl+V'
- click Ok
------------------------------------------------------------------------------------------------------
- Callbacks subs : This feature works with the 'callback' line in a fl file . It is based on :
Fl_WidgetSetCallbackArg btn1,@CallbackSub,btn1 ---> Case "" ---> in fl : ButtonCB,ptr
Fl_WidgetSetCallback0 btn2,@CallbackSub ---> Case "0" ---> in fl : 0,ButtonCB
Fl_WidgetSetCallback1Arg btn3,@CallbackSub,123 ---> Case "1" ---> in fl : 1,ButtonCB,123
In Fluid , in Properties , in the Callback text field (C++ tab) : for the 3 cases , enter in :
ButtonCB,pWidx or
0,ButtonCB or
1,ButtonCB,123
where 'ButtonCB' is the sub and pWidx will be declared & replaced by the good indice in the 'bas'
before compilation .
( The widget pointers are auto-named pWid1 , pWid2 , pWid3 , etc ... )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ ALWAYS use 'CB' at the end because the name will be the same for pointers ( lenght -2 chars ) and a 'p' before :
+
+ ButtonCB --> Sub ButtonCB() and : gList(pButton) = Fl_xxxxNew() or Dim Shared As Any Ptr pButton .
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Concerning 'MenuItem's , a simple sub name is required ,like : Mitem_xxCB or MenuItCB , ...
An Fl_Menu_XXX needs MenuItem(s) with callback(s) .
Several widgets ( like Fl_Radio_Button in a Group ) can call the same xxxCB sub , see 'tutX' ...
- for each widget , give the same name to the xxxCB sub and a different arg , ex :
1,Button_CB,01
1,Button_CB,02
1,Button_CB,03
In the xxxCB sub , 'Select Case' will be used with the 'As Long' arg . Ex :
In this case ( 3 buttons ) , pointers are auto-named with auto-indexes ! : pButton , pButton01 , pButton02 ; So
don't use the names Button01CB or Button02CB somewhere else in the code !!! --> conflicts !!!
Sub Output1CB Cdecl(wid As FL_WIDGET ptr,arg As Long)
Select Case arg
Case 01
Case 02
End Select
End Sub
Is it correct in the real world ? A comment ? ...
------------------------------------------------------------------------------------------------------
- Use of Fluid : what are the functions and properties used or not ? ...
Not used : Main Menu --> parts concerning C++ code , Shell .
In Properties , in C++ tab : Class , Name , User data , Type
Used : Not all the possibilities have been tested in real codes... but are possible :
in Tabs : - GUI : Label , Image , Inactive , Align , Position , Values , Shortcut , Visible , Active , Resizable ,
hotspot , tooltip ,border ,hide ,modal , when , downbox ,font ,size ,maxi ,mini ,setonly
label type : normal , engraved , ...
images : jpeg ,png ,gif ,bmp ,xbm , xpm ,pnm
Shortcuts : see 'Menus' section below
- Style : All
- C++ : -combo on the right of 'Class' : examples :
- Window single , double
- Button normal , toggle , radio
-'Extra code' : not directly used here in Fluid !
-'Callback' field : --> ex : 1,ButtonCB,123
-combo 'When'
Grid : no grid is visible for me ... And you ??
New project : only 1 'Function/Method' is needed as first entry .
- Actually , i don't change 'blank' template
After , select a 'Window' , one or more time ;
So , in 'New / Code' , only 'Function/Method' is used , 1 time , and its name is not important ( by default 'make_window' ).
Examples : tut001.fl and tut002.fl are made with 1 Function/Method , even if one adds more windows .
Adding new Fl_Tabs in the prj : The good choice in my tests was : 1 main Fl_Tab followed by Fl_Groups ( see D.J.Peters examples
and my 'tutX.fl' files with real results ...) ; so , 1 Fl_Tab followed by Fl_Tabs not used .
Menus : Callback subs : see 'Callbacks subs' & :
Titles , submenu , item : are entered in tab 'GUI / Label' ;
See 'tut002.fl' & load it + DJ Peters's examples.
For Fluid , a title is a first Submenu in a list of Submenus and MenuItems ...
In the 'bas' file , i have choosen this mode :
ex : Title1/Item1 ... followed by shortcut (or not) and @subCB
File/Quit ...
Title3/Sub1/Item1 ... --> / as separators .
- Special keys are possible in the tab 'GUI / Shortcut' field :
ex : Press 'Ctrl' and 'Q' .
- callback mode : '0' ex : 0,mymenuitemCB or 0,mitCB ; etc
------------------------------------------------------------------------------------------------------
- Possible bugs :
- control if the 'GroupEnd()' are placed where needed .In particular if the 'Group' is
opened but not populated with widgets .
- Probably more bugs ...?
------------------------------------------------------------------------------------------------------
I'm afraid by this long help file ... :-)
Enjoy with multi-Os Gui codes ... ( under Xubuntu , tested with Geany ) .
Made by enform 04/2015 .
Code: Select all
# data file for the Fltk User Interface Designer (fluid)
version 1.0303
header_name {.h}
code_name {.cpp}
Function {NewWindow()} {open return_type {Fl_Window*}
} {
Fl_Window namelittle {
label {Little Window}
callback littleCB open
tooltip {Little Window} xywh {388 487 198 147} type Double box OVAL_BOX when 1 resizable
class ClassWLittle size_range {198 147 302 279} visible
} {
Fl_Button {} {
label button
callback {ButtnCB,ptr00}
tooltip toolbut xywh {50 30 100 30} type Radio box OVAL_BOX down_box EMBOSSED_FRAME labeltype ENGRAVED_LABEL labelfont 8 labelsize 12 align 53 when 3
code1 bkg
}
}
code {return w;} {}
Fl_Window {} {
label mywin open
xywh {246 638 478 423} type Double when 3 visible
} {
Fl_Tabs {} {
label Tab0 open
xywh {25 25 405 330}
} {
Fl_Tabs {} {
label TabChild1 open
xywh {50 50 380 305} hide
} {
Fl_Group {} {
label AGroup open
xywh {75 75 355 280}
} {
Fl_Button {} {
label Butt1
xywh {90 100 110 25}
code1 bkg
}
Fl_Return_Button {} {
xywh {200 100 110 25}
}
}
}
Fl_Tabs {} {
label TabChild2 open
xywh {50 50 380 305}
} {
Fl_Group {} {
label 2Group open
xywh {75 75 355 280}
} {
Fl_Light_Button {} {
label LiButt
xywh {90 130 110 25}
}
Fl_Repeat_Button {} {
label RepButt
xywh {200 130 110 25}
}
}
}
Fl_Tabs {} {
label TabChild3 open
xywh {50 50 380 305} hide
} {
Fl_Check_Button {} {
label Ch_button
xywh {130 85 100 30} down_box DOWN_BOX
}
}
}
}
}
Function {Button_CB(Fl_Widget*,void*)} {open return_type {static void}
} {
code {NewWindow()->show();} {}
}
Function {} {open
} {
Fl_Window {} {
label Hauptfenster open
xywh {598 486 451 576} type Double size_range {308 324 473 687} visible
} {
Fl_Button {} {
label {Neues Fenster}
callback {1,Button_CB,01}
image {H:/WINDOWS/system32/oobe/images/btn1.gif} deimage {H:/WINDOWS/system32/oobe/images/btn3.gif} xywh {160 10 110 25} type Radio down_box DOWN_FRAME shortcut 0x40061 align 512
}
Fl_Button {} {
label {Neues Fenster2}
callback {1,Button_CB,02}
tooltip btn2 xywh {160 55 110 25} box FLAT_BOX down_box ROUNDED_FRAME color 73 selection_color 169 labeltype ENGRAVED_LABEL labelcolor 60
}
Fl_Slider {} {
label myslider
callback {0,valCB}
xywh {25 25 40 165} box OVAL_BOX color 146 selection_color 108 labeltype EMBOSSED_LABEL
class Fl_Slider
}
Fl_Scroll {} {
label Scroll open
xywh {110 110 115 140} box ENGRAVED_BOX
} {
Fl_Light_Button {} {
label butinscroll
xywh {119 135 93 20}
}
}
Fl_Tile {} {
label Tile open
xywh {255 110 160 140} box EMBOSSED_BOX
} {
Fl_Repeat_Button {} {
label buttintile
xywh {288 135 96 20}
}
}
Fl_Pack {} {
label pack open
xywh {25 280 185 125} box BORDER_BOX
} {
Fl_Light_Button {} {
label buttinpack
xywh {50 297 101 20}
}
}
}
}
Code: Select all
' tut
#Include Once "fltk-c.bi"
'#Include Once "fltk-tools.bi"
Enum
pButtn,ptr00,pWid2,pWid3,pWid4,
pWid5,pWid6,pWid7,pWid8,pWid9,
pWid10,pWid11,pWid12,pButton_,pButton_01,
pval,pWid16,pWid17,pWid18,pWid19,
pWid20,pWid21,
LastItem = pWid21
End Enum
Dim Shared As Any Ptr Ptr gList(LastItem)
#Include "IncCB_tut.bas"
'#Include "IncSub_tut.bas"
' maingui
' ------------------------------------------------------------------------------------
Var pWin1 = Fl_Double_WindowNew2(388,487,198,147,"Little Window")
Fl_GroupSetResizable pWin1,pWin1
Fl_WidgetSetCallback0 pWin1,@littleCB
Fl_WindowSetTooltipWindow pWin1
gList(pButtn) = Fl_ButtonNew(50,30,100,30,"button")
Fl_WidgetSetLabelType gList(pButtn),FL_LABEL_ENGRAVED
Fl_ButtonSetDownBox gList(pButtn),BoxType(FL_EMBOSSED_FRAME)
Fl_WidgetSetAlign gList(pButtn),53
Fl_WidgetSetBox gList(pButtn),BoxType(FL_OVAL_BOX)
Fl_WidgetSetLabelFont gList(pButtn),8
Fl_WidgetSetLabelSize gList(pButtn),12
Fl_WidgetSetTooltip gList(pButtn),"toolbut"
Fl_WidgetSetWhen gList(pButtn),3
Fl_WidgetSetCallbackArg gList(pButtn),@ButtnCB,ptr00
Fl_WindowEnd pWin1
' ------------------------------------------------------------------------------------
Var pWin2 = Fl_Double_WindowNew2(246,638,478,423,"mywin")
gList(pWid2) = Fl_TabsNew(25,25,405,330,"Tab0")
gList(pWid3) = Fl_TabsNew(50,50,380,305,"TabChild1")
Fl_WidgetClearVisible gList(pWid3)
gList(pWid4) = Fl_GroupNew(75,75,355,280,"AGroup")
gList(pWid5) = Fl_ButtonNew(90,100,110,25,"Butt1")
gList(pWid6) = Fl_Return_ButtonNew(200,100,110,25,"")
Fl_GroupEnd gList(pWid4)
Fl_TabEnd gList(pWid3)
gList(pWid7) = Fl_TabsNew(50,50,380,305,"TabChild2")
gList(pWid8) = Fl_GroupNew(75,75,355,280,"2Group")
gList(pWid9) = Fl_Light_ButtonNew(90,130,110,25,"LiButt")
gList(pWid10) = Fl_Repeat_ButtonNew(200,130,110,25,"RepButt")
Fl_GroupEnd gList(pWid8)
Fl_TabEnd gList(pWid7)
gList(pWid11) = Fl_TabsNew(50,50,380,305,"TabChild3")
Fl_WidgetClearVisible gList(pWid11)
gList(pWid12) = Fl_Check_ButtonNew(130,85,100,30,"Ch_button")
Fl_TabEnd gList(pWid11)
Fl_TabEnd gList(pWid2)
Fl_WindowEnd pWin2
' ------------------------------------------------------------------------------------
Var pWin3 = Fl_Double_WindowNew2(598,486,451,576,"Hauptfenster")
Fl_WindowSizeRange pWin3,308,324,473,687,0
Fl_Register_Images
gList(pButton_) = Fl_Radio_ButtonNew(160,10,110,25,"Neues Fenster")
Fl_ButtonSetDownBox gList(pButton_),BoxType(FL_DOWN_FRAME)
Fl_WidgetSetImage gList(pButton_),Fl_GIF_ImageNew("H:/WINDOWS/system32/oobe/images/btn1.gif")
Fl_WidgetSetDeImage gList(pButton_),Fl_GIF_ImageNew("H:/WINDOWS/system32/oobe/images/btn3.gif")
Fl_ButtonSetShortcut gList(pButton_),FL_CTRL + &h61
Fl_WidgetSetAlign gList(pButton_),512
Fl_WidgetSetCallback1Arg gList(pButton_),@Button_CB,01
gList(pButton_01) = Fl_ButtonNew(160,55,110,25,"Neues Fenster2")
Fl_WidgetSetColorSel gList(pButton_01),73,169
Fl_WidgetSetLabelType gList(pButton_01),FL_LABEL_ENGRAVED
Fl_ButtonSetDownBox gList(pButton_01),BoxType(FL_ROUNDED_FRAME)
Fl_WidgetSetBox gList(pButton_01),BoxType(FL_FLAT_BOX)
Fl_WidgetSetLabelColor gList(pButton_01),60
Fl_WidgetSetTooltip gList(pButton_01),"btn2"
Fl_WidgetSetCallback1Arg gList(pButton_01),@Button_CB,02
gList(pval) = Fl_SliderNew(25,25,40,165,"myslider")
Fl_WidgetSetColorSel gList(pval),146,108
Fl_WidgetSetLabelType gList(pval),FL_LABEL_EMBOSSED
Fl_WidgetSetBox gList(pval),BoxType(FL_OVAL_BOX)
Fl_WidgetSetCallback0 gList(pval),Cast(Any Ptr,@valCB)
gList(pWid16) = Fl_ScrollNew(110,110,115,140,"Scroll")
Fl_WidgetSetBox gList(pWid16),BoxType(FL_ENGRAVED_BOX)
gList(pWid17) = Fl_Light_ButtonNew(119,135,93,20,"butinscroll")
Fl_GroupEnd gList(pWid16)
gList(pWid18) = Fl_TileNew(255,110,160,140,"Tile")
Fl_WidgetSetBox gList(pWid18),BoxType(FL_EMBOSSED_BOX)
gList(pWid19) = Fl_Repeat_ButtonNew(288,135,96,20,"buttintile")
Fl_GroupEnd gList(pWid18)
gList(pWid20) = Fl_PackNew(25,280,185,125,"pack")
Fl_WidgetSetBox gList(pWid20),BoxType(FL_BORDER_BOX)
gList(pWid21) = Fl_Light_ButtonNew(50,297,101,20,"buttinpack")
Fl_GroupEnd gList(pWid20)
Fl_WindowEnd pWin3
Fl_WindowShow pWin1
Fl_WindowShow pWin2
Fl_WindowShow pWin3
'#Include "IncMain_tut.bas"
Fl_Run
End
Include CBs :
Code: Select all
Sub littleCB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub ButtnCB Cdecl(wid As FL_WIDGET ptr,arg As Any Ptr)
End Sub
Sub Button_CB Cdecl(wid As FL_WIDGET ptr,arg As Long)
Select Case arg
Case 01
Case 02
End Select
End Sub
Sub valCB Cdecl(wid As FL_WIDGET ptr)
End Sub
Last edited by enform on Apr 18, 2015 14:53, edited 1 time in total.
Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)
Example :
' IncludeCB.bas ' ; for this example :
IncCB_tut1.bas :
Code: Select all
# data file for the Fltk User Interface Designer (fluid)
version 1.0300
header_name {.h}
code_name {.cpp}
Function {One_window()} {open
} {
Fl_Window {} {
label {Contact list} open
xywh {357 197 335 347} type Single hotspot noborder size_range {335 371 335 402} visible
} {
Fl_Input in_name {
label Name
user_data name
callback {0,Input1CB}
xywh {70 10 250 25} hotspot
code1 { bkg 138,164,255 }
}
Fl_Input in_phone {
label Phone
user_data string
callback {0,Input2CB}
xywh {70 45 250 25}
}
Fl_Input in_company {
label Company
user_data company
callback {0,Input3CB}
xywh {70 80 250 25}
}
Fl_Input in_adress {
label Adress
user_data address
callback {0,Input4CB}
xywh {70 115 250 25}
}
Fl_Group {} {
label {Group-contact000} open
xywh {65 155 120 105} color 197 selection_color 227 labelcolor 177
} {
Fl_Round_Button {} {
label Personal
callback {1,buttonCB,01}
xywh {70 155 115 25} type Radio down_box ROUND_DOWN_BOX shortcut 0xffbf color 197 selection_color 227 labelcolor 177
}
Fl_Round_Button {} {
label professional
callback {1,buttonCB,02}
xywh {70 195 115 25} type Radio down_box ROUND_DOWN_BOX shortcut 0x4ffbe color 197 selection_color 227 labelcolor 177
}
Fl_Round_Button {} {
label other
callback {1,buttonCB,03}
xywh {70 235 115 25} type Radio down_box ROUND_DOWN_BOX shortcut 0x4ffc9 color 197 selection_color 227 labelcolor 177 align 4
}
}
Fl_Progress {} {
label labelprogress
xywh {20 270 290 30}
code0 { Fl_Bitmap }
}
}
Fl_Window {} {
label Win2
callback win2CB open
tooltip wintooltip xywh {710 281 581 504} type Double color 29 selection_color 66 labelfont 5 labelsize 12 labelcolor 81 resizable hotspot visible
} {
Fl_Return_Button {} {
label holleee
callback {0,button2CB}
xywh {10 270 95 25} color 174 selection_color 185 labelfont 9 labelsize 10 labelcolor 154
}
Fl_Tabs {} {
label Tab1 open
xywh {10 40 480 180}
} {
Fl_Tabs {} {
label Tab_child1 open
xywh {10 65 480 155}
} {
Fl_Button {} {
label BuTab1
xywh {50 60 90 25}
}
}
Fl_Tabs {} {
label Tab_child2 open
xywh {10 65 480 155} hide
} {
Fl_Return_Button {} {
label BuTab2
xywh {110 100 75 25}
}
}
Fl_Tabs {} {
label Tab_child3 open
xywh {10 65 480 155} hide
} {
Fl_Light_Button {} {
label BuTab3
xywh {225 100 80 25}
}
}
}
Fl_Menu_Bar {} {open
xywh {0 0 445 25}
} {
MenuItem {} {
label {Tittle1/Item1}
callback {0,MItem11}
xywh {0 0 100 20} shortcut 0x40071
}
MenuItem {} {
label {Tittle1/Item2}
callback {0,MItem12}
xywh {0 0 100 20} shortcut 0x40077
}
MenuItem {} {
label {Tittle2/Item1}
callback {0,MItem21}
xywh {0 0 100 20} shortcut 0x40065
}
MenuItem {} {
label {Tittle3/Sub1/Item1}
callback {0,MItem311}
xywh {0 0 30 20} shortcut 0x10061
}
MenuItem {} {
label {Tittle3/Sub1/Item2}
callback {0,MItem312}
xywh {0 0 100 20} shortcut 0x4006a
}
MenuItem {} {
label {Tittle3/Sub1/Item3}
callback {0,MItem313}
xywh {0 0 100 20} shortcut 0x31
}
}
Fl_Menu_Button {} {
label menu open
xywh {494 25 70 25}
} {
MenuItem {} {
label item4
callback {0,MItem4}
xywh {0 0 100 20} shortcut 0x4006b
}
MenuItem {} {
label item5
callback {0,MItem5}
xywh {0 0 100 20} shortcut 0x4006c
}
}
Fl_Repeat_Button {} {
label BuRepeat
callback {0,Rpcb}
xywh {10 230 100 25}
}
Fl_Check_Button {} {
label BuCheck
xywh {120 230 100 25} down_box DOWN_BOX
}
Fl_Round_Button {} {
label BuRound
xywh {220 230 100 25} down_box ROUND_DOWN_BOX
}
Fl_Slider {} {
label Slider
xywh {10 305 175 25}
}
Fl_Adjuster {} {
label Adjust
xywh {375 260 175 25}
}
Fl_Roller {} {
label RollMe
xywh {190 305 175 25}
}
Fl_Scrollbar {} {
label Scroll
xywh {375 330 175 25}
}
Fl_Counter {} {
label Count
xywh {375 450 175 25}
}
Fl_Value_Input {} {
label InputValue
xywh {80 405 175 25}
}
}
}
Function {two_window()} {open
} {
Fl_Window {} {open
xywh {442 580 387 461} type Double size_range {300 350 1000 1000} visible
} {
Fl_Value_Slider {} {
label ValueSlider
xywh {15 5 110 25} minimum 10 maximum 111 value 20 slider_size 0.020202
}
Fl_Dial {} {
label Dial
xywh {140 15 110 80} minimum 2 maximum 100 step 5 value 10
}
Fl_Value_Output {} {
label ValueOutput
xywh {130 110 110 35} value 110
}
Fl_Text_Editor {} {
label TextEdit
xywh {5 165 150 25}
}
Fl_File_Input {} {
label FileInput
xywh {5 195 245 75}
}
Fl_Output {} {
label TextOutputlabel
xywh {105 285 245 75}
}
Fl_Text_Display {} {
label TextDisplayLabel
xywh {105 385 245 75}
}
Fl_Tree {} {
xywh {270 20 110 91}
}
}
}
Function {Three_window()} {open
} {
Fl_Window {} {open
xywh {852 585 577 490} type Double visible
} {
Fl_Browser {} {
label MyBrother
xywh {25 25 145 85}
}
Fl_Check_Browser {} {
label CheckBrowser
xywh {190 25 145 80}
}
Fl_File_Browser {} {
label FileBrowser
xywh {335 25 175 130}
}
Fl_Box {} {
label Box
xywh {25 139 175 65} box ENGRAVED_BOX
}
Fl_Help_View {} {
label HelpBrowser
xywh {25 245 175 65}
}
Fl_Progress {} {
label Progress
xywh {25 325 175 65}
}
Fl_Clock {} {selected
xywh {210 245 175 145}
}
Fl_Spinner {} {
label {spinner:}
xywh {80 406 120 24} minimum 10 maximum 1000 step 2 value 11
}
}
}
Code: Select all
' tut1
#Include Once "fltk-c.bi"
'#Include Once "fltk-tools.bi"
Enum
pInput1,pInput2,pInput3,pInput4,pWid5,
pbutton,pbutton01,pbutton02,pWid9,pbutton2,
pWid11,pWid12,pWid13,pWid14,pWid15,
pWid16,pWid17,pWid18,pWid19,pRp,
pWid21,pWid22,pWid23,pWid24,pWid25,
pWid26,pWid27,pWid28,pWid29,pWid30,
pWid31,pWid32,pWid33,pWid34,pWid35,
pWid36,pWid37,pWid38,pWid39,pWid40,
pWid41,pWid42,pWid43,pWid44,
LastItem = pWid44
End Enum
Dim Shared As Any Ptr Ptr gList(LastItem)
#Include "IncCB_tut1.bas"
'#Include "IncSub_tut1.bas"
' maingui
' ------------------------------------------------------------------------------------
Var pWin1 = Fl_Single_WindowNew2(357,197,335,347,"Contact list")
Fl_WindowSizeRange pWin1,335,371,335,402,0
Fl_WindowHotspot pWin1,Fl_ScreenWidth/2 ,Fl_ScreenHeight/2,0
Fl_WindowSetBorder pWin1,0
gList(pInput1) = Fl_InputNew(70,10,250,25,"Name")
Fl_WindowHotspotWidget gList(pInput1),gList(pInput1),0
Fl_WidgetSetCallback0 gList(pInput1),Cast(Any Ptr,@Input1CB)
gList(pInput2) = Fl_InputNew(70,45,250,25,"Phone")
Fl_WidgetSetCallback0 gList(pInput2),Cast(Any Ptr,@Input2CB)
gList(pInput3) = Fl_InputNew(70,80,250,25,"Company")
Fl_WidgetSetCallback0 gList(pInput3),Cast(Any Ptr,@Input3CB)
gList(pInput4) = Fl_InputNew(70,115,250,25,"Adress")
Fl_WidgetSetCallback0 gList(pInput4),Cast(Any Ptr,@Input4CB)
gList(pWid5) = Fl_GroupNew(65,155,120,105,"Group-contact000")
Fl_WidgetSetColorSel gList(pWid5),197,227
Fl_WidgetSetLabelColor gList(pWid5),177
gList(pbutton) = Fl_Radio_Round_ButtonNew(70,155,115,25,"Personal")
Fl_WidgetSetColorSel gList(pbutton),197,227
Fl_ButtonSetShortcut gList(pbutton),&hffbf
Fl_WidgetSetLabelColor gList(pbutton),177
Fl_WidgetSetCallback1Arg gList(pbutton),@buttonCB,01
gList(pbutton01) = Fl_Radio_Round_ButtonNew(70,195,115,25,"professional")
Fl_WidgetSetColorSel gList(pbutton01),197,227
Fl_ButtonSetShortcut gList(pbutton01),FL_CTRL + &hffbe
Fl_WidgetSetLabelColor gList(pbutton01),177
Fl_WidgetSetCallback1Arg gList(pbutton01),@buttonCB,02
gList(pbutton02) = Fl_Radio_Round_ButtonNew(70,235,115,25,"other")
Fl_WidgetSetColorSel gList(pbutton02),197,227
Fl_ButtonSetShortcut gList(pbutton02),FL_CTRL + &hffc9
Fl_WidgetSetAlign gList(pbutton02),4
Fl_WidgetSetLabelColor gList(pbutton02),177
Fl_WidgetSetCallback1Arg gList(pbutton02),@buttonCB,03
Fl_GroupEnd gList(pWid5)
Dim As UByte Ptr fb_pixels = 24
Dim As UByte Ptr pix = fb_pixels
gList(pWid9) = Fl_BitmapNew(pix,290,30)
Fl_WindowEnd pWin1
' ------------------------------------------------------------------------------------
Var pWin2 = Fl_Double_WindowNew2(710,281,581,504,"Win2")
Fl_GroupSetResizable pWin2,pWin2
Fl_WidgetSetCallback0 pWin2,@win2CB
Fl_WindowSetTooltipWindow pWin2
Fl_WindowHotspot pWin2,Fl_ScreenWidth/2 ,Fl_ScreenHeight/2,0
Fl_WidgetSetLabelColor pWin2,81
gList(pbutton2) = Fl_Return_ButtonNew(10,270,95,25,"holleee")
Fl_WidgetSetColorSel gList(pbutton2),174,185
Fl_WidgetSetLabelColor gList(pbutton2),154
Fl_WidgetSetLabelFont gList(pbutton2),9
Fl_WidgetSetLabelSize gList(pbutton2),10
Fl_WidgetSetCallback0 gList(pbutton2),Cast(Any Ptr,@button2CB)
gList(pWid11) = Fl_TabsNew(10,40,480,180,"Tab1")
gList(pWid12) = Fl_TabsNew(10,65,480,155,"Tab_child1")
gList(pWid13) = Fl_ButtonNew(50,60,90,25,"BuTab1")
Fl_TabEnd gList(pWid12)
gList(pWid14) = Fl_TabsNew(10,65,480,155,"Tab_child2")
Fl_WidgetClearVisible gList(pWid14)
gList(pWid15) = Fl_Return_ButtonNew(110,100,75,25,"BuTab2")
Fl_TabEnd gList(pWid14)
gList(pWid16) = Fl_TabsNew(10,65,480,155,"Tab_child3")
Fl_WidgetClearVisible gList(pWid16)
gList(pWid17) = Fl_Light_ButtonNew(225,100,80,25,"BuTab3")
Fl_TabEnd gList(pWid16)
Fl_TabEnd gList(pWid11)
gList(pWid18) = Fl_Menu_BarNew(0,0,445,25,"")
Fl_Menu_Add gList(pWid18),"Tittle1/Item1",FL_CTRL + &h71,Cast(Any Ptr,@MItem11)
gList(pWid19) = Fl_Menu_ButtonNew(494,25,70,25,"menu")
Fl_Menu_Add gList(pWid19),"item4",FL_CTRL + &h6b,Cast(Any Ptr,@MItem4)
gList(pRp) = Fl_Repeat_ButtonNew(10,230,100,25,"BuRepeat")
Fl_WidgetSetCallback0 gList(pRp),Cast(Any Ptr,@Rpcb)
gList(pWid21) = Fl_Check_ButtonNew(120,230,100,25,"BuCheck")
gList(pWid22) = Fl_Round_ButtonNew(220,230,100,25,"BuRound")
gList(pWid23) = Fl_SliderNew(10,305,175,25,"Slider")
gList(pWid24) = Fl_AdjusterNew(375,260,175,25,"Adjust")
gList(pWid25) = Fl_RollerNew(190,305,175,25,"RollMe")
gList(pWid26) = Fl_ScrollbarNew(375,330,175,25,"Scroll")
gList(pWid27) = Fl_CounterNew(375,450,175,25,"Count")
gList(pWid28) = Fl_Value_InputNew(80,405,175,25,"InputValue")
Fl_WindowEnd pWin2
' ------------------------------------------------------------------------------------
Var pWin3 = Fl_Double_WindowNew2(442,580,387,461,"")
Fl_WindowSizeRange pWin3,300,350,1000,1000,0
gList(pWid29) = Fl_Value_SliderNew(15,5,110,25,"ValueSlider")
Fl_SliderSetSliderSize gList(pWid29),0.020202
gList(pWid30) = Fl_DialNew(140,15,110,80,"Dial")
gList(pWid31) = Fl_Value_OutputNew(130,110,110,35,"ValueOutput")
gList(pWid32) = Fl_Text_EditorNew(5,165,150,25,"TextEdit")
gList(pWid33) = Fl_File_InputNew(5,195,245,75,"FileInput")
gList(pWid34) = Fl_OutputNew(105,285,245,75,"TextOutputlabel")
gList(pWid35) = Fl_Text_DisplayNew(105,385,245,75,"TextDisplayLabel")
gList(pWid36) = Fl_TreeNew(270,20,110,91,"")
Fl_WindowEnd pWin3
' ------------------------------------------------------------------------------------
Var pWin4 = Fl_Double_WindowNew2(852,585,577,490,"")
gList(pWid37) = Fl_BrowserNew(25,25,145,85,"MyBrother")
gList(pWid38) = Fl_Check_BrowserNew(190,25,145,80,"CheckBrowser")
gList(pWid39) = Fl_File_BrowserNew(335,25,175,130,"FileBrowser")
gList(pWid40) = Fl_BoxNew(25,139,175,65,"Box")
Fl_WidgetSetBox gList(pWid40),BoxType(FL_ENGRAVED_BOX)
gList(pWid41) = Fl_Help_ViewNew(25,245,175,65,"HelpBrowser")
gList(pWid42) = Fl_ProgressNew(25,325,175,65,"Progress")
gList(pWid43) = Fl_ClockNew(210,245,175,145,"")
gList(pWid44) = Fl_SpinnerNew(80,406,120,24,"spinner:")
Fl_SpinnerSetMaximum(gList(pWid44),1000)
Fl_SpinnerSetMinimum(gList(pWid44),10)
Fl_SpinnerSetStep(gList(pWid44),2)
Fl_SpinnerSetValue(gList(pWid44),11)
Fl_WindowEnd pWin4
Fl_WindowShow pWin1
Fl_WindowShow pWin2
Fl_WindowShow pWin3
Fl_WindowShow pWin4
'#Include "IncMain_tut1.bas"
Fl_Run
End
IncCB_tut1.bas :
Code: Select all
Sub Input1CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub Input2CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub Input3CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub Input4CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub buttonCB Cdecl(wid As FL_WIDGET ptr,arg As Long)
Select Case arg
Case 01
Case 02
Case 03
End Select
End Sub
Sub win2CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub button2CB Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem11 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem12 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem21 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem311 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem312 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem313 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem4 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub MItem5 Cdecl(wid As FL_WIDGET ptr)
End Sub
Sub Rpcb Cdecl(wid As FL_WIDGET ptr)
End Sub
Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)
The link is dead. I can't download your program.enform wrote:Link : http://dl.free.fr/iO4DEcO7E