fltk
1.3.5-source
About: FLTK (Fast Light Tool Kit) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. Fossies Dox: fltk-1.3.5-source.tar.bz2 ("inofficial" and yet experimental doxygen-generated source code documentation) 
|
Go to the documentation of this file. 43 #include "../src/flstring.h" 48 #if defined(WIN32) && !defined(__CYGWIN__) 58 # define access _access 60 # define getcwd _getcwd 61 # endif // !__WATCOMC__ 66 # include <X11/Xlibint.h> 76 #if defined(HAVE_LIBPNG) && defined(HAVE_LIBZ) 81 # include <libpng/png.h> 83 #endif // HAVE_LIBPNG && HAVE_LIBZ 136 if (!
pwd) {fprintf(stderr,
"getwd : %s\n",strerror(errno));
return;}
138 if (chdir(
buffer)<0) {fprintf(stderr,
"Can't chdir to %s : %s\n",
139 buffer, strerror(errno));
return;}
145 if (chdir(
pwd)<0) {fprintf(stderr,
"Can't chdir to %s : %s\n",
146 pwd, strerror(errno));}
163 pos.
get(
"visible", Visible, Visible);
169 pos.
set(
"x", w->
x());
170 pos.
set(
"y", w->
y());
171 pos.
set(
"w", w->
w());
172 pos.
set(
"h", w->
h());
200 if (
G_debug ) printf(
"--- TIMER --- External editors open=%d\n", editors_open);
201 if ( editors_open > 0 ) {
205 if (
p->is_code() ) {
208 if (
code->handle_editor_changes() ) {
211 if (
code->is_editing() ) {
232 if (v || !c || !*c) {
233 fnfc.
title(
"Save To:");
235 fnfc.
filter(
"FLUID Files\t*.f[ld]");
236 if (fnfc.
show() != 0)
return;
239 const char *basename;
240 if ((basename = strrchr(c,
'/')) !=
NULL)
242 #if defined(WIN32) || defined(__EMX__) 243 if ((basename = strrchr(c,
'\\')) !=
NULL)
245 #endif // WIN32 || __EMX__ 249 if (
fl_choice(
"The file \"%s\" already exists.\n" 250 "Do you want to replace it?",
"Cancel",
251 "Replace",
NULL, basename) == 0)
return;
257 fl_alert(
"Error writing %s: %s", c, strerror(errno));
261 if (v != (
void *)2) {
294 if (!c || !*c)
return;
298 strlcpy(safename, c,
sizeof(safename));
299 for (safeptr = safename; *safeptr; safeptr ++) {
300 if (isspace(*safeptr)) *safeptr =
'_';
308 #if defined(WIN32) && !defined(__CYGWIN__) 312 #endif // WIN32 && !__CYGWIN__ 319 fl_alert(
"The template name \"%s\" is too long!", c);
327 if (
fl_choice(
"The template \"%s\" already exists.\n" 328 "Do you want to replace it?",
"Cancel",
329 "Replace",
NULL, c) == 0)
return;
337 #if defined(HAVE_LIBPNG) && defined(HAVE_LIBZ) 377 for (
int i = h; i > 0; i --, ptr += w * 3) {
386 # if 0 // The original PPM output code... 389 fprintf(fp,
"P6\n%d %d 255\n", w, h);
390 fwrite(pixels, w * h, 3, fp);
395 #endif // HAVE_LIBPNG && HAVE_LIBZ 400 if (!
fl_choice(
"This user interface has been changed. Really revert?",
401 "Cancel",
"Revert",
NULL))
return;
420 switch (
fl_choice(
"Do you want to save changes to this user\n" 421 "interface before exiting?",
"Cancel",
422 "Save",
"Don't Save"))
466 apple_open_cb(
const char *c) {
468 switch (
fl_choice(
"Do you want to save changes to this user\n" 469 "interface before opening another one?",
"Don't Save",
479 const char *oldfilename;
486 fl_message(
"Can't read %s: %s", c, strerror(errno));
497 if (oldfilename)
free((
void *)oldfilename);
503 switch (
fl_choice(
"Do you want to save changes to this user\n" 504 "interface before opening another one?",
"Cancel",
505 "Save",
"Don't Save"))
515 const char *oldfilename;
519 fnfc.
filter(
"FLUID Files\t*.f[ld]\n");
520 if (fnfc.
show() != 0)
return;
529 fl_message(
"Can't read %s: %s", c, strerror(errno));
545 if (oldfilename)
free((
void *)oldfilename);
551 switch (
fl_choice(
"Do you want to save changes to this user\n" 552 "interface before opening another one?",
"Cancel",
553 "Save",
"Don't Save"))
578 if (oldfilename)
free((
void *)oldfilename);
585 switch (
fl_choice(
"Do you want to save changes to this user\n" 586 "interface before creating a new one?",
"Cancel",
587 "Save",
"Don't Save"))
629 if (item < 1)
return;
642 if (iname && *iname) {
644 char line[1024], *ptr, *next;
645 FILE *infile, *outfile;
648 fl_alert(
"Error reading template file \"%s\":\n%s", tname,
664 while (fgets(line,
sizeof(line), infile)) {
666 for (ptr = line; (next = strstr(ptr,
"@INSTANCE@")) !=
NULL; ptr = next + 10) {
667 fwrite(ptr, next - ptr, 1, outfile);
668 fputs(iname, outfile);
733 strlcat(cname,
" and ",
sizeof(cname));
734 strlcat(cname, hname,
sizeof(cname));
736 if (!
x) {fprintf(stderr,
"%s : %s\n",cname,strerror(errno)); exit(1);}
739 fl_message(
"Can't write %s: %s", cname, strerror(errno));
747 static const char *exts[] = {
".txt",
".po",
".msg" };
759 if (
x) {fprintf(stderr,
"%s : %s\n",sname,strerror(errno)); exit(1);}
762 fl_message(
"Can't write %s: %s", sname, strerror(errno));
815 while (
p &&
p->selected)
p =
p->parent;
829 while (
p &&
p->selected)
p =
p->parent;
907 if ((docdir = getenv(
"FLTK_DOCDIR")) ==
NULL) {
912 strlcpy(fltk_docdir, __XOS2RedirRoot(
"/XFree86/lib/X11/fltk/doc"),
913 sizeof(fltk_docdir));
915 docdir = fltk_docdir;
920 snprintf(helpname,
sizeof(helpname),
"%s/%s", docdir,
name);
923 FILE *
f = fopen(helpname,
"rb");
930 if (strcmp(
name,
"fluid.html")==0) {
935 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n" 936 "<html><head><title>FLTK: Programming with FLUID</title></head><body>\n" 937 "<h2>What is FLUID?</h2>\n" 938 "The Fast Light User Interface Designer, or FLUID, is a graphical editor " 939 "that is used to produce FLTK source code. FLUID edits and saves its state " 940 "in <code>.fl</code> files. These files are text, and you can (with care) " 941 "edit them in a text editor, perhaps to get some special effects.<p>\n" 942 "FLUID can \"compile\" the <code>.fl</code> file into a <code>.cxx</code> " 943 "and a <code>.h</code> file. The <code>.cxx</code> file defines all the " 944 "objects from the <code>.fl</code> file and the <code>.h</code> file " 945 "declares all the global ones. FLUID also supports localization " 946 "(Internationalization) of label strings using message files and the GNU " 947 "gettext or POSIX catgets interfaces.<p>\n" 948 "A simple program can be made by putting all your code (including a <code>" 949 "main()</code> function) into the <code>.fl</code> file and thus making the " 950 "<code>.cxx</code> file a single source file to compile. Most programs are " 951 "more complex than this, so you write other <code>.cxx</code> files that " 952 "call the FLUID functions. These <code>.cxx</code> files must <code>" 953 "#include</code> the <code>.h</code> file or they can <code>#include</code> " 954 "the <code>.cxx</code> file so it still appears to be a single source file.<p>" 955 "<img src=\"embedded:/fluid-org.png\"></p>" 956 "<p>More information is available online at <a href=" 957 "\"http://www.fltk.org/doc-1.3/fluid.html\">http://www.fltk.org/</a>" 960 }
else if (strcmp(
name,
"license.html")==0) {
961 fl_open_uri(
"http://www.fltk.org/doc-1.3/license.html");
963 }
else if (strcmp(
name,
"index.html")==0) {
964 fl_open_uri(
"http://www.fltk.org/doc-1.3/index.html");
967 snprintf(helpname,
sizeof(helpname),
"http://www.fltk.org/%s",
name);
987 int frompage, topage;
997 if (!((
Fl_Window*)(windows[num_windows]->
o))->shown())
continue;
1003 if ( printjob.
start_job(num_windows, &frompage, &topage) )
return;
1005 for (winpage = 0; winpage < num_windows; winpage++) {
1006 float scale = 1, scale_x = 1, scale_y = 1;
1007 if (winpage+1 < frompage || winpage+1 > topage)
continue;
1011 time_t curtime = time(
NULL);
1012 struct tm *curdate = localtime(&curtime);
1014 strftime(date,
sizeof(date),
"%c", curdate);
1018 sprintf(date,
"%d/%d", ++pagecount, topage-frompage+1);
1021 const char *basename = strrchr(
filename,
1028 if (basename) basename ++;
1030 sprintf(date,
"%s", basename);
1035 if(ww > w) scale_x = float(w)/ww;
1037 if(hh > h) scale_y = float(h)/hh;
1038 if (scale_x < scale) scale = scale_x;
1039 if (scale_y < scale) scale = scale_y;
1041 printjob.
scale(scale);
1044 printjob.
origin(w/2, h/2);
1065 {
"Sa&ve A Copy...", 0,
save_cb, (
void*)2},
1144 {
"&Rapid development with FLUID...",0,
help_cb},
1150 #define BROWSERWIDTH 300 1151 #define BROWSERHEIGHT 500 1152 #define WINWIDTH 300 1153 #define MENUHEIGHT 25 1154 #define WINHEIGHT (BROWSERHEIGHT+MENUHEIGHT) 1205 svp.
get(
"autorefresh", autorefresh, 1);
1208 svp.
get(
"autoposition", autoposition, 1);
1211 svp.
get(
"tab", tab, 0);
1248 o->
tooltip(
"Double-click to view or change an item.");
1276 if (max_files > 10) max_files = 10;
1278 for (i = 0; i < max_files; i ++) {
1290 for (; i < 10; i ++) {
1304 if (max_files > 10) max_files = 10;
1308 for (i = 0; i < max_files; i ++)
1309 #
if defined(WIN32) || defined(__APPLE__)
1313 #endif // WIN32 || __APPLE__ 1317 if (i >= max_files) i = max_files - 1;
1332 for (i = 0; i < max_files; i ++) {
1340 for (; i < 10; i ++) {
1357 FILE *
popen (
const char *cmd,
const char *mode=
"r");
1364 #if defined(WIN32) && !defined(__CYGWIN__) 1366 HANDLE pin[2], pout[2], perr[2];
1368 PROCESS_INFORMATION pi;
1371 static bool createPipe(HANDLE * h, BOOL bInheritHnd=
TRUE);
1374 FILE * freeHandles() {
1375 clean_close(pin[0]); clean_close(pin[1]);
1376 clean_close(pout[0]); clean_close(pout[1]);
1377 clean_close(perr[0]); clean_close(perr[1]);
1380 static void clean_close(HANDLE& h);
1387 #if defined(WIN32) && !defined(__CYGWIN__) 1388 bool Fl_Process::createPipe(HANDLE * h, BOOL bInheritHnd) {
1389 SECURITY_ATTRIBUTES sa;
1390 sa.nLength =
sizeof(sa);
1391 sa.lpSecurityDescriptor =
NULL;
1392 sa.bInheritHandle = bInheritHnd;
1393 return CreatePipe (&h[0],&h[1],&sa,0) ? true :
false;
1398 #if defined(WIN32) && !defined(__CYGWIN__) 1400 if (!mode || !*mode || (*mode!=
'r' && *mode!=
'w') )
return NULL;
1404 pin[0] = pin[1] = pout[0] = pout[1] = perr[0] = perr[1] = INVALID_HANDLE_VALUE;
1406 int fusion = (strstr(cmd,
"2>&1") !=
NULL);
1409 if (!createPipe(pin) || !createPipe(pout) || (!fusion && !createPipe(perr) ) )
1410 return freeHandles();
1413 ZeroMemory(&si,
sizeof(STARTUPINFO));
1414 si.cb =
sizeof(STARTUPINFO);
1415 si.dwFlags = STARTF_USESTDHANDLES;
1416 si.hStdInput = pin[0];
1417 si.hStdOutput = pout[1];
1418 si.hStdError = fusion ? pout[1] : perr [1];
1421 DETACHED_PROCESS,
NULL,
NULL, &si, &pi)) {
1423 clean_close(pin[0]); clean_close(pout[1]); clean_close(perr[1]);
1424 HANDLE & h = *mode ==
'r' ? pout[0] : pin[1];
1426 h= INVALID_HANDLE_VALUE;
1430 if (!
_fpt) freeHandles();
1439 #if defined(WIN32) && !defined(__CYGWIN__) 1442 clean_close(perr[0]);
1443 clean_close(pin[1]);
1444 clean_close(pout[0]);
1450 int ret = ::pclose(
_fpt);
1456 #if defined(WIN32) && !defined(__CYGWIN__) 1457 void Fl_Process::clean_close(HANDLE& h) {
1458 if (h!= INVALID_HANDLE_VALUE) CloseHandle(h);
1459 h = INVALID_HANDLE_VALUE;
1471 fl_alert(
"Previous shell command still running!");
1475 fl_alert(
"No shell command entered!");
1494 #if !defined(__MWERKS__) 1527 fl_alert(
"Unable to run shell command: %s", strerror(errno));
1554 if ((status = system(
command)) != 0) {
1555 fl_alert(
"Shell command returned status %d!", status);
1557 fl_message(
"Shell command completed successfully!");
1560 #endif // !__MWERKS__ 1688 const char *basename;
1694 if (!
filename) basename =
"Untitled.fl";
1695 else if ((basename = strrchr(
filename,
'/')) !=
NULL) basename ++;
1696 #if defined(WIN32) || defined(__EMX__) 1697 else if ((basename = strrchr(
filename,
'\\')) !=
NULL) basename ++;
1698 #endif // WIN32 || __EMX__ 1723 static int arg(
int argc,
char** argv,
int& i) {
1727 if (argv[i][1] ==
'o' && !argv[i][2] && i+1 < argc) {
1733 if (argv[i][1] ==
'h' && !argv[i][2]) {
1741 for (j=0; j<n; j++) {
1743 int r = pi->
arg(argc, argv, i);
1749 #if ! (defined(WIN32) && !defined (__CYGWIN__)) 1754 #define SIGARG _sigargs 1757 #define SIGARG __sigargs 1759 #define SIGARG int // you may need to fix this for older systems 1775 static const char *msg =
1776 "usage: %s <switches> name.fl\n" 1777 " -u : update .fl file and exit (may be combined with '-c' or '-cs')\n" 1778 " -c : write .cxx and .h and exit\n" 1779 " -cs : write .cxx and .h and strings and exit\n" 1780 " -o <name> : .cxx output filename, or extension if <name> starts with '.'\n" 1781 " -h <name> : .h output filename, or extension if <name> starts with '.'\n";
1782 int len = (int)(strlen(msg) + strlen(argv[0]) + strlen(
Fl::help));
1785 for (i=0; i<n; i++) {
1787 if (pi) len += strlen(pi->
help());
1790 sprintf(
buf, msg, argv[0]);
1791 for (i=0; i<n; i++) {
1793 if (pi) strcat(
buf, pi->
help());
1799 fprintf(stderr,
"%s\n",
buf);
1807 const char *c = argv[i];
1834 fprintf(stderr,
"%s : %s\n", c, strerror(errno));
1837 fl_message(
"Can't read %s: %s", c, strerror(errno));
int fl_filename_relative(char *to, int tolen, const char *from)
Fl_Double_Window * make_template_panel()
void buffer(Fl_Text_Buffer *buf)
char absolute_history[10][FL_PATH_MAX]
Fl_Double_Window * make_shell_window()
void fl_font(Fl_Font face, Fl_Fontsize fsize)
void update_sourceview_timer(void *)
FL_EXPORT double fl_width(const char *txt)
void select_all_cb(Fl_Widget *, void *)
void update_sourceview_position_cb(Fl_Tabs *, void *)
A button that is used to pop up a menu.
Fl_Button * template_delete
Fl_Check_Button * shell_writecode_button
static char in_source_dir
Fl_Double_Window * shell_run_window
int plugins()
Return the number of plugins in the klass.
void save_position(Fl_Window *w, const char *prefsName)
void widget_size_cb(Fl_Widget *, long)
void show_global_settings_cb(Fl_Widget *, void *)
char position_window(Fl_Window *w, const char *prefsName, int Visible, int X, int Y, int W=0, int H=0)
void exit_cb(Fl_Widget *, void *)
int find(const Fl_Widget *) const
const char * code_file_name
void copy_cb(Fl_Widget *, void *)
PNG_IMPEXP void() png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)
const char * header_file_name
void fl_message(const char *,...)
static Fl_Type * write_code(Fl_Type *p)
Fl_Menu_Item * history_item
void about_cb(Fl_Widget *, void *)
Fl_Window * widgetbin_panel
void undo_cb(Fl_Widget *, void *)
Fl_Check_Button * shell_writemsgs_button
void hotspot(int x, int y, int offscreen=0)
static int args(int argc, char **argv, int &i, Fl_Args_Handler cb=0)
int printable_rect(int *w, int *h)
Computes the width and height of the printable area of the page.
Preferences apply only to the current user.
void fl_color(Fl_Color c)
int read_file(const char *filename, int merge)
void title(const char *t)
void ungroup_cb(Fl_Widget *, void *)
Fl_Int_Input * horizontal_input
void update_history(const char *)
#define FL_SHIFT
One of the shift keys is down.
#define PNG_INTERLACE_NONE
void fl_open_callback(void(*cb)(const char *))
Register a function called for each file dropped onto an application icon. cb will be called with a s...
const char * filter() const
virtual int arg(int argc, char **argv, int &i)=0
void delete_cb(Fl_Widget *, void *)
void do_shell_command(Fl_Return_Button *, void *)
Fl_Double_Window * make_about_panel()
void value(const char *f)
static bool prepare_shell_command(const char *&command)
FL_EXPORT void fl_draw(const char *str, int x, int y)
char getUserdataPath(char *path, int pathlen)
Creates a path that is related to the preferences file and that is usable for additional application ...
int main(int argc, char **argv)
static void set_update_timer_callback(Fl_Timeout_Handler)
void earlier_cb(Fl_Widget *, void *)
static void load_system_icons(void)
char relative_history[10][FL_PATH_MAX]
FILE * fl_fopen(const char *f, const char *mode)
int length() const
Returns the number of bytes in the buffer.
void show_help(const char *name)
PNG_IMPEXP void() png_set_sRGB(png_const_structrp png_ptr, png_inforp info_ptr, int srgb_intent)
char G_external_editor_command[512]
#define PNG_FILTER_TYPE_DEFAULT
Fl_Choice * scheme_choice
Fl_Check_Button * shell_savefl_button
int fl_choice(const char *q, const char *b0, const char *b1, const char *b2,...)
void scale(float scale_x, float scale_y=0.)
Changes the scaling of page coordinates.
Fl_Window * make_widgetbin()
void scroll(int topLineNum, int horizOffset)
Scrolls the current buffer to start at the specified line and column.
void shell_pipe_cb(FL_SOCKET, void *)
void fl_register_images()
Register the image formats.
#define PNG_COLOR_TYPE_RGB
int G_use_external_editor
void redo_cb(Fl_Widget *, void *)
Fl_Double_Window * about_panel
static void add_fd(int fd, int when, Fl_FD_Handler cb, void *=0)
Fl_Menu_Item * sourceview_item
int count_lines(int start, int end, bool start_pos_is_line_start) const
Count the number of lines between two positions.
void toggle_overlays(Fl_Widget *, void *)
int end_page(void)
To be called at the end of each page.
void openwidget_cb(Fl_Widget *, void *)
Fl_Preferences fluid_prefs(Fl_Preferences::USER, "fltk.org", "fluid")
#define FL_ALT
One of the alt keys is down.
static unsigned int command(const char *cmd)
int write_strings(const char *sfile)
utility header to pull drawing functions together
void align_widget_cb(Fl_Widget *, long)
static const char * filename
const char * fl_filename_name(const char *filename)
const Fl_Font FL_HELVETICA
Helvetica (or Arial) normal (0)
Fl_Check_Button * openlast_button
const char * filename() const
static int arg(int argc, char **argv, int &i)
void open_history_cb(Fl_Widget *, void *v)
void save_template_cb(Fl_Widget *, void *)
static Fl_Shared_Image * find(const char *name, int W=0, int H=0)
const char * i18n_function
#define FL_COMMAND
An alias for FL_CTRL on WIN32 and X11, or FL_META on MacOS X.
Fl_Double_Window * shell_window
char get(const char *entry, int &value, int defaultValue)
char set(const char *entry, int value)
void fl_beep(int type=FL_BEEP_DEFAULT)
virtual int is_window() const
void duplicate_cb(Fl_Widget *, void *)
virtual void resize(int X, int Y, int W, int H)
int fl_filename_absolute(char *to, int tolen, const char *from)
void help_cb(Fl_Widget *, void *)
void revert_cb(Fl_Widget *, void *)
Fl_Menu_Item * widgetbin_item
void print_menu_cb(Fl_Widget *, void *)
void later_cb(Fl_Widget *, void *)
Fl_Text_Display * shell_run_display
png_infop png_create_info_struct(png_const_structrp png_ptr)
#define PNG_sRGB_INTENT_PERCEPTUAL
#define PNG_COMPRESSION_TYPE_DEFAULT
static void remove_timeout(Fl_Timeout_Handler, void *=0)
PNG_IMPEXP void() png_write_row(png_structrp png_ptr, png_const_bytep row)
Fl_Check_Button * completion_button
static void repeat_timeout(double t, Fl_Timeout_Handler, void *=0)
static Fl_Help_Dialog * help_dialog
declaration of classes Fl_Printer, Fl_System_Printer and Fl_PostScript_Printer.
void show_project_cb(Fl_Widget *, void *)
nothing is drawn at all, this box is invisible
void toggle_sourceview_b_cb(Fl_Button *, void *)
int start_job(int pagecount, int *frompage=NULL, int *topage=NULL)
void delete_all(int selected_only)
void show_grid_cb(Fl_Widget *, void *)
Fl_Check_Button * prevpos_button
void select_none_cb(Fl_Widget *, void *)
Fl_Widget * make_widget_browser(int x, int y, int w, int h)
FILE * popen(const char *cmd, const char *mode="r")
Fl_Browser * template_browser
char i18n_program[FL_PATH_MAX]
void write_strings_cb(Fl_Widget *, void *)
void append(const char *t)
const char * label() const
static char * cutfname(int which=0)
char * text() const
Get a copy of the entire contents of the text buffer. Memory is allocated to contain the returned str...
Fl_Plugin_Manager manages link-time and run-time plugin binaries.
static void tmpdir_clear()
void end_job(void)
To be called at the end of a print job.
Fl_Light_Button * sv_autorefresh
#define PNG_LIBPNG_VER_STRING
const char * i18n_include
int start_page(void)
Starts a new printed page.
void cut_cb(Fl_Widget *, void *)
int write_file(const char *filename, int selected_only)
void add(const char *newtext, void *d=0)
static char * sv_source_filename
void select_only(Fl_Type *)
Fl_Return_Button * shell_run_button
static void add_timeout(double t, Fl_Timeout_Handler, void *=0)
Fl_Double_Window * make_settings_window()
Fl_Text_Buffer * shell_run_buffer
void toggle_sourceview_cb(Fl_Double_Window *, void *)
PNG_IMPEXP void() png_write_info(png_structrp png_ptr, png_const_inforp info_ptr)
char * get_line(char *line, size_t s) const
static void remove_fd(int, int when)
void grid_cb(Fl_Int_Input *, long)
Fl_Double_Window * make_layout_window()
Fl_Input * template_instance
void open_cb(Fl_Widget *, void *v)
void paste_cb(Fl_Widget *, void *)
Fl_Double_Window * sourceview_panel
Fl_Plugin * plugin(int index)
Return the address of a plugin by index.
Fl_Preferences provides methods to store user settings between application starts.
Fl_Input * shell_command_input
void scheme_cb(Fl_Choice *, void *)
Fl_Light_Button * sv_autoposition
browse files (lets user choose one file)
Fl_Widget * child(int n) const
void origin(int *x, int *y)
Computes the page coordinates of the current origin of graphics functions.
char * fl_filename_setext(char *to, int tolen, const char *ext)
static const char * title
unsigned char fluid_org_png[27580]
static int editors_open()
void new_cb(Fl_Widget *, void *v)
OS-independent print support.
void print_window(Fl_Window *win, int x_offset=0, int y_offset=0)
void write_cb(Fl_Widget *, void *)
void * data(int line) const
Fl_Type * sort(Fl_Type *parent)
Fl_Double_Window * template_panel
static void sort_cb(Fl_Widget *, void *)
uchar * read_image(int &ww, int &hh)
static const char * scheme()
PNG_IMPEXP void() png_write_end(png_structrp png_ptr, png_inforp info_ptr)
void update_sourceview_cb(Fl_Button *, void *)
virtual const char * help()=0
void set_filename(const char *c)
#define FL_F
One of the function keys; use FL_F + n for function key n.
void show_settings_cb(Fl_Widget *, void *)
static void external_editor_timer(void *)
void save_cb(Fl_Widget *, void *v)
void fl_alert(const char *,...)
Fl_Menu_Bar * main_menubar
#define FL_Delete
The delete key.
PNG_IMPEXP void() png_set_IHDR(png_const_structrp png_ptr, png_inforp info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_method, int compression_method, int filter_method)
void manual_cb(Fl_Widget *, void *)
Fl_Double_Window * make_global_settings_window()
void png_init_io(png_structrp png_ptr, png_FILE_p fp)
void group_cb(Fl_Widget *, void *)
void toggle_widgetbin_cb(Fl_Widget *, void *)
int fl_open_uri(const char *uri, char *msg, int msglen)
static const char *const help
Fl_Double_Window * make_sourceview()
static void stop_update_timer()
void resizable(Fl_Widget &o)
static char * sv_header_filename
PNG_IMPEXP png_structp() png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn)
Fl_Return_Button * template_submit
void update_sourceview_position()