Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)

User contributed sources that have become inactive, deprecated, or generally unusable. But ... we don't really want to throw them away either.
Post Reply
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)

Post by enform »

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
Last edited by enform on Apr 18, 2015 14:51, edited 1 time in total.
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)

Post by enform »

Copy of the Help file and example :

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 .                     				    	

Example of original and translation :

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

Edit :
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.
enform
Posts: 185
Joined: Apr 24, 2011 12:57
Location: France

Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)

Post by enform »

Example :

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

' IncludeCB.bas ' ; for this example :

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


systemctl
Posts: 182
Joined: Mar 27, 2020 5:15

Re: Fluid + Fluid4Fb : GUI code for Fltk (Window-Linux)

Post by systemctl »

enform wrote:Link : http://dl.free.fr/iO4DEcO7E
The link is dead. I can't download your program.
Post Reply