74 j = GPOINTER_TO_INT(data);
83 show_warning ((j) ? _(
"Y size must be > 0") : _(
"X size must be > 0"), NULL);
97G_MODULE_EXPORT
void set_background (GtkCheckButton * backb, gpointer data)
146 gtk_image_set_from_file (GTK_IMAGE(imf -> b),
PACKAGE_PNG);
149 gtk_image_set_from_file (GTK_IMAGE(imf -> b),
PACKAGE_PDF);
152 gtk_image_set_from_file (GTK_IMAGE(imf -> b),
PACKAGE_SVG);
155 gtk_image_set_from_file (GTK_IMAGE(imf -> b),
PACKAGE_EPS);
161gchar *
i_title[4]={
"Portable Network Graphics",
162 "Portable Document File",
163 "Scalable Vector Graphics",
164 "Encapsulated Post-Script Image"};
180G_MODULE_EXPORT
void run_write_image (GtkNativeDialog * info, gint response_id, gpointer data)
182 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkFileChooserNative *)info);
193G_MODULE_EXPORT
void run_write_image (GtkDialog * info, gint response_id, gpointer data)
195 GtkFileChooser * chooser = GTK_FILE_CHOOSER((GtkWidget *)info);
197 if (response_id == GTK_RESPONSE_ACCEPT)
201 this_curve -> format =
forme + 1;
205 GdkSurface * surf = gtk_native_get_surface ((GtkNative *)this_curve ->
plot);
206 cairo_t * rec = (cairo_t *)gdk_cairo_context_cairo_create (gdk_surface_create_cairo_context (surf));
226 gchar * i_filter[4]={
i18n(
"PNG file (*.png)"),
227 i18n(
"PDF file (*.pdf)"),
228 i18n(
"SVG file (*.svg)"),
229 i18n(
"EPS file (*.eps)")};
234 show_warning (_(
"To save an image please enter a file format"), this_curve -> window);
238 show_warning (_(
"You need to specify the size of the image"), this_curve -> window);
243 GtkFileChooserNative * info;
248 GTK_WINDOW(this_curve -> window),
249 GTK_FILE_CHOOSER_ACTION_SAVE,
251 GtkFileChooser * chooser = GTK_FILE_CHOOSER(info);
253 gtk_file_chooser_set_do_overwrite_confirmation (chooser, TRUE);
255 filter = gtk_file_filter_new();
256 gtk_file_filter_set_name(GTK_FILE_FILTER(
filter), _(i_filter[
forme]));
258 gtk_file_chooser_add_filter (chooser,
filter);
260 run_this_gtk_native_dialog ((GtkNativeDialog *)info, G_CALLBACK(
run_write_image), curetow);
276G_MODULE_EXPORT
void run_save_image (GtkDialog * save_img, gint response_id, gpointer data)
278 gboolean done = FALSE;
283 case GTK_RESPONSE_APPLY:
311 GtkWidget * save_img;
313 GtkWidget * comboformat;
323 gtk_window_set_resizable (GTK_WINDOW (save_img), FALSE);
325 gtk_window_set_icon (GTK_WINDOW (save_img),
THETD);
328 gtk_box_set_spacing (GTK_BOX(
vbox), 15);
333 GtkWidget * fixed = gtk_fixed_new ();
342 gtk_fixed_put (GTK_FIXED(fixed), comboformat, -1, 10);
343 gtk_widget_set_size_request (comboformat, -1, 30);
GtkFileFilter * filter[NCFORMATS+1]
Curve * get_curve_from_pointer(gpointer data)
get Curve pointer from pointer
Variable declarations for the curve widget Functions for interactions with the curve widget.
void show_curve(GtkDrawingArea *area, cairo_t *cr, int width, int height, gpointer curve)
show curve callback GTK3
double string_to_double(gpointer string)
convert string to double
Global variable declarations Global convenience function declarations Global data structure defin...
GtkWidget * dialog_cancel_apply(gchar *title, GtkWidget *parent, gboolean resiz)
create a dialog modal offering a choice to apply something or not
void run_this_gtk_dialog(GtkWidget *dial, GCallback handler, gpointer data)
run a GTK (3 and 4) basic GtkDialog
int combo_get_active(GtkWidget *combo)
retrieve the active item's position
GtkWidget * create_entry(GCallback handler, int dim, int cdim, gboolean key_release, gpointer data)
Create a GtkEntry.
int get_widget_height(GtkWidget *widg)
retrive GtkWidget height
gchar * file_chooser_get_file_name(GtkFileChooser *chooser)
get a file name from a GtkFileChooser (single file selected)
const gchar * entry_get_text(GtkEntry *entry)
get the text in a GtkEntry
void update_entry_int(GtkEntry *entry, int intval)
update the content of a GtkEntry as int
int get_widget_width(GtkWidget *widg)
retrive GtkWidget width
void button_set_status(GtkWidget *button, int status)
set status of check / toggle button
GtkWidget * check_button(gchar *text, int dimx, int dimy, gboolean state, GCallback handler, gpointer data)
create a check button
GtkWidget * create_combo()
create a GtkCombox widget, note deprecated in GTK4
GtkWidget * dialog_get_content_area(GtkWidget *widg)
prepare GtkWidget to insert content in a GtkDialog window
GtkWidget * markup_label(gchar *text, int dimx, int dimy, float ax, float ay)
create a GtkLabel with pango markup
void add_box_child_start(int orientation, GtkWidget *widg, GtkWidget *child, gboolean expand, gboolean fill, int padding)
Add a GtkWidget in a GtkBox at the initial position.
void widget_set_sensitive(GtkWidget *widg, gboolean sensitive)
Set sensitivity for a GtkWidget, ensuring it is a GtkWidget.
void destroy_this_dialog(GtkDialog *dialog)
destroy a GtkDialog
GtkWidget * create_hbox(int spacing)
create a GtkBox with horizontal orientation
void combo_text_append(GtkWidget *combo, gchar *text)
append text in GtkComboBox widget
int button_get_status(GtkWidget *button)
get status of check / toggle button
GtkWidget * create_file_chooser(const gchar *title, GtkWindow *parent, GtkFileChooserAction act, const gchar *act_name)
create a GtkFileChooser, utility to select file(s)
void destroy_this_native_dialog(GtkNativeDialog *dialog)
destroy a GtkNativeDialog
void show_warning(char *warning, GtkWidget *win)
show warning
Messaging function declarations.
void write_image(gpointer curetow)
write image - creating the file chooser dialog
G_MODULE_EXPORT void run_save_image(GtkDialog *save_img, gint response_id, gpointer data)
export curve window plot to image - running the dialog
G_MODULE_EXPORT void set_background(GtkToggleButton *backb, gpointer data)
show / hide image background toggle callback GTK3
G_MODULE_EXPORT void set_size(GtkEntry *val, gpointer data)
set image size entry callback
G_MODULE_EXPORT void choose_format(GtkComboBox *box, gpointer cid)
change image format
void save_image(gpointer cdata)
export curve window plot to image - creating the dialog
G_MODULE_EXPORT void run_write_image(GtkDialog *info, gint response_id, gpointer data)
write image - running the dialog GTK3