home *** CD-ROM | disk | FTP | other *** search
- /* cat > headers/main.h << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* main.h: header for main.c file */
- /* main.c creates imagetool windows, */
- /* initializes vars, canvas event handling, */
- /* image editing (cut, copy, paste), etc. */
- /* 1.0 version author(s): */
- /* Carol Song, Mike Norman, Ron Chen, */
- /* Tom Redman */
- /* 1.1 version author(s): */
- /* Martin Knapp-Cordes */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- #define main_h 1
-
- #include "all.h"
- #include "newext.h"
- #include "define.h"
- #include "newdefine.h"
-
- /* EOF */
- /* cat > src+obj/main/main.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* main: main routine */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- main (argc, argv)
- char *argv[];
- int argc;
- {
- /* initializations */
-
- init_vars ();
-
- /* create imagetool windows, menus */
-
- create_base (argc, argv);
-
- create_ttysw ();
- create_panel ();
- create_msgsw ();
- create_panel_menu ();
-
- create_canvas ();
- init_cmsname ();
- create_menus ();
- /* printf ("after menus\n"); */
- create_helpsw ();
- /* printf ("after helpsw\n"); */
- create_printer_menu ();
- /* printf ("after printer_menu\n"); */
-
- /* init environment from defaults */
- if (init_env ()) /* quit if problem */
- exit (-1);
- /* printf ("after init_env\n"); */
- make_id_symbol ();
- /* printf ("after make_id_symbol\n"); */
-
- /* other windows */
- create_imagesave_box ();
- /* printf ("after create_imagesave_box\n"); */
- create_palsave_box ();
- /* printf ("create_palsave_box\n"); */
- create_def_box ();
- create_pathnamesw ();
- /* printf ("after pathnamesw\n"); */
- create_entrysw ();
-
- /* start Imagetool event-driven interface */
- window_main_loop (base);
- exit (0);
- }
- /* EOF */
- /* cat > src+obj/main/cancel.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* cancel: handler for cancel button. Release memory */
- /* if animation and stack ops go stop ftp loop */
- /* if any */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- cancel (item, event)
- Panel_item item;
- Event *event;
- {
- if (animation_go)
- {
- msg_write ("Note: Animation cancelled.");
- done_seq ();
- return;
- }
-
- if (getloop_go)
- {
- loop_stop (NULL, NULL);
- msg_write ("Note: Get-loop cancelled.");
- return;
- }
-
- flush_table ();
- if (panel_get (store_but, PANEL_SHOW_ITEM, 0))
- invalid_stack ();
- }
- /* EOF */
- /* cat > src+obj/main/clear.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* clear: clear button */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- clear (item, event)
- Panel_item item;
- Event *event;
- {
- /* first clear click erases the last image */
- if (!clear_request)
- {
- erase_last ();
- msg_write ("Note: Last image cleared if any.");
- clear_request++;
- }
- else
- { /* two clicks erase entire canvas */
- if (clear_request)
- {
- erase_all ();
- msg_write ("Note: Entire canvas cleared.");
- clear_request = 0;
- }
- }
- reset_pos ();
- square_drawn = 0;
- line_drawn = 0;
- first_middle_down = 0;
- return;
- }
- /* EOF */
- /* cat > src+obj/main/colorsetup.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* colorsetup: setup color */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- colorsetup (item, value, event)
- Panel_item item;
- int value;
- Event *event;
- {
- msg_write ("Note: Function colors not available yet.");
- }
- /* EOF */
- /* cat > src+obj/main/dir_board_proc.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* dir_board_proc: handler to process dir operations */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- Panel_setting
- dir_board_proc (item, event)
- Panel_item item;
- Event *event;
- {
- char path[MAXNAMELEN];
- int err;
-
- switch (event_id (event))
- {
- case CTRL_N:
- (void) display_pathnamesw ("Get image directory", update_dir_board);
- return PANEL_NONE;
- case CTRL_C:
- strcpy (path, (char *) panel_get_value (dir_board));
- /* printf ("path = %s\n", path); */
- if (word_count (path) == 0)
- { /* empty entry - use default */
- strcpy (path, default_cdir);
- (void) chdir (path);
- panel_set_value (dir_board, path);
- strcpy (current_dir, path);
- set_frame_label (base);
- msg_write ("Note: No directory. Default image directory used. ");
- return PANEL_NONE;
- }
- sprintf (wkstr, "csh -fc \"test -d '%s'\"", path);
- if (check_system (wkstr)) /* 0 exit status means true */
- msg_write ("Error: Image directory bad or does not exist. Please fix.");
- else
- {
- if ((err = get_abspathname (path, MAXNAMELEN, TYPE_DIR)))
- { /* error should not occur */
- sprintf (wkstr, "Internal error (%d): While resolving image directory. Report bug!", err);
- msg_write (wkstr);
- }
- else
- {
- (void) chdir (path);
- panel_set_value (dir_board, path);
- strcpy (current_dir, path);
- set_frame_label (base);
- sprintf (wkstr, "cd %s\r", path);
- tty_write (wkstr);
- msg_write ("Note: Image directory set.");
- }
- }
- return PANEL_NONE;
- default:
- return panel_text_notify (item, event);
- }
- }
- /* EOF */
- /* cat > src+obj/main/erase_all.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* erase_all: erase all */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- erase_all ()
- {
- Pixwin *pw = canvas_pixwin (canvas);
-
- pw_writebackground (pw, 0, 0,
- (int) window_get (canvas, CANVAS_WIDTH),
- (int) window_get (canvas, CANVAS_HEIGHT), PIX_CLR);
- }
- /* EOF */
- /* cat > src+obj/main/erase_last.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* erase_last: last erase */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- erase_last ()
- {
- Pixwin *pw = canvas_pixwin (canvas);
-
- if (square_drawn)
- pw_write (pw, square.startx, square.starty,
- square.endx - square.startx + 1,
- square.endy - square.starty + 1,
- PIX_CLR, NULL, 0, 0);
- else
- pw_write (pw, curr_image.startx, curr_image.starty,
- curr_image.xdim, curr_image.ydim,
- PIX_CLR, NULL, 0, 0);
- }
- /* EOF */
- /* cat > src+obj/main/get_selection.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* get_selection: get selection */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- char *
- get_selection (namestr)
- char *namestr;
- {
- Seln_holder holder;
- Seln_request *buf;
-
- if (namestr == NULL)
- return (NULL);
-
- holder = seln_inquire (SELN_PRIMARY);
- buf = seln_ask (&holder, SELN_REQ_CONTENTS_ASCII, 0, 0);
- strncpy (namestr, buf->data + sizeof (Seln_attribute), MAXNAMELEN - 1);
- return (namestr);
- }
- /* EOF */
- /* cat > src+obj/main/main_cleanup.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* main_cleanup: clean up routine called up when quit */
- /* the main window */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- main_cleanup ()
- {
- if (plot_window != NULL)
- {
- window_set (plot_window, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (plot_window);
- }
- if (scale_box != NULL)
- {
- window_set (scale_box, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (scale_box);
- }
- if (clipboard.pr != NULL)
- pr_close (clipboard.pr);
-
- if (help_window != NULL)
- {
- window_set (help_window, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (help_window);
- }
- if (def_box != NULL)
- {
- window_set (def_box, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (def_box);
- }
- if (path_frame != NULL)
- {
- window_set (path_frame, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (path_frame);
- }
- if (entry_frame != NULL)
- {
- window_set (entry_frame, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (entry_frame);
- }
- if (imagesave_box != NULL)
- {
- window_set (imagesave_box, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (imagesave_box);
- }
- if (palsave_box != NULL)
- {
- window_set (palsave_box, FRAME_NO_CONFIRM, TRUE, 0);
- window_destroy (palsave_box);
- }
-
- flush_call ();
- tty_write ("exit\r");
- }
- /* EOF */
- /* cat > src+obj/main/quit.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* quit: quit button handler */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- quit (item, event)
- Panel_item item;
- Event *event;
- {
- textsw_reset (msgsw, 0, 0);
- textsw_reset (textsw, 0, 0);
- window_destroy (base);
- return;
- }
- /* EOF */
- /* cat > src+obj/main/reset_pos.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* reset_pos: reset position */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- reset_pos ()
- {
- pos_picked = 0;
- startx = starty = ORIGINXY;
- }
- /* EOF */
- /* cat > src+obj/main/update_dir_board.c << "EOF" */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* update_dir_board: updates the dir_board with */
- /* directory from pathname frame */
- /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
- /* SCCS information: %W% %G% - NCSA */
-
- /* #include "main.h" */
-
- int
- update_dir_board (dir, file)
- char *dir;
- char *file;
- {
- panel_set_value (dir_board, dir);
- }
- /* EOF */
-