# data file for the Fltk User Interface Designer (fluid) version 1.0300 header_name {.H} code_name {.C} comment {// // Copyright (C) 2008 Jonathan Moore Liles // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // } {in_source in_header } decl {\#include } {private local } decl {\#include } {private local } decl {\#include } {private local } decl {\#include } {private local } class New_Project_Dialog {open } { Function {New_Project_Dialog()} {open } { code {_default_path = 0; path = 0; make_window();} {} } Function {run()} {open return_type void } { code {_directory->value( _default_path ); _window->show(); while ( _window->shown() ) Fl::wait();} {} } Function {make_window()} {open } { Fl_Window _window { label {New Project} open selected xywh {743 696 550 105} type Double modal visible } { Fl_File_Input _name { label {Named:} xywh {75 55 375 35} } Fl_Button {} { label Browse callback {_directory->value( fl_dir_chooser( "Directory for new project", NULL, 0 ) );} xywh {455 15 80 35} } Fl_Return_Button {} { label Create callback {if ( strlen( _directory->value() ) && strlen( _name->value() ) ) { char pat[1024]; snprintf( pat, sizeof( pat ), "%s/%s", _directory->value(), _name->value() ); path = strdup( pat ); _default_path = _directory->value() ? strdup( _directory->value() ) : 0; //if ( ! Project::create( pat, _template->text( _template->value() ) ) ) // fl_alert( "Error creating project!" ); _window->hide(); }} xywh {455 55 80 35} } Fl_File_Input _directory { label {Where:} callback {if ( ! fl_filename_isdir( o->value() ) ) { fl_alert( "Must be a directory" ); o->value( "" ); return; } // write_line( user_config_dir, "default_path", o->value() );} xywh {75 15 375 35} code0 {\#include } code1 {char *v = NULL;} code2 {// read_line( user_config_dir, "default_path", &v );} code3 {o->value( v );} } } } decl {char *path;} {public local } decl {char *_default_path} {private local } Function {default_path( char *s )} {open return_type void } { code {_default_path = s;} {} } Function {default_path()} {open return_type {char *} } { code {return _default_path;} {} } } Function {new_project_chooser( char **default_path)} {open C return_type {char*} } { code {New_Project_Dialog nsd; nsd.default_path( *default_path ); nsd.run(); if ( nsd.default_path() ) *default_path = nsd.default_path(); return nsd.path;} {} }