mirror of
https://github.com/softwarejanitor/calvados.git
synced 2024-09-09 15:54:43 +00:00
fbf7281338
Added a significant amount more of the UI code
179 lines
5.2 KiB
C
179 lines
5.2 KiB
C
#include <gtk/gtk.h>
|
|
|
|
#include "calvados.h"
|
|
|
|
/*
|
|
*
|
|
* file_viewer()
|
|
*
|
|
* Display file viewer dialog box
|
|
*
|
|
*/
|
|
void file_viewer(GtkWidget *widget, gpointer data)
|
|
{
|
|
GtkWidget *dialog;
|
|
GtkWidget *scrolled_window;
|
|
GtkWidget *table;
|
|
GtkWidget *hbox1;
|
|
GtkWidget *dataForkRb;
|
|
GtkWidget *resourceForkRb;
|
|
GtkWidget *commentRb;
|
|
GtkWidget *fileCombo;
|
|
GtkWidget *next_button;
|
|
GtkWidget *prev_button;
|
|
GtkWidget *best_button;
|
|
GtkWidget *raw_button;
|
|
GtkWidget *find_button;
|
|
GtkWidget *hbox2;
|
|
GtkWidget *print_button;
|
|
GtkWidget *font_button;
|
|
GtkWidget *done_button;
|
|
GtkWidget *help_button;
|
|
|
|
g_print("File viewer dialog box goes here\n");
|
|
|
|
/* --- Create the dialog --- */
|
|
dialog = gtk_dialog_new();
|
|
|
|
/* --- Trap the window close signal to release the grab --- */
|
|
gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
|
|
GTK_SIGNAL_FUNC(closing_dialog),
|
|
&dialog);
|
|
|
|
/* --- Set the title --- */
|
|
gtk_window_set_title(GTK_WINDOW(dialog), "File Viewer");
|
|
/* FIXME -- need to put filename in title. */
|
|
|
|
/* --- Add a small border --- */
|
|
gtk_container_border_width(GTK_CONTAINER(dialog), 5);
|
|
|
|
/* create a new scrolled window. */
|
|
scrolled_window = gtk_scrolled_window_new(NULL, NULL);
|
|
|
|
gtk_container_set_border_width(GTK_CONTAINER(scrolled_window), 10);
|
|
|
|
/* the policy is one of GTK_POLICY AUTOMATIC, or GTK_POLICY_ALWAYS.
|
|
* GTK_POLICY_AUTOMATIC will automatically decide whether you need
|
|
* scrollbars, whereas GTK_POLICY_ALWAYS will always leave the scrollbars
|
|
* there. The first one is the horizontal scrollbar, the second,
|
|
* the vertical. */
|
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
|
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
|
|
/* The dialog window is created with a vbox packed into it. */
|
|
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), scrolled_window, TRUE, TRUE, 0);
|
|
gtk_widget_show(scrolled_window);
|
|
|
|
/* FIXME -- should display the file here */
|
|
/* create a table of 10 by 10 squares. */
|
|
table = gtk_table_new(10, 10, FALSE);
|
|
|
|
/* set the spacing to 10 on x and 10 on y */
|
|
gtk_table_set_row_spacings(GTK_TABLE(table), 10);
|
|
gtk_table_set_col_spacings(GTK_TABLE(table), 10);
|
|
|
|
/* pack the table into the scrolled window */
|
|
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled_window), table);
|
|
gtk_widget_show(table);
|
|
|
|
hbox1 = gtk_hbox_new(FALSE, 0);
|
|
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->action_area), hbox1, TRUE, TRUE, 0);
|
|
gtk_widget_show(hbox1);
|
|
|
|
hbox2 = gtk_hbox_new(FALSE, 0);
|
|
gtk_box_pack_start(GTK_BOX(hbox1), hbox2, TRUE, TRUE, 0);
|
|
gtk_widget_show(hbox2);
|
|
|
|
/*
|
|
* --- Done button
|
|
*/
|
|
|
|
/* --- Create the "Done" button --- */
|
|
done_button = gtk_button_new_with_label("Done");
|
|
|
|
gtk_signal_connect(GTK_OBJECT(done_button), "clicked",
|
|
GTK_SIGNAL_FUNC(donefunc_file_viewer),
|
|
dialog);
|
|
|
|
/* --- Allow "Done" to be a default --- */
|
|
GTK_WIDGET_SET_FLAGS(done_button, GTK_CAN_DEFAULT);
|
|
|
|
/* --- Add the Done button to the bottom right --- */
|
|
gtk_box_pack_start(GTK_BOX(hbox2), done_button, TRUE, TRUE, 0);
|
|
|
|
/* --- Make the "Done" the default --- */
|
|
gtk_widget_grab_default(done_button);
|
|
|
|
/* --- Make the button visible --- */
|
|
gtk_widget_show(done_button);
|
|
|
|
/*
|
|
* --- Font button
|
|
*/
|
|
|
|
/* --- Create the "Font" button --- */
|
|
font_button = gtk_button_new_with_label("Font");
|
|
|
|
gtk_signal_connect(GTK_OBJECT(done_button), "clicked",
|
|
GTK_SIGNAL_FUNC(donefunc_file_viewer),
|
|
dialog);
|
|
|
|
/* --- Allow "Font" to be a default --- */
|
|
GTK_WIDGET_SET_FLAGS(font_button, GTK_CAN_DEFAULT);
|
|
|
|
/* --- Add the Font button to the bottom right --- */
|
|
gtk_box_pack_start(GTK_BOX(hbox2), font_button, TRUE, TRUE, 0);
|
|
|
|
/* --- Make the "Font" the default --- */
|
|
gtk_widget_grab_default(font_button);
|
|
|
|
/* --- Make the button visible --- */
|
|
gtk_widget_show(font_button);
|
|
|
|
/*
|
|
* --- Find button
|
|
*/
|
|
|
|
/* --- Create the "Find" button --- */
|
|
find_button = gtk_button_new_with_label("Find");
|
|
|
|
gtk_signal_connect(GTK_OBJECT(done_button), "clicked",
|
|
GTK_SIGNAL_FUNC(findfunc_file_viewer),
|
|
dialog);
|
|
|
|
/* --- Allow "Font" to be a default --- */
|
|
GTK_WIDGET_SET_FLAGS(find_button, GTK_CAN_DEFAULT);
|
|
|
|
/* --- Add the Font button to the bottom right --- */
|
|
gtk_box_pack_start(GTK_BOX(hbox2), find_button, TRUE, TRUE, 0);
|
|
|
|
/* --- Make the "Find" the default --- */
|
|
gtk_widget_grab_default(find_button);
|
|
|
|
/* --- Make the button visible --- */
|
|
gtk_widget_show(find_button);
|
|
|
|
/*
|
|
* --- Help button
|
|
*/
|
|
|
|
/* --- Create the "Help" button --- */
|
|
help_button = gtk_button_new_with_label("Help");
|
|
|
|
gtk_signal_connect(GTK_OBJECT(help_button), "clicked",
|
|
GTK_SIGNAL_FUNC(help_func_file_viewer),
|
|
dialog);
|
|
|
|
/* --- Add the "Help" button to the dialog --- */
|
|
gtk_box_pack_start(GTK_BOX(hbox2), done_button, TRUE, TRUE, 0);
|
|
|
|
/* --- Make the button visible. --- */
|
|
gtk_widget_show(help_button);
|
|
|
|
/* --- Show the dialog --- */
|
|
gtk_widget_show(dialog);
|
|
|
|
/* --- Only this window can be used for now --- */
|
|
gtk_grab_add(dialog);
|
|
}
|
|
|