From be0d58c54ef4c4b06fbd37eeaaf77f72f8a3d5ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Fri, 25 Oct 2019 20:36:54 +0200 Subject: [PATCH 01/10] Fix coding style in main.c --- main.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index b1a333f..ffe948d 100644 --- a/main.c +++ b/main.c @@ -125,8 +125,8 @@ static void app_about(GSimpleAction *action, GVariant *parameter, gpointer user_ * @brief Contains the application menu entries */ static const GActionEntry app_actions[] = { - {"quit", app_quit, NULL, NULL, NULL, {0}}, - {"about", app_about, NULL, NULL, NULL, {0}} + { "quit", app_quit, NULL, NULL, NULL, {0} }, + { "about", app_about, NULL, NULL, NULL, {0} }, }; /** @@ -267,14 +267,17 @@ int main(int argc, char **argv) GOptionEntry entries[] = { {"version", 'v', 0, G_OPTION_ARG_NONE, &version, "Print version", NULL}, - {"renderer", 'r', 0, G_OPTION_ARG_STRING_ARRAY, &renderer_args, "Renderer to use. Can be used multiple times.", "pdf|svg|tikz|ext"}, + {"renderer", 'r', 0, G_OPTION_ARG_STRING_ARRAY, &renderer_args, + "Renderer to use. Can be used multiple times.", "pdf|svg|tikz|ext"}, {"scale", 's', 0, G_OPTION_ARG_INT, &scale, "Divide output coordinates by ", "" }, - {"output-file", 'o', 0, G_OPTION_ARG_FILENAME_ARRAY, &output_paths, "Output file path. Can be used multiple times.", "PATH" }, + {"output-file", 'o', 0, G_OPTION_ARG_FILENAME_ARRAY, &output_paths, + "Output file path. Can be used multiple times.", "PATH" }, {"mapping", 'm', 0, G_OPTION_ARG_FILENAME, &mappingname, "Path for Layer Mapping File", "PATH" }, {"cell", 'c', 0, G_OPTION_ARG_STRING, &cellname, "Cell to render", "NAME" }, {"tex-standalone", 'a', 0, G_OPTION_ARG_NONE, &pdf_standalone, "Create standalone PDF", NULL }, {"tex-layers", 'l', 0, G_OPTION_ARG_NONE, &pdf_layers, "Create PDF Layers (OCG)", NULL }, - {"custom-render-lib", 'P', 0, G_OPTION_ARG_FILENAME, &custom_library_path, "Path to a custom shared object, that implements the " EXTERNAL_LIBRARY_FUNCTION " function", "PATH"}, + {"custom-render-lib", 'P', 0, G_OPTION_ARG_FILENAME, &custom_library_path, + "Path to a custom shared object, that implements the " EXTERNAL_LIBRARY_FUNCTION " function", "PATH"}, {NULL} }; @@ -302,9 +305,8 @@ int main(int argc, char **argv) gds_name = argv[1]; /* Print out additional arguments as ignored */ - for (i = 2; i < argc; i++) { + for (i = 2; i < argc; i++) printf("Ignored argument: %s", argv[i]); - } app_status = command_line_convert_gds(gds_name, cellname, renderer_args, output_paths, mappingname, From dd488c31055150041429eaadcca3871272773456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Fri, 25 Oct 2019 20:42:54 +0200 Subject: [PATCH 02/10] Further style mprovements --- command-line.c | 3 +-- gds-render-gui.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/command-line.c b/command-line.c index 4e75ec6..d807ce7 100644 --- a/command-line.c +++ b/command-line.c @@ -224,9 +224,8 @@ int command_line_convert_gds(const char *gds_name, ret_destroy_library_list: clear_lib_list(&libs); ret_clear_renderers: - for (list_iter = renderer_list; list_iter; list_iter = list_iter->next) { + for (list_iter = renderer_list; list_iter; list_iter = list_iter->next) g_object_unref(list_iter->data); - } ret_destroy_layer_mapping: g_object_unref(layer_sett); return ret; diff --git a/gds-render-gui.c b/gds-render-gui.c index 62bcfc5..df1ce38 100644 --- a/gds-render-gui.c +++ b/gds-render-gui.c @@ -215,7 +215,7 @@ static gboolean cell_store_filter_visible_func(GtkTreeModel *model, GtkTreeIter if (!cell) goto exit_filter; - search_string = gtk_entry_get_text(GTK_ENTRY(self->cell_search_entry )); + search_string = gtk_entry_get_text(GTK_ENTRY(self->cell_search_entry)); /* Show all, if field is empty */ if (!strlen(search_string)) @@ -246,7 +246,9 @@ int gds_render_gui_setup_cell_selector(GdsRenderGui *self) G_TYPE_STRING, G_TYPE_STRING); /* Searching */ - self->cell_filter = GTK_TREE_MODEL_FILTER(gtk_tree_model_filter_new(GTK_TREE_MODEL(self->cell_tree_store), NULL)); + self->cell_filter = GTK_TREE_MODEL_FILTER( + gtk_tree_model_filter_new(GTK_TREE_MODEL(self->cell_tree_store), NULL)); + gtk_tree_model_filter_set_visible_func(self->cell_filter, (GtkTreeModelFilterVisibleFunc)cell_store_filter_visible_func, self, NULL); @@ -273,8 +275,10 @@ int gds_render_gui_setup_cell_selector(GdsRenderGui *self) gtk_tree_view_append_column(self->cell_tree_view, column); /* Callback for selection - * This prevents selecting a library */ - gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(self->cell_tree_view), tree_sel_func, NULL, NULL); + * This prevents selecting a library + */ + gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(self->cell_tree_view), + tree_sel_func, NULL, NULL); return 0; } @@ -450,7 +454,9 @@ static void async_rendering_finished_callback(GdsOutputRenderer *renderer, gpoin g_object_unref(renderer); } -static void async_rendering_status_update_callback(GdsOutputRenderer *renderer, const char *status_message, gpointer data) +static void async_rendering_status_update_callback(GdsOutputRenderer *renderer, + const char *status_message, + gpointer data) { GdsRenderGui *gui; (void)renderer; From c7ce62673fd79be1394ec1e1c4ec1c1cca5f4d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Fri, 25 Oct 2019 20:52:22 +0200 Subject: [PATCH 03/10] Style fixes in conv settings dialog --- widgets/conv-settings-dialog.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/widgets/conv-settings-dialog.c b/widgets/conv-settings-dialog.c index 538f4dc..e0fd775 100644 --- a/widgets/conv-settings-dialog.c +++ b/widgets/conv-settings-dialog.c @@ -170,8 +170,11 @@ static gboolean shape_drawer_drawing_callback(GtkWidget *widget, cairo_t *cr, gp final_scale_value = (width_scale < height_scale ? width_scale : height_scale); - cairo_rectangle(cr, -(double)dialog->cell_width*final_scale_value/2.0, -(double)dialog->cell_height*final_scale_value/2.0, - (double)dialog->cell_width*final_scale_value, (double)dialog->cell_height*final_scale_value); + cairo_rectangle(cr, + -(double)dialog->cell_width * final_scale_value / 2.0, + -(double)dialog->cell_height * final_scale_value / 2.0, + (double)dialog->cell_width * final_scale_value, + (double)dialog->cell_height * final_scale_value); cairo_stroke(cr); cairo_restore(cr); @@ -183,9 +186,9 @@ static double convert_number_to_engineering(double input, const char **out_prefi const char *selected_prefix = NULL; double return_val = 0.0; int idx; - static const char * prefixes[] = {"y", "z", "a", "f", "p", "n", "u", "m", "c", "d", /* < 1 */ - "", /* 1 */ - "h", "k", "M", "G", "T", "P", "E", "Z", "Y"}; /* > 1 */ + static const char * const prefixes[] = {"y", "z", "a", "f", "p", "n", "u", "m", "c", "d", /* < 1 */ + "", /* 1 */ + "h", "k", "M", "G", "T", "P", "E", "Z", "Y"}; /* > 1 */ static const double scale[] = {1E-24, 1E-21, 1E-18, 1E-15, 1E-12, 1E-9, 1E-6, 1E-3, 1E-2, 1E-1, 1, 1E2, 1E3, 1E6, 1E9, 1E12, 1E15, 1E18, 1E21, 1E24}; @@ -193,7 +196,7 @@ static double convert_number_to_engineering(double input, const char **out_prefi /* If pointer is invalid, return NaN */ if (!out_prefix) - return 0.0 / 0.0; + return (0.0 / 0.0); /* Start with the 2nd smallest prefix */ for (idx = 1; idx < prefix_count; idx++) { @@ -308,9 +311,9 @@ RendererSettingsDialog *renderer_settings_dialog_new(GtkWindow *parent) RendererSettingsDialog *res; res = RENDERER_SETTINGS_DIALOG(g_object_new(RENDERER_TYPE_SETTINGS_DIALOG, NULL)); - if (res && parent) { + if (res && parent) gtk_window_set_transient_for(GTK_WINDOW(res), parent); - } + return res; } @@ -322,13 +325,12 @@ void renderer_settings_dialog_get_settings(RendererSettingsDialog *dialog, struc settings->scale = gtk_range_get_value(GTK_RANGE(dialog->scale)); /* Get active radio button selection */ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_latex)) == TRUE) { + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_latex)) == TRUE) settings->renderer = RENDERER_LATEX_TIKZ; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_cairo_pdf)) == TRUE) { + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_cairo_pdf)) == TRUE) settings->renderer = RENDERER_CAIROGRAPHICS_PDF; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_cairo_svg)) == TRUE) { + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->radio_cairo_svg)) == TRUE) settings->renderer = RENDERER_CAIROGRAPHICS_SVG; - } settings->tex_pdf_layers = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->layer_check)); settings->tex_standalone = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(dialog->standalone_check)); From 547b002e57ac2cb91f4956829240cee939057732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Fri, 25 Oct 2019 20:54:11 +0200 Subject: [PATCH 04/10] style fixes in layer-element.c --- widgets/layer-element.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/widgets/layer-element.c b/widgets/layer-element.c index 11ff3ab..08bb7f5 100644 --- a/widgets/layer-element.c +++ b/widgets/layer-element.c @@ -54,6 +54,7 @@ static void layer_element_constructed(GObject *obj) static void layer_element_class_init(LayerElementClass *klass) { GObjectClass *oclass = G_OBJECT_CLASS(klass); + oclass->dispose = layer_element_dispose; oclass->constructed = layer_element_constructed; } @@ -62,6 +63,7 @@ static void layer_element_init(LayerElement *self) { GtkBuilder *builder; GtkWidget *glade_box; + builder = gtk_builder_new_from_resource("/gui/layer-widget.glade"); glade_box = GTK_WIDGET(gtk_builder_get_object(builder, "box")); gtk_container_add(GTK_CONTAINER(self), glade_box); @@ -86,7 +88,7 @@ const char *layer_element_get_name(LayerElement *elem) return gtk_entry_get_text(elem->priv.name); } -void layer_element_set_name(LayerElement *elem, const char* name) +void layer_element_set_name(LayerElement *elem, const char *name) { gtk_entry_set_text(elem->priv.name, name); } @@ -139,8 +141,9 @@ void layer_element_set_dnd_callbacks(LayerElement *elem, struct layer_element_dn return; /* Setup drag and drop */ - gtk_style_context_add_class (gtk_widget_get_style_context(GTK_WIDGET(elem)), "row"); - gtk_drag_source_set(GTK_WIDGET(elem->priv.event_handle), GDK_BUTTON1_MASK, data->entries, data->entry_count, GDK_ACTION_MOVE); + gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(elem)), "row"); + gtk_drag_source_set(GTK_WIDGET(elem->priv.event_handle), GDK_BUTTON1_MASK, + data->entries, data->entry_count, GDK_ACTION_MOVE); g_signal_connect(elem->priv.event_handle, "drag-begin", G_CALLBACK(data->drag_begin), NULL); g_signal_connect(elem->priv.event_handle, "drag-data-get", G_CALLBACK(data->drag_data_get), NULL); g_signal_connect(elem->priv.event_handle, "drag-end", G_CALLBACK(data->drag_end), NULL); From 2e8e258b49a3052694bd961583b70f8bce82166c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Fri, 25 Oct 2019 21:16:31 +0200 Subject: [PATCH 05/10] Style improvements --- layer/color-palette.c | 30 +++--- layer/layer-selector.c | 123 +++++++++++++------------ output-renderers/cairo-renderer.c | 21 +++-- output-renderers/external-renderer.c | 5 +- output-renderers/gds-output-renderer.c | 12 +-- output-renderers/latex-renderer.c | 33 ++++--- 6 files changed, 121 insertions(+), 103 deletions(-) diff --git a/layer/color-palette.c b/layer/color-palette.c index ed68d25..f965f96 100644 --- a/layer/color-palette.c +++ b/layer/color-palette.c @@ -26,17 +26,17 @@ #include struct _ColorPalette { - /* Inheritance */ - GObject parent; + /* Inheritance */ + GObject parent; - /* Custom fields */ - /** @brief The internal array to store the colors */ - GdkRGBA *color_array; - /** @brief The length of the _ColorPalette::color_array array */ - unsigned int color_array_length; + /* Custom fields */ + /** @brief The internal array to store the colors */ + GdkRGBA *color_array; + /** @brief The length of the _ColorPalette::color_array array */ + unsigned int color_array_length; - /* Dummy bytes to ensure ABI compatibility in future versions */ - gpointer dummy[4]; + /* Dummy bytes to ensure ABI compatibility in future versions */ + gpointer dummy[4]; }; G_DEFINE_TYPE(ColorPalette, color_palette, G_TYPE_OBJECT) @@ -141,13 +141,16 @@ static int color_palette_fill_with_resource(ColorPalette *palette, char *resourc g_regex_match(regex, line, 0, &mi); if (g_match_info_matches(mi) && color_idx < lines) { match = g_match_info_fetch_named(mi, "red"); - palette->color_array[color_idx].red = (double)g_ascii_strtoll(match, NULL, 16) / 255.0; + palette->color_array[color_idx].red = + (double)g_ascii_strtoll(match, NULL, 16) / 255.0; g_free(match); match = g_match_info_fetch_named(mi, "green"); - palette->color_array[color_idx].green = (double)g_ascii_strtoll(match, NULL, 16) / 255.0; + palette->color_array[color_idx].green = + (double)g_ascii_strtoll(match, NULL, 16) / 255.0; g_free(match); match = g_match_info_fetch_named(mi, "blue"); - palette->color_array[color_idx].blue = (double)g_ascii_strtoll(match, NULL, 16) / 255.0; + palette->color_array[color_idx].blue = + (double)g_ascii_strtoll(match, NULL, 16) / 255.0; g_free(match); /* Only RGB supported so far. Fix alpha channel to 1.0 */ @@ -233,8 +236,7 @@ static void color_palette_dispose(GObject *gobj) ColorPalette *palette; palette = GDS_RENDER_COLOR_PALETTE(gobj); - if (palette->color_array) - { + if (palette->color_array) { palette->color_array_length = 0; free(palette->color_array); } diff --git a/layer/layer-selector.c b/layer/layer-selector.c index 0f9b342..177cca2 100644 --- a/layer/layer-selector.c +++ b/layer/layer-selector.c @@ -54,7 +54,8 @@ struct _LayerSelector { G_DEFINE_TYPE(LayerSelector, layer_selector, G_TYPE_OBJECT) -/* Drag and drop code +/* + * Drag and drop code * Original code from https://blog.gtk.org/2017/06/01/drag-and-drop-in-lists-revisited/ */ @@ -72,16 +73,16 @@ static void sel_layer_element_drag_begin(GtkWidget *widget, GdkDragContext *cont surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, alloc.width, alloc.height); cr = cairo_create(surface); - gtk_style_context_add_class (gtk_widget_get_style_context(row), "drag-icon"); - gtk_widget_draw (row, cr); + gtk_style_context_add_class(gtk_widget_get_style_context(row), "drag-icon"); + gtk_widget_draw(row, cr); gtk_style_context_remove_class(gtk_widget_get_style_context(row), "drag-icon"); - gtk_widget_translate_coordinates (widget, row, 0, 0, &x, &y); - cairo_surface_set_device_offset (surface, -x, -y); - gtk_drag_set_icon_surface (context, surface); + gtk_widget_translate_coordinates(widget, row, 0, 0, &x, &y); + cairo_surface_set_device_offset(surface, -x, -y); + gtk_drag_set_icon_surface(context, surface); - cairo_destroy (cr); - cairo_surface_destroy (surface); + cairo_destroy(cr); + cairo_surface_destroy(surface); g_object_set_data(G_OBJECT(gtk_widget_get_parent(row)), "drag-row", row); gtk_style_context_add_class(gtk_widget_get_style_context(row), "drag-row"); @@ -115,14 +116,14 @@ static void sel_layer_element_drag_data_get(GtkWidget *widget, GdkDragContext *c 32, (const guchar *)&widget, sizeof(gpointer)); } -static GtkListBoxRow *layer_selector_get_last_row (GtkListBox *list) +static GtkListBoxRow *layer_selector_get_last_row(GtkListBox *list) { int i; GtkListBoxRow *row; + GtkListBoxRow *tmp; row = NULL; for (i = 0; ; i++) { - GtkListBoxRow *tmp; tmp = gtk_list_box_get_row_at_index(list, i); if (tmp == NULL) break; @@ -132,15 +133,15 @@ static GtkListBoxRow *layer_selector_get_last_row (GtkListBox *list) return row; } -static GtkListBoxRow *layer_selector_get_row_before (GtkListBox *list, GtkListBoxRow *row) +static GtkListBoxRow *layer_selector_get_row_before(GtkListBox *list, GtkListBoxRow *row) { int pos; - pos = gtk_list_box_row_get_index (row); - return gtk_list_box_get_row_at_index (list, pos - 1); + pos = gtk_list_box_row_get_index(row); + return gtk_list_box_get_row_at_index(list, pos - 1); } -static GtkListBoxRow *layer_selector_get_row_after (GtkListBox *list, GtkListBoxRow *row) +static GtkListBoxRow *layer_selector_get_row_after(GtkListBox *list, GtkListBoxRow *row) { int pos; @@ -276,40 +277,40 @@ static void layer_selector_drag_leave(GtkWidget *widget, GdkDragContext *context } static const char *dnd_additional_css = - ".row:not(:first-child) { " - " border-top: 1px solid alpha(gray,0.5); " - " border-bottom: 1px solid transparent; " - "}" - ".row:first-child { " - " border-top: 1px solid transparent; " - " border-bottom: 1px solid transparent; " - "}" - ".row:last-child { " - " border-top: 1px solid alpha(gray,0.5); " - " border-bottom: 1px solid alpha(gray,0.5); " - "}" - ".row.drag-icon { " - " background: #282828; " - " border: 1px solid blue; " - "}" - ".row.drag-row { " - " color: gray; " - " background: alpha(gray,0.2); " - "}" - ".row.drag-row.drag-hover { " - " border-top: 1px solid #4e9a06; " - " border-bottom: 1px solid #4e9a06; " - "}" - ".row.drag-hover image, " - ".row.drag-hover label { " - " color: #4e9a06; " - "}" - ".row.drag-hover-top {" - " border-top: 1px solid #4e9a06; " - "}" - ".row.drag-hover-bottom {" - " border-bottom: 1px solid #4e9a06; " - "}"; + ".row:not(:first-child) { " + " border-top: 1px solid alpha(gray,0.5); " + " border-bottom: 1px solid transparent; " + "}" + ".row:first-child { " + " border-top: 1px solid transparent; " + " border-bottom: 1px solid transparent; " + "}" + ".row:last-child { " + " border-top: 1px solid alpha(gray,0.5); " + " border-bottom: 1px solid alpha(gray,0.5); " + "}" + ".row.drag-icon { " + " background: #282828; " + " border: 1px solid blue; " + "}" + ".row.drag-row { " + " color: gray; " + " background: alpha(gray,0.2); " + "}" + ".row.drag-row.drag-hover { " + " border-top: 1px solid #4e9a06; " + " border-bottom: 1px solid #4e9a06; " + "}" + ".row.drag-hover image, " + ".row.drag-hover label { " + " color: #4e9a06; " + "}" + ".row.drag-hover-top {" + " border-top: 1px solid #4e9a06; " + "}" + ".row.drag-hover-bottom {" + " border-bottom: 1px solid #4e9a06; " + "}"; static void layer_selector_dispose(GObject *self) { @@ -348,7 +349,8 @@ static void layer_selector_class_init(LayerSelectorClass *klass) static void layer_selector_setup_dnd(LayerSelector *self) { - gtk_drag_dest_set(GTK_WIDGET(self->list_box), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, &self->dnd_target, 1, GDK_ACTION_MOVE); + gtk_drag_dest_set(GTK_WIDGET(self->list_box), GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, + &self->dnd_target, 1, GDK_ACTION_MOVE); g_signal_connect(self->list_box, "drag-data-received", G_CALLBACK(layer_selector_drag_data_received), NULL); g_signal_connect(self->list_box, "drag-motion", G_CALLBACK(layer_selector_drag_motion), NULL); g_signal_connect(self->list_box, "drag-leave", G_CALLBACK(layer_selector_drag_leave), NULL); @@ -398,11 +400,11 @@ LayerSettings *layer_selector_export_rendered_layer_info(LayerSelector *selector row_list = gtk_container_get_children(GTK_CONTAINER(selector->list_box)); - for (i = 0,iterator = row_list; iterator != NULL; iterator = g_list_next(iterator), i++) { + for (i = 0, iterator = row_list; iterator != NULL; iterator = g_list_next(iterator), i++) { le = LAYER_ELEMENT(iterator->data); /* Get name from layer element. This must not be freed */ - linfo.name =(char *)layer_element_get_name(le); + linfo.name = (char *)layer_element_get_name(le); layer_element_get_color(le, &linfo.color); linfo.render = (layer_element_get_export(le) ? 1 : 0); @@ -424,9 +426,9 @@ static void layer_selector_clear_widgets(LayerSelector *self) GList *temp; list = gtk_container_get_children(GTK_CONTAINER(self->list_box)); - for (temp = list; temp != NULL; temp = temp->next) { + for (temp = list; temp != NULL; temp = temp->next) gtk_container_remove(GTK_CONTAINER(self->list_box), GTK_WIDGET(temp->data)); - } + /* Widgets are already destroyed when removed from box because they are only referenced inside the container */ g_list_free(list); @@ -444,7 +446,8 @@ static void layer_selector_clear_widgets(LayerSelector *self) * @param layer Layer number to check for * @return TRUE if layer is present, else FALSE */ -static gboolean layer_selector_check_if_layer_widget_exists(LayerSelector *self, int layer) { +static gboolean layer_selector_check_if_layer_widget_exists(LayerSelector *self, int layer) +{ GList *list; GList *temp; LayerElement *widget; @@ -552,9 +555,8 @@ void layer_selector_generate_layer_widgets(LayerSelector *selector, GList *libs) for (; libs != NULL; libs = libs->next) { lib = (struct gds_library *)libs->data; - for (cell_list = lib->cells; cell_list != NULL; cell_list = cell_list->next) { + for (cell_list = lib->cells; cell_list != NULL; cell_list = cell_list->next) layer_selector_analyze_cell_layers(selector, (struct gds_cell *)cell_list->data); - } /* For Cell List */ } /* For libs */ /* Sort the layers */ @@ -690,7 +692,8 @@ static void layer_selector_load_mapping_clicked(GtkWidget *button, gpointer user sel = LAYER_SELECTOR(user_data); - dialog = gtk_file_chooser_dialog_new("Load Mapping File", GTK_WINDOW(sel->load_parent_window), GTK_FILE_CHOOSER_ACTION_OPEN, + dialog = gtk_file_chooser_dialog_new("Load Mapping File", GTK_WINDOW(sel->load_parent_window), + GTK_FILE_CHOOSER_ACTION_OPEN, "Cancel", GTK_RESPONSE_CANCEL, "Load Mapping", GTK_RESPONSE_ACCEPT, NULL); res = gtk_dialog_run(GTK_DIALOG(dialog)); if (res == GTK_RESPONSE_ACCEPT) { @@ -735,7 +738,8 @@ static void layer_selector_save_mapping_clicked(GtkWidget *button, gpointer user sel = LAYER_SELECTOR(user_data); - dialog = gtk_file_chooser_dialog_new("Save Mapping File", GTK_WINDOW(sel->save_parent_window), GTK_FILE_CHOOSER_ACTION_SAVE, + dialog = gtk_file_chooser_dialog_new("Save Mapping File", GTK_WINDOW(sel->save_parent_window), + GTK_FILE_CHOOSER_ACTION_SAVE, "Cancel", GTK_RESPONSE_CANCEL, "Save Mapping", GTK_RESPONSE_ACCEPT, NULL); gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE); @@ -802,9 +806,8 @@ void layer_selector_select_all_layers(LayerSelector *layer_selector, gboolean se for (iter = le_list; iter != NULL; iter = g_list_next(iter)) { le = LAYER_ELEMENT(iter->data); - if (LAYER_IS_ELEMENT(le)) { + if (LAYER_IS_ELEMENT(le)) layer_element_set_export(le, select); - } } g_list_free(le_list); diff --git a/output-renderers/cairo-renderer.c b/output-renderers/cairo-renderer.c index 36d959b..8d99759 100644 --- a/output-renderers/cairo-renderer.c +++ b/output-renderers/cairo-renderer.c @@ -17,10 +17,10 @@ * along with GDSII-Converter. If not, see . */ /** - * @file cairo-renderer.c - * @brief Output renderer for Cairo PDF export - * @author Mario Hüttel - */ + * @file cairo-renderer.c + * @brief Output renderer for Cairo PDF export + * @author Mario Hüttel + */ /** @addtogroup Cairo-Renderer * @{ @@ -121,7 +121,8 @@ static void render_cell(struct gds_cell *cell, struct cairo_layer *layers, doubl /* Render child cells */ for (instance_list = cell->child_cells; instance_list != NULL; instance_list = instance_list->next) { cell_instance = (struct gds_cell_instance *)instance_list->data; - if ((temp_cell = cell_instance->cell_ref) != NULL) { + temp_cell = cell_instance->cell_ref; + if (temp_cell != NULL) { apply_inherited_transform_to_all_layers(layers, &cell_instance->origin, cell_instance->magnification, @@ -228,8 +229,12 @@ static int read_line_from_fd(int fd, char *buff, size_t buff_size) * @param scale Scale the output image down by \p scale * @return Error */ -static int cairo_renderer_render_cell_to_vector_file(GdsOutputRenderer *renderer, struct gds_cell *cell, GList *layer_infos, const char *pdf_file, - const char *svg_file, double scale) +static int cairo_renderer_render_cell_to_vector_file(GdsOutputRenderer *renderer, + struct gds_cell *cell, + GList *layer_infos, + const char *pdf_file, + const char *svg_file, + double scale) { cairo_surface_t *pdf_surface = NULL, *svg_surface = NULL; cairo_t *pdf_cr = NULL, *svg_cr = NULL; @@ -393,7 +398,7 @@ static int cairo_renderer_render_cell_to_vector_file(GdsOutputRenderer *renderer ret_clear_layers: for (i = 0; i < MAX_LAYERS; i++) { lay = &layers[i]; - if(lay->cr) { + if (lay->cr) { cairo_destroy(lay->cr); cairo_surface_destroy(lay->rec); } diff --git a/output-renderers/external-renderer.c b/output-renderers/external-renderer.c index 876433e..0e6d000 100644 --- a/output-renderers/external-renderer.c +++ b/output-renderers/external-renderer.c @@ -79,7 +79,8 @@ static int external_renderer_render_cell(struct gds_cell *toplevel_cell, GList * } /* Load symbol from library */ - so_render_func = (int (*)(struct gds_cell *, GList *, const char *, double))dlsym(so_handle, EXTERNAL_LIBRARY_FUNCTION); + so_render_func = (int (*)(struct gds_cell *, GList *, const char *, double)) + dlsym(so_handle, EXTERNAL_LIBRARY_FUNCTION); error_msg = dlerror(); if (error_msg != NULL) { fprintf(stderr, "Rendering function not found in library:\n%s\n", error_msg); @@ -133,7 +134,7 @@ static void external_renderer_get_property(GObject *obj, guint property_id, GVal g_value_set_string(value, self->shared_object_path); break; default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec); + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, property_id, pspec); break; } } diff --git a/output-renderers/gds-output-renderer.c b/output-renderers/gds-output-renderer.c index 5d27584..25c64c8 100644 --- a/output-renderers/gds-output-renderer.c +++ b/output-renderers/gds-output-renderer.c @@ -18,10 +18,10 @@ */ /** - * @file gds-output-renderer.c - * @brief Base GObject class for output renderers - * @author Mario Hüttel - */ + * @file gds-output-renderer.c + * @brief Base GObject class for output renderers + * @author Mario Hüttel + */ /** @addtogroup GdsOutputRenderer * @{ @@ -213,8 +213,6 @@ void gds_output_renderer_init(GdsOutputRenderer *self) priv->idle_function_parameters.status_message = NULL; g_mutex_init(&priv->settings_lock); g_mutex_init(&priv->idle_function_parameters.message_lock); - - return; } GdsOutputRenderer *gds_output_renderer_new() @@ -328,7 +326,7 @@ static void gds_output_renderer_async_wrapper(GTask *task, ret = -1000; goto ret_from_task; } - if(!priv->mutex_init_status) { + if (!priv->mutex_init_status) { ret = -1001; goto ret_from_task; } diff --git a/output-renderers/latex-renderer.c b/output-renderers/latex-renderer.c index 19c7477..e479e8b 100644 --- a/output-renderers/latex-renderer.c +++ b/output-renderers/latex-renderer.c @@ -140,7 +140,8 @@ static gboolean write_layer_env(FILE *tex_file, GdkRGBA *color, int layer, GList color->red = inf->color.red; color->green = inf->color.green; color->blue = inf->color.blue; - g_string_printf(buffer, "\\begin{pgfonlayer}{l%d}\n\\ifcreatepdflayers\n\\begin{scope}[ocg={ref=%d, status=visible,name={%s}}]\n\\fi\n", + g_string_printf(buffer, + "\\begin{pgfonlayer}{l%d}\n\\ifcreatepdflayers\n\\begin{scope}[ocg={ref=%d, status=visible,name={%s}}]\n\\fi\n", layer, layer, inf->name); WRITEOUT_BUFFER(buffer); return TRUE; @@ -167,21 +168,26 @@ static void generate_graphics(FILE *tex_file, GList *graphics, GList *linfo, GSt struct gds_graphics *gfx; struct gds_point *pt; GdkRGBA color; - static const char *line_caps[] = {"butt", "round", "rect"}; + static const char * const line_caps[] = {"butt", "round", "rect"}; for (temp = graphics; temp != NULL; temp = temp->next) { gfx = (struct gds_graphics *)temp->data; if (write_layer_env(tex_file, &color, (int)gfx->layer, linfo, buffer) == TRUE) { /* Layer is defined => create graphics */ - if (gfx->gfx_type == GRAPHIC_POLYGON || gfx->gfx_type == GRAPHIC_BOX ) { - g_string_printf(buffer, "\\draw[line width=0.00001 pt, draw={c%d}, fill={c%d}, fill opacity={%lf}] ", + if (gfx->gfx_type == GRAPHIC_POLYGON || gfx->gfx_type == GRAPHIC_BOX) { + g_string_printf(buffer, + "\\draw[line width=0.00001 pt, draw={c%d}, fill={c%d}, fill opacity={%lf}] ", gfx->layer, gfx->layer, color.alpha); WRITEOUT_BUFFER(buffer); /* Append vertices */ - for (temp_vertex = gfx->vertices; temp_vertex != NULL; temp_vertex = temp_vertex->next) { + for (temp_vertex = gfx->vertices; + temp_vertex != NULL; + temp_vertex = temp_vertex->next) { pt = (struct gds_point *)temp_vertex->data; - g_string_printf(buffer, "(%lf pt, %lf pt) -- ", ((double)pt->x)/scale, ((double)pt->y)/scale); + g_string_printf(buffer, "(%lf pt, %lf pt) -- ", + ((double)pt->x)/scale, + ((double)pt->y)/scale); WRITEOUT_BUFFER(buffer); } g_string_printf(buffer, "cycle;\n"); @@ -204,7 +210,9 @@ static void generate_graphics(FILE *tex_file, GList *graphics, GList *linfo, GSt WRITEOUT_BUFFER(buffer); /* Append vertices */ - for (temp_vertex = gfx->vertices; temp_vertex != NULL; temp_vertex = temp_vertex->next) { + for (temp_vertex = gfx->vertices; + temp_vertex != NULL; + temp_vertex = temp_vertex->next) { pt = (struct gds_point *)temp_vertex->data; g_string_printf(buffer, "(%lf pt, %lf pt)%s", ((double)pt->x)/scale, @@ -257,13 +265,14 @@ static void render_cell(struct gds_cell *cell, GList *layer_infos, FILE *tex_fil /* generate translation scope */ g_string_printf(buffer, "\\begin{scope}[shift={(%lf pt,%lf pt)}]\n", - ((double)inst->origin.x)/scale,((double)inst->origin.y)/scale); + ((double)inst->origin.x) / scale, ((double)inst->origin.y) / scale); WRITEOUT_BUFFER(buffer); g_string_printf(buffer, "\\begin{scope}[rotate=%lf]\n", inst->angle); WRITEOUT_BUFFER(buffer); - g_string_printf(buffer, "\\begin{scope}[yscale=%lf, xscale=%lf]\n", (inst->flipped ? -1*inst->magnification : inst->magnification), + g_string_printf(buffer, "\\begin{scope}[yscale=%lf, xscale=%lf]\n", + (inst->flipped ? -1*inst->magnification : inst->magnification), inst->magnification); WRITEOUT_BUFFER(buffer); @@ -302,7 +311,8 @@ static int latex_render_cell_to_code(struct gds_cell *cell, GList *layer_infos, WRITEOUT_BUFFER(working_line); g_string_printf(working_line, "\\iftestmode\n"); WRITEOUT_BUFFER(working_line); - g_string_printf(working_line, "\\documentclass[tikz]{standalone}\n\\usepackage{xcolor}\n\\usetikzlibrary{ocgx}\n\\begin{document}\n"); + g_string_printf(working_line, + "\\documentclass[tikz]{standalone}\n\\usepackage{xcolor}\n\\usetikzlibrary{ocgx}\n\\begin{document}\n"); WRITEOUT_BUFFER(working_line); g_string_printf(working_line, "\\fi\n"); WRITEOUT_BUFFER(working_line); @@ -361,9 +371,8 @@ static int latex_renderer_render_output(GdsOutputRenderer *renderer, g_error("Could not open LaTeX output file"); } - if (settings) { + if (settings) g_object_unref(settings); - } return ret; } From 92e40cb8ca1c81b5de11a0cd9e49eae3b7640cc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Mon, 28 Oct 2019 21:50:03 +0100 Subject: [PATCH 06/10] Fix PKGBuild --- AUR/PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AUR/PKGBUILD b/AUR/PKGBUILD index 9f440fb..00ca807 100644 --- a/AUR/PKGBUILD +++ b/AUR/PKGBUILD @@ -1,4 +1,4 @@ - # Maintainer: Mario Hüttel +# Maintainer: Mario Hüttel pkgname=gds-render pkgver=20180725.001 From 188c6f5d875995f32846d6195edfed1eeeb3d427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Mon, 28 Oct 2019 22:43:28 +0100 Subject: [PATCH 07/10] Fix style of gds-tree-checker --- gds-utils/gds-tree-checker.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gds-utils/gds-tree-checker.c b/gds-utils/gds-tree-checker.c index fc9c389..fb66048 100644 --- a/gds-utils/gds-tree-checker.c +++ b/gds-utils/gds-tree-checker.c @@ -90,7 +90,8 @@ int gds_tree_check_cell_references(struct gds_library *lib) * @param cell Cell to check for * @return 0 if cell is not in list. 1 if cell is in list */ -static int gds_tree_check_list_contains_cell(GList *list, struct gds_cell *cell) { +static int gds_tree_check_list_contains_cell(GList *list, struct gds_cell *cell) +{ GList *iter; for (iter = list; iter != NULL; iter = g_list_next(iter)) { @@ -177,12 +178,14 @@ int gds_tree_check_reference_loops(struct gds_library *lib) res = gds_tree_check_iterate_ref_and_check(cell_to_check, &visited_cells); if (visited_cells) { - /* If cell contains no loop, print error when list not empty. + /* + * If cell contains no loop, print error when list not empty. * In case of a loop, it is completely normal that the list is not empty, * due to the instant return from gds_tree_check_iterate_ref_and_check() */ if (res == 0) - fprintf(stderr, "Visited cell list should be empty. This is a bug. Please report this.\n"); + fprintf(stderr, + "Visited cell list should be empty. This is a bug. Please report this.\n"); g_list_free(visited_cells); visited_cells = NULL; } From 6d31193123ab5664d416853d6091f50f1a4aa004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Mon, 28 Oct 2019 23:55:22 +0100 Subject: [PATCH 08/10] Fix coding style in vector-operations.c --- geometric/vector-operations.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/geometric/vector-operations.c b/geometric/vector-operations.c index b236c3f..f3b0eb1 100644 --- a/geometric/vector-operations.c +++ b/geometric/vector-operations.c @@ -46,9 +46,10 @@ double vector_2d_scalar_multipy(struct vector_2d *a, struct vector_2d *b) void vector_2d_normalize(struct vector_2d *vec) { double len; + if (!vec) return; - len = sqrt(pow(vec->x,2)+pow(vec->y,2)); + len = sqrt(pow(vec->x, 2) + pow(vec->y, 2)); vec->x = vec->x/len; vec->y = vec->y/len; } @@ -97,9 +98,8 @@ struct vector_2d *vector_2d_alloc(void) void vector_2d_free(struct vector_2d *vec) { - if (vec) { + if (vec) free(vec); - } } void vector_2d_scale(struct vector_2d *vec, double scale) @@ -114,9 +114,9 @@ void vector_2d_scale(struct vector_2d *vec, double scale) double vector_2d_abs(struct vector_2d *vec) { double len = 0.0; - if (vec) { - len = sqrt(pow(vec->x,2)+pow(vec->y,2)); - } + + if (vec) + len = sqrt(pow(vec->x, 2) + pow(vec->y, 2)); return len; } @@ -142,7 +142,7 @@ void vector_2d_subtract(struct vector_2d *res, struct vector_2d *a, struct vecto void vector_2d_add(struct vector_2d *res, struct vector_2d *a, struct vector_2d *b) { if (res && a && b) { - res->x = a->x +b->x; + res->x = a->x + b->x; res->y = a->y + b->y; } } From 529b49ee2e0cf96bc5bf8471be8e876cbb1e2da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Mon, 28 Oct 2019 23:57:41 +0100 Subject: [PATCH 09/10] Fix coding style problems in bounding-box.c --- geometric/bounding-box.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/geometric/bounding-box.c b/geometric/bounding-box.c index 65dc781..3dc7d1e 100644 --- a/geometric/bounding-box.c +++ b/geometric/bounding-box.c @@ -33,8 +33,8 @@ #include -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) /**< @brief Return smaller number */ -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) /**< @brief Return bigger number */ +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) /**< @brief Return smaller number */ +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) /**< @brief Return bigger number */ #define ABS_DBL(a) ((a) < 0 ? -(a) : (a)) void bounding_box_calculate_polygon(GList *vertices, conv_generic_to_vector_2d_t conv_func, union bounding_box *box) @@ -151,7 +151,7 @@ void bounding_box_calculate_path_box(GList *vertices, double thickness, GList *vertex_iterator; struct vector_2d pt; - printf("Warning! Function bounding_box_calculate_path_box not yet implemented correctly!\n"); + printf("Warning! Function %s not yet implemented correctly!\n", __func__); if (!vertices || !box) return; From 0304c0d08b581c3f5653a24882dcda795bcbf2b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Sun, 3 Nov 2019 21:07:56 +0100 Subject: [PATCH 10/10] Adapt Header bar to show title correctly --- resources/main.glade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/main.glade b/resources/main.glade index f5bf72e..c55f964 100644 --- a/resources/main.glade +++ b/resources/main.glade @@ -47,7 +47,7 @@ header True False - GDS Renderer + GDS-Render True