/*
 * radio_ui.c - User interface object initialization functions.
 * This file was generated by `gxv' from `radio.G'.
 * DO NOT EDIT BY HAND.
 */

#include <stdio.h>
#include <sys/param.h>
#include <sys/types.h>
#include <xview/xview.h>
#include <xview/canvas.h>
#include <xview/icon_load.h>
#include <xview/panel.h>
#include <xview/scrollbar.h>
#include <xview/svrimage.h>
#include <xview/termsw.h>
#include <xview/text.h>
#include <xview/tty.h>
#include "radio_ui.h"

/*
 * Create object `file_menu' in the specified instance.
 */
Xv_opaque
radio_file_menu_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern Menu_item	menu_input_mic();
	extern Menu_item	menu_input_file();
	Xv_opaque	obj;
	
	obj = xv_create(owner, MENU_COMMAND_MENU,
		XV_KEY_DATA, INSTANCE, ip,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Input from Microphone",
			MENU_GEN_PROC, menu_input_mic,
			0,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Input from file",
			MENU_GEN_PROC, menu_input_file,
			0,
		0);
	return obj;
}

/*
 * Create object `edit_menu' in the specified instance.
 */
Xv_opaque
radio_edit_menu_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern Menu_item	menu_add_host_proc();
	extern Menu_item	menu_del_host_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, MENU_COMMAND_MENU,
		XV_KEY_DATA, INSTANCE, ip,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Add host",
			MENU_GEN_PROC, menu_add_host_proc,
			MENU_INACTIVE,	TRUE,
			0,
		MENU_ITEM,
			XV_KEY_DATA, INSTANCE, ip,
			MENU_STRING, "Delete host",
			MENU_GEN_PROC, menu_del_host_proc,
			MENU_INACTIVE,	TRUE,
			0,
		0);
	return obj;
}

/*
 * Initialize an instance of object `frame'.
 */
radio_frame_objects *
radio_frame_objects_initialize(ip, owner)
	radio_frame_objects	*ip;
	Xv_opaque	owner;
{
	if (!ip && !(ip = (radio_frame_objects *) calloc(1, sizeof (radio_frame_objects))))
		return (radio_frame_objects *) NULL;
	if (!ip->frame)
		ip->frame = radio_frame_frame_create(ip, owner);
	if (!ip->panel)
		ip->panel = radio_frame_panel_create(ip, ip->frame);
	if (!ip->view_but)
		ip->view_but = radio_frame_view_but_create(ip, ip->panel);
	if (!ip->edit_but)
		ip->edit_but = radio_frame_edit_but_create(ip, ip->panel);
	if (!ip->file_name_text)
		ip->file_name_text = radio_frame_file_name_text_create(ip, ip->panel);
	if (!ip->input_setting)
		ip->input_setting = radio_frame_input_setting_create(ip, ip->panel);
	if (!ip->audio_hosts_text)
		ip->audio_hosts_text = radio_frame_audio_hosts_text_create(ip, ip->panel);
	if (!ip->play_vol)
		ip->play_vol = radio_frame_play_vol_create(ip, ip->panel);
	if (!ip->rec_vol)
		ip->rec_vol = radio_frame_rec_vol_create(ip, ip->panel);
	return ip;
}

/*
 * Create object `frame' in the specified instance.
 */
Xv_opaque
radio_frame_frame_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern Notify_value	frame_input_proc();
	Xv_opaque	obj;
	Xv_opaque		frame_image;
	static unsigned short	frame_bits[] = {
#include "gramophone.icon"
	};
	
	frame_image = xv_create(0, SERVER_IMAGE,
		SERVER_IMAGE_BITS, frame_bits,
		SERVER_IMAGE_DEPTH, 1,
		XV_WIDTH, 64,
		XV_HEIGHT, 64,
		0);
	obj = xv_create(owner, FRAME,
		XV_KEY_DATA, INSTANCE, ip,
		XV_WIDTH, 463,
		XV_HEIGHT, 223,
		WIN_FOREGROUND_COLOR, gcm_color_index("Red"),
		XV_LABEL, "Radio",
		XV_SHOW, TRUE,
		FRAME_SHOW_FOOTER, TRUE,
		FRAME_ICON, xv_create(0, ICON,
			ICON_IMAGE, frame_image,
			0),
		0);
	gcm_initialize_colors(obj, "Dim Gray", "Red");
	return obj;
}

/*
 * Create object `panel' in the specified instance.
 */
Xv_opaque
radio_frame_panel_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern Notify_value	file_input_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL,
		XV_KEY_DATA, INSTANCE, ip,
		XV_HELP_DATA, "radio:panel",
		XV_X, 0,
		XV_Y, 0,
		XV_WIDTH, WIN_EXTEND_TO_EDGE,
		XV_HEIGHT, WIN_EXTEND_TO_EDGE,
		WIN_BACKGROUND_COLOR, gcm_color_index("Dark Slate Gray"),
		WIN_FOREGROUND_COLOR, gcm_color_index("Goldenrod"),
		OPENWIN_SHOW_BORDERS, FALSE,
		0);
	xv_set(xv_get(obj, CANVAS_PIXWIN), WIN_CONSUME_EVENTS,
		LOC_DRAG,
		0, 0);
	notify_interpose_event_func(xv_get(obj, CANVAS_PIXWIN),
		file_input_proc, NOTIFY_SAFE);
	return obj;
}

/*
 * Create object `view_but' in the specified instance.
 */
Xv_opaque
radio_frame_view_but_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern void		view_but_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 16,
		XV_Y, 12,
		XV_WIDTH, 0,
		XV_HEIGHT, 0,
		PANEL_ITEM_COLOR, gcm_color_index("Light Steel Blue"),
		PANEL_LABEL_STRING, "View",
		PANEL_NOTIFY_PROC, view_but_proc,
		0);
	return obj;
}

/*
 * Create object `edit_but' in the specified instance.
 */
Xv_opaque
radio_frame_edit_but_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_BUTTON,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 80,
		XV_Y, 12,
		XV_WIDTH, 57,
		XV_HEIGHT, 25,
		PANEL_ITEM_COLOR, gcm_color_index("Sky Blue"),
		PANEL_LABEL_STRING, "Edit",
		PANEL_ITEM_MENU, radio_edit_menu_create(ip, NULL),
		0);
	return obj;
}

/*
 * Create object `file_name_text' in the specified instance.
 */
Xv_opaque
radio_frame_file_name_text_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 152,
		XV_Y, 16,
		XV_WIDTH, 183,
		XV_HEIGHT, 15,
		PANEL_ITEM_COLOR, gcm_color_index("Violet Red"),
		PANEL_LABEL_STRING, "Audio File Name",
		PANEL_VALUE_X, 271,
		PANEL_VALUE_Y, 16,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_VALUE_DISPLAY_LENGTH, 20,
		PANEL_MAX_VALUE, 0,
		PANEL_MIN_VALUE, 0,
		PANEL_READ_ONLY, FALSE,
		0);
	return obj;
}

/*
 * Create object `input_setting' in the specified instance.
 */
Xv_opaque
radio_frame_input_setting_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern void		input_setting_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_CHOICE,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 16,
		XV_Y, 64,
		XV_WIDTH, 0,
		XV_HEIGHT, 0,
		PANEL_VALUE_X, 64,
		PANEL_VALUE_Y, 64,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_CHOICE_STRINGS,
			"from microphone",
			"from file",
			0,
		PANEL_LABEL_STRING, "Input:",
		PANEL_NOTIFY_PROC, input_setting_proc,
		0);
	return obj;
}

/*
 * Create object `audio_hosts_text' in the specified instance.
 */
Xv_opaque
radio_frame_audio_hosts_text_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_TEXT,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 16,
		XV_Y, 104,
		XV_WIDTH, 157,
		XV_HEIGHT, 15,
		PANEL_ITEM_COLOR, gcm_color_index("Slate Blue"),
		PANEL_LABEL_STRING, "Audio Hosts:",
		PANEL_VALUE_X, 109,
		PANEL_VALUE_Y, 104,
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_VALUE_DISPLAY_LENGTH, 40,
		PANEL_MAX_VALUE, 0,
		PANEL_MIN_VALUE, 0,
		PANEL_READ_ONLY, FALSE,
		PANEL_INACTIVE, TRUE,
		0);
	return obj;
}

/*
 * Create object `play_vol' in the specified instance.
 */
Xv_opaque
radio_frame_play_vol_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern void		play_vol_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_SLIDER,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 32,
		XV_Y, 144,
		XV_WIDTH, 301,
		XV_HEIGHT, 15,
		PANEL_VALUE_X, 125,
		PANEL_VALUE_Y, 144,
		PANEL_SLIDER_WIDTH, 150,
		PANEL_ITEM_COLOR, gcm_color_index("Blue Violet"),
		PANEL_LABEL_STRING, "Play Volume",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_SHOW_RANGE, TRUE,
		PANEL_SHOW_VALUE, TRUE,
		PANEL_MIN_VALUE, 0,
		PANEL_MAX_VALUE, 27,
		PANEL_NOTIFY_PROC, play_vol_proc,
		0);
	return obj;
}

/*
 * Create object `rec_vol' in the specified instance.
 */
Xv_opaque
radio_frame_rec_vol_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	extern void		rec_vol_proc();
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_SLIDER,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 16,
		XV_Y, 180,
		XV_WIDTH, 318,
		XV_HEIGHT, 15,
		PANEL_VALUE_X, 126,
		PANEL_VALUE_Y, 180,
		PANEL_SLIDER_WIDTH, 150,
		PANEL_ITEM_COLOR, gcm_color_index("Medium Orchid"),
		PANEL_LABEL_STRING, "Record Volume",
		PANEL_LAYOUT, PANEL_HORIZONTAL,
		PANEL_SHOW_RANGE, TRUE,
		PANEL_SHOW_VALUE, TRUE,
		PANEL_MIN_VALUE, 0,
		PANEL_MAX_VALUE, 22,
		PANEL_NOTIFY_PROC, rec_vol_proc,
		0);
	return obj;
}

/*
 * Initialize an instance of object `popup_host_list'.
 */
radio_popup_host_list_objects *
radio_popup_host_list_objects_initialize(ip, owner)
	radio_popup_host_list_objects	*ip;
	Xv_opaque	owner;
{
	if (!ip && !(ip = (radio_popup_host_list_objects *) calloc(1, sizeof (radio_popup_host_list_objects))))
		return (radio_popup_host_list_objects *) NULL;
	if (!ip->popup_host_list)
		ip->popup_host_list = radio_popup_host_list_popup_host_list_create(ip, owner);
	if (!ip->pop_panel)
		ip->pop_panel = radio_popup_host_list_pop_panel_create(ip, ip->popup_host_list);
	if (!ip->host_list)
		ip->host_list = radio_popup_host_list_host_list_create(ip, ip->pop_panel);
	return ip;
}

/*
 * Create object `popup_host_list' in the specified instance.
 */
Xv_opaque
radio_popup_host_list_popup_host_list_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, FRAME_CMD,
		XV_KEY_DATA, INSTANCE, ip,
		XV_WIDTH, 311,
		XV_HEIGHT, 115,
		WIN_BACKGROUND_COLOR, gcm_color_index("Navy Blue"),
		WIN_FOREGROUND_COLOR, gcm_color_index("Red"),
		XV_LABEL, "Host List",
		XV_SHOW, FALSE,
		FRAME_SHOW_FOOTER, FALSE,
		FRAME_SHOW_RESIZE_CORNER, FALSE,
		FRAME_CMD_PUSHPIN_IN, TRUE,
		0);
	xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, 0);
	return obj;
}

/*
 * Create object `pop_panel' in the specified instance.
 */
Xv_opaque
radio_popup_host_list_pop_panel_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 0,
		XV_Y, 0,
		XV_WIDTH, WIN_EXTEND_TO_EDGE,
		XV_HEIGHT, WIN_EXTEND_TO_EDGE,
		WIN_BACKGROUND_COLOR, gcm_color_index("Dark Olive Green"),
		WIN_FOREGROUND_COLOR, gcm_color_index("Cyan"),
		OPENWIN_SHOW_BORDERS, FALSE,
		0);
	return obj;
}

/*
 * Create object `host_list' in the specified instance.
 */
Xv_opaque
radio_popup_host_list_host_list_create(ip, owner)
	caddr_t		*ip;
	Xv_opaque	owner;
{
	Xv_opaque	obj;
	
	obj = xv_create(owner, PANEL_LIST,
		XV_KEY_DATA, INSTANCE, ip,
		XV_X, 10,
		XV_Y, 10,
		PANEL_LIST_WIDTH, 250,
		XV_HEIGHT, 0,
		WIN_BACKGROUND_COLOR, gcm_color_index("Dark Olive Green"),
		WIN_FOREGROUND_COLOR, gcm_color_index("Steel Blue"),
/*
		PANEL_ITEM_COLOR, gcm_color_index("Steel Blue"),
*/
		PANEL_LIST_DISPLAY_ROWS, 5,
		PANEL_READ_ONLY, FALSE,
		PANEL_CHOOSE_ONE, TRUE,
		PANEL_CHOOSE_NONE, TRUE,
		0);
	return obj;
}

