# data file for the Fltk User Interface Designer (fluid) version 1.0109 header_name {.h} code_name {.cxx} decl {//Copyright 2010 Brian Smith. Licensed under GPLv2} {} decl {\#include } {} decl {\#include } {} decl {\#include } {} decl {\#include } {} decl {using namespace std;} {} Function {button_callback(Fl_Widget *, void* userdata)} {open return_type {static void} } { code {if (userdata == "connect"){ //Based on code from App Browser by Robert Shingledecker string command = "/usr/bin/tce-fetch.sh info.lst.gz"; int results = system(command.c_str()); Fl::flush(); if (results == 0 ) { system("gunzip info.lst.gz"); browser_applist->load("info.lst"); system("rm -f info.lst"); } else fl_message("Connection error, check network or mirror."); } if (userdata == "scmconnect"){ //Based on code from SCM Browser by Robert Shingledecker unlink("scm.lst"); string command = "scm-fetch.sh scm.lst.gz"; int results = system(command.c_str()); if (results == 0 ) { system("gunzip -c scm.lst.gz > scm.lst"); scm_browser_applist->load("scm.lst"); scm_browser_applist->remove(scm_browser_applist->size()); } else fl_message("Connection error, check network or mirror."); } if (browser_applist->value()) { if (userdata == "app_add_out_init_boot" && browser_item_exists(browser_outside_apps_onboot, browser_applist->text(browser_applist->value()))){ browser_outside_apps_onboot->add(browser_applist->text(browser_applist->value())); } if (userdata == "app_add_out_init" && browser_item_exists(browser_outside_apps, browser_applist->text(browser_applist->value()))){ browser_outside_apps->add(browser_applist->text(browser_applist->value())); } if (userdata == "app_add_in_init_boot" && browser_item_exists(browser_inside_apps_onboot, browser_applist->text(browser_applist->value()))){ browser_inside_apps_onboot->add(browser_applist->text(browser_applist->value())); } if (userdata == "app_add_in_init" && browser_item_exists(browser_inside_apps, browser_applist->text(browser_applist->value()))){ browser_inside_apps->add(browser_applist->text(browser_applist->value())); } if (userdata == "app_add_extract_app" && browser_item_exists(browser_extract_apps, browser_applist->text(browser_applist->value()))){ browser_extract_apps->add(browser_applist->text(browser_applist->value())); } } if (userdata == "rm_outside_app_boot"){ if (browser_outside_apps_onboot->value()) { browser_outside_apps_onboot->remove(browser_outside_apps_onboot->value()); } } if (userdata == "rm_outside_app"){ if (browser_outside_apps->value()) { browser_outside_apps->remove(browser_outside_apps->value()); } } if (userdata == "rm_inside_app_boot"){ if (browser_inside_apps_onboot->value()) { browser_inside_apps_onboot->remove(browser_inside_apps_onboot->value()); } } if (userdata == "rm_inside_app"){ if (browser_inside_apps->value()) { browser_inside_apps->remove(browser_inside_apps->value()); } } if (userdata == "rm_extract_app"){ if (browser_extract_apps->value()) { browser_extract_apps->remove(browser_extract_apps->value()); } } if (userdata == "load_outside_boot" || userdata == "load_outside" || userdata == "load_inside_boot" || userdata == "load_inside" || userdata == "load_extract" ){ string command = "cp /etc/sysconfig/tcedir/onboot.lst /tmp/tmp_onboot.lst"; int results = system(command.c_str()); Fl::flush(); if (results == 0 ) { if (userdata == "load_outside_boot"){ browser_outside_apps_onboot->load("/tmp/tmp_onboot.lst"); browser_outside_apps_onboot->remove(browser_outside_apps_onboot->size()); } if (userdata == "load_outside"){ browser_outside_apps->load("/tmp/tmp_onboot.lst"); browser_outside_apps->remove(browser_outside_apps->size()); } if (userdata == "load_inside_boot"){ browser_inside_apps_onboot->load("/tmp/tmp_onboot.lst"); browser_inside_apps_onboot->remove(browser_inside_apps_onboot->size()); } if (userdata == "load_inside"){ browser_inside_apps->load("/tmp/tmp_onboot.lst"); browser_inside_apps->remove(browser_inside_apps->size()); } if (userdata == "load_extract"){ browser_extract_apps->load("/tmp/tmp_onboot.lst"); browser_extract_apps->remove(browser_extract_apps->size()); } system("rm -f /tmp/tmp_onboot.lst"); } } ////////////////// if (scm_browser_applist->value()) { if (userdata == "scm_add_out_init_boot" && browser_item_exists(scm_browser_outside_apps_onboot, scm_browser_applist->text(scm_browser_applist->value()))){ scm_browser_outside_apps_onboot->add(scm_browser_applist->text(scm_browser_applist->value())); } if (userdata == "scm_add_out_init" && browser_item_exists(scm_browser_outside_apps, scm_browser_applist->text(scm_browser_applist->value()))){ scm_browser_outside_apps->add(scm_browser_applist->text(scm_browser_applist->value())); } if (userdata == "scm_add_in_init_boot" && browser_item_exists(scm_browser_inside_apps_onboot, scm_browser_applist->text(scm_browser_applist->value()))){ scm_browser_inside_apps_onboot->add(scm_browser_applist->text(scm_browser_applist->value())); } if (userdata == "scm_add_in_init" && browser_item_exists(scm_browser_inside_apps, scm_browser_applist->text(scm_browser_applist->value()))){ scm_browser_inside_apps->add(scm_browser_applist->text(scm_browser_applist->value())); } } if (userdata == "rm_outside_scm_boot"){ if (scm_browser_outside_apps_onboot->value()) { scm_browser_outside_apps_onboot->remove(scm_browser_outside_apps_onboot->value()); } } if (userdata == "rm_outside_scm"){ if (scm_browser_outside_apps->value()) { scm_browser_outside_apps->remove(scm_browser_outside_apps->value()); } } if (userdata == "rm_inside_scm_boot"){ if (scm_browser_inside_apps_onboot->value()) { scm_browser_inside_apps_onboot->remove(scm_browser_inside_apps_onboot->value()); } } if (userdata == "rm_inside_scm"){ if (scm_browser_inside_apps->value()) { scm_browser_inside_apps->remove(scm_browser_inside_apps->value()); } } if (userdata == "scm_load_outside_boot" || userdata == "scm_load_outside" || userdata == "scm_load_inside_boot" || userdata == "scm_load_inside" ){ string command = "cat /etc/sysconfig/tcedir/scmboot.lst | awk '{print $1 \\".scm\\"}' > /tmp/tmp_scmboot.lst"; int results = system(command.c_str()); Fl::flush(); if (results == 0 ) { if (userdata == "scm_load_outside_boot"){ scm_browser_outside_apps_onboot->load("/tmp/tmp_scmboot.lst"); scm_browser_outside_apps_onboot->remove(scm_browser_outside_apps_onboot->size()); } if (userdata == "scm_load_outside"){ scm_browser_outside_apps->load("/tmp/tmp_scmboot.lst"); scm_browser_outside_apps->remove(scm_browser_outside_apps->size()); } if (userdata == "scm_load_inside_boot"){ scm_browser_inside_apps_onboot->load("/tmp/tmp_scmboot.lst"); scm_browser_inside_apps_onboot->remove(scm_browser_inside_apps_onboot->size()); } if (userdata == "scm_load_inside"){ scm_browser_inside_apps->load("/tmp/tmp_scmboot.lst"); scm_browser_inside_apps->remove(scm_browser_inside_apps->size()); } system("rm -f /tmp/tmp_scmboot.lst"); } }} {} } Function {next(Fl_Widget*,void* userdata)} {open return_type void } { code {if (userdata == "page1") { string command; command = "which mkisofs > /dev/null 2>&1"; int mkisofs = system(command.c_str()); command = "which advdef > /dev/null 2>&1"; int advdef = system(command.c_str()); if (!strcmp(cd_path->value(),"") || !strcmp(tmp_path->value(),"") ){ page1_error->value("These 2 paths are required fields."); }else if ( !((mkisofs == 0) && (advdef == 0)) ) { page1_error2->value("Error: mkisofs or advcomp extensions are not installed. Install these and try again."); }else{ wizard->next(); } }else{ wizard->next(); }} {} } Function {back(Fl_Widget*,void* userdata)} {open return_type void } { code {wizard->prev();} {} } Function {make_iso_step1()} {open return_type void } { code {out_2->value(" "); out_3->value(" "); out_4->value(" "); out_5->value(" "); out_6->value(" "); page5_error->value(""); Fl::wait(0); Fl::flush(); Fl::redraw(); out_1->value("Saving selected options to ezremaster.cfg............."); Fl::wait(0); int problem = 0; string command; string outputfile = tmp_path->value(); outputfile += "/ezremaster.cfg"; string logfile = tmp_path->value(); logfile += "/ezremaster.log"; command = "mkdir -p "; command += tmp_path->value(); system(command.c_str()); ofstream op; op.open(outputfile.c_str()); op << "cd_location = " << cd_path->value() << "\\n"; op << "temp_dir = " << tmp_path->value() << "\\n"; if (strcmp(cc_custom->value(),"")){ op << "cc = " << cc_custom->value() << "\\n"; } if (strcmp(mydata->value(),"")){ op << "mydata = " << mydata->value() << "\\n"; } for ( int x = 1; x <= browser_outside_apps_onboot->size(); x++ ) { op << "app_outside_initrd_onboot = " << browser_outside_apps_onboot ->text(x) << "\\n"; } for ( int x = 1; x <= browser_outside_apps->size(); x++ ) { op << "app_outside_initrd = " << browser_outside_apps ->text(x) << "\\n"; } for ( int x = 1; x <= browser_inside_apps_onboot->size(); x++ ) { op << "app_inside_initrd_onboot = " << browser_inside_apps_onboot ->text(x) << "\\n"; } for ( int x = 1; x <= browser_inside_apps->size(); x++ ) { op << "app_inside_initrd = " << browser_inside_apps->text(x) << "\\n"; } for ( int x = 1; x <= browser_extract_apps->size(); x++ ) { op << "app_extract_initrd = " << browser_extract_apps->text(x) << "\\n"; } for ( int x = 1; x <= scm_browser_outside_apps_onboot->size(); x++ ) { op << "app_outside_initrd_onboot = " << scm_browser_outside_apps_onboot ->text(x) << "\\n"; } for ( int x = 1; x <= scm_browser_outside_apps->size(); x++ ) { op << "app_outside_initrd = " << scm_browser_outside_apps ->text(x) << "\\n"; } for ( int x = 1; x <= scm_browser_inside_apps_onboot->size(); x++ ) { op << "app_inside_initrd_onboot = " << scm_browser_inside_apps_onboot ->text(x) << "\\n"; } for ( int x = 1; x <= scm_browser_inside_apps->size(); x++ ) { op << "app_inside_initrd = " << scm_browser_inside_apps->text(x) << "\\n"; } if (browser_extract_apps->size() > 0 ){ if (extract_chroot->value() == 1 ){ op << "extract_tcz_script = chroot\\n"; } if (extract_bootlocal->value() == 1 ){ op << "extract_tcz_script = bootlocal\\n"; } if (extract_ignore->value() == 1 ){ op << "extract_tcz_script = ignore\\n"; } } if (chkbox_copy2fs->value() == 1 ){ op << "copy2fs.flg\\n"; } op.close(); out_1->value("Saving selected options to ezremaster.cfg.............DONE"); out_2->value("Checking original CD/ISO image........................"); Fl::wait(0); if (chkbox_display_terminal->value() == 1){ string log_path = tmp_path->value(); log_path += "/ezremaster.log"; string command = "aterm +tr +sb -e tail -f " + log_path + " &"; system(command.c_str()); } command = "remaster.sh " + outputfile + " checkimage > " + logfile.c_str() + " 2>&1"; int code = system(command.c_str()); if (code == 0){ out_2->value("Checking original CD/ISO image........................DONE"); }else{ out_2->value("Checking original CD/ISO image........................PROBLEM"); problem = 1; } if (problem == 0){ out_3->value("Extracting CD/ISO image..............................."); Fl::wait(0); command = "remaster.sh " + outputfile + " extractimage >> " + logfile.c_str() + " 2>&1"; code = system(command.c_str()); if (code == 0){ out_3->value("Extracting CD/ISO image...............................DONE"); }else{ out_3->value("Extracting CD/ISO image...............................PROBELM"); problem = 1; } } if (problem == 0){ out_4->value("Adding boot codes, passwords, isolinux config, misc..."); Fl::wait(0); command = "remaster.sh " + outputfile + " bootcode >> " + logfile.c_str() + " 2>&1"; code = system(command.c_str()); if (code == 0){ out_4->value("Adding boot codes, passwords, isolinux config, misc...DONE"); }else{ out_4->value("Adding boot codes, passwords, isolinux config, misc...PROBLEM"); problem = 1; } } if (problem == 0){ out_5->value("Adding Applications, mydata.tgz......................."); Fl::wait(0); command = "remaster.sh " + outputfile + " apps >> " + logfile.c_str() + " 2>&1"; code = system(command.c_str()); if (code == 0){ out_5->value("Adding Applications, mydata.tgz.......................DONE"); }else{ out_5->value("Adding Applications, mydata.tgz.......................PROBLEM"); problem = 1; } } Fl::wait(0); if (! problem == 0){ page5_error->value("Error detected. Check ezremaster.log in the temp directory for more info."); }else{ string image_path = tmp_path->value(); image_path += "/image"; string extract_path = tmp_path->value(); extract_path += "/extract"; page6_error->value(""); page6_success->value(""); image_output->value(image_path.c_str()); extract_output->value(extract_path.c_str()); page6_exit->deactivate(); wizard->next(); }} {} } Function {make_iso_step2()} {open return_type void } { code {out_6->value(" "); Fl::wait(0); Fl::flush(); Fl::redraw(); int problem = 0; string command; string outputfile = tmp_path->value(); outputfile += "/ezremaster.cfg"; string logfile = tmp_path->value(); logfile += "/ezremaster.log"; out_6->value("Packing and building ISO image........................"); Fl::wait(0); command = "remaster.sh " + outputfile + " package >> " + logfile.c_str() + " 2>&1"; int code = system(command.c_str()); if (code == 0){ out_6->value("Packing and building ISO image........................DONE"); }else{ out_6->value("Packing and building ISO image........................PROBLEM"); problem = 1; } if (! problem == 0){ page6_error->value("Error detected. Check ezremaster.log in the temp directory for more info."); }else{ page6_success->value("ISO successfully created and saved as 'ezremaster.iso', you can now click 'Exit' below"); } Fl::wait(0); page6_exit->activate();} {} } Function {} {open } { Fl_Window win {open xywh {373 111 635 475} type Double visible } { Fl_Wizard wizard {open xywh {5 0 655 485} } { Fl_Group page1 {open selected xywh {10 5 615 470} } { Fl_Box {} { label {Path To Source Image and Temp Dir} xywh {15 5 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box page1_intro_label { label {ezremaster - for use with Core / Tiny Core / Core Plus version 4.2 or later This application will allow you to create a custom remastered ISO image of Core, Tiny Core, or Core Plus. ezremaster is distributed with ABSOLUTELY NO WARRANTY. } xywh {15 59 600 139} box DOWN_FRAME } Fl_Box {} { xywh {15 210 600 135} box DOWN_FRAME } Fl_Output cd_path { label {Path to Tiny Core / CorePlus ISO or mounted CD (examples: /mnt/sr0 or /tmp/tinycore.iso)} callback {if (btn_iso->value() == 1){ Fl_File_Chooser choose_source("/", "*.iso", Fl_File_Chooser::SINGLE, "Select ISO File"); choose_source.show(); while(choose_source.shown()) { Fl::wait(); } Fl::flush(); cd_path->value(choose_source.value()); } if (btn_cd->value() == 1){ Fl_File_Chooser choose_source("/", "*", Fl_File_Chooser::DIRECTORY, "Select mounted CD (i.e. /mnt/sr0)"); choose_source.show(); while(choose_source.shown()) { Fl::wait(); } Fl::flush(); cd_path->value(choose_source.value()); }} xywh {363 256 225 25} } Fl_Output tmp_path { label {Path to temporary work directory (directory will be created if it doesn't exist):} callback {Fl_File_Chooser choose_tmp("/", "*", Fl_File_Chooser::DIRECTORY, "Select temp directory"); choose_tmp.show(); while(choose_tmp.shown()) { Fl::wait(); } Fl::flush(); tmp_path->value(choose_tmp.value()); if (!strcmp(tmp_path->value(),"")) { tmp_path->value("/tmp/ezremaster"); }} xywh {363 309 225 25} code0 {tmp_path->value("/tmp/ezremaster");} } Fl_Output page1_error { xywh {310 366 255 41} box NO_BOX textcolor 1 } Fl_Output page1_error2 { xywh {51 402 539 37} box NO_BOX textcolor 1 } Fl_Button page1_next { label Next user_data {"page1"} callback next xywh {335 444 85 25} } Fl_Group {} {open xywh {170 215 355 35} } { Fl_Round_Button btn_iso { label {Use ISO Image} xywh {395 221 130 25} type Radio down_box ROUND_DOWN_BOX } Fl_Round_Button btn_cd { label {Use Mounted CD} xywh {190 222 165 25} type Radio down_box ROUND_DOWN_BOX code0 {btn_cd->value(1);} } } } Fl_Group page2 {open xywh {10 5 620 465} hide } { Fl_Box {} { label {Boot Codes and mydata.tgz Backup} xywh {15 5 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box page2_label { label {Enter any boot codes you would like to be included in your remaster:} xywh {25 71 585 35} } Fl_Input cc_custom { label {Boot codes: } xywh {105 117 519 23} } Fl_Output mydata { label {Path to mydata.tgz to include in ISO. Enter path to file on the running system(example: /mnt/sda1/tce/mydata.tgz)} callback {Fl_File_Chooser choose_mydata ("/", "mydata.tgz", Fl_File_Chooser::SINGLE, "Select mydata.tgz File (i.e. /mnt/sda1/tce/mydata.tgz)"); choose_mydata.show(); while(choose_mydata.shown()) { Fl::wait(); } Fl::flush(); mydata->value(choose_mydata.value());} xywh {400 255 215 25} } Fl_Button page2_next { label Next user_data {"page2"} callback next xywh {335 444 85 25} } Fl_Button page2_back { label Back callback back xywh {225 444 85 25} } Fl_Box {} { label {Enter optional mydata.tgz backup information:} xywh {15 210 610 110} box DOWN_FRAME align 17 } } Fl_Group page3 {open xywh {10 0 625 470} hide } { Fl_Box {} { label {Extension Installation} xywh {15 5 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box {} { label {If you would like applications included in your remaster, click on "Connect to App Repo" and then highlight an application. You can either add the application inside or outside the inital ram disk, and you can specify if it should be loaded "on boot" or just be available for manual installation. When creating the ISO, ezremaster will check your local TCE directory for the apps, and if they can't be found the apps will be downloaded from the internet.The "Load" button will update the list based on your currently installed extensions.} xywh {10 25 625 59} labelsize 11 } Fl_Browser browser_applist { label {Available Applications} xywh {15 84 185 182} type Select } Fl_Button btn_app_connect { label {Connect to App Repo} user_data {"connect"} callback button_callback xywh {15 290 185 20} labelsize 13 labelcolor 67 } Fl_Button appadd_outside_initrd_onboot { label {Add App Outside initrd on boot} user_data {"app_add_out_init_boot"} callback button_callback xywh {15 315 185 20} labelsize 13 } Fl_Button appadd_outside_initrd { label {Add App Outside initrd} user_data {"app_add_out_init"} callback button_callback xywh {15 340 185 20} labelsize 13 } Fl_Button appadd_inside_initrd_onboot { label {Add App inside initrd on boot} user_data {"app_add_in_init_boot"} callback button_callback xywh {15 365 185 20} labelsize 13 } Fl_Button appadd_inside_initrd { label {Add App inside initrd} user_data {"app_add_in_init"} callback button_callback xywh {15 390 185 20} labelsize 13 } Fl_Button appadd_extract_app { label {Add App Extract TCZ to initrd} user_data {"app_add_extract_app"} callback button_callback xywh {15 415 185 20} labelsize 13 } Fl_Check_Button chkbox_copy2fs { label {Check to optionally set copy2fs.flg if using outside initrd apps} xywh {15 440 185 25} box DOWN_FRAME down_box DOWN_BOX labelsize 10 } Fl_Browser browser_outside_apps_onboot { label {Outside initrd apps on boot} xywh {220 84 185 80} type Select } Fl_Button btn_remove_outside_app_onboot { label Remove user_data {"rm_outside_app_boot"} callback button_callback xywh {230 178 72 20} } Fl_Button btn_load_outside_initrd_boot { label Load user_data {"load_outside_boot"} callback button_callback xywh {316 178 72 20} } Fl_Browser browser_outside_apps { label {Outside initrd apps} xywh {420 83 185 80} type Select } Fl_Button btn_remove_outside_app { label Remove user_data {"rm_outside_app"} callback button_callback xywh {430 178 72 20} } Fl_Button btn_load_initrd { label Load user_data {"load_outside"} callback button_callback xywh {518 178 72 20} } Fl_Browser browser_inside_apps_onboot { label {Inside initrd apps on boot} xywh {220 204 185 80} type Select } Fl_Button btn_remove_inside_app_onboot { label Remove user_data {"rm_inside_app_boot"} callback button_callback xywh {230 299 72 20} } Fl_Button btn_load_inside_boot { label Load user_data {"load_inside_boot"} callback button_callback xywh {316 299 72 20} } Fl_Browser browser_inside_apps { label {Inside initrd apps} xywh {420 204 185 80} type Select } Fl_Button btn_remove_inside_app { label Remove user_data {"rm_inside_app"} callback button_callback xywh {430 299 72 20} } Fl_Button btn_load_boot { label Load user_data {"load_inside"} callback button_callback xywh {518 299 72 20} } Fl_Browser browser_extract_apps { label {Extract TCZ in to initrd} xywh {220 324 185 80} type Select } Fl_Button btn_remove_extract_app { label Remove user_data {"rm_extract_app"} callback button_callback xywh {230 419 72 20} } Fl_Button btn_load_extract_app { label Load user_data {"load_extract"} callback button_callback xywh {316 419 72 20} } Fl_Group {} {open xywh {405 325 203 110} } { Fl_Round_Button extract_chroot { label {Run TCZ startup scripts in chroot now} xywh {410 357 198 20} type Radio down_box ROUND_DOWN_BOX labelsize 10 code0 {extract_chroot->value(1);} } Fl_Round_Button extract_bootlocal { label {Add TCZ startup scripts to bootlocal.sh} xywh {410 381 198 20} type Radio down_box ROUND_DOWN_BOX labelsize 10 } Fl_Round_Button extract_ignore { label {Ignore TCZ startup scripts} xywh {410 407 198 20} type Radio down_box ROUND_DOWN_BOX labelsize 10 } Fl_Box {} { label {For Extract TCZ in to initrd only, how should TCZ startup scripts be handled?} xywh {409 328 195 30} labelsize 10 } } Fl_Button page3_back { label Back callback back xywh {225 444 85 25} } Fl_Button page3_next { label Next callback next xywh {335 444 85 25} } Fl_Box {} { xywh {215 80 195 122} box DOWN_FRAME } Fl_Box {} { xywh {415 80 195 122} box DOWN_FRAME } Fl_Box {} { xywh {215 200 195 122} box DOWN_FRAME } Fl_Box {} { xywh {415 200 195 122} box DOWN_FRAME } Fl_Box {} { xywh {215 321 395 120} box DOWN_FRAME labelsize 12 } Fl_Box {} { xywh {10 80 195 389} box DOWN_FRAME } } Fl_Group page4 {open xywh {10 1 635 479} hide } { Fl_Box {} { label {SCM Extension Installation (Core 4.5 and later only)} xywh {15 1 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box {} { label {If you would like SCM's included in your remaster, click on "Connect to SCM Repo" and then highlight an application. You can either add the application inside or outside the inital ram disk, and you can specify if it should be loaded "on boot" or just be available for manual installation. When creating the ISO, ezremaster will check your local TCE directory for the apps, and if they can't be found the apps will be downloaded from the internet.The "Load" button will update the list based on your currently installed SCM's.} xywh {10 21 625 59} labelsize 11 } Fl_Browser scm_browser_applist { label {Available SCM Applications} xywh {15 80 180 202} type Select } Fl_Button scm_btn_app_connect { label {Connect to SCM App Repo} user_data {"scmconnect"} callback button_callback xywh {15 300 185 20} labelsize 13 labelcolor 67 } Fl_Button scm_appadd_outside_initrd_onboot { label {Add SCM Outside initrd on boot} user_data {"scm_add_out_init_boot"} callback button_callback xywh {15 325 185 20} labelsize 13 } Fl_Button scm_appadd_outside_initrd { label {Add SCM Outside initrd} user_data {"scm_add_out_init"} callback button_callback xywh {15 350 185 20} labelsize 13 } Fl_Button scm_appadd_inside_initrd_onboot { label {Add SCM inside initrd on boot} user_data {"scm_add_in_init_boot"} callback button_callback xywh {15 375 185 20} labelsize 13 } Fl_Button scm_appadd_inside_initrd { label {Add SCM inside initrd} user_data {"scm_add_in_init"} callback button_callback xywh {15 400 185 20} labelsize 13 } Fl_Browser scm_browser_outside_apps_onboot { label {Outside initrd SCMs on boot} xywh {220 80 185 80} type Select } Fl_Button scm_btn_remove_outside_app_onboot { label Remove user_data {"rm_outside_scm_boot"} callback button_callback xywh {230 174 72 20} } Fl_Button scm_btn_load_outside_initrd_boot { label Load user_data {"scm_load_outside_boot"} callback button_callback xywh {316 174 72 20} } Fl_Browser scm_browser_outside_apps { label {Outside initrd SCMs} xywh {420 79 185 80} type Select } Fl_Button scm_btn_remove_outside_app { label Remove user_data {"rm_outside_scm"} callback button_callback xywh {430 174 72 20} } Fl_Button scm_btn_load_initrd { label Load user_data {"scm_load_outside"} callback button_callback xywh {518 174 72 20} } Fl_Browser scm_browser_inside_apps_onboot { label {Inside initrd SCMs on boot} xywh {220 250 185 80} type Select } Fl_Button scm_btn_remove_inside_app_onboot { label Remove user_data {"rm_inside_scm_boot"} callback button_callback xywh {230 345 72 20} } Fl_Button scm_btn_load_inside_boot { label Load user_data {"scm_load_inside_boot"} callback button_callback xywh {316 345 72 20} } Fl_Browser scm_browser_inside_apps { label {Inside initrd SCMs} xywh {420 250 185 80} type Select } Fl_Button scm_btn_remove_inside_app { label Remove user_data {"rm_inside_scm"} callback button_callback xywh {430 345 72 20} } Fl_Button scm_btn_load_boot { label Load user_data {"scm_load_inside"} callback button_callback xywh {518 345 72 20} } Fl_Button page4_back { label Back callback back xywh {225 444 85 25} } Fl_Button page4_next { label Next callback next xywh {335 444 85 25} } Fl_Box {} { xywh {215 76 195 122} box DOWN_FRAME } Fl_Box {} { xywh {415 76 195 122} box DOWN_FRAME } Fl_Box {} { xywh {215 246 195 122} box DOWN_FRAME } Fl_Box {} { xywh {415 246 195 122} box DOWN_FRAME } Fl_Box {} { xywh {10 76 195 353} box DOWN_FRAME } } Fl_Group page5 {open xywh {10 2 610 468} hide } { Fl_Box {} { label {Remaster step \#1} xywh {15 5 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box page5_label { label {To start remastering process, click the "next" button below. Depending on what options you selected, the remastering process can take a considerable amount of time. Any applications that you selected that you don't already have installed will need to be downloaded from the Internet. You can monitor the progress of the remaster by running "tail -f ezremaster.log" from the temporary directory.} xywh {35 20 575 180} } Fl_Check_Button chkbox_display_terminal { label {Open terminal window and display log status during remaster} xywh {128 170 420 25} down_box DOWN_BOX } Fl_Output out_1 { xywh {97 206 400 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output out_2 { xywh {97 231 400 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output out_3 { xywh {97 256 400 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output out_4 { xywh {97 281 400 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output out_5 { xywh {97 306 500 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output page5_error { xywh {83 381 525 25} box NO_BOX labelcolor 1 textcolor 1 } Fl_Button page5_back { label Back callback back xywh {225 444 85 25} } Fl_Button page5_next { label Next callback make_iso_step1 xywh {335 444 85 25} } } Fl_Group page6 {open xywh {15 5 615 470} hide } { Fl_Box {} { label {Remaster step \#2} xywh {15 5 600 30} color 29 selection_color 88 labelsize 18 } Fl_Box page6_label { label {To finish the remaster, click the "Create ISO" button below. The remastered ISO will be saved to the temporary directory you selected on the first page. Before clicking "Create ISO" you now have an opportunity to make any optional, manual changes that you would like to be included in the remaster by making changes in the directories listed below (Click blue directories below to open terminal at that location) :} xywh {45 31 565 104} } Fl_Output out_6 { xywh {107 345 490 25} box NO_BOX labelfont 13 textfont 13 } Fl_Output page6_error { xywh {93 380 525 25} box NO_BOX labelcolor 1 textcolor 1 } Fl_Box page6_label2 { label {You can monitor the progress of the remaster by running "tail -f ezremaster.log" from the temporary directory. In the future, if you would like to create your custom ISO again your selected options have been saved to "ezremaster.cfg" in the temp directory you selected on the first page. Using the remaster.sh script you can create your custom ISO again (this is an easy way to update your remaster when a new version of Tiny Core is released). To rebuild your ISO, run "remaster.sh /path/to/ezremaster.cfg rebuild"} xywh {40 198 560 130} } Fl_Output image_output { label {ISO Directory: } callback {string dir = image_output->value(); string command = "cd " + dir +"; aterm +tr +sb -e /bin/sh &"; system(command.c_str());} xywh {185 136 430 25} box NO_BOX textcolor 4 } Fl_Output extract_output { label {initrd filesystem Directory: } callback {string dir = extract_output->value(); string command = "cd " + dir +"; aterm +tr +sb -e /bin/sh &"; system(command.c_str());} xywh {185 166 430 25} box NO_BOX textcolor 4 } Fl_Output page6_success { xywh {44 380 561 25} box NO_BOX labelcolor 59 textcolor 59 } Fl_Button btn_createiso { label {Create ISO} callback make_iso_step2 xywh {225 414 195 25} } Fl_Button page6_back { label Back callback back xywh {225 444 85 25} } Fl_Button page6_exit { label Exit callback {exit(0);} xywh {335 444 85 25} deactivate } } } } } Function {browser_item_exists(Fl_Browser *b, const char *item)} {open return_type int } { code {for ( int x=1; x <= b->size(); x++ ) { if (!strcmp(b->text(x),item)) { return 0; } } return 1;} {} }