class interface PGEN

creation
   make

feature(s) from GTK_MAIN
   exit (error_code: INTEGER)

   init
      --  gtk_init, parse command line arguments


   main
      --  launch the app


   main_iteration

   quit
      --  quit the app


   rc_init

   rc_parse (filename: STRING)

   rc_add_default_file (filename: STRING)

   rc_set_default_files (filenames: COLLECTION[STRING])

   rc_parse_string (rc_string: STRING)

   rc_reparse_all: BOOLEAN

   set_locale

   events_pending: INTEGER

   yield
      --  if there are any events pending will execute one and will 
      --  then return to the caller; This is an attempt to handle 
      --  graceously the horrendous loss of sync caused by MITSHM


   check_version (required_major, required_minor, required_micro: INTEGER): STRING
      require
         required_major >= 0;
         required_minor >= 0;
         required_micro >= 0

   major_version: INTEGER

   minor_version: INTEGER

   micro_version: INTEGER

   binary_age: INTEGER

   interface_age: INTEGER

feature(s) from EXG_FILE_TOOLS
   is_directory (path: STRING): BOOLEAN
      --  tells whether this is a directory or an ordinary file
      --  this could be highly optimized as it is very slow now


   split (path: STRING): ARRAY[STRING]
      --  makes a list of STRINGS containing the words separated by
      --  \ in the path; for "" returns an empth array, not void


   split_filename (path: STRING): ARRAY[STRING]
      --  makes a list of STRINGS containing the words separated by
      --  \ in the path; for "" returns an empth array, not void


   join (split_path: ARRAY[STRING]): STRING
      --  this is the opposite of split_filename; if you make a 
      --  call like join_to_filename(split_filename(path)) you'll 
      --  get path, without a / at the end


   join_to_filename (split_path: ARRAY[STRING]): STRING
      --  this is the opposite of split_filename; if you make a 
      --  call like join_to_filename(split_filename(path)) you'll 
      --  get path, without a / at the end


   relative_path (path_1, path_2: STRING): STRING
      --  if given a pair of absolute paths, like /usr/X11/bin 
      --  and /usr/X11/lib/icewm it will return the relative 
      --  path, in this case ../lib/icewm (that is the path 
      --  that'll take us to path_2 when path_1 is the working 
      --  directory; it requires that the paths are really paths 
      --  and not filenames

      require
         is_directory(path_1);
         is_directory(path_2)

   exg_system (command: STRING)
      --  this is exactly like GENERAL's system, except it fetches
      --  the exit code in exit_code


   exit_code: INTEGER

   default_path_len: INTEGER

   current_directory: STRING
      --  gets the working directory 
      --  this is kludgy, but I couldn't get it to work using the 
      --  storage space of Result


   choose_directory (path: STRING)
      --  sets the directory; this could be optimized
      --  exg_sustem_exit_code should be 0 if everything's ok


feature(s) from FILE_TOOLS
   same_files (path1, path2: STRING): BOOLEAN
      --  True if the path1 file exists and has the very same content 
      --  as file path2.

      require
         path1 /= Void;
         path2 /= Void

   is_readable (path: STRING): BOOLEAN
      --  True if path file exists and is a readable file.

      require
         path /= Void

   is_empty (path: STRING): BOOLEAN
      --  True if path file exists, is readable and is an empty file.


   rename_to (old_path, new_path: STRING)
      --  Try to change the name or the location of a file.

      require
         old_path /= Void;
         new_path /= Void

   delete (path: STRING)
      --  Try to delete the given path file.

      require
         path /= Void

feature(s) from PGEN
   make

   check_env
      --  this will check if the EXG shell variable is set correctly


   window: WIZARD

   data: WIZARD_DATA

   pages: ARRAY[WIZARD_PAGE]

   page_1: PGEN_PAGE_1

   page_2: PGEN_PAGE_2


end of PGEN