layer element created, dialog for multiple files added
This commit is contained in:
32
main.c
32
main.c
@@ -20,6 +20,8 @@
|
||||
#include <stdio.h>
|
||||
#include "gdsparse.h"
|
||||
#include <gtk/gtk.h>
|
||||
#include "layer-element.h"
|
||||
|
||||
|
||||
enum cell_store_columns {
|
||||
LIBRARY,
|
||||
@@ -29,9 +31,9 @@ enum cell_store_columns {
|
||||
|
||||
|
||||
struct open_button_data {
|
||||
GtkWindow *main_window;
|
||||
GList **list_ptr;
|
||||
GtkTreeStore *cell_store;
|
||||
GtkWindow *main_window;
|
||||
GList **list_ptr;
|
||||
GtkTreeStore *cell_store;
|
||||
};
|
||||
|
||||
|
||||
@@ -58,6 +60,7 @@ void on_load_gds(gpointer button, gpointer user)
|
||||
GtkTreeStore *store = ptr->cell_store;
|
||||
GtkWidget *open_dialog;
|
||||
GtkFileChooser *file_chooser;
|
||||
GtkWidget *msg_dialog;
|
||||
GtkFileFilter *filter;
|
||||
GtkStyleContext *button_style;
|
||||
gint dialog_result;
|
||||
@@ -80,11 +83,24 @@ void on_load_gds(gpointer button, gpointer user)
|
||||
/* Get File name */
|
||||
filename = gtk_file_chooser_get_filename(file_chooser);
|
||||
|
||||
/* Clear Display */
|
||||
gtk_tree_store_clear(store);
|
||||
/* Delete parsed GDS data */
|
||||
clear_lib_list(ptr->list_ptr);
|
||||
if (*ptr->list_ptr) {
|
||||
/* Libraries present */
|
||||
msg_dialog =
|
||||
gtk_message_dialog_new(ptr->main_window, GTK_DIALOG_USE_HEADER_BAR,
|
||||
GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
|
||||
"There's already data present? Delete old data?");
|
||||
dialog_result = gtk_dialog_run(GTK_DIALOG(msg_dialog));
|
||||
gtk_widget_destroy(msg_dialog);
|
||||
} else
|
||||
dialog_result = GTK_RESPONSE_YES;
|
||||
|
||||
/* Clear Display Will be completely refreshed in any case */
|
||||
gtk_tree_store_clear(store);
|
||||
|
||||
if (dialog_result == GTK_RESPONSE_YES) {
|
||||
/* Delete parsed GDS data */
|
||||
clear_lib_list(ptr->list_ptr);
|
||||
}
|
||||
/* Parse new GDSII file */
|
||||
gds_result = parse_gds_from_file(filename, ptr->list_ptr);
|
||||
|
||||
@@ -145,6 +161,7 @@ int main(int argc, char **argv)
|
||||
GList *gds_libs = NULL;
|
||||
GtkTreeView *cell_tree;
|
||||
GtkTreeStore *cell_store;
|
||||
|
||||
struct open_button_data open_data;
|
||||
|
||||
gtk_init(&argc, &argv);
|
||||
@@ -165,6 +182,7 @@ int main(int argc, char **argv)
|
||||
"clicked", G_CALLBACK(on_load_gds), (gpointer)&open_data);
|
||||
|
||||
|
||||
|
||||
gtk_main();
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user