I have a Tree widget with a Tabs inside a Tile. The Tree widget or the Tabs becomes hidden without any reason when I click on them.
This behavior is the same even when I tried older FLKT.
The code will contains o->hide();
without a reason..If you look at the property of the widget it will be checked as invisible. Even when you fix it it returns invisible.
Here is the fluid file.
/** **/
data file for the Fltk User Interface Designer (fluid)
version 1.0304
header_name {.h}
code_name {.cpp}
decl {#include <stdio.h>} {public local
}
decl {#include <stdlib.h>} {public local
}
decl {#include } {public local
}
decl {#include <FL/Fl_Group.h>} {public local
}
decl {#include <FL/Fl_Tile.h>} {public local
}
decl {#include <FL/Fl_Text_Editor.H>} {public local
}
decl {#include <FL/Fl_Text_Buffer.H>} {public local
}
decl {#include <FL/Fl_PNM_Image.h>} {public local
}
decl {#include <FL/Fl_Shared_Image.h>} {public local
}
decl {#include <FL/filename.H>} {public local
}
decl {#include <FL/Fl_Button.h>} {public local
}
decl {#include <FL/Fl_File_Chooser.H>} {public local
}
decl {#include <FL/Fl_Native_File_Chooser.H>} {public global
}
decl {#include <FL/fl_ask.H>} {public local
}
decl {#include <errno.h>} {public local
}
decl {using namespace std;} {public global
}
decl {#define INITIALREPEAT 0.5} {public global
}
decl {#define REPEAT 0.5} {public global
}
class CustomTile {: {public Fl_Tile}
} {
Function {CustomTile(int xx, int yy, int ww, int hh, const char*ll):Fl_Tile(xx,yy,ww,hh,ll)} {open
} {
code {//Constructor} {}
}
Function {resize(int x, int y, int w, int h)} {open return_type void
} {
code {this->redraw();
this->draw_children ();} {}
}
}
class Fl_Ext_Text_Editor {open : {public Fl_Text_Editor}
} {
decl {int SetNew;} {public local
}
Function {Fl_Ext_Text_Editor(int x, int y, int w, int h, charl):Fl_Text_Editor(x,y,w,h,l)} {} {
code {// constructor
Fl::add_timeout(INITIALREPEAT, blinkCursor, this);
SetNew=1;} {}
}
Function {~Fl_Ext_Text_Editor()} {} {
code {Fl::remove_timeout(blinkCursor,this);} {}
}
Function {GetCursorPosition()} {return_type int
} {
code {return mCursorPos;} {}
}
Function {blinkCursor(void TxtObject)} {return_type {static void}
} {
code {Fl_Ext_Text_Editor tempText=(Fl_Ext_Text_Editor)(TxtObject);
tempText->SetNew=!tempText->SetNew;
tempText->show_cursor(tempText->SetNew);
Fl::repeat_timeout(REPEAT,blinkCursor, tempText);} {}
}
}
class Fl_New_File {: {public Fl_Group}
} {
decl {Fl_Ext_Text_Editor *e;} {public local
}
decl {Fl_Text_Buffer *t;} {public local
}
decl {Fl_Button b;} {public local
}
decl {int changed;} {public local
}
decl {static int counter;} {public local
}
decl {char fileName[4056];} {public local
}
decl {Fl_New_File pNext;} {public local
}
decl {Fl_New_File pPrev;} {public local
}
decl {int NotSaved; // 1 true 0 false} {public local
}
Function {Fl_New_File(int x, int y, int w, int h, charl):Fl_Group(x,y,w,h,l)} {} {
code {// Class constructor for the text editor part.
begin();
changed=1; // Modified
NotSaved=1; //Not saved
snprintf(fileName,strlen(l)+1,"%s",l);
e=new Fl_Ext_Text_Editor(x,y+10,w,h,"");
t=new Fl_Text_Buffer;
b=new Fl_Button(x+w-15,y,10,10,"x");
b->callback((Fl_Callback)cb_File_Close);
t->text("REM Script Program");
e->buffer(t);
pNext=0; // No next object yet.
pPrev=0; // it is the first object
box(FL_THIN_UP_BOX);
color(FL_BACKGROUND_COLOR);
selection_color(FL_BACKGROUND_COLOR);
labeltype(FL_NORMAL_LABEL);
labelfont(0);
labelsize(9);
labelcolor(FL_BLACK);
align(FL_ALIGN_TOP);
when(FL_WHEN_RELEASE);
end();} {}
}
Function {~Fl_New_File()} {} {
code {/
destructor
*/} {}
}
}
Function {Style_Color_determine(int pos, // I - Position of update
int nInserted, // I - Number of inserted chars
int nDeleted, // I - Number of deleted chars
int /nRestyled/, // I - Number of restyled chars
const char * /deletedText/,// I - Text that was deleted
void *cbArg)} {return_type void
} {
code {//Style function .. this should be implimented... later} {}
}
Function {load_file(char *newfile)} {return_type void
} {
code {// this should be modified ... it is from Editor
txt_Tab_Edit->begin();
char justFileName[30];
char*scancp=newfile;
int scanp= strlen(newfile)-1;
char OLDjustFileName[30];
snprintf(OLDjustFileName,1, "%c", '\0');
snprintf(justFileName,1, "%c", '\0');
char tempChar;
while (((int)(scancp[scanp])!=0x2f)&&((int)(scancp[scanp])!=0x5c)) // 0x2f= /
{
tempChar=scancp[scanp];
strcpy(OLDjustFileName,justFileName);
if (!(strlen(OLDjustFileName)==0))
{
snprintf(justFileName,strlen(OLDjustFileName)+2, "%c%s", tempChar,OLDjustFileName);
}
else
{
snprintf(justFileName,2, "%c", tempChar);
}
scanp=scanp-1;
}
char buf[30];
snprintf(buf,30,"%s",justFileName);
Fl_New_File *st=new Fl_New_File(230,125,1050,840,"");
st->copy_label(buf);
//snprintf(st->fileName, strlen(newfile),"%s",newfile); // save file name
strcpy(st->fileName, newfile); // save file name
int r;
r = st->t->loadfile(newfile);
if (r)
{
if (strlen(newfile)==0)
return;
else
fl_alert("Error reading from file \'%s\':\n%s.", newfile, strerror(errno));
}
else
st->NotSaved=0; // Not saved
Fl_New_File::counter++;
st->t->call_modify_callbacks();
txt_Tab_Edit->end();
txt_Tab_Edit->redraw();} {}
}
decl {int Fl_New_File::counter=1;} {private global
}
Function {} {open return_type int
} {
Fl_Window frmMainWindow {open
xywh {1920 31 1920 1017} type Double hide resizable
} {
Fl_Menu_Bar Editor_Meny_File {
xywh {0 0 1920 25} box FLAT_BOX down_box THIN_UP_BOX color 7 labelsize 12
} {
Submenu mnu_File {
label { &File}
xywh {15 15 100 40} labelsize 12
} {
MenuItem mnu_New {
label {&New}
callback {cb_File_New();}
xywh {20 20 100 40} shortcut 0x4006e labelsize 12
}
MenuItem mnu_Open {
label {&Open}
callback {cb_File_Open();}
xywh {30 30 100 40} shortcut 0x4006f labelsize 12
}
Submenu mnu_History {
label {&History}
xywh {5 5 100 20} labelsize 12 divider
} {
MenuItem mnu_ClearHistory {
label {Clear History}
xywh {5 5 100 20} labelsize 12 deactivate
}
}
MenuItem mnu_Save {
label {&Save}
callback {cb_File_Save("");// this should be fixed .. you should send the name of the file which should be saved.}
xywh {45 65 100 40} shortcut 0x40073 labelsize 12
}
MenuItem mnu_SaveAs {
label {S&ave As}
callback {cb_File_SaveAs();}
xywh {45 55 100 40} shortcut 0xc0073 labelsize 12
}
MenuItem mnu_SaveAsLinux {
label {Save as Linux format}
xywh {20 20 100 20} labelsize 12
}
MenuItem mnu_SaveAll {
label {Save A&ll}
xywh {20 20 100 20} labelsize 12
}
MenuItem mnu_Close {
label {&Close}
callback {cb_File_Close();}
xywh {50 85 100 40} shortcut 0x4ffc1 labelsize 12
}
MenuItem mnu_Exit {
label {&Exit}
callback {exit(0);}
xywh {20 20 100 20} labelsize 12
}
}
Submenu mnu_Edit {
label { &Edit}
xywh {30 30 100 40} labelsize 12
} {
MenuItem mnu_Undo {
label {&Undo}
xywh {35 35 100 40} shortcut 0x4007a labelsize 12
}
MenuItem mnu_Redo {
label {&Redo}
xywh {45 80 100 40} shortcut 0x40079 labelsize 12
}
MenuItem mnu_Cut {
label {C&ut}
xywh {40 40 100 40} shortcut 0x40078 labelsize 12
}
MenuItem mnu_Copy {
label {&Copy}
xywh {30 30 100 20} shortcut 0x40063 labelsize 12
}
MenuItem mnu_Paste {
label {&Paste}
xywh {30 30 100 20} shortcut 0x40076 labelsize 12
}
MenuItem mnu_Delete {
label {&Delete}
xywh {55 75 100 40} labelsize 12
}
MenuItem mnu_SelectAll {
label {Select All}
xywh {55 65 100 40} shortcut 0x40061 labelsize 12
}
MenuItem mnu_Find {
label {&Find}
xywh {60 95 100 40} shortcut 0x40066 labelsize 12
}
MenuItem mnu_FindNext {
label {&Find Next}
xywh {30 30 100 20} shortcut 0xffc0 labelsize 12
}
MenuItem mnu_Replace {
label {&Replace}
xywh {70 105 100 40} shortcut 0x40068 labelsize 12
}
MenuItem mnu_Goto {
label {&Goto}
xywh {80 115 100 40} shortcut 0x40067 labelsize 12
}
}
Submenu mnu_Add {
label { &Add}
xywh {25 25 100 40} labelsize 12
} {
MenuItem mnu_NewInst {
label {&Instruction}
callback {cb_Add_Instruction();}
xywh {30 30 100 40} shortcut 0x4006e labelsize 12
}
MenuItem mnu_OpenInstruction {
label {&Open}
callback {cb_Add_OpenInstruction();}
xywh {40 40 100 40} shortcut 0x4006f labelsize 12
}
MenuItem mnu_Add_InsertInstruction {
label {&Insert Instruction}
callback {cb_Add_InsertInstruction();}
xywh {55 65 100 40} shortcut 0xc0073 labelsize 12
}
MenuItem mnu_Add_Cut {
label {&Cut Instruction}
callback {cb_Add_Cut_Instruction();}
xywh {60 95 100 40} shortcut 0x4ffc1 labelsize 12
}
MenuItem mnu_Add_Delete {
label {&Delete Instruction}
callback {cb_Add_Delete_Instruction();}
xywh {55 75 100 40} shortcut 0x40073 labelsize 12
}
MenuItem mnu_Add_Duplicate {
label {&Duplicate}
callback {cb_Add_Duplicate();}
xywh {30 30 100 20} labelsize 12
}
}
Submenu {} {
label Tools
xywh {15 15 100 20} labelsize 12
} {
MenuItem mnu_ToolsDebuger {
label Debuger
xywh {15 15 100 20} shortcut 0xffbe labelsize 12
}
MenuItem mnu_Options {
label {&Options}
callback {cb_Options();}
xywh {25 25 100 20} labelsize 12
}
MenuItem mnu_ToolsTableAssistant {
label {Table Assistant}
xywh {35 35 100 20} labelsize 12
}
}
Submenu {} {
label {&Help}
xywh {10 10 100 20} labelsize 12
} {
MenuItem {} {
label Help
xywh {10 10 100 20} shortcut 0xffbe labelsize 12
}
MenuItem {} {
label Examples
xywh {20 20 100 20} labelsize 12
}
MenuItem {} {
label About
callback {Getabout();}
xywh {30 30 100 20} labelsize 12
}
}
}
Fl_Menu_Bar {} {open
xywh {0 25 1920 27}
} {}
Fl_Group {} {
xywh {-1 26 635 25}
} {
Fl_Button btn_File_New {
callback {cb_File_New();}
tooltip New image {icons/button.new.gif} xywh {-1 26 25 24} box THIN_UP_BOX shortcut 0x4006e
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_Open {
callback {cb_File_Open();}
tooltip Open image {icons/fileopen.xpm} xywh {24 26 25 25} box THIN_UP_BOX shortcut 0x4006f
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_Close {
callback {cb_File_Close();}
tooltip Close image {icons/fileclose.png} xywh {49 26 25 25} box THIN_UP_BOX down_box THIN_DOWN_BOX shortcut 0x4ffc1 align 16
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_Save {
callback {cb_File_Save("");// this should be fixed .. you should send the name of the file which should be saved.}
tooltip Save image {icons/filesave.xpm} xywh {74 26 25 25} box THIN_UP_BOX shortcut 0x40073
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_SaveAll {
callback {cb_File_SaveAll();}
tooltip {Save All} image {icons/filesaveAll.xpm} xywh {99 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_Backup {
callback {cb_File_Backup();}
tooltip Backup image {icons/zip.gif} xywh {124 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Edit_Cut {
callback {cb_Edit_Cut();}
tooltip Cut image {icons/cut.xpm} xywh {153 26 25 25} box THIN_UP_BOX shortcut 0x40078
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Edit_Copy {
callback {cb_Edit_Copy();}
tooltip Copy image {icons/copy.xpm} xywh {178 26 25 25} box THIN_UP_BOX shortcut 0x40063
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Edit_Paste {
callback {cb_Edit_Paste();}
tooltip Paste image {icons/button.pastetext.xpm} xywh {203 26 25 25} box THIN_UP_BOX shortcut 0x40076
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Edit_Undo {
callback {cb_Edit_Undo();}
tooltip Undo image {icons/button.undo.xpm} xywh {231 26 25 25} box THIN_UP_BOX shortcut 0x4007a
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Edit_Redo {
callback {cb_Edit_Redo();}
tooltip Redo image {icons/button.redo.xpm} xywh {256 26 25 25} box THIN_UP_BOX shortcut 0x40079
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_Hyperlink {
tooltip Hyperlink image {icons/www.xpm} xywh {286 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_EmailAddress {
tooltip {Email adress} image {icons/mail_generic.png} xywh {311 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_Anchor {
tooltip Link image {icons/button.anchor.xpm} xywh {336 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_HLine {
label {---}
tooltip {Horizental line} xywh {361 26 25 25} box THIN_UP_BOX labeltype EMBOSSED_LABEL labelsize 18 align 17
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_Picture {
tooltip {Insert image} image {icons/button.image.xpm} xywh {386 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_HomeAdress {
tooltip {Home Page(Yours)} image {icons/gohome.png} xywh {415 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_EmailCust {
tooltip {Email adress (yours)} image {icons/button.mail.xpm} xywh {441 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_Insert_Favorite {
tooltip {Home page from your favorite url} image {icons/bookmark_folder.png} xywh {466 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
Fl_Button btn_File_Preview {
callback {cb_File_Preview();}
tooltip {Home page from your favorite url} image {icons/bookmark_folder.png} xywh {492 26 25 25} box THIN_UP_BOX
code0 {o->clear_visible_focus();}
}
}
Fl_Wizard {} {
label tile_Main open
xywh {0 73 1945 939}
class CustomTile
} {
Fl_Tree root_InstructionSequences {
label {Instruction List}
callback {cb_changeStepDetails();} selected
xywh {0 73 200 936} labelsize 10 align 2
}
Fl_Tabs tab_Step_Details {
xywh {200 73 1750 937} align 5 hide
} {
Fl_Group {} {
label StepDetails
xywh {210 108 1706 408} align 5 hide resizable
} {
Fl_Input_Choice {} {
label {Arg 1} open
xywh {258 123 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 3} open
xywh {258 155 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 5} open
xywh {258 187 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 7} open
xywh {258 220 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 9} open
xywh {258 254 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg11 open
xywh {258 287 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg13 open
xywh {258 319 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg15 open
xywh {258 352 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg17 open
xywh {258 384 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg19 open
xywh {258 417 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg21 open
xywh {258 449 542 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg23 open
xywh {258 482 542 29} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 2} open
xywh {1071 123 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 4} open
xywh {1071 155 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 6} open
xywh {1071 187 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label {Arg 8} open
xywh {1071 220 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg10 open
xywh {1071 254 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg12 open
xywh {1071 287 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg14 open
xywh {1071 319 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg16 open
xywh {1071 352 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg18 open
xywh {1071 384 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg20 open
xywh {1071 417 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg22 open
xywh {1071 449 572 30} labeltype ENGRAVED_LABEL
} {}
Fl_Input_Choice {} {
label Arg24 open
xywh {1071 482 572 29} labeltype ENGRAVED_LABEL
} {}
}
Fl_Group txt_Tab_Edit {
label Editor open
xywh {199 108 1750 935} align 5
} {
Fl_Wizard txtEditorTemplate {
label { } open
xywh {199 108 1720 929} labelsize 9 align 5
class Fl_New_File
} {}
}
}
}
}
}
Function {Getabout()} {return_type void
} {
Fl_Window frmAbout {
label {FLTK Editor - About}
xywh {933 635 472 221} type Double hide modal
} {
Fl_Button {} {
label OK
callback {frmAbout->hide();}
xywh {400 185 60 25} box THIN_UP_BOX down_box THIN_DOWN_BOX labeltype EMBOSSED_LABEL
}
Fl_Box {} {
label {ScriptEditor Scanfil Vellinge AB}
xywh {40 30 373 126} box PLASTIC_UP_FRAME labeltype ENGRAVED_LABEL labelfont 9 labelsize 43 align 128
}
Fl_Box {} {
label {Powered by: FLTK GUI}
xywh {15 194 105 16} labelfont 2 labelsize 9 deactivate
}
}
code {frmAbout->show();} {}
}
Function {cb_File_Open()} {return_type void
} {
code {// Open a file
char filename[256] = "";
char newfile = fl_file_chooser("DAT Files (.dat)\tImage Files (.{dad})", ".*", filename);
if (newfile != NULL){
strcpy(filename,newfile);
load_file(filename);
}} {}
}
Function {cb_File_New()} {return_type void
} {
code {// New Tab widget whould be made when you click New button.
txt_Tab_Edit->begin();
char buf[30];
snprintf(buf, sizeof(Fl_New_File::counter)+10 ,"Untitiled %d",Fl_New_File::counter);
Fl_New_File *st=new Fl_New_File(230,125,1050,840,"");
st->NotSaved=1; // Not saved
st->copy_label(buf);
strcpy(st->fileName,buf);
Fl_New_File::counter++;
txt_Tab_Edit->end();
txt_Tab_Edit->redraw();
return;} {}
}
Function {check_save(void)} {return_type int
} {
code {return 1;} {}
}
Function {cb_File_Close()} {return_type void
} {
code {//Close file ... Before that we should check if it is saved
//write the code for this function
return;} {}
}
Function {cb_File_Save(char* newfile)} {return_type void
} {
code {} {}
}
Function {cb_File_SaveAll()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_File_Backup()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_Edit_Cut()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_Edit_Paste()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_Edit_Undo()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_Edit_Redo()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_Edit_Copy()} {return_type void
} {
code {/*
not implemented
*/} {}
}
Function {cb_FontBrowser(Fl_Widget*, void* frm_FontBrowser)} {return_type void
} {
code {} {}
}
Function {cb_Options()} {return_type void
} {
Fl_Window {} {open
xywh {317 388 625 484} type Double hide
} {
Fl_Tabs {} {open
xywh {5 59 595 397}
} {
Fl_Group {} {
label General open
xywh {25 78 574 370}
} {
Fl_Group {} {open
xywh {50 100 252 106} box BORDER_BOX
} {
Fl_File_Browser {} {
xywh {65 115 210 30}
}
}
}
Fl_Group {} {
label Editing open
xywh {25 78 574 370} hide
} {}
}
}
}
Function {cb_changeStepDetails()} {return_type void
} {
code {// Show the current steps's data.} {}
}
Function {cb_File_SaveAs()} {return_type void
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_Instruction()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_OpenInstruction()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_InsertInstruction()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_Delete_Instruction()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_Cut_Instruction()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_Add_Duplicate()} {open
} {
code {printf("Hello, World!\n");} {}
}
Function {cb_File_Preview()} {open
} {
code {printf("Hello, World!\n");} {}
}