Fixed to use multiple compilation instead of one giant .c file with several
included .h files. Ick. See ChangeLog. --klm
This commit is contained in:
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
1999-09-08 Kelly Lynn Martin <kelly@gimp.org>
|
||||
|
||||
* plug-ins/FractalExplorer/FractalExplorer.[ch]
|
||||
plug-ins/FractalExplorer/Globals.c
|
||||
plug-ins/FractalExplorer/Languages.[ch]
|
||||
plug-ins/FractalExplorer/Events.[ch]
|
||||
plug-ins/FractalExplorer/Callbacks.[ch]
|
||||
plug-ins/FractalExplorer/Dialogs.[ch]
|
||||
plug-ins/FractalExplorer/Makefile.am: fixed so that the code
|
||||
wasn't one giant .c file with several included .h files
|
||||
containing function definitions (eek!). Done in preparation for
|
||||
modifying to allow a colormap larger than 256 colors.
|
||||
|
||||
Thu Sep 9 03:45:39 MEST 1999 Sven Neumann <sven@gimp.org>
|
||||
|
||||
* app/airbrush.c
|
||||
|
371
plug-ins/FractalExplorer/Callbacks.c
Normal file
371
plug-ins/FractalExplorer/Callbacks.c
Normal file
@ -0,0 +1,371 @@
|
||||
#include "FractalExplorer.h"
|
||||
#include "Callbacks.h"
|
||||
#include "Dialogs.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_close_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_close_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_main_quit();
|
||||
} /* dialog_close_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_save_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_save_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
create_file_selection();
|
||||
} /* dialog_save_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_savelanguage_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_savelanguage_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
FILE * fp;
|
||||
char * filname;
|
||||
|
||||
filname = g_strconcat (gimp_directory (),
|
||||
G_DIR_SEPARATOR_S,
|
||||
"fractalexplorerrc",
|
||||
NULL);
|
||||
lng=wvals.language;
|
||||
fp = fopen (filname, "w");
|
||||
if (fp) {
|
||||
if (lng==0) fputs("FX-LANG:En\n",fp);
|
||||
if (lng==1) fputs("FX-LANG:Fr\n",fp);
|
||||
if (lng==2) fputs("FX-LANG:De\n",fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
g_free (filename);
|
||||
} /* dialog_savelanguage_callback */
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: load_button_press
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
load_button_press(GtkWidget * widget,
|
||||
gpointer data)
|
||||
{
|
||||
create_load_file_selection();
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_ok_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_ok_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
wint.run = TRUE;
|
||||
gtk_widget_destroy(GTK_WIDGET(data));
|
||||
} /* dialog_ok_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_reset_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_reset_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
wvals.xmin = standardvals.xmin;
|
||||
wvals.xmax = standardvals.xmax;
|
||||
wvals.ymin = standardvals.ymin;
|
||||
wvals.ymax = standardvals.ymax;
|
||||
wvals.iter = standardvals.iter;
|
||||
wvals.cx = standardvals.cx;
|
||||
wvals.cy = standardvals.cy;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_redraw_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_redraw_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
int alwaysprev = wvals.alwayspreview;
|
||||
wvals.alwayspreview = TRUE;
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
wvals.alwayspreview = alwaysprev;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_cancel_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_cancel_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_destroy(GTK_WIDGET(data));
|
||||
} /* dialog_cancel_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_undo_zoom_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_undo_zoom_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
if (zoomindex > 1) {
|
||||
zooms[zoomindex] = wvals;
|
||||
zoomindex--;
|
||||
wvals = zooms[zoomindex];
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_undo_zoom_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_redo_zoom_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_redo_zoom_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
if (zoomindex < zoommax) {
|
||||
zoomindex++;
|
||||
wvals = zooms[zoomindex];
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_redo_zoom_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_step_in_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_step_in_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
double xdifferenz;
|
||||
double ydifferenz;
|
||||
if (zoomindex < zoommax) {
|
||||
zooms[zoomindex]=wvals;
|
||||
zoomindex++;
|
||||
}
|
||||
xdifferenz=wvals.xmax-wvals.xmin;
|
||||
ydifferenz=wvals.ymax-wvals.ymin;
|
||||
wvals.xmin+=1.0/6.0*xdifferenz;
|
||||
wvals.ymin+=1.0/6.0*ydifferenz;
|
||||
wvals.xmax-=1.0/6.0*xdifferenz;
|
||||
wvals.ymax-=1.0/6.0*ydifferenz;
|
||||
zooms[zoomindex]=wvals;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
} /* dialog_step_in_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_step_out_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_step_out_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
double xdifferenz;
|
||||
double ydifferenz;
|
||||
if (zoomindex < zoommax) {
|
||||
zooms[zoomindex]=wvals;
|
||||
zoomindex++;
|
||||
}
|
||||
xdifferenz=wvals.xmax-wvals.xmin;
|
||||
ydifferenz=wvals.ymax-wvals.ymin;
|
||||
wvals.xmin-=1.0/4.0*xdifferenz;
|
||||
wvals.ymin-=1.0/4.0*ydifferenz;
|
||||
wvals.xmax+=1.0/4.0*xdifferenz;
|
||||
wvals.ymax+=1.0/4.0*ydifferenz;
|
||||
zooms[zoomindex]=wvals;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
} /* dialog_step_out_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_logo_ok_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_logo_ok_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_set_sensitive(maindlg, TRUE);
|
||||
gtk_widget_destroy(logodlg);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_about_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_about_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_set_sensitive(maindlg, FALSE);
|
||||
explorer_logo_dialog();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_toggle_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_toggle_update(GtkWidget * widget,
|
||||
gpointer data)
|
||||
{
|
||||
int *toggle_val;
|
||||
|
||||
toggle_val = (int *) data;
|
||||
|
||||
if (GTK_TOGGLE_BUTTON(widget)->active)
|
||||
*toggle_val = TRUE;
|
||||
else
|
||||
*toggle_val = FALSE;
|
||||
|
||||
if (do_redsinus)
|
||||
wvals.redmode = SINUS;
|
||||
else if (do_redcosinus)
|
||||
wvals.redmode = COSINUS;
|
||||
else if (do_rednone)
|
||||
wvals.redmode = NONE;
|
||||
|
||||
if (do_greensinus)
|
||||
wvals.greenmode = SINUS;
|
||||
else if (do_greencosinus)
|
||||
wvals.greenmode = COSINUS;
|
||||
else if (do_greennone)
|
||||
wvals.greenmode = NONE;
|
||||
|
||||
if (do_bluesinus)
|
||||
wvals.bluemode = SINUS;
|
||||
else if (do_bluecosinus)
|
||||
wvals.bluemode = COSINUS;
|
||||
else if (do_bluenone)
|
||||
wvals.bluemode = NONE;
|
||||
|
||||
if (do_colormode1)
|
||||
wvals.colormode = 0;
|
||||
else if (do_colormode2)
|
||||
wvals.colormode = 1;
|
||||
|
||||
if (do_english)
|
||||
wvals.language = 0;
|
||||
else if (do_french)
|
||||
wvals.language = 1;
|
||||
else if (do_german)
|
||||
wvals.language = 2;
|
||||
|
||||
|
||||
if (do_type0)
|
||||
wvals.fractaltype = 0;
|
||||
else if (do_type1)
|
||||
wvals.fractaltype = 1;
|
||||
else if (do_type2)
|
||||
wvals.fractaltype = 2;
|
||||
else if (do_type3)
|
||||
wvals.fractaltype = 3;
|
||||
else if (do_type4)
|
||||
wvals.fractaltype = 4;
|
||||
else if (do_type5)
|
||||
wvals.fractaltype = 5;
|
||||
else if (do_type6)
|
||||
wvals.fractaltype = 6;
|
||||
else if (do_type7)
|
||||
wvals.fractaltype = 7;
|
||||
else if (do_type8)
|
||||
wvals.fractaltype = 8;
|
||||
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_scale_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_scale_update(GtkAdjustment * adjustment, gdouble * value)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
char buf[MAXSTRLEN];
|
||||
|
||||
if (*value != adjustment->value) {
|
||||
*value = adjustment->value;
|
||||
|
||||
entry = gtk_object_get_user_data(GTK_OBJECT(adjustment));
|
||||
sprintf(buf, "%0.15f", *value);
|
||||
|
||||
gtk_signal_handler_block_by_data(GTK_OBJECT(entry), value);
|
||||
gtk_entry_set_text(GTK_ENTRY(entry), buf);
|
||||
gtk_signal_handler_unblock_by_data(GTK_OBJECT(entry), value);
|
||||
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_scale_update */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_scale_int_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_scale_int_update(GtkAdjustment * adjustment, gdouble * value)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
char buf[MAXSTRLEN];
|
||||
|
||||
if (*value != adjustment->value) {
|
||||
*value = adjustment->value;
|
||||
|
||||
entry = gtk_object_get_user_data(GTK_OBJECT(adjustment));
|
||||
sprintf(buf, "%i", (int) *value);
|
||||
|
||||
gtk_signal_handler_block_by_data(GTK_OBJECT(entry), value);
|
||||
gtk_entry_set_text(GTK_ENTRY(entry), buf);
|
||||
gtk_signal_handler_unblock_by_data(GTK_OBJECT(entry), value);
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_scale_int_update */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_entry_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_entry_update(GtkWidget * widget, gdouble * value)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
gdouble new_value;
|
||||
|
||||
new_value = atof(gtk_entry_get_text(GTK_ENTRY(widget)));
|
||||
|
||||
if (*value != new_value) {
|
||||
adjustment = gtk_object_get_user_data(GTK_OBJECT(widget));
|
||||
|
||||
if ((new_value >= adjustment->lower) &&
|
||||
(new_value <= adjustment->upper)) {
|
||||
*value = new_value;
|
||||
adjustment->value = new_value;
|
||||
|
||||
gtk_signal_emit_by_name(GTK_OBJECT(adjustment), "value_changed");
|
||||
|
||||
dialog_update_preview();
|
||||
}
|
||||
}
|
||||
} /* dialog_entry_update */
|
@ -1,366 +1,26 @@
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_close_callback
|
||||
*********************************************************************/
|
||||
#ifndef __FRACTALEXPLORER_CALLBACKS_H__
|
||||
#define __FRACTALEXPLORER_CALLBACKS_H__
|
||||
|
||||
void
|
||||
dialog_close_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_main_quit();
|
||||
} /* dialog_close_callback */
|
||||
#include "gtk/gtk.h"
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_save_callback
|
||||
*********************************************************************/
|
||||
void dialog_close_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_save_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_savelanguage_callback(GtkWidget * widget, gpointer data);
|
||||
void load_button_press(GtkWidget * widget, gpointer data);
|
||||
void dialog_ok_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_reset_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_redraw_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_cancel_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_undo_zoom_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_redo_zoom_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_step_in_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_step_out_callback(GtkWidget * widget, gpointer data);
|
||||
void explorer_logo_ok_callback(GtkWidget * widget, gpointer data);
|
||||
void explorer_about_callback(GtkWidget * widget, gpointer data);
|
||||
void explorer_toggle_update(GtkWidget * widget, gpointer data);
|
||||
void dialog_scale_update(GtkAdjustment * adjustment, gdouble * value);
|
||||
void dialog_scale_int_update(GtkAdjustment * adjustment, gdouble * value);
|
||||
void dialog_entry_update(GtkWidget * widget, gdouble * value);
|
||||
|
||||
void
|
||||
dialog_save_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
create_file_selection();
|
||||
} /* dialog_save_callback */
|
||||
#endif
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_savelanguage_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_savelanguage_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
FILE * fp;
|
||||
char * filname;
|
||||
|
||||
filname = g_strconcat (gimp_directory (),
|
||||
G_DIR_SEPARATOR_S,
|
||||
"fractalexplorerrc",
|
||||
NULL);
|
||||
lng=wvals.language;
|
||||
fp = fopen (filname, "w");
|
||||
if (fp) {
|
||||
if (lng==0) fputs("FX-LANG:En\n",fp);
|
||||
if (lng==1) fputs("FX-LANG:Fr\n",fp);
|
||||
if (lng==2) fputs("FX-LANG:De\n",fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
g_free (filename);
|
||||
} /* dialog_savelanguage_callback */
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: load_button_press
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
load_button_press(GtkWidget * widget,
|
||||
gpointer data)
|
||||
{
|
||||
create_load_file_selection();
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_ok_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_ok_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
wint.run = TRUE;
|
||||
gtk_widget_destroy(GTK_WIDGET(data));
|
||||
} /* dialog_ok_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_reset_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_reset_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
wvals.xmin = standardvals.xmin;
|
||||
wvals.xmax = standardvals.xmax;
|
||||
wvals.ymin = standardvals.ymin;
|
||||
wvals.ymax = standardvals.ymax;
|
||||
wvals.iter = standardvals.iter;
|
||||
wvals.cx = standardvals.cx;
|
||||
wvals.cy = standardvals.cy;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_redraw_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_redraw_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
int alwaysprev = wvals.alwayspreview;
|
||||
wvals.alwayspreview = TRUE;
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
wvals.alwayspreview = alwaysprev;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_cancel_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_cancel_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_destroy(GTK_WIDGET(data));
|
||||
} /* dialog_cancel_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_undo_zoom_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_undo_zoom_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
if (zoomindex > 1) {
|
||||
zooms[zoomindex] = wvals;
|
||||
zoomindex--;
|
||||
wvals = zooms[zoomindex];
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_undo_zoom_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_redo_zoom_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_redo_zoom_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
if (zoomindex < zoommax) {
|
||||
zoomindex++;
|
||||
wvals = zooms[zoomindex];
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_redo_zoom_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_step_in_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_step_in_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
double xdifferenz;
|
||||
double ydifferenz;
|
||||
if (zoomindex < zoommax) {
|
||||
zooms[zoomindex]=wvals;
|
||||
zoomindex++;
|
||||
}
|
||||
xdifferenz=wvals.xmax-wvals.xmin;
|
||||
ydifferenz=wvals.ymax-wvals.ymin;
|
||||
wvals.xmin+=1.0/6.0*xdifferenz;
|
||||
wvals.ymin+=1.0/6.0*ydifferenz;
|
||||
wvals.xmax-=1.0/6.0*xdifferenz;
|
||||
wvals.ymax-=1.0/6.0*ydifferenz;
|
||||
zooms[zoomindex]=wvals;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
} /* dialog_step_in_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_step_out_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_step_out_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
double xdifferenz;
|
||||
double ydifferenz;
|
||||
if (zoomindex < zoommax) {
|
||||
zooms[zoomindex]=wvals;
|
||||
zoomindex++;
|
||||
}
|
||||
xdifferenz=wvals.xmax-wvals.xmin;
|
||||
ydifferenz=wvals.ymax-wvals.ymin;
|
||||
wvals.xmin-=1.0/4.0*xdifferenz;
|
||||
wvals.ymin-=1.0/4.0*ydifferenz;
|
||||
wvals.xmax+=1.0/4.0*xdifferenz;
|
||||
wvals.ymax+=1.0/4.0*ydifferenz;
|
||||
zooms[zoomindex]=wvals;
|
||||
dialog_change_scale();
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
} /* dialog_step_out_callback */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_logo_ok_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_logo_ok_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_set_sensitive(maindlg, TRUE);
|
||||
gtk_widget_destroy(logodlg);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_about_callback
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_about_callback(GtkWidget * widget, gpointer data)
|
||||
{
|
||||
gtk_widget_set_sensitive(maindlg, FALSE);
|
||||
explorer_logo_dialog();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: explorer_toggle_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
explorer_toggle_update(GtkWidget * widget,
|
||||
gpointer data)
|
||||
{
|
||||
int *toggle_val;
|
||||
|
||||
toggle_val = (int *) data;
|
||||
|
||||
if (GTK_TOGGLE_BUTTON(widget)->active)
|
||||
*toggle_val = TRUE;
|
||||
else
|
||||
*toggle_val = FALSE;
|
||||
|
||||
if (do_redsinus)
|
||||
wvals.redmode = SINUS;
|
||||
else if (do_redcosinus)
|
||||
wvals.redmode = COSINUS;
|
||||
else if (do_rednone)
|
||||
wvals.redmode = NONE;
|
||||
|
||||
if (do_greensinus)
|
||||
wvals.greenmode = SINUS;
|
||||
else if (do_greencosinus)
|
||||
wvals.greenmode = COSINUS;
|
||||
else if (do_greennone)
|
||||
wvals.greenmode = NONE;
|
||||
|
||||
if (do_bluesinus)
|
||||
wvals.bluemode = SINUS;
|
||||
else if (do_bluecosinus)
|
||||
wvals.bluemode = COSINUS;
|
||||
else if (do_bluenone)
|
||||
wvals.bluemode = NONE;
|
||||
|
||||
if (do_colormode1)
|
||||
wvals.colormode = 0;
|
||||
else if (do_colormode2)
|
||||
wvals.colormode = 1;
|
||||
|
||||
if (do_english)
|
||||
wvals.language = 0;
|
||||
else if (do_french)
|
||||
wvals.language = 1;
|
||||
else if (do_german)
|
||||
wvals.language = 2;
|
||||
|
||||
|
||||
if (do_type0)
|
||||
wvals.fractaltype = 0;
|
||||
else if (do_type1)
|
||||
wvals.fractaltype = 1;
|
||||
else if (do_type2)
|
||||
wvals.fractaltype = 2;
|
||||
else if (do_type3)
|
||||
wvals.fractaltype = 3;
|
||||
else if (do_type4)
|
||||
wvals.fractaltype = 4;
|
||||
else if (do_type5)
|
||||
wvals.fractaltype = 5;
|
||||
else if (do_type6)
|
||||
wvals.fractaltype = 6;
|
||||
else if (do_type7)
|
||||
wvals.fractaltype = 7;
|
||||
else if (do_type8)
|
||||
wvals.fractaltype = 8;
|
||||
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_scale_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_scale_update(GtkAdjustment * adjustment, gdouble * value)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
char buf[256];
|
||||
|
||||
if (*value != adjustment->value) {
|
||||
*value = adjustment->value;
|
||||
|
||||
entry = gtk_object_get_user_data(GTK_OBJECT(adjustment));
|
||||
sprintf(buf, "%0.15f", *value);
|
||||
|
||||
gtk_signal_handler_block_by_data(GTK_OBJECT(entry), value);
|
||||
gtk_entry_set_text(GTK_ENTRY(entry), buf);
|
||||
gtk_signal_handler_unblock_by_data(GTK_OBJECT(entry), value);
|
||||
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_scale_update */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_scale_int_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_scale_int_update(GtkAdjustment * adjustment, gdouble * value)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
char buf[256];
|
||||
|
||||
if (*value != adjustment->value) {
|
||||
*value = adjustment->value;
|
||||
|
||||
entry = gtk_object_get_user_data(GTK_OBJECT(adjustment));
|
||||
sprintf(buf, "%i", (int) *value);
|
||||
|
||||
gtk_signal_handler_block_by_data(GTK_OBJECT(entry), value);
|
||||
gtk_entry_set_text(GTK_ENTRY(entry), buf);
|
||||
gtk_signal_handler_unblock_by_data(GTK_OBJECT(entry), value);
|
||||
set_cmap_preview();
|
||||
dialog_update_preview();
|
||||
}
|
||||
} /* dialog_scale_int_update */
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: dialog_entry_update
|
||||
*********************************************************************/
|
||||
|
||||
void
|
||||
dialog_entry_update(GtkWidget * widget, gdouble * value)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
gdouble new_value;
|
||||
|
||||
new_value = atof(gtk_entry_get_text(GTK_ENTRY(widget)));
|
||||
|
||||
if (*value != new_value) {
|
||||
adjustment = gtk_object_get_user_data(GTK_OBJECT(widget));
|
||||
|
||||
if ((new_value >= adjustment->lower) &&
|
||||
(new_value <= adjustment->upper)) {
|
||||
*value = new_value;
|
||||
adjustment->value = new_value;
|
||||
|
||||
gtk_signal_emit_by_name(GTK_OBJECT(adjustment), "value_changed");
|
||||
|
||||
dialog_update_preview();
|
||||
}
|
||||
}
|
||||
} /* dialog_entry_update */
|
||||
|
2317
plug-ins/FractalExplorer/Dialogs.c
Normal file
2317
plug-ins/FractalExplorer/Dialogs.c
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
307
plug-ins/FractalExplorer/Events.c
Normal file
307
plug-ins/FractalExplorer/Events.c
Normal file
@ -0,0 +1,307 @@
|
||||
#include "FractalExplorer.h"
|
||||
#include "Events.h"
|
||||
#include "Dialogs.h"
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_button_press_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_button_press_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
double left,
|
||||
right,
|
||||
bottom,
|
||||
top,
|
||||
dx,
|
||||
dy;
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
|
||||
if (event->button == 1) {
|
||||
x_press = event->x;
|
||||
y_press = event->y;
|
||||
left = sel_x1;
|
||||
right = sel_x2 - 1;
|
||||
bottom = sel_y2 - 1;
|
||||
top = sel_y1;
|
||||
dx = (right - left) / (preview_width - 1);
|
||||
dy = (bottom - top) / (preview_height - 1);
|
||||
xbild = preview_width;
|
||||
ybild = preview_height;
|
||||
xdiff = (xmax - xmin) / xbild;
|
||||
ydiff = (ymax - ymin) / ybild;
|
||||
|
||||
py = y_press;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) x_press);
|
||||
px = x_press;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_motion_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_motion_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
|
||||
ypos = oldypos;
|
||||
xpos = oldxpos;
|
||||
if (oldypos != -1) {
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
}
|
||||
oldxpos = xpos = event->x;
|
||||
oldypos = ypos = event->y;
|
||||
|
||||
if ((xpos >= 0.0) && (ypos >= 0.0)
|
||||
&& (xpos < preview_width) && (ypos < preview_height)) {
|
||||
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
} else {
|
||||
oldypos = -1;
|
||||
oldxpos = -1;
|
||||
}
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_leave_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_leave_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
|
||||
ypos = oldypos;
|
||||
xpos = oldxpos;
|
||||
if (oldypos != -1) {
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
}
|
||||
oldxpos = -1;
|
||||
oldypos = -1;
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
MyCursor = gdk_cursor_new(GDK_TOP_LEFT_ARROW);
|
||||
gdk_window_set_cursor(maindlg->window, MyCursor);
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_enter_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_enter_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
MyCursor = gdk_cursor_new(GDK_TCROSS);
|
||||
gdk_window_set_cursor(maindlg->window, MyCursor);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_button_release_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_button_release_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
double l_xmin,
|
||||
l_xmax,
|
||||
l_ymin,
|
||||
l_ymax;
|
||||
if (event->button == 1) {
|
||||
x_release = event->x;
|
||||
y_release = event->y;
|
||||
|
||||
if ((x_press >= 0.0) && (y_press >= 0.0)
|
||||
&& (x_release >= 0.0) && (y_release >= 0.0)
|
||||
&& (x_press < preview_width) && (y_press < preview_height)
|
||||
&& (x_release < preview_width) && (y_release < preview_height)) {
|
||||
l_xmin = wvals.xmin + (wvals.xmax - wvals.xmin) * (x_press / preview_width);
|
||||
l_xmax = wvals.xmin + (wvals.xmax - wvals.xmin) * (x_release / preview_width);
|
||||
l_ymin = wvals.ymin + (wvals.ymax - wvals.ymin) * (y_press / preview_height);
|
||||
l_ymax = wvals.ymin + (wvals.ymax - wvals.ymin) * (y_release / preview_height);
|
||||
zooms[zoomindex] = wvals;
|
||||
zoomindex++;
|
||||
if (zoomindex > 99)
|
||||
zoomindex = 99;
|
||||
zoommax = zoomindex;
|
||||
wvals.xmin = l_xmin;
|
||||
wvals.xmax = l_xmax;
|
||||
wvals.ymin = l_ymin;
|
||||
wvals.ymax = l_ymax;
|
||||
dialog_change_scale();
|
||||
dialog_update_preview();
|
||||
oldypos = oldxpos = -1;
|
||||
}
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
@ -1,304 +1,13 @@
|
||||
#ifndef __FRACTALEXPLORER_EVENTS_H__
|
||||
#define __FRACTALEXPLORER_EVENTS_H__
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_button_press_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_button_press_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
double left,
|
||||
right,
|
||||
bottom,
|
||||
top,
|
||||
dx,
|
||||
dy;
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
/* Preview events */
|
||||
gint preview_button_press_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_button_release_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_motion_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_leave_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_enter_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
|
||||
if (event->button == 1) {
|
||||
x_press = event->x;
|
||||
y_press = event->y;
|
||||
left = sel_x1;
|
||||
right = sel_x2 - 1;
|
||||
bottom = sel_y2 - 1;
|
||||
top = sel_y1;
|
||||
dx = (right - left) / (preview_width - 1);
|
||||
dy = (bottom - top) / (preview_height - 1);
|
||||
xbild = preview_width;
|
||||
ybild = preview_height;
|
||||
xdiff = (xmax - xmin) / xbild;
|
||||
ydiff = (ymax - ymin) / ybild;
|
||||
#endif
|
||||
|
||||
py = y_press;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) x_press);
|
||||
px = x_press;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_motion_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_motion_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
|
||||
ypos = oldypos;
|
||||
xpos = oldxpos;
|
||||
if (oldypos != -1) {
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
}
|
||||
oldxpos = xpos = event->x;
|
||||
oldypos = ypos = event->y;
|
||||
|
||||
if ((xpos >= 0.0) && (ypos >= 0.0)
|
||||
&& (xpos < preview_width) && (ypos < preview_height)) {
|
||||
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
} else {
|
||||
oldypos = -1;
|
||||
oldxpos = -1;
|
||||
}
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_leave_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_leave_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
int px,
|
||||
py,
|
||||
x,
|
||||
y;
|
||||
unsigned short r,
|
||||
g,
|
||||
b;
|
||||
guchar *p_ul,
|
||||
*i,
|
||||
*p;
|
||||
|
||||
ypos = oldypos;
|
||||
xpos = oldxpos;
|
||||
if (oldypos != -1) {
|
||||
py = ypos;
|
||||
px = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * py + 0);
|
||||
|
||||
for (x = 0; x < preview_width; x++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3;
|
||||
px += 1;
|
||||
}
|
||||
py = 0;
|
||||
p_ul = wint.wimage + 3 * (preview_width * 0 + (int) xpos);
|
||||
px = xpos;
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
i = wint.wimage + 3 * (preview_width * py + px);
|
||||
r = (*i++) ^ 254;
|
||||
g = (*i++) ^ 254;
|
||||
b = (*i) ^ 254;
|
||||
p_ul[0] = r;
|
||||
p_ul[1] = g;
|
||||
p_ul[2] = b;
|
||||
p_ul += 3 * (preview_width);
|
||||
py += 1;
|
||||
} /* for */
|
||||
}
|
||||
oldxpos = -1;
|
||||
oldypos = -1;
|
||||
|
||||
p = wint.wimage;
|
||||
|
||||
for (y = 0; y < preview_height; y++) {
|
||||
gtk_preview_draw_row(GTK_PREVIEW(wint.preview), p, 0, y, preview_width);
|
||||
p += preview_width * 3;
|
||||
} /* for */
|
||||
gtk_widget_draw(wint.preview, NULL);
|
||||
gdk_flush();
|
||||
MyCursor = gdk_cursor_new(GDK_TOP_LEFT_ARROW);
|
||||
gdk_window_set_cursor(maindlg->window, MyCursor);
|
||||
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_enter_notify_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_enter_notify_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
MyCursor = gdk_cursor_new(GDK_TCROSS);
|
||||
gdk_window_set_cursor(maindlg->window, MyCursor);
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
FUNCTION: preview_button_release_event
|
||||
*********************************************************************/
|
||||
|
||||
gint
|
||||
preview_button_release_event(GtkWidget * widget, GdkEventButton * event)
|
||||
{
|
||||
double l_xmin,
|
||||
l_xmax,
|
||||
l_ymin,
|
||||
l_ymax;
|
||||
if (event->button == 1) {
|
||||
x_release = event->x;
|
||||
y_release = event->y;
|
||||
|
||||
if ((x_press >= 0.0) && (y_press >= 0.0)
|
||||
&& (x_release >= 0.0) && (y_release >= 0.0)
|
||||
&& (x_press < preview_width) && (y_press < preview_height)
|
||||
&& (x_release < preview_width) && (y_release < preview_height)) {
|
||||
l_xmin = wvals.xmin + (wvals.xmax - wvals.xmin) * (x_press / preview_width);
|
||||
l_xmax = wvals.xmin + (wvals.xmax - wvals.xmin) * (x_release / preview_width);
|
||||
l_ymin = wvals.ymin + (wvals.ymax - wvals.ymin) * (y_press / preview_height);
|
||||
l_ymax = wvals.ymin + (wvals.ymax - wvals.ymin) * (y_release / preview_height);
|
||||
zooms[zoomindex] = wvals;
|
||||
zoomindex++;
|
||||
if (zoomindex > 99)
|
||||
zoomindex = 99;
|
||||
zoommax = zoomindex;
|
||||
wvals.xmin = l_xmin;
|
||||
wvals.xmax = l_xmax;
|
||||
wvals.ymin = l_ymin;
|
||||
wvals.ymax = l_ymax;
|
||||
dialog_change_scale();
|
||||
dialog_update_preview();
|
||||
oldypos = oldxpos = -1;
|
||||
}
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
|
@ -77,7 +77,6 @@
|
||||
#include "gtk/gtk.h"
|
||||
#include "libgimp/gimp.h"
|
||||
|
||||
#include "logo.h"
|
||||
#include "pix_data.h"
|
||||
|
||||
#include "Languages.h"
|
||||
@ -96,7 +95,7 @@ MAIN()
|
||||
FUNCTION: query
|
||||
*********************************************************************/
|
||||
|
||||
static void
|
||||
void
|
||||
query()
|
||||
{
|
||||
static GParamDef args[] =
|
||||
@ -144,7 +143,7 @@ query()
|
||||
FUNCTION: run
|
||||
*********************************************************************/
|
||||
|
||||
static void
|
||||
void
|
||||
run(char *name,
|
||||
int nparams,
|
||||
GParam * param,
|
||||
@ -551,7 +550,7 @@ explorer_render_row(const guchar * src_row,
|
||||
|
||||
/*
|
||||
|
||||
static gint
|
||||
gint
|
||||
rename_button_press(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -569,7 +568,7 @@ rename_button_press(GtkWidget *widget,
|
||||
}
|
||||
*/
|
||||
|
||||
static gint
|
||||
gint
|
||||
delete_button_press_cancel(GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
@ -580,7 +579,7 @@ delete_button_press_cancel(GtkWidget *widget,
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
static gint
|
||||
gint
|
||||
fractalexplorer_delete_fractalexplorer_callback(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -670,7 +669,7 @@ fractalexplorer_save(void)
|
||||
}
|
||||
|
||||
|
||||
static gint
|
||||
gint
|
||||
gradient_list_button_press(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -712,7 +711,7 @@ gradient_list_button_press(GtkWidget *widget,
|
||||
get_line(load_buf,MAX_LOAD_LINE,fp,1);
|
||||
if(strncmp(fractalexplorer_HEADER,load_buf,strlen(load_buf)))
|
||||
{
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,msg[lng][MSG_WRONGFILETYPE],sel_obj->filename);
|
||||
create_warn_dialog(err);
|
||||
return(0);
|
||||
@ -720,7 +719,7 @@ gradient_list_button_press(GtkWidget *widget,
|
||||
|
||||
if(gradient_load_options(sel_obj,fp))
|
||||
{
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,msg[lng][MSG_CORRUPTFILE],
|
||||
filename,
|
||||
line_no);
|
||||
@ -745,7 +744,7 @@ gradient_list_button_press(GtkWidget *widget,
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_list_ok_callback (GtkWidget *w,
|
||||
gpointer client_data)
|
||||
{
|
||||
@ -781,7 +780,7 @@ fractalexplorer_list_ok_callback (GtkWidget *w,
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_list_cancel_callback (GtkWidget *w,
|
||||
gpointer client_data)
|
||||
{
|
||||
@ -799,7 +798,7 @@ fractalexplorer_list_cancel_callback (GtkWidget *w,
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_dialog_edit_list (GtkWidget *lwidget,fractalexplorerOBJ *obj,gint created)
|
||||
{
|
||||
fractalexplorerListOptions *options;
|
||||
@ -859,7 +858,7 @@ fractalexplorer_dialog_edit_list (GtkWidget *lwidget,fractalexplorerOBJ *obj,gin
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget *
|
||||
GtkWidget *
|
||||
new_fractalexplorer_obj(gchar * name)
|
||||
{
|
||||
fractalexplorerOBJ * fractalexplorer;
|
||||
@ -887,7 +886,7 @@ new_fractalexplorer_obj(gchar * name)
|
||||
}
|
||||
|
||||
|
||||
static gint
|
||||
gint
|
||||
new_button_press(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -900,7 +899,7 @@ new_button_press(GtkWidget *widget,
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rescan_cancel_callback (GtkWidget *w,
|
||||
gpointer client_data)
|
||||
{
|
||||
@ -1085,7 +1084,7 @@ fractalexplorer_new_pixmap(GtkWidget *list, char **pixdata)
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget *
|
||||
GtkWidget *
|
||||
fractalexplorer_list_add(fractalexplorerOBJ *obj)
|
||||
{
|
||||
GList *list;
|
||||
@ -1208,7 +1207,7 @@ gradient_build_list_items(GtkWidget *list)
|
||||
|
||||
/*
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_save_menu_callback(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
fractalexplorerOBJ * real_current = current_obj;
|
||||
@ -1220,7 +1219,7 @@ fractalexplorer_save_menu_callback(GtkWidget *widget, gpointer data)
|
||||
current_obj = real_current;
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_load_menu_callback(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
dialog_change_scale();
|
||||
@ -1228,13 +1227,13 @@ fractalexplorer_load_menu_callback(GtkWidget *widget, gpointer data)
|
||||
dialog_update_preview();
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rename_menu_callback(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
create_file_selection(fractalexplorer_obj_for_menu,fractalexplorer_obj_for_menu->filename);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_copy_menu_callback(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
gchar *new_name = g_strup_printf(msg[lng][MSG_COPYNAME],fractalexplorer_obj_for_menu->draw_name);
|
||||
@ -1252,7 +1251,7 @@ fractalexplorer_copy_menu_callback(GtkWidget *widget, gpointer data)
|
||||
|
||||
/*
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_op_menu_create(GtkWidget *window)
|
||||
{
|
||||
GtkWidget *menu_item;
|
||||
@ -1310,7 +1309,7 @@ fractalexplorer_op_menu_create(GtkWidget *window)
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_op_menu_popup(gint button, guint32 activate_time,fractalexplorerOBJ *obj)
|
||||
{
|
||||
fractalexplorer_obj_for_menu = obj;
|
||||
@ -1329,7 +1328,7 @@ fractalexplorer_op_menu_popup(gint button, guint32 activate_time,fractalexplorer
|
||||
|
||||
*/
|
||||
|
||||
static gint
|
||||
gint
|
||||
list_button_press(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -1391,7 +1390,7 @@ plug_in_parse_fractalexplorer_path()
|
||||
gchar *token;
|
||||
struct stat filestat;
|
||||
gint err;
|
||||
gchar buf[256];
|
||||
gchar buf[MAXSTRLEN];
|
||||
|
||||
if(fractalexplorer_path_list)
|
||||
g_list_free(fractalexplorer_path_list);
|
||||
@ -1584,7 +1583,7 @@ fractalexplorer_load (gchar *filename, gchar *name)
|
||||
|
||||
if(strncmp(fractalexplorer_HEADER,load_buf,strlen(load_buf)))
|
||||
{
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,msg[lng][MSG_WRONGFILETYPE],fractalexplorer->filename);
|
||||
create_warn_dialog(err);
|
||||
fclose(fp);
|
||||
@ -1594,7 +1593,7 @@ fractalexplorer_load (gchar *filename, gchar *name)
|
||||
if(load_options(fractalexplorer,fp))
|
||||
{
|
||||
/* waste some mem */
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,
|
||||
msg[lng][MSG_CORRUPTFILE],
|
||||
filename,
|
||||
@ -1648,7 +1647,7 @@ gradient_load (gchar *filename, gchar *name)
|
||||
|
||||
if(strncmp(fractalexplorer_HEADER,load_buf,strlen(load_buf)))
|
||||
{
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,msg[lng][MSG_WRONGFILETYPE],gradi->filename);
|
||||
create_warn_dialog(err);
|
||||
return(NULL);
|
||||
@ -1657,7 +1656,7 @@ gradient_load (gchar *filename, gchar *name)
|
||||
/*
|
||||
if(gradient_load_options(gradient,fp))
|
||||
{
|
||||
gchar err[256];
|
||||
gchar err[MAXSTRLEN];
|
||||
sprintf(err,
|
||||
msg[lng][MSG_CORRUPTFILE],
|
||||
filename,
|
||||
@ -1676,7 +1675,7 @@ gradient_load (gchar *filename, gchar *name)
|
||||
return(gradi);
|
||||
}
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rescan_file_selection_ok(GtkWidget *w,
|
||||
GtkFileSelection *fs,
|
||||
gpointer data)
|
||||
@ -1850,7 +1849,7 @@ gradient_list_load_all(GList *plist)
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget *
|
||||
GtkWidget *
|
||||
add_objects_list ()
|
||||
{
|
||||
GtkWidget *table;
|
||||
@ -1942,7 +1941,7 @@ add_objects_list ()
|
||||
|
||||
|
||||
|
||||
static GtkWidget *
|
||||
GtkWidget *
|
||||
add_gradients_list ()
|
||||
{
|
||||
GtkWidget *table;
|
||||
@ -2009,7 +2008,7 @@ add_gradients_list ()
|
||||
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rescan_ok_callback (GtkWidget *w,
|
||||
gpointer client_data)
|
||||
{
|
||||
@ -2034,7 +2033,7 @@ fractalexplorer_rescan_ok_callback (GtkWidget *w,
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rescan_add_entry_callback (GtkWidget *w,
|
||||
gpointer client_data)
|
||||
{
|
||||
@ -2061,7 +2060,7 @@ fractalexplorer_rescan_add_entry_callback (GtkWidget *w,
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
void
|
||||
fractalexplorer_rescan_list (void)
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
@ -2157,7 +2156,7 @@ fractalexplorer_rescan_list (void)
|
||||
}
|
||||
|
||||
|
||||
static gint
|
||||
gint
|
||||
rescan_button_press(GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
@ -2167,7 +2166,7 @@ rescan_button_press(GtkWidget *widget,
|
||||
}
|
||||
|
||||
|
||||
static gint
|
||||
gint
|
||||
delete_button_press_ok(GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
|
@ -1,3 +1,11 @@
|
||||
#ifndef __FRACTALEXPLORER_H__
|
||||
#define __FRACTALEXPLORER_H__
|
||||
|
||||
#include "config.h"
|
||||
#include <glib.h>
|
||||
#include "gtk/gtk.h"
|
||||
#include "libgimp/gimp.h"
|
||||
|
||||
/**********************************************************************
|
||||
Magic numbers
|
||||
*********************************************************************/
|
||||
@ -8,6 +16,9 @@
|
||||
#define MAX_LOAD_LINE 256
|
||||
#define GR_WIDTH 325
|
||||
|
||||
#define NCOLORS 256
|
||||
#define MAXSTRLEN 256
|
||||
|
||||
#define SINUS 0
|
||||
#define COSINUS 1
|
||||
#define NONE 2
|
||||
@ -49,7 +60,9 @@ typedef struct {
|
||||
gint run;
|
||||
} explorer_interface_t;
|
||||
|
||||
typedef int clrmap[256][3];
|
||||
typedef int colorvalue[3];
|
||||
|
||||
typedef colorvalue clrmap[NCOLORS];
|
||||
|
||||
typedef struct {
|
||||
GtkWidget *text;
|
||||
@ -134,19 +147,17 @@ typedef struct _fractalexplorerListOptions {
|
||||
|
||||
#define gradient_GRADIENTEDITOR 0x2
|
||||
|
||||
static fractalexplorerOBJ *current_obj;
|
||||
static fractalexplorerOBJ *pic_obj;
|
||||
static GtkWidget *delete_dialog = NULL;
|
||||
|
||||
|
||||
extern fractalexplorerOBJ *current_obj;
|
||||
extern fractalexplorerOBJ *pic_obj;
|
||||
extern GtkWidget *delete_dialog;
|
||||
|
||||
/**********************************************************************
|
||||
Declare local functions
|
||||
*********************************************************************/
|
||||
|
||||
/* Gimp interface functions */
|
||||
static void query(void);
|
||||
static void run(char *name, int nparams, GParam * param, int *nreturn_vals,
|
||||
void query(void);
|
||||
void run(char *name, int nparams, GParam * param, int *nreturn_vals,
|
||||
GParam ** return_vals);
|
||||
|
||||
/* Dialog and fractal functions */
|
||||
@ -154,204 +165,148 @@ void explorer(GDrawable * drawable);
|
||||
void explorer_render_row(const guchar * src_row, guchar * dest_row, gint row,
|
||||
gint row_width, gint bytes);
|
||||
void transform(short int *, short int *, short int *, double, double, double);
|
||||
gint explorer_dialog(void);
|
||||
void dialog_update_preview(void);
|
||||
|
||||
/* Functions for dialog widgets */
|
||||
void dialog_create_value(char *title, GtkTable * table, int row, gdouble * value,
|
||||
int left, int right, const char *desc, scaledata * scalevalues);
|
||||
void dialog_scale_update(GtkAdjustment * adjustment, gdouble * value);
|
||||
void dialog_create_int_value(char *title, GtkTable * table, int row, gdouble * value,
|
||||
int left, int right, const char *desc, scaledata * scalevalues);
|
||||
void dialog_scale_int_update(GtkAdjustment * adjustment, gdouble * value);
|
||||
void dialog_entry_update(GtkWidget * widget, gdouble * value);
|
||||
void dialog_close_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_ok_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_cancel_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_step_out_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_step_in_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_undo_zoom_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_redo_zoom_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_redraw_callback(GtkWidget * widget, gpointer data);
|
||||
void dialog_reset_callback(GtkWidget * widget, gpointer data);
|
||||
GtkWidget *explorer_logo_dialog();
|
||||
GtkWidget *explorer_load_dialog();
|
||||
void explorer_toggle_update(GtkWidget * widget, gpointer data);
|
||||
void set_tooltip(GtkTooltips * tooltips, GtkWidget * widget, const char *desc);
|
||||
void dialog_change_scale(void);
|
||||
void set_cmap_preview(void);
|
||||
void make_color_map(void);
|
||||
void create_file_selection();
|
||||
void create_load_file_selection();
|
||||
void explorer_load();
|
||||
void load_button_press(GtkWidget * widget, gpointer data);
|
||||
|
||||
/* Preview events */
|
||||
gint preview_button_press_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_button_release_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_motion_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_leave_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
gint preview_enter_notify_event(GtkWidget * widget, GdkEventButton * event);
|
||||
|
||||
|
||||
|
||||
static gint list_button_press(GtkWidget *widget,GdkEventButton *event,gpointer data);
|
||||
static gint new_button_press(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
static gint fractalexplorer_delete_fractalexplorer_callback(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
static gint delete_button_press_ok(GtkWidget *widget,gpointer data);
|
||||
static gint rescan_button_press(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
static void fractalexplorer_list_ok_callback (GtkWidget *w, gpointer client_data);
|
||||
static void fractalexplorer_list_cancel_callback (GtkWidget *w, gpointer client_data);
|
||||
static void fractalexplorer_dialog_edit_list (GtkWidget *lwidget,fractalexplorerOBJ *obj,gint created);
|
||||
static GtkWidget *new_fractalexplorer_obj(gchar * name);
|
||||
static void fractalexplorer_rescan_cancel_callback (GtkWidget *w, gpointer client_data);
|
||||
gint list_button_press(GtkWidget *widget,GdkEventButton *event,gpointer data);
|
||||
gint new_button_press(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
gint fractalexplorer_delete_fractalexplorer_callback(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
gint delete_button_press_ok(GtkWidget *widget,gpointer data);
|
||||
gint rescan_button_press(GtkWidget *widget,GdkEventButton *bevent,gpointer data);
|
||||
void fractalexplorer_list_ok_callback (GtkWidget *w, gpointer client_data);
|
||||
void fractalexplorer_list_cancel_callback (GtkWidget *w, gpointer client_data);
|
||||
void fractalexplorer_dialog_edit_list (GtkWidget *lwidget,fractalexplorerOBJ *obj,gint created);
|
||||
GtkWidget *new_fractalexplorer_obj(gchar * name);
|
||||
void fractalexplorer_rescan_cancel_callback (GtkWidget *w, gpointer client_data);
|
||||
void clear_list_items(GtkList *list);
|
||||
gint fractalexplorer_list_pos(fractalexplorerOBJ *fractalexplorer);
|
||||
gint fractalexplorer_list_insert (fractalexplorerOBJ *fractalexplorer);
|
||||
GtkWidget* fractalexplorer_list_item_new_with_label_and_pixmap (fractalexplorerOBJ *obj, gchar *label, GtkWidget *pix_widget);
|
||||
GtkWidget* fractalexplorer_new_pixmap(GtkWidget *list, char **pixdata);
|
||||
static GtkWidget *fractalexplorer_list_add(fractalexplorerOBJ *obj);
|
||||
GtkWidget *fractalexplorer_list_add(fractalexplorerOBJ *obj);
|
||||
void list_button_update(fractalexplorerOBJ *obj);
|
||||
fractalexplorerOBJ *fractalexplorer_new(void);
|
||||
void build_list_items(GtkWidget *list);
|
||||
/*
|
||||
static void fractalexplorer_op_menu_popup(gint button, guint32 activate_time,fractalexplorerOBJ *obj);
|
||||
*/
|
||||
|
||||
void plug_in_parse_fractalexplorer_path();
|
||||
void fractalexplorer_free(fractalexplorerOBJ * fractalexplorer);
|
||||
void fractalexplorer_free_everything(fractalexplorerOBJ * fractalexplorer);
|
||||
void fractalexplorer_list_free_all ();
|
||||
fractalexplorerOBJ *fractalexplorer_load (gchar *filename, gchar *name);
|
||||
static void fractalexplorer_rescan_file_selection_ok(GtkWidget *w, GtkFileSelection *fs, gpointer data);
|
||||
void fractalexplorer_rescan_file_selection_ok(GtkWidget *w, GtkFileSelection *fs, gpointer data);
|
||||
void fractalexplorer_list_load_all(GList *plist);
|
||||
static GtkWidget *add_objects_list ();
|
||||
static GtkWidget *add_gradients_list ();
|
||||
static void fractalexplorer_rescan_ok_callback (GtkWidget *w, gpointer client_data);
|
||||
static void fractalexplorer_rescan_add_entry_callback (GtkWidget *w, gpointer client_data);
|
||||
static void fractalexplorer_rescan_list (void);
|
||||
/*
|
||||
static void fractalexplorer_op_menu_create(GtkWidget *window);
|
||||
*/
|
||||
GtkWidget *add_objects_list ();
|
||||
GtkWidget *add_gradients_list ();
|
||||
void fractalexplorer_rescan_ok_callback (GtkWidget *w, gpointer client_data);
|
||||
void fractalexplorer_rescan_add_entry_callback (GtkWidget *w, gpointer client_data);
|
||||
void fractalexplorer_rescan_list (void);
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
Global variables
|
||||
*********************************************************************/
|
||||
|
||||
double xmin = -2,
|
||||
xmax = 1,
|
||||
ymin = -1.5,
|
||||
ymax = 1.5;
|
||||
double xbild,
|
||||
extern double xmin,
|
||||
xmax,
|
||||
ymin,
|
||||
ymax;
|
||||
extern double xbild,
|
||||
ybild,
|
||||
xdiff,
|
||||
ydiff;
|
||||
double x_press = -1.0,
|
||||
y_press = -1.0;
|
||||
double x_release = -1.0,
|
||||
y_release = -1.0;
|
||||
float cx = -0.75;
|
||||
float cy = -0.2;
|
||||
GDrawable *drawable;
|
||||
gint tile_width,
|
||||
extern double x_press,
|
||||
y_press;
|
||||
extern double x_release,
|
||||
y_release;
|
||||
extern float cx;
|
||||
extern float cy;
|
||||
extern GDrawable *drawable;
|
||||
extern gint tile_width,
|
||||
tile_height;
|
||||
gint img_width,
|
||||
extern gint img_width,
|
||||
img_height,
|
||||
img_bpp;
|
||||
gint sel_x1,
|
||||
extern gint sel_x1,
|
||||
sel_y1,
|
||||
sel_x2,
|
||||
sel_y2;
|
||||
gint sel_width,
|
||||
extern gint sel_width,
|
||||
sel_height;
|
||||
gint preview_width,
|
||||
extern gint preview_width,
|
||||
preview_height;
|
||||
GTile *the_tile = NULL;
|
||||
double cen_x,
|
||||
extern GTile *the_tile;
|
||||
extern double cen_x,
|
||||
cen_y;
|
||||
double xpos,
|
||||
extern double xpos,
|
||||
ypos,
|
||||
oldxpos = -1,
|
||||
oldypos = -1;
|
||||
gint do_redsinus,
|
||||
oldxpos,
|
||||
oldypos;
|
||||
extern gint do_redsinus,
|
||||
do_redcosinus,
|
||||
do_rednone;
|
||||
gint do_greensinus,
|
||||
extern gint do_greensinus,
|
||||
do_greencosinus,
|
||||
do_greennone;
|
||||
gint do_bluesinus,
|
||||
extern gint do_bluesinus,
|
||||
do_bluecosinus,
|
||||
do_bluenone;
|
||||
gint do_redinvert,
|
||||
extern gint do_redinvert,
|
||||
do_greeninvert,
|
||||
do_blueinvert;
|
||||
gint do_colormode1 = FALSE,
|
||||
do_colormode2 = FALSE;
|
||||
gint do_type0 = FALSE,
|
||||
do_type1 = FALSE,
|
||||
do_type2 = FALSE,
|
||||
do_type3 = FALSE,
|
||||
do_type4 = FALSE,
|
||||
do_type5 = FALSE,
|
||||
do_type6 = FALSE,
|
||||
do_type7 = FALSE,
|
||||
do_type8 = FALSE,
|
||||
do_english = TRUE,
|
||||
do_french = FALSE,
|
||||
do_german = FALSE;
|
||||
GtkWidget *maindlg;
|
||||
GtkWidget *logodlg;
|
||||
GtkWidget *loaddlg;
|
||||
GtkWidget *cmap_preview;
|
||||
GtkWidget *cmap_preview_long;
|
||||
GtkWidget *cmap_preview_long2;
|
||||
GtkWidget *delete_frame_to_freeze;
|
||||
GtkWidget *fractalexplorer_gtk_list;
|
||||
GtkWidget *save_menu_item;
|
||||
GtkWidget *fractalexplorer_op_menu;
|
||||
GtkTooltips *tips;
|
||||
GdkColor tips_fg,
|
||||
extern gint do_colormode1,
|
||||
do_colormode2;
|
||||
extern gint do_type0,
|
||||
do_type1,
|
||||
do_type2,
|
||||
do_type3,
|
||||
do_type4,
|
||||
do_type5,
|
||||
do_type6,
|
||||
do_type7,
|
||||
do_type8,
|
||||
do_english,
|
||||
do_french,
|
||||
do_german;
|
||||
extern GtkWidget *maindlg;
|
||||
extern GtkWidget *logodlg;
|
||||
extern GtkWidget *loaddlg;
|
||||
extern GtkWidget *cmap_preview;
|
||||
extern GtkWidget *cmap_preview_long;
|
||||
extern GtkWidget *cmap_preview_long2;
|
||||
extern GtkWidget *delete_frame_to_freeze;
|
||||
extern GtkWidget *fractalexplorer_gtk_list;
|
||||
extern GtkWidget *save_menu_item;
|
||||
extern GtkWidget *fractalexplorer_op_menu;
|
||||
extern GtkTooltips *tips;
|
||||
extern GdkColor tips_fg,
|
||||
tips_bg;
|
||||
GdkCursor *MyCursor;
|
||||
int ready_now = FALSE;
|
||||
explorer_vals_t zooms[100];
|
||||
DialogElements *elements = NULL;
|
||||
int zoomindex = 1;
|
||||
int zoommax = 1;
|
||||
gdouble *gg;
|
||||
int line_no;
|
||||
gchar *filename;
|
||||
clrmap colormap;
|
||||
GList *fractalexplorer_path_list = NULL;
|
||||
GList *fractalexplorer_list = NULL;
|
||||
GList *gradient_list = NULL;
|
||||
gchar *tpath = NULL;
|
||||
fractalexplorerOBJ *fractalexplorer_obj_for_menu;
|
||||
static GList *rescan_list = NULL;
|
||||
int lng=LNG_GERMAN;
|
||||
extern GdkCursor *MyCursor;
|
||||
extern int ready_now;
|
||||
extern explorer_vals_t
|
||||
zooms[100];
|
||||
extern DialogElements
|
||||
*elements;
|
||||
extern int zoomindex;
|
||||
extern int zoommax;
|
||||
extern gdouble *gg;
|
||||
extern int line_no;
|
||||
extern gchar *filename;
|
||||
extern clrmap colormap;
|
||||
extern GList *fractalexplorer_path_list;
|
||||
extern GList *fractalexplorer_list;
|
||||
extern GList *gradient_list;
|
||||
extern gchar *tpath;
|
||||
extern fractalexplorerOBJ
|
||||
*fractalexplorer_obj_for_menu;
|
||||
extern GList *rescan_list;
|
||||
extern int lng;
|
||||
|
||||
extern GPlugInInfo PLUG_IN_INFO;
|
||||
|
||||
GPlugInInfo PLUG_IN_INFO =
|
||||
{
|
||||
NULL, /* init_proc */
|
||||
NULL, /* quit_proc */
|
||||
query, /* query_proc */
|
||||
run, /* run_proc */
|
||||
};
|
||||
extern explorer_interface_t wint;
|
||||
|
||||
explorer_interface_t wint =
|
||||
{
|
||||
NULL, /* preview */
|
||||
NULL, /* wimage */
|
||||
FALSE /* run */
|
||||
}; /* wint */
|
||||
extern explorer_vals_t wvals;
|
||||
|
||||
static explorer_vals_t wvals =
|
||||
{
|
||||
0, -2.0, 2.0, -1.5, 1.5, 50.0, -0.75, -0.2, 0, 128.0, 128.0, 128.0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
}; /* wvals */
|
||||
extern explorer_vals_t standardvals;
|
||||
|
||||
static explorer_vals_t standardvals =
|
||||
{
|
||||
0, -2.0, 2.0, -1.5, 1.5, 50.0, -0.75, -0.2, 0, 128.0, 128.0, 128.0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
}; /* standardvals */
|
||||
#endif
|
||||
|
129
plug-ins/FractalExplorer/Globals.c
Normal file
129
plug-ins/FractalExplorer/Globals.c
Normal file
@ -0,0 +1,129 @@
|
||||
#include "FractalExplorer.h"
|
||||
#include "Languages.h"
|
||||
|
||||
/**********************************************************************
|
||||
Global variables
|
||||
*********************************************************************/
|
||||
|
||||
double xmin = -2,
|
||||
xmax = 1,
|
||||
ymin = -1.5,
|
||||
ymax = 1.5;
|
||||
double xbild,
|
||||
ybild,
|
||||
xdiff,
|
||||
ydiff;
|
||||
double x_press = -1.0,
|
||||
y_press = -1.0;
|
||||
double x_release = -1.0,
|
||||
y_release = -1.0;
|
||||
float cx = -0.75;
|
||||
float cy = -0.2;
|
||||
GDrawable *drawable;
|
||||
gint tile_width,
|
||||
tile_height;
|
||||
gint img_width,
|
||||
img_height,
|
||||
img_bpp;
|
||||
gint sel_x1,
|
||||
sel_y1,
|
||||
sel_x2,
|
||||
sel_y2;
|
||||
gint sel_width,
|
||||
sel_height;
|
||||
gint preview_width,
|
||||
preview_height;
|
||||
GTile *the_tile = NULL;
|
||||
double cen_x,
|
||||
cen_y;
|
||||
double xpos,
|
||||
ypos,
|
||||
oldxpos = -1,
|
||||
oldypos = -1;
|
||||
gint do_redsinus,
|
||||
do_redcosinus,
|
||||
do_rednone;
|
||||
gint do_greensinus,
|
||||
do_greencosinus,
|
||||
do_greennone;
|
||||
gint do_bluesinus,
|
||||
do_bluecosinus,
|
||||
do_bluenone;
|
||||
gint do_redinvert,
|
||||
do_greeninvert,
|
||||
do_blueinvert;
|
||||
gint do_colormode1 = FALSE,
|
||||
do_colormode2 = FALSE;
|
||||
gint do_type0 = FALSE,
|
||||
do_type1 = FALSE,
|
||||
do_type2 = FALSE,
|
||||
do_type3 = FALSE,
|
||||
do_type4 = FALSE,
|
||||
do_type5 = FALSE,
|
||||
do_type6 = FALSE,
|
||||
do_type7 = FALSE,
|
||||
do_type8 = FALSE,
|
||||
do_english = TRUE,
|
||||
do_french = FALSE,
|
||||
do_german = FALSE;
|
||||
GtkWidget *maindlg;
|
||||
GtkWidget *logodlg;
|
||||
GtkWidget *loaddlg;
|
||||
GtkWidget *cmap_preview;
|
||||
GtkWidget *cmap_preview_long;
|
||||
GtkWidget *cmap_preview_long2;
|
||||
GtkWidget *delete_frame_to_freeze;
|
||||
GtkWidget *fractalexplorer_gtk_list;
|
||||
GtkWidget *save_menu_item;
|
||||
GtkWidget *fractalexplorer_op_menu;
|
||||
GtkTooltips *tips;
|
||||
GdkColor tips_fg,
|
||||
tips_bg;
|
||||
GdkCursor *MyCursor;
|
||||
int ready_now = FALSE;
|
||||
explorer_vals_t zooms[100];
|
||||
DialogElements *elements = NULL;
|
||||
int zoomindex = 1;
|
||||
int zoommax = 1;
|
||||
gdouble *gg;
|
||||
int line_no;
|
||||
gchar *filename;
|
||||
clrmap colormap;
|
||||
GList *fractalexplorer_path_list = NULL;
|
||||
GList *fractalexplorer_list = NULL;
|
||||
GList *gradient_list = NULL;
|
||||
gchar *tpath = NULL;
|
||||
fractalexplorerOBJ *fractalexplorer_obj_for_menu;
|
||||
GList *rescan_list = NULL;
|
||||
int lng=LNG_GERMAN;
|
||||
|
||||
|
||||
GPlugInInfo PLUG_IN_INFO =
|
||||
{
|
||||
NULL, /* init_proc */
|
||||
NULL, /* quit_proc */
|
||||
query, /* query_proc */
|
||||
run, /* run_proc */
|
||||
};
|
||||
|
||||
explorer_interface_t wint =
|
||||
{
|
||||
NULL, /* preview */
|
||||
NULL, /* wimage */
|
||||
FALSE /* run */
|
||||
}; /* wint */
|
||||
|
||||
explorer_vals_t wvals =
|
||||
{
|
||||
0, -2.0, 2.0, -1.5, 1.5, 50.0, -0.75, -0.2, 0, 128.0, 128.0, 128.0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
}; /* wvals */
|
||||
|
||||
explorer_vals_t standardvals =
|
||||
{
|
||||
0, -2.0, 2.0, -1.5, 1.5, 50.0, -0.75, -0.2, 0, 128.0, 128.0, 128.0, 1, 1, 0, 0, 0, 0, 1, 0,
|
||||
}; /* standardvals */
|
||||
|
||||
|
||||
fractalexplorerOBJ *current_obj;
|
||||
fractalexplorerOBJ *pic_obj;
|
||||
GtkWidget *delete_dialog = NULL;
|
454
plug-ins/FractalExplorer/Languages.c
Normal file
454
plug-ins/FractalExplorer/Languages.c
Normal file
@ -0,0 +1,454 @@
|
||||
#include "Languages.h"
|
||||
|
||||
char * msg[4][104] =
|
||||
{
|
||||
|
||||
/* English messages */
|
||||
{
|
||||
"OK",
|
||||
"Cancel",
|
||||
"Delete fractal",
|
||||
"Are you sure you want to delete",
|
||||
"\"%s\" from the list and from disk?",
|
||||
"Delete",
|
||||
"Error opening: %s",
|
||||
"File '%s' Not a FractalExplorer file",
|
||||
"File '%s' corrupt file - Line %d Option section incorrect",
|
||||
"Internal error - list item has null object!",
|
||||
"Unknown event\n",
|
||||
"Edit fractal name",
|
||||
"Fractal name:",
|
||||
"New fractal",
|
||||
"%s [copy]",
|
||||
"Save",
|
||||
"Save as...",
|
||||
"Copy",
|
||||
"Load",
|
||||
"No fractalexplorer-path in gimprc:\n"
|
||||
"You need to add an entry like\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n"
|
||||
"to your ~/.gimprc/gimprc file\n",
|
||||
"fractalexplorer-path miss-configured - \nPath `%.100s' not found\n",
|
||||
"Entry %.100s is not a directory\n",
|
||||
"error reading fractalexplorer directory \"%s\"",
|
||||
"My first fractal",
|
||||
"Choose fractal by double-clicking on it",
|
||||
"Rescan",
|
||||
"Select directory and rescan collection",
|
||||
"New",
|
||||
"Create a new fractal for editing",
|
||||
"Rename",
|
||||
"Rename fractal in list",
|
||||
"Delete currently selected fractal",
|
||||
"Choose gradient by double-clicking on it",
|
||||
"Add FractalExplorer path",
|
||||
"Rescan for fractals",
|
||||
"Add dir",
|
||||
"Parameters",
|
||||
"Parameters",
|
||||
"Change the first (minimal) x-coordinate delimitation",
|
||||
"Change the second (maximal) x-coordinate delimitation",
|
||||
"Change the first (minimal) y-coordinate delimitation",
|
||||
"Change the second (maximal) y-coordinate delimitation",
|
||||
"Change the iteration value. The higher it is, the more details will be calculated, which will take more time.",
|
||||
"Change the CX value (changes aspect of fractal, active with every fractal but Mandelbrot and Sierpinski)",
|
||||
"Change the CY value (changes aspect of fractal, active with every fractal but Mandelbrot and Sierpinski)",
|
||||
"Reset parameters to default values",
|
||||
"Load a fractal from file",
|
||||
"Save active fractal to file",
|
||||
"Fractal type",
|
||||
"Options",
|
||||
"Reset to default values",
|
||||
"Preview options",
|
||||
"Realtime preview",
|
||||
"If you enable this option the preview will be redrawn automatically.",
|
||||
"Redraw",
|
||||
"Redraw preview",
|
||||
"Zoom options",
|
||||
"Undo zoom",
|
||||
"Undo last zoom",
|
||||
"Redo zoom",
|
||||
"Redo last zoom",
|
||||
"Step in",
|
||||
"Step out",
|
||||
"Colors",
|
||||
"Color density",
|
||||
"Red",
|
||||
"Green",
|
||||
"Blue",
|
||||
"Change the intensity of the red channel",
|
||||
"Change the intensity of the green channel",
|
||||
"Change the intensity of the blue channel",
|
||||
"Color function",
|
||||
"Sine",
|
||||
"Cosine",
|
||||
"None",
|
||||
"Use sine-function for this color component",
|
||||
"Use cosine-function for this color component",
|
||||
"Use linear mapping instead of any trigonometrical function for this color channel",
|
||||
"Inversion",
|
||||
"If you enable this option higher color values will be swapped with lower ones and vice versa.",
|
||||
"Color mode",
|
||||
"As specified above",
|
||||
"Create a color-map with the options you specified above (color density/function). The result is visible in the preview image",
|
||||
"Apply active gradient to final image",
|
||||
"Create a color-map using a gradient from the gradient editor.",
|
||||
"Gradients",
|
||||
"Fractals",
|
||||
"Accept settings and start the calculation of the fractal",
|
||||
"Discard any changes and close dialog box",
|
||||
"About",
|
||||
"Show information about the plug-in and the author",
|
||||
"This will close the information box",
|
||||
"Error opening '%.100s' could not save",
|
||||
"Failed to write file\n",
|
||||
"Save: No filename given",
|
||||
"Save: Can't save to a directory",
|
||||
"Load fractal parameters",
|
||||
"Click here to load your file.",
|
||||
"Click here to cancel load procedure.",
|
||||
"Save fractal parameters",
|
||||
"Click here to save your file.",
|
||||
"Click here to cancel save procedure.",
|
||||
"Save settings",
|
||||
"This saves the currently selected language to the configuration file",
|
||||
},
|
||||
|
||||
|
||||
/* Messages en fran<61>ais */
|
||||
{
|
||||
"Accepter",
|
||||
"Annuler",
|
||||
"Effacer fractal",
|
||||
"Etes-vous sur de vouloir effacer le fichier",
|
||||
"\"%s\" de la liste est du disque?",
|
||||
"Effacer",
|
||||
"Erreur lors de l'ouverture du fichier: %s",
|
||||
"Le fichier '%s' ne correspond pas au format FractalExplorer!",
|
||||
"Le fichier '%s' est corrompu - Ligne %d incorrecte.",
|
||||
"Erreur interne - l'<27>l<EFBFBD>ment de la liste contient un objet NULL!",
|
||||
"Ev<EFBFBD>nement inconnu.\n",
|
||||
"Changer le nom du fractal",
|
||||
"Nom du fractal:",
|
||||
"Nouveau fractal",
|
||||
"%s [copie]",
|
||||
"Enregistrer",
|
||||
"Enregistrer sous...",
|
||||
"Copier",
|
||||
"Charger",
|
||||
"Aucun r<>pertoire FractalExplorer inscrit dans gimprc:\n"
|
||||
"Vous devez aujouter une ligne telle que\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n"
|
||||
"dans votre fichier ~/.gimprc/gimprc\n",
|
||||
"fractalexplorer-path n'est pas configur<75> correctement - \nDossier `%.100s' introuvable.\n",
|
||||
"L'entr<74>e %.100s n'est pas un r<>pertoire.\n",
|
||||
"Erreur lors de la lecture du r<>pertoire \"%s\".",
|
||||
"Mon premier fractal",
|
||||
"Choisissez un fractal en double-cliquant sur celui-ci",
|
||||
"Rafra<EFBFBD>chir",
|
||||
"Choix du r<>pertoire et rechargement de la collection.",
|
||||
"Nouveau",
|
||||
"Cr<EFBFBD>er nouveau fractal.",
|
||||
"Renommer",
|
||||
"Renommer le fractal contenu dans la liste.",
|
||||
"Efface le fractal actuellement selection<6F> dans la liste.",
|
||||
"Choisissez un d<>grad<61> de couleurs avec un double-click",
|
||||
"Ajouter un dossier FractalExplorer.",
|
||||
"Rechargement de nouveaux fractals.",
|
||||
"Ajout de r<>pertoires",
|
||||
"Param<EFBFBD>tres",
|
||||
"Param<EFBFBD>tres",
|
||||
"Change la premi<6D>re delimitation de l'axe x (delimitation minimale de x).",
|
||||
"Change la deuxi<78>me delimitation de l'axe x (delimitation maximale de x).",
|
||||
"Change la premi<6D>re delimitation de l'axe y (delimitation minimale de y).",
|
||||
"Change la deuxi<78>me delimitation de l'axe y (delimitation maximale de y).",
|
||||
"Change la valeur d'iteration. Une valeur plus haute rend l'image plus detail<69>e, mais utilise plus de temps de calcul.",
|
||||
"Change la valeur CX (cela change l'aspect du fractal; l'option n'est pas active pour les types de fractal Mandelbrot and Sierpinski).",
|
||||
"Change la valeur CY (cela change l'aspect du fractal; l'option n'est pas active pour les types de fractal Mandelbrot and Sierpinski).",
|
||||
"Remets tous les param<61>tres <20> leur valeur par d<>faut.",
|
||||
"Charge un fractal <20> partir d'un fichier.",
|
||||
"Enregistre un fractal dans un fichier.",
|
||||
"Type de fractal",
|
||||
"Configuration",
|
||||
"Valeurs par d<>faut",
|
||||
"Pr<EFBFBD>visualisation",
|
||||
"En temps r<>el",
|
||||
"Si vous activez cette option, la fen<65>tre de pr<70>visualisation sera automatiquement rafra<72>chie apr<70>s chaque changement d'option.",
|
||||
"Actualiser",
|
||||
"Actualise et redessine la pr<70>visualisation.",
|
||||
"Options de zoom",
|
||||
"Annuler zoom",
|
||||
"Ceci annule le dernier zoom.",
|
||||
"Refaire zoom",
|
||||
"Ceci annule la derni<6E>re annulation du zoom.",
|
||||
"Se rapprocher",
|
||||
"S'<27>loigner",
|
||||
"Couleurs",
|
||||
"Densit<EFBFBD> des valeurs RVB d'une couleur",
|
||||
"Rouge",
|
||||
"Vert",
|
||||
"Bleu",
|
||||
"Change l'intensit<69> du canal rouge.",
|
||||
"Change l'intensit<69> du canal vert.",
|
||||
"Change l'intensit<69> du canal bleu.",
|
||||
"Fonctions appliqu<71>s aux canaux RVB",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Aucun",
|
||||
"Utilise la fonction trigonom<6F>trique 'sinus' pour le calcul de cette composante de couleur.",
|
||||
"Utilise la fonction trigonom<6F>trique 'cosinus' pour le calcul de cette composante de couleur.",
|
||||
"Utilise une fonction lin<69>aire au lieu d'une fonction trigonom<6F>trique pour ce canal.",
|
||||
"Inversion",
|
||||
"En activant cette option, vous assignez de grandes valeurs de couleurs aux couleurs ayant re<72>u des valeurs petites et vice versa.",
|
||||
"Mode de couleur",
|
||||
"Comme specifi<66> ci-dessus",
|
||||
"Cr<EFBFBD>e une palette de couleur en utilisant les options que vous avez choisies ci-dessus (densit<69>/fonction). Le r<>sultat est visible dans l'image de pr<70>visualisation.",
|
||||
"Applique le d<>grad<61> de couleur actif",
|
||||
"Cr<EFBFBD>e une palette en utilisant le d<>grad<61> de couleur du 'Gradient Editor'.",
|
||||
"D<EFBFBD>grad<EFBFBD>s",
|
||||
"Fractals",
|
||||
"Accepte les options et d<>marre la calculation du fractal.",
|
||||
"Rejette tout changement et ferme la bo<62>te de dialogue.",
|
||||
"Info...",
|
||||
"Affiche des informations concernant l'auteur et le plug-in.",
|
||||
"Ceci fermera la bo<62>te de dialogue d'info.",
|
||||
"Erreur lors de l'ouverture de '%.100s'. Sauvegarde echou<6F>e.",
|
||||
"Ecriture du fichier impossible.\n",
|
||||
"Enregistrement: Aucun fichier specifi<66>.",
|
||||
"Enregistrement: Impossible de sauvegarder dans un r<>pertoire.",
|
||||
"Chargement des param<61>tres d'un fractal",
|
||||
"Cliquez ici afin de charger un fichier FractalExplorer.",
|
||||
"Cliquez ici pour interrompre la proc<6F>dure de chargement.",
|
||||
"Enregistrement des param<61>tres d'un fractal",
|
||||
"Cliquez ici pour charger votre fichier.",
|
||||
"Cliquez ici pour imterropre la proc<6F>dure d'enregistrement.",
|
||||
"Enregistrer langue",
|
||||
"Ceci enregistre la langue actuelle dans le fichier de configuration.",
|
||||
},
|
||||
|
||||
/* Deutsche Mitteilungen */
|
||||
{
|
||||
"Weiter",
|
||||
"Abbrechen",
|
||||
"Fraktal l<>schen",
|
||||
"Sind sie sicher, dass sie die Datei",
|
||||
"\"%s\" aus der Liste und von der Festplatte entfernen m<>chten?",
|
||||
"L<EFBFBD>schen",
|
||||
"Fehler beim <20>ffnen der Datei: %s",
|
||||
"Die Datei '%s' scheint nicht im FractalExplorer-Format zu sein!",
|
||||
"Die Datei '%s' ist besch<63>digt - Zeile %d inkorrekt.",
|
||||
"Interner Fehler - das Listenelement besitzt ein NULL Objekt!",
|
||||
"Unbekanntes Ereignis.\n",
|
||||
"<EFBFBD>ndere Fraktalnamen",
|
||||
"Fraktal-Name:",
|
||||
"Neues Fraktal",
|
||||
"%s [Kopie]",
|
||||
"Speichern",
|
||||
"Speichern als...",
|
||||
"Kopie",
|
||||
"Laden",
|
||||
"Kein fractalexplorer-path in gimprc:\n"
|
||||
"Sie m<>ssen einen Eintrag wie der folgende in ihre ~/.gimprc/gimprc Datei einf<6E>gen:\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n",
|
||||
"fractalexplorer-path falsch konfiguriert - \nPfad `%.100s' nicht gefunden\n",
|
||||
"Eintrag %.100s ist kein Verzeichnis.\n",
|
||||
"Fehler beim Lesen des FractalExplorer-Verzeichnisses \"%s\".",
|
||||
"Mein erstes Fraktal",
|
||||
"W<EFBFBD>hlen Sie ein Fraktal durch Doppelklick aus",
|
||||
"Aktualisieren",
|
||||
"Wahl eines Verzeichnisses und Wiedereinlese der Dateisammlung.",
|
||||
"Neu",
|
||||
"Erstellt ein neues Fraktal.",
|
||||
"Umbenennen",
|
||||
"Benennt das Fraktal in der Liste um.",
|
||||
"L<EFBFBD>scht das gerade gew<65>hlte Fraktal der Liste.",
|
||||
"W<EFBFBD>hlen Sie einen Farbverlauf durch Doppelklick aus",
|
||||
"F<EFBFBD>ge FractalExplorer-Pfad hinzu",
|
||||
"Nach neuen Fraktalen suchen",
|
||||
"Neues Verzeichis hinzuf<75>gen.",
|
||||
"Fraktal-Optionen",
|
||||
"Parameter",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die Iterations-Variable. Je h<>her sie ist, um so genauer und detailierter wird das Bild sein. Eine gr<67>ssere Berechenzeit ist allerdings in Kauf zu nehmen.",
|
||||
"<EFBFBD>ndert den CX-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"<EFBFBD>ndert den CY-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"Setze Parameter auf die Standardwerte zurueck.",
|
||||
"Lade ein Fraktal aus einer Datei",
|
||||
"Speichere das aktive Fraktal in eine Datei",
|
||||
"Fraktal-Typ",
|
||||
"Diverse Optionen",
|
||||
"Zur<EFBFBD>cksetzen",
|
||||
"Vorschau-Optionen",
|
||||
"Echtzeit-Vorschau",
|
||||
"Falls Sie diese Option aktivieren, wird das Vorschaufenster stets automatisch aktualisiert.",
|
||||
"Neu zeichnen",
|
||||
"Zeichnet die Vorschau neu",
|
||||
"Zoom-Optionen",
|
||||
"Rueckg<EFBFBD>ngig",
|
||||
"Macht den letzten Zoom-Vorgang wieder r<>ckg<6B>ngig.",
|
||||
"Wiederherstellen",
|
||||
"Stellt den letzten Zoom-Vorgang wieder her.",
|
||||
"Hinein",
|
||||
"Hinaus",
|
||||
"Farb-Optionen",
|
||||
"Farbintensit<EFBFBD>t",
|
||||
"Rot",
|
||||
"Gruen",
|
||||
"Blau",
|
||||
"<EFBFBD>ndert die Intensit<69>t des roten Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des gruenen Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des blauen Kanals.",
|
||||
"Farb-Funktion",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Keine",
|
||||
"Verwende Sinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende Cosinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende lineare Farbabstufung statt einer trigonometrischen Funktion.",
|
||||
"Inversion",
|
||||
"Falls Sie diese Option aktivieren, werden tiefere Farbwerte durch h<>here ausgetauscht und umgekehrt.",
|
||||
"Farb-Modus",
|
||||
"Wie oben stehend angegeben",
|
||||
"Berechne Farbpalette mit den oben angegebenen Optionen (Farb-Intensit<69>t/-Funktion). Das Resultat ist in der Vorschau sichtbar.",
|
||||
"Wende aktiven Farbverlauf an",
|
||||
"Berechne Farbpalette mit den Angaben eines Verlaufes aus dem Gradient-Editor.",
|
||||
"Farbverl<EFBFBD>ufe",
|
||||
"Fraktale",
|
||||
"Akzeptiere Einstellungen und starte die Berechnung des Fraktals.",
|
||||
"Verwerfe jegliche <20>nderungen und schliesse das Fenster.",
|
||||
"<EFBFBD>ber...",
|
||||
"Zeige Informationen <20>ber den Autor und das Plug-In.",
|
||||
"Info-Box schliessen",
|
||||
"Fehler beim <20>ffnen von '%.100s'. Konnte nicht speichern",
|
||||
"Speichern der Datei fehlgeschlagen\n",
|
||||
"Speichern: Keine Datei angegeben",
|
||||
"Speichern: Kann nicht in ein Verzeichnis speichern",
|
||||
"Lade Parameter eines Fraktals",
|
||||
"Klicken Sie hier, um das Fraktal zu laden.",
|
||||
"Klicken Sie hier, um den Ladevorgang abzubrechen.",
|
||||
"Speichere Fraktalparameter",
|
||||
"Klicken Sie hier, um das Fraktal in eine Datei zu speichern.",
|
||||
"Klicken Sie hier, um den Speicherungsvorgang abzubrechen.",
|
||||
"Sprache abspeichern",
|
||||
"Klicken Sie hier, um die gewaehlte Sprache als Standard zu definieren und in die Konfigurationsdatei abzuspeichern.",
|
||||
},
|
||||
|
||||
/* Schwedische Mitteilungen
|
||||
========================
|
||||
Hier koenntest Du die schwedischen Texte einfuegen, d.h. die deutschen ueberschreiben.
|
||||
*/
|
||||
|
||||
{
|
||||
"Weiter",
|
||||
"Abbrechen",
|
||||
"Fraktal l<>schen",
|
||||
"Sind sie sicher, dass sie die Datei",
|
||||
"\"%s\" aus der Liste und von der Festplatte entfernen m<>chten?",
|
||||
"L<EFBFBD>schen",
|
||||
"Fehler beim <20>ffnen der Datei: %s",
|
||||
"Die Datei '%s' scheint nicht im FractalExplorer-Format zu sein!",
|
||||
"Die Datei '%s' ist besch<63>digt - Zeile %d inkorrekt.",
|
||||
"Interner Fehler - das Listenelement besitzt ein NULL Objekt!",
|
||||
"Unbekanntes Ereignis.\n",
|
||||
"<EFBFBD>ndere Fraktalnamen",
|
||||
"Fraktal-Name:",
|
||||
"Neues Fraktal",
|
||||
"%s [Kopie]",
|
||||
"Speichern",
|
||||
"Speichern als...",
|
||||
"Kopie",
|
||||
"Laden",
|
||||
"Kein fractalexplorer-path in gimprc:\n"
|
||||
"Sie m<>ssen einen Eintrag wie der folgende in ihre ~/.gimprc/gimprc Datei einf<6E>gen:\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n",
|
||||
"fractalexplorer-path falsch konfiguriert - \nPfad `%.100s' nicht gefunden\n",
|
||||
"Eintrag %.100s ist kein Verzeichnis.\n",
|
||||
"Fehler beim Lesen des FractalExplorer-Verzeichnisses \"%s\".",
|
||||
"Mein erstes Fraktal",
|
||||
"W<EFBFBD>hlen Sie ein Fraktal durch Doppelklick aus",
|
||||
"Aktualisieren",
|
||||
"Wahl eines Verzeichnisses und Wiedereinlese der Dateisammlung.",
|
||||
"Neu",
|
||||
"Erstellt ein neues Fraktal.",
|
||||
"Umbenennen",
|
||||
"Benennt das Fraktal in der Liste um.",
|
||||
"L<EFBFBD>scht das gerade gew<65>hlte Fraktal der Liste.",
|
||||
"W<EFBFBD>hlen Sie einen Farbverlauf durch Doppelklick aus",
|
||||
"F<EFBFBD>ge FractalExplorer-Pfad hinzu",
|
||||
"Nach neuen Fraktalen suchen",
|
||||
"Neues Verzeichis hinzuf<75>gen.",
|
||||
"Fraktal-Optionen",
|
||||
"Parameter",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die Iterations-Variable. Je h<>her sie ist, um so genauer und detailierter wird das Bild sein. Eine gr<67>ssere Berechenzeit ist allerdings in Kauf zu nehmen.",
|
||||
"<EFBFBD>ndert den CX-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"<EFBFBD>ndert den CY-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"Setze Parameter auf die Standardwerte zurueck.",
|
||||
"Lade ein Fraktal aus einer Datei",
|
||||
"Speichere das aktive Fraktal in eine Datei",
|
||||
"Fraktal-Typ",
|
||||
"Diverse Optionen",
|
||||
"Zur<EFBFBD>cksetzen",
|
||||
"Vorschau-Optionen",
|
||||
"Echtzeit-Vorschau",
|
||||
"Falls Sie diese Option aktivieren, wird das Vorschaufenster stets automatisch aktualisiert.",
|
||||
"Neu zeichnen",
|
||||
"Zeichnet die Vorschau neu",
|
||||
"Zoom-Optionen",
|
||||
"Rueckg<EFBFBD>ngig",
|
||||
"Macht den letzten Zoom-Vorgang wieder r<>ckg<6B>ngig.",
|
||||
"Wiederherstellen",
|
||||
"Stellt den letzten Zoom-Vorgang wieder her.",
|
||||
"Hinein",
|
||||
"Hinaus",
|
||||
"Farb-Optionen",
|
||||
"Farbintensit<EFBFBD>t",
|
||||
"Rot",
|
||||
"Gruen",
|
||||
"Blau",
|
||||
"<EFBFBD>ndert die Intensit<69>t des roten Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des gruenen Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des blauen Kanals.",
|
||||
"Farb-Funktion",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Keine",
|
||||
"Verwende Sinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende Cosinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende lineare Farbabstufung statt einer trigonometrischen Funktion.",
|
||||
"Inversion",
|
||||
"Falls Sie diese Option aktivieren, werden tiefere Farbwerte durch h<>here ausgetauscht und umgekehrt.",
|
||||
"Farb-Modus",
|
||||
"Wie oben stehend angegeben",
|
||||
"Berechne Farbpalette mit den oben angegebenen Optionen (Farb-Intensit<69>t/-Funktion). Das Resultat ist in der Vorschau sichtbar.",
|
||||
"Wende aktiven Farbverlauf an",
|
||||
"Berechne Farbpalette mit den Angaben eines Verlaufes aus dem Gradient-Editor.",
|
||||
"Farbverl<EFBFBD>ufe",
|
||||
"Fraktale",
|
||||
"Akzeptiere Einstellungen und starte die Berechnung des Fraktals.",
|
||||
"Verwerfe jegliche <20>nderungen und schliesse das Fenster.",
|
||||
"<EFBFBD>ber...",
|
||||
"Zeige Informationen <20>ber den Autor und das Plug-In.",
|
||||
"Info-Box schliessen",
|
||||
"Fehler beim <20>ffnen von '%.100s'. Konnte nicht speichern",
|
||||
"Speichern der Datei fehlgeschlagen\n",
|
||||
"Speichern: Keine Datei angegeben",
|
||||
"Speichern: Kann nicht in ein Verzeichnis speichern",
|
||||
"Lade Parameter eines Fraktals",
|
||||
"Klicken Sie hier, um das Fraktal zu laden.",
|
||||
"Klicken Sie hier, um den Ladevorgang abzubrechen.",
|
||||
"Speichere Fraktalparameter",
|
||||
"Klicken Sie hier, um das Fraktal in eine Datei zu speichern.",
|
||||
"Klicken Sie hier, um den Speicherungsvorgang abzubrechen.",
|
||||
"Sprache abspeichern",
|
||||
"Klicken Sie hier, um die gewaehlte Sprache als Standard zu definieren und in die Konfigurationsdatei abzuspeichern.",
|
||||
},
|
||||
|
||||
};
|
||||
|
@ -1,454 +1,5 @@
|
||||
static char * msg[4][104] =
|
||||
{
|
||||
|
||||
/* English messages */
|
||||
{
|
||||
"OK",
|
||||
"Cancel",
|
||||
"Delete fractal",
|
||||
"Are you sure you want to delete",
|
||||
"\"%s\" from the list and from disk?",
|
||||
"Delete",
|
||||
"Error opening: %s",
|
||||
"File '%s' Not a FractalExplorer file",
|
||||
"File '%s' corrupt file - Line %d Option section incorrect",
|
||||
"Internal error - list item has null object!",
|
||||
"Unknown event\n",
|
||||
"Edit fractal name",
|
||||
"Fractal name:",
|
||||
"New fractal",
|
||||
"%s [copy]",
|
||||
"Save",
|
||||
"Save as...",
|
||||
"Copy",
|
||||
"Load",
|
||||
"No fractalexplorer-path in gimprc:\n"
|
||||
"You need to add an entry like\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n"
|
||||
"to your ~/.gimprc/gimprc file\n",
|
||||
"fractalexplorer-path miss-configured - \nPath `%.100s' not found\n",
|
||||
"Entry %.100s is not a directory\n",
|
||||
"error reading fractalexplorer directory \"%s\"",
|
||||
"My first fractal",
|
||||
"Choose fractal by double-clicking on it",
|
||||
"Rescan",
|
||||
"Select directory and rescan collection",
|
||||
"New",
|
||||
"Create a new fractal for editing",
|
||||
"Rename",
|
||||
"Rename fractal in list",
|
||||
"Delete currently selected fractal",
|
||||
"Choose gradient by double-clicking on it",
|
||||
"Add FractalExplorer path",
|
||||
"Rescan for fractals",
|
||||
"Add dir",
|
||||
"Parameters",
|
||||
"Parameters",
|
||||
"Change the first (minimal) x-coordinate delimitation",
|
||||
"Change the second (maximal) x-coordinate delimitation",
|
||||
"Change the first (minimal) y-coordinate delimitation",
|
||||
"Change the second (maximal) y-coordinate delimitation",
|
||||
"Change the iteration value. The higher it is, the more details will be calculated, which will take more time.",
|
||||
"Change the CX value (changes aspect of fractal, active with every fractal but Mandelbrot and Sierpinski)",
|
||||
"Change the CY value (changes aspect of fractal, active with every fractal but Mandelbrot and Sierpinski)",
|
||||
"Reset parameters to default values",
|
||||
"Load a fractal from file",
|
||||
"Save active fractal to file",
|
||||
"Fractal type",
|
||||
"Options",
|
||||
"Reset to default values",
|
||||
"Preview options",
|
||||
"Realtime preview",
|
||||
"If you enable this option the preview will be redrawn automatically.",
|
||||
"Redraw",
|
||||
"Redraw preview",
|
||||
"Zoom options",
|
||||
"Undo zoom",
|
||||
"Undo last zoom",
|
||||
"Redo zoom",
|
||||
"Redo last zoom",
|
||||
"Step in",
|
||||
"Step out",
|
||||
"Colors",
|
||||
"Color density",
|
||||
"Red",
|
||||
"Green",
|
||||
"Blue",
|
||||
"Change the intensity of the red channel",
|
||||
"Change the intensity of the green channel",
|
||||
"Change the intensity of the blue channel",
|
||||
"Color function",
|
||||
"Sine",
|
||||
"Cosine",
|
||||
"None",
|
||||
"Use sine-function for this color component",
|
||||
"Use cosine-function for this color component",
|
||||
"Use linear mapping instead of any trigonometrical function for this color channel",
|
||||
"Inversion",
|
||||
"If you enable this option higher color values will be swapped with lower ones and vice versa.",
|
||||
"Color mode",
|
||||
"As specified above",
|
||||
"Create a color-map with the options you specified above (color density/function). The result is visible in the preview image",
|
||||
"Apply active gradient to final image",
|
||||
"Create a color-map using a gradient from the gradient editor.",
|
||||
"Gradients",
|
||||
"Fractals",
|
||||
"Accept settings and start the calculation of the fractal",
|
||||
"Discard any changes and close dialog box",
|
||||
"About",
|
||||
"Show information about the plug-in and the author",
|
||||
"This will close the information box",
|
||||
"Error opening '%.100s' could not save",
|
||||
"Failed to write file\n",
|
||||
"Save: No filename given",
|
||||
"Save: Can't save to a directory",
|
||||
"Load fractal parameters",
|
||||
"Click here to load your file.",
|
||||
"Click here to cancel load procedure.",
|
||||
"Save fractal parameters",
|
||||
"Click here to save your file.",
|
||||
"Click here to cancel save procedure.",
|
||||
"Save settings",
|
||||
"This saves the currently selected language to the configuration file",
|
||||
},
|
||||
|
||||
|
||||
/* Messages en fran<61>ais */
|
||||
{
|
||||
"Accepter",
|
||||
"Annuler",
|
||||
"Effacer fractal",
|
||||
"Etes-vous sur de vouloir effacer le fichier",
|
||||
"\"%s\" de la liste est du disque?",
|
||||
"Effacer",
|
||||
"Erreur lors de l'ouverture du fichier: %s",
|
||||
"Le fichier '%s' ne correspond pas au format FractalExplorer!",
|
||||
"Le fichier '%s' est corrompu - Ligne %d incorrecte.",
|
||||
"Erreur interne - l'<27>l<EFBFBD>ment de la liste contient un objet NULL!",
|
||||
"Ev<EFBFBD>nement inconnu.\n",
|
||||
"Changer le nom du fractal",
|
||||
"Nom du fractal:",
|
||||
"Nouveau fractal",
|
||||
"%s [copie]",
|
||||
"Enregistrer",
|
||||
"Enregistrer sous...",
|
||||
"Copier",
|
||||
"Charger",
|
||||
"Aucun r<>pertoire FractalExplorer inscrit dans gimprc:\n"
|
||||
"Vous devez aujouter une ligne telle que\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n"
|
||||
"dans votre fichier ~/.gimprc/gimprc\n",
|
||||
"fractalexplorer-path n'est pas configur<75> correctement - \nDossier `%.100s' introuvable.\n",
|
||||
"L'entr<74>e %.100s n'est pas un r<>pertoire.\n",
|
||||
"Erreur lors de la lecture du r<>pertoire \"%s\".",
|
||||
"Mon premier fractal",
|
||||
"Choisissez un fractal en double-cliquant sur celui-ci",
|
||||
"Rafra<EFBFBD>chir",
|
||||
"Choix du r<>pertoire et rechargement de la collection.",
|
||||
"Nouveau",
|
||||
"Cr<EFBFBD>er nouveau fractal.",
|
||||
"Renommer",
|
||||
"Renommer le fractal contenu dans la liste.",
|
||||
"Efface le fractal actuellement selection<6F> dans la liste.",
|
||||
"Choisissez un d<>grad<61> de couleurs avec un double-click",
|
||||
"Ajouter un dossier FractalExplorer.",
|
||||
"Rechargement de nouveaux fractals.",
|
||||
"Ajout de r<>pertoires",
|
||||
"Param<EFBFBD>tres",
|
||||
"Param<EFBFBD>tres",
|
||||
"Change la premi<6D>re delimitation de l'axe x (delimitation minimale de x).",
|
||||
"Change la deuxi<78>me delimitation de l'axe x (delimitation maximale de x).",
|
||||
"Change la premi<6D>re delimitation de l'axe y (delimitation minimale de y).",
|
||||
"Change la deuxi<78>me delimitation de l'axe y (delimitation maximale de y).",
|
||||
"Change la valeur d'iteration. Une valeur plus haute rend l'image plus detail<69>e, mais utilise plus de temps de calcul.",
|
||||
"Change la valeur CX (cela change l'aspect du fractal; l'option n'est pas active pour les types de fractal Mandelbrot and Sierpinski).",
|
||||
"Change la valeur CY (cela change l'aspect du fractal; l'option n'est pas active pour les types de fractal Mandelbrot and Sierpinski).",
|
||||
"Remets tous les param<61>tres <20> leur valeur par d<>faut.",
|
||||
"Charge un fractal <20> partir d'un fichier.",
|
||||
"Enregistre un fractal dans un fichier.",
|
||||
"Type de fractal",
|
||||
"Configuration",
|
||||
"Valeurs par d<>faut",
|
||||
"Pr<EFBFBD>visualisation",
|
||||
"En temps r<>el",
|
||||
"Si vous activez cette option, la fen<65>tre de pr<70>visualisation sera automatiquement rafra<72>chie apr<70>s chaque changement d'option.",
|
||||
"Actualiser",
|
||||
"Actualise et redessine la pr<70>visualisation.",
|
||||
"Options de zoom",
|
||||
"Annuler zoom",
|
||||
"Ceci annule le dernier zoom.",
|
||||
"Refaire zoom",
|
||||
"Ceci annule la derni<6E>re annulation du zoom.",
|
||||
"Se rapprocher",
|
||||
"S'<27>loigner",
|
||||
"Couleurs",
|
||||
"Densit<EFBFBD> des valeurs RVB d'une couleur",
|
||||
"Rouge",
|
||||
"Vert",
|
||||
"Bleu",
|
||||
"Change l'intensit<69> du canal rouge.",
|
||||
"Change l'intensit<69> du canal vert.",
|
||||
"Change l'intensit<69> du canal bleu.",
|
||||
"Fonctions appliqu<71>s aux canaux RVB",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Aucun",
|
||||
"Utilise la fonction trigonom<6F>trique 'sinus' pour le calcul de cette composante de couleur.",
|
||||
"Utilise la fonction trigonom<6F>trique 'cosinus' pour le calcul de cette composante de couleur.",
|
||||
"Utilise une fonction lin<69>aire au lieu d'une fonction trigonom<6F>trique pour ce canal.",
|
||||
"Inversion",
|
||||
"En activant cette option, vous assignez de grandes valeurs de couleurs aux couleurs ayant re<72>u des valeurs petites et vice versa.",
|
||||
"Mode de couleur",
|
||||
"Comme specifi<66> ci-dessus",
|
||||
"Cr<EFBFBD>e une palette de couleur en utilisant les options que vous avez choisies ci-dessus (densit<69>/fonction). Le r<>sultat est visible dans l'image de pr<70>visualisation.",
|
||||
"Applique le d<>grad<61> de couleur actif",
|
||||
"Cr<EFBFBD>e une palette en utilisant le d<>grad<61> de couleur du 'Gradient Editor'.",
|
||||
"D<EFBFBD>grad<EFBFBD>s",
|
||||
"Fractals",
|
||||
"Accepte les options et d<>marre la calculation du fractal.",
|
||||
"Rejette tout changement et ferme la bo<62>te de dialogue.",
|
||||
"Info...",
|
||||
"Affiche des informations concernant l'auteur et le plug-in.",
|
||||
"Ceci fermera la bo<62>te de dialogue d'info.",
|
||||
"Erreur lors de l'ouverture de '%.100s'. Sauvegarde echou<6F>e.",
|
||||
"Ecriture du fichier impossible.\n",
|
||||
"Enregistrement: Aucun fichier specifi<66>.",
|
||||
"Enregistrement: Impossible de sauvegarder dans un r<>pertoire.",
|
||||
"Chargement des param<61>tres d'un fractal",
|
||||
"Cliquez ici afin de charger un fichier FractalExplorer.",
|
||||
"Cliquez ici pour interrompre la proc<6F>dure de chargement.",
|
||||
"Enregistrement des param<61>tres d'un fractal",
|
||||
"Cliquez ici pour charger votre fichier.",
|
||||
"Cliquez ici pour imterropre la proc<6F>dure d'enregistrement.",
|
||||
"Enregistrer langue",
|
||||
"Ceci enregistre la langue actuelle dans le fichier de configuration.",
|
||||
},
|
||||
|
||||
/* Deutsche Mitteilungen */
|
||||
{
|
||||
"Weiter",
|
||||
"Abbrechen",
|
||||
"Fraktal l<>schen",
|
||||
"Sind sie sicher, dass sie die Datei",
|
||||
"\"%s\" aus der Liste und von der Festplatte entfernen m<>chten?",
|
||||
"L<EFBFBD>schen",
|
||||
"Fehler beim <20>ffnen der Datei: %s",
|
||||
"Die Datei '%s' scheint nicht im FractalExplorer-Format zu sein!",
|
||||
"Die Datei '%s' ist besch<63>digt - Zeile %d inkorrekt.",
|
||||
"Interner Fehler - das Listenelement besitzt ein NULL Objekt!",
|
||||
"Unbekanntes Ereignis.\n",
|
||||
"<EFBFBD>ndere Fraktalnamen",
|
||||
"Fraktal-Name:",
|
||||
"Neues Fraktal",
|
||||
"%s [Kopie]",
|
||||
"Speichern",
|
||||
"Speichern als...",
|
||||
"Kopie",
|
||||
"Laden",
|
||||
"Kein fractalexplorer-path in gimprc:\n"
|
||||
"Sie m<>ssen einen Eintrag wie der folgende in ihre ~/.gimprc/gimprc Datei einf<6E>gen:\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n",
|
||||
"fractalexplorer-path falsch konfiguriert - \nPfad `%.100s' nicht gefunden\n",
|
||||
"Eintrag %.100s ist kein Verzeichnis.\n",
|
||||
"Fehler beim Lesen des FractalExplorer-Verzeichnisses \"%s\".",
|
||||
"Mein erstes Fraktal",
|
||||
"W<EFBFBD>hlen Sie ein Fraktal durch Doppelklick aus",
|
||||
"Aktualisieren",
|
||||
"Wahl eines Verzeichnisses und Wiedereinlese der Dateisammlung.",
|
||||
"Neu",
|
||||
"Erstellt ein neues Fraktal.",
|
||||
"Umbenennen",
|
||||
"Benennt das Fraktal in der Liste um.",
|
||||
"L<EFBFBD>scht das gerade gew<65>hlte Fraktal der Liste.",
|
||||
"W<EFBFBD>hlen Sie einen Farbverlauf durch Doppelklick aus",
|
||||
"F<EFBFBD>ge FractalExplorer-Pfad hinzu",
|
||||
"Nach neuen Fraktalen suchen",
|
||||
"Neues Verzeichis hinzuf<75>gen.",
|
||||
"Fraktal-Optionen",
|
||||
"Parameter",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die Iterations-Variable. Je h<>her sie ist, um so genauer und detailierter wird das Bild sein. Eine gr<67>ssere Berechenzeit ist allerdings in Kauf zu nehmen.",
|
||||
"<EFBFBD>ndert den CX-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"<EFBFBD>ndert den CY-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"Setze Parameter auf die Standardwerte zurueck.",
|
||||
"Lade ein Fraktal aus einer Datei",
|
||||
"Speichere das aktive Fraktal in eine Datei",
|
||||
"Fraktal-Typ",
|
||||
"Diverse Optionen",
|
||||
"Zur<EFBFBD>cksetzen",
|
||||
"Vorschau-Optionen",
|
||||
"Echtzeit-Vorschau",
|
||||
"Falls Sie diese Option aktivieren, wird das Vorschaufenster stets automatisch aktualisiert.",
|
||||
"Neu zeichnen",
|
||||
"Zeichnet die Vorschau neu",
|
||||
"Zoom-Optionen",
|
||||
"Rueckg<EFBFBD>ngig",
|
||||
"Macht den letzten Zoom-Vorgang wieder r<>ckg<6B>ngig.",
|
||||
"Wiederherstellen",
|
||||
"Stellt den letzten Zoom-Vorgang wieder her.",
|
||||
"Hinein",
|
||||
"Hinaus",
|
||||
"Farb-Optionen",
|
||||
"Farbintensit<EFBFBD>t",
|
||||
"Rot",
|
||||
"Gruen",
|
||||
"Blau",
|
||||
"<EFBFBD>ndert die Intensit<69>t des roten Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des gruenen Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des blauen Kanals.",
|
||||
"Farb-Funktion",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Keine",
|
||||
"Verwende Sinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende Cosinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende lineare Farbabstufung statt einer trigonometrischen Funktion.",
|
||||
"Inversion",
|
||||
"Falls Sie diese Option aktivieren, werden tiefere Farbwerte durch h<>here ausgetauscht und umgekehrt.",
|
||||
"Farb-Modus",
|
||||
"Wie oben stehend angegeben",
|
||||
"Berechne Farbpalette mit den oben angegebenen Optionen (Farb-Intensit<69>t/-Funktion). Das Resultat ist in der Vorschau sichtbar.",
|
||||
"Wende aktiven Farbverlauf an",
|
||||
"Berechne Farbpalette mit den Angaben eines Verlaufes aus dem Gradient-Editor.",
|
||||
"Farbverl<EFBFBD>ufe",
|
||||
"Fraktale",
|
||||
"Akzeptiere Einstellungen und starte die Berechnung des Fraktals.",
|
||||
"Verwerfe jegliche <20>nderungen und schliesse das Fenster.",
|
||||
"<EFBFBD>ber...",
|
||||
"Zeige Informationen <20>ber den Autor und das Plug-In.",
|
||||
"Info-Box schliessen",
|
||||
"Fehler beim <20>ffnen von '%.100s'. Konnte nicht speichern",
|
||||
"Speichern der Datei fehlgeschlagen\n",
|
||||
"Speichern: Keine Datei angegeben",
|
||||
"Speichern: Kann nicht in ein Verzeichnis speichern",
|
||||
"Lade Parameter eines Fraktals",
|
||||
"Klicken Sie hier, um das Fraktal zu laden.",
|
||||
"Klicken Sie hier, um den Ladevorgang abzubrechen.",
|
||||
"Speichere Fraktalparameter",
|
||||
"Klicken Sie hier, um das Fraktal in eine Datei zu speichern.",
|
||||
"Klicken Sie hier, um den Speicherungsvorgang abzubrechen.",
|
||||
"Sprache abspeichern",
|
||||
"Klicken Sie hier, um die gewaehlte Sprache als Standard zu definieren und in die Konfigurationsdatei abzuspeichern.",
|
||||
},
|
||||
|
||||
/* Schwedische Mitteilungen
|
||||
========================
|
||||
Hier koenntest Du die schwedischen Texte einfuegen, d.h. die deutschen ueberschreiben.
|
||||
*/
|
||||
|
||||
{
|
||||
"Weiter",
|
||||
"Abbrechen",
|
||||
"Fraktal l<>schen",
|
||||
"Sind sie sicher, dass sie die Datei",
|
||||
"\"%s\" aus der Liste und von der Festplatte entfernen m<>chten?",
|
||||
"L<EFBFBD>schen",
|
||||
"Fehler beim <20>ffnen der Datei: %s",
|
||||
"Die Datei '%s' scheint nicht im FractalExplorer-Format zu sein!",
|
||||
"Die Datei '%s' ist besch<63>digt - Zeile %d inkorrekt.",
|
||||
"Interner Fehler - das Listenelement besitzt ein NULL Objekt!",
|
||||
"Unbekanntes Ereignis.\n",
|
||||
"<EFBFBD>ndere Fraktalnamen",
|
||||
"Fraktal-Name:",
|
||||
"Neues Fraktal",
|
||||
"%s [Kopie]",
|
||||
"Speichern",
|
||||
"Speichern als...",
|
||||
"Kopie",
|
||||
"Laden",
|
||||
"Kein fractalexplorer-path in gimprc:\n"
|
||||
"Sie m<>ssen einen Eintrag wie der folgende in ihre ~/.gimprc/gimprc Datei einf<6E>gen:\n"
|
||||
"(fractalexplorer-path \"${gimp_dir}/fractalexplorer:${gimp_data_dir}/fractalexplorer\n",
|
||||
"fractalexplorer-path falsch konfiguriert - \nPfad `%.100s' nicht gefunden\n",
|
||||
"Eintrag %.100s ist kein Verzeichnis.\n",
|
||||
"Fehler beim Lesen des FractalExplorer-Verzeichnisses \"%s\".",
|
||||
"Mein erstes Fraktal",
|
||||
"W<EFBFBD>hlen Sie ein Fraktal durch Doppelklick aus",
|
||||
"Aktualisieren",
|
||||
"Wahl eines Verzeichnisses und Wiedereinlese der Dateisammlung.",
|
||||
"Neu",
|
||||
"Erstellt ein neues Fraktal.",
|
||||
"Umbenennen",
|
||||
"Benennt das Fraktal in der Liste um.",
|
||||
"L<EFBFBD>scht das gerade gew<65>hlte Fraktal der Liste.",
|
||||
"W<EFBFBD>hlen Sie einen Farbverlauf durch Doppelklick aus",
|
||||
"F<EFBFBD>ge FractalExplorer-Pfad hinzu",
|
||||
"Nach neuen Fraktalen suchen",
|
||||
"Neues Verzeichis hinzuf<75>gen.",
|
||||
"Fraktal-Optionen",
|
||||
"Parameter",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der x-Koordinate.",
|
||||
"<EFBFBD>ndert die erste (minimale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die zweite (maximale) Begrenzung der y-Koordinate.",
|
||||
"<EFBFBD>ndert die Iterations-Variable. Je h<>her sie ist, um so genauer und detailierter wird das Bild sein. Eine gr<67>ssere Berechenzeit ist allerdings in Kauf zu nehmen.",
|
||||
"<EFBFBD>ndert den CX-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"<EFBFBD>ndert den CY-Wert (Dies wirkt sich auf alle Fraktale aus, ausser Mandelbrot und Sierpinski).",
|
||||
"Setze Parameter auf die Standardwerte zurueck.",
|
||||
"Lade ein Fraktal aus einer Datei",
|
||||
"Speichere das aktive Fraktal in eine Datei",
|
||||
"Fraktal-Typ",
|
||||
"Diverse Optionen",
|
||||
"Zur<EFBFBD>cksetzen",
|
||||
"Vorschau-Optionen",
|
||||
"Echtzeit-Vorschau",
|
||||
"Falls Sie diese Option aktivieren, wird das Vorschaufenster stets automatisch aktualisiert.",
|
||||
"Neu zeichnen",
|
||||
"Zeichnet die Vorschau neu",
|
||||
"Zoom-Optionen",
|
||||
"Rueckg<EFBFBD>ngig",
|
||||
"Macht den letzten Zoom-Vorgang wieder r<>ckg<6B>ngig.",
|
||||
"Wiederherstellen",
|
||||
"Stellt den letzten Zoom-Vorgang wieder her.",
|
||||
"Hinein",
|
||||
"Hinaus",
|
||||
"Farb-Optionen",
|
||||
"Farbintensit<EFBFBD>t",
|
||||
"Rot",
|
||||
"Gruen",
|
||||
"Blau",
|
||||
"<EFBFBD>ndert die Intensit<69>t des roten Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des gruenen Kanals.",
|
||||
"<EFBFBD>ndert die Intensit<69>t des blauen Kanals.",
|
||||
"Farb-Funktion",
|
||||
"Sinus",
|
||||
"Cosinus",
|
||||
"Keine",
|
||||
"Verwende Sinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende Cosinus-Funktion f<>r diese Farbkomponente.",
|
||||
"Verwende lineare Farbabstufung statt einer trigonometrischen Funktion.",
|
||||
"Inversion",
|
||||
"Falls Sie diese Option aktivieren, werden tiefere Farbwerte durch h<>here ausgetauscht und umgekehrt.",
|
||||
"Farb-Modus",
|
||||
"Wie oben stehend angegeben",
|
||||
"Berechne Farbpalette mit den oben angegebenen Optionen (Farb-Intensit<69>t/-Funktion). Das Resultat ist in der Vorschau sichtbar.",
|
||||
"Wende aktiven Farbverlauf an",
|
||||
"Berechne Farbpalette mit den Angaben eines Verlaufes aus dem Gradient-Editor.",
|
||||
"Farbverl<EFBFBD>ufe",
|
||||
"Fraktale",
|
||||
"Akzeptiere Einstellungen und starte die Berechnung des Fraktals.",
|
||||
"Verwerfe jegliche <20>nderungen und schliesse das Fenster.",
|
||||
"<EFBFBD>ber...",
|
||||
"Zeige Informationen <20>ber den Autor und das Plug-In.",
|
||||
"Info-Box schliessen",
|
||||
"Fehler beim <20>ffnen von '%.100s'. Konnte nicht speichern",
|
||||
"Speichern der Datei fehlgeschlagen\n",
|
||||
"Speichern: Keine Datei angegeben",
|
||||
"Speichern: Kann nicht in ein Verzeichnis speichern",
|
||||
"Lade Parameter eines Fraktals",
|
||||
"Klicken Sie hier, um das Fraktal zu laden.",
|
||||
"Klicken Sie hier, um den Ladevorgang abzubrechen.",
|
||||
"Speichere Fraktalparameter",
|
||||
"Klicken Sie hier, um das Fraktal in eine Datei zu speichern.",
|
||||
"Klicken Sie hier, um den Speicherungsvorgang abzubrechen.",
|
||||
"Sprache abspeichern",
|
||||
"Klicken Sie hier, um die gewaehlte Sprache als Standard zu definieren und in die Konfigurationsdatei abzuspeichern.",
|
||||
},
|
||||
|
||||
};
|
||||
#ifndef __FRACTALEXPLORER_LANGAUGES_H__
|
||||
#define __FRACTALEXPLORER_LANGAUGES_H__
|
||||
|
||||
enum {
|
||||
MSG_OK,
|
||||
@ -564,3 +115,7 @@ enum {
|
||||
LNG_ITALIAN,
|
||||
LNG_SPANISH
|
||||
};
|
||||
|
||||
extern char * msg[4][104];
|
||||
|
||||
#endif
|
||||
|
@ -8,11 +8,16 @@ libexec_PROGRAMS = FractalExplorer
|
||||
|
||||
FractalExplorer_SOURCES = \
|
||||
Callbacks.h \
|
||||
Callbacks.c \
|
||||
Dialogs.h \
|
||||
Dialogs.c \
|
||||
Events.h \
|
||||
Events.c \
|
||||
FractalExplorer.c \
|
||||
FractalExplorer.h \
|
||||
Globals.c \
|
||||
Languages.h \
|
||||
Languages.c \
|
||||
logo.h \
|
||||
pix_data.h
|
||||
|
||||
|
Reference in New Issue
Block a user