
Example D-1. Portion of file_chooser.c program (continued)
ui.panel = xv_create(ui.frame, PANEL, NULL);
ui.file_button = xv_create(ui.panel, PANEL_BUTTON,
PANEL_LABEL_STRING, "File",
PANEL_ITEM_MENU, ui.file_menu,
NULL);
window_fit_height( ui.panel );
ui.textsw = xv_create(ui.frame, TEXTSW,
XV_X, 0,
WIN_BELOW, ui.panel,
NULL);
xv_main_loop( ui.frame );
exit( 0 );
}
/*
* Picked "Open" off of File Menu.
*/
static void
my_open_notify( menu, mi )
Menu menu;
Menu_item mi;
{
My_ui *ui = (My_ui *)xv_get(menu, XV_KEY_DATA, MY_KEY);
if ( !ui->open ) {
ui->open
= xv_create(ui->frame, FILE_CHOOSER_OPEN_DIALOG,
XV_LABEL, "Text Editor: Open",
FILE_CHOOSER_NOTIFY_FUNC, my_open_callback,
XV_KEY_DATA, MY_KEY, ui,
NULL);
}
xv_set(ui->open, XV_SHOW, TRUE, NULL);
}
/*
* Picked OPEN off of File Menu.
* See Appendix F for full example
*/
my_open_callback( fc, path, file, client_data )
File_chooser fc;
char *path;
char *file;
Xv_opaque client_data;
{
My_ui *ui = (My_ui *)xv_get(fc, XV_KEY_DATA, MY_KEY);
Textsw_status status;
char buf[512];
xv_set(fc, FRAME_BUSY, TRUE, NULL);
682 Version 3.2 and the File Chooser