layer element created, dialog for multiple files added

This commit is contained in:
2018-05-15 16:57:08 +02:00
parent 1539348cc6
commit aea3b490ca
5 changed files with 73 additions and 9 deletions

32
main.c
View File

@@ -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;