"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "fotoxx.h" between
fotoxx-22.30.tar.gz and fotoxx-22.35.tar.gz

About: fotoxx is a program for photo editing and collection management.

fotoxx.h  (fotoxx-22.30):fotoxx.h  (fotoxx-22.35)
skipping to change at line 31 skipping to change at line 31
#include <wait.h> #include <wait.h>
#include <tiffio.h> #include <tiffio.h>
#include <png.h> #include <png.h>
#include "jpeglib.h" #include "jpeglib.h"
#include <lcms2.h> #include <lcms2.h>
#include <champlain-gtk/champlain-gtk.h> #include <champlain-gtk/champlain-gtk.h>
#include "zfuncs.h" #include "zfuncs.h"
// Fotoxx definitions // Fotoxx definitions
#define Frelease "fotoxx-22.30" // current release #define Frelease "fotoxx-22.35" // current release
#define Flicense "Free software - GNU General Public License v.3" #define Flicense "Free software - GNU General Public License v.3"
#define Fwebsite "https://kornelix.net/fotoxx/fotoxx.html" // fotoxx web site #define Fwebsite "https://kornelix.net/fotoxx/fotoxx.html" // fotoxx web site
#define Fgitlab "https://gitlab.com/fotoxx" // GitLab home #define Fgitlab "https://gitlab.com/fotoxx" // GitLab home
#define Fprivacy "https://gitlab.com/fotoxx/fotoxx/wikis/privacy" // Gitlab privacy policy #define Fprivacy "https://gitlab.com/fotoxx/fotoxx/wikis/privacy" // Gitlab privacy policy
#define Fcontact "mkornelix@gmail.com" #define Fcontact "mkornelix@gmail.com"
#define MEGA (1024 * 1024) // 1 million as 2**20 #define MEGA (1024 * 1024) // 1 million as 2**20
#define FMEGA (1.0 * MEGA) #define FMEGA (1.0 * MEGA)
#define PI 3.141592654 #define PI 3.141592654
#define RAD (180.0/PI) #define RAD (180.0/PI)
skipping to change at line 67 skipping to change at line 67
#define RGBFIX(r,g,b) \ #define RGBFIX(r,g,b) \
if (r < 0) { r = 0; } if (g < 0) { g = 0; } if (b < 0) { b = 0; } \ if (r < 0) { r = 0; } if (g < 0) { g = 0; } if (b < 0) { b = 0; } \
max$ = r; if (g > max$) { max$ = g; } if (b > max$) { max$ = b; } \ max$ = r; if (g > max$) { max$ = g; } if (b > max$) { max$ = b; } \
if (max$ > 255) { r *= 255/max$; g *= 255/max$; b *= 255/max$; } if (max$ > 255) { r *= 255/max$; g *= 255/max$; b *= 255/max$; }
// compile time limits that could be increased // compile time limits that could be increased
#define thumbfilesize 512 // thumbnail file pixel size #define thumbfilesize 512 // thumbnail file pixel size
#define wwhh_limit1 40000 // max. image width or height #define wwhh_limit1 40000 // max. image width or height
#define wwhh_limit2 (256 * MEGA) // max. image width x height #define wwhh_limit2 (256 * MEGA) // max. image width x height
#define max_threads 8 #define max_threads 16
// max. threads (hyperthreads useless) // max. threads (hyperthreads useless)
#define maxNST 16
// max. metadata server threads
#define maxtopfolders 200 // max. no. of top image folders #define maxtopfolders 200 // max. no. of top image folders
#define indexrecl 2000 // max. image index rec. (>XFCC >tagFcc) #define indexrecl 2000 // max. image index rec. (>XFCC >tagFcc)
#define maximages 1000000 // max. image files supported #define maximages 1000000 // max. image files supported
#define maxgallery 100000 // max. gallery/folder files supported #define maxgallery 100000 // max. gallery/folder files supported
#define maxtagcats 200 // max tag categories #define maxtagcats 200 // max tag categories
#define tagcc 50 // max cc for one tag or category ID #define tagcc 50 // max cc for one tag or category ID
#define tagFcc 1000 // max tag cc for one image file #define tagFcc 1000 // max tag cc for one image file
#define maxtags 100000 // max tags and tags/category #define maxtags 100000 // max tags and tags/category
#define tagGcc 200000 // max tag cc for one category #define tagGcc 200000 // max tag cc for one category
#define tagMcc 1000 // max tag cc for batch add tags #define tagMcc 1000 // max tag cc for batch add tags
#define tagScc 500 // max tag cc for search tags #define tagScc 500 // max tag cc for search tags
#define tagRcc 300 // max tag cc for recent tags #define tagRcc 300 // max tag cc for recent tags
#define maxcaps 20 // max captions (metadata items/keys) #define maxcaps 20 // max captions (metadata items/keys)
#define maxcapcc 2000 // max captions text (metadata text) #define maxcapcc 2000 // max captions text (metadata text)
#define GSmax 100000 // max files for gallery_select() #define GSmax 100000 // max files for gallery_select()
#define MXmax 20 // max extra indexed metadata items #define MXmax 20 // max extra indexed metadata items
#define MPmax 100 // max metadata items in dialog picklists #define MPmax 100 // max metadata items in dialog picklists
#define MRmax 50 // max metadata items in batch report #define MRmax 50 // max metadata items in batch report
#define MVmax 50 // max extra metadata items in view metadata #define MVmax 50 // max extra metadata items in view metadata
#define exif_maxcc 2000 // max. cc for exif/iptc text #define exif_maxcc 2000 // max. cc for exif/iptc text
#define maxNST 16 #define ANCC 100
// max. metadata search threads // max. album name
#define AFCC 300
// max. album file name (path)
#define maxalbums 100
// max. total albums
#define maxalbumfiles maxgallery
// max. files in one album
// EXIF/IPTC keys for embedded image metadata // EXIF/IPTC keys for embedded image metadata
#define exif_ww_key "ImageWidth" // image width and height #define exif_ww_key "ImageWidth" // image width and height
#define exif_hh_key "ImageHeight" // (replace exif_wwhh_key) #define exif_hh_key "ImageHeight" // (replace exif_wwhh_key)
#define exif_date_key "DateTimeOriginal" // photo date/time #define exif_date_key "DateTimeOriginal" // photo date/time
#define exif_orientation_key "Orientation" // orientation #define exif_orientation_key "Orientation" // orientation
#define exif_rollangle_key "RollAngle" // roll angle - canera tilt error #define exif_rollangle_key "RollAngle" // roll angle - canera tilt error
#define exif_edithist_key "ImageHistory" // edit history log #define exif_edithist_key "ImageHistory" // edit history log
#define exif_copyright_key "Copyright" // image copyright #define exif_copyright_key "Copyright" // image copyright
skipping to change at line 163 skipping to change at line 167
extern int zdialog_busy; // open zdialog count (run - destroy) extern int zdialog_busy; // open zdialog count (run - destroy)
extern zdialog *zdialog_list[zdialog_max]; // active zdialog list extern zdialog *zdialog_list[zdialog_max]; // active zdialog list
extern pthread_t tid_main; // main() thread ID extern pthread_t tid_main; // main() thread ID
extern float splcurve_minx; // min. anchor point dist, % scale extern float splcurve_minx; // min. anchor point dist, % scale
extern cchar *zappcrash_context1, *zappcrash_context2; // zappcrash context data extern cchar *zappcrash_context1, *zappcrash_context2; // zappcrash context data
} }
// gallery files table // gallery files table
enum FTYPE { IMAGE, RAW, VIDEO, FDIR, THUMB, OTHER, FNF }; // file types, FNF = file not found enum FTYPE { IMAGE, RAW, VIDEO, FDIR, THUMB, OTHER, FNF }; // file types, FNF = file not found
enum GTYPE { TNONE, GDIR, SEARCH, META, RECENT, NEWEST, ALBUM }; // gallery types enum GTYPE { TNONE, FOLDER, SEARCH, META, RECENT, NEWEST, ALBUM }; // gallery types
enum GSORT { SNONE, FNAME, FNUMBER, FDATE, PDATE, FSIZE, PSIZE, MDATA }; // gallery sort types enum GSORT { SNONE, FNAME, FNUMBER, FDATE, PDATE, FSIZE, PSIZE, MDATA }; // gallery sort types
enum GSEQ { QNONE, ASCEND, DESCEND }; // gallery sort sequence enum GSEQ { QNONE, ASCEND, DESCEND }; // gallery sort sequence
struct Gindex_t { // gallery index struct Gindex_t { // gallery index
char *file; // /folder.../filename char *file; // /folder.../filename
char fdate[16]; // file date: yyyymmddhhmmss char fdate[16]; // file date: yyyymmddhhmmss
char pdate[16]; // photo date: yyyymmddhhmmss char pdate[16]; // photo date: yyyymmddhhmmss
int fsize; // file size, bytes int fsize; // file size, bytes
int psize; // image size, pixels int psize; // image size, pixels
char *mdata1; // fixed text for metadata report char *mdata1; // fixed text for metadata report
skipping to change at line 204 skipping to change at line 208
extern int thumbsize; // curr. thumbnail display size extern int thumbsize; // curr. thumbnail display size
extern int genthumbs; // counts thumbnails generated extern int genthumbs; // counts thumbnails generated
extern double thumbcache_MB; // thumbnail cache size, MB extern double thumbcache_MB; // thumbnail cache size, MB
int gallery_paint(GtkWidget *, cairo_t *); // gallery window paint function int gallery_paint(GtkWidget *, cairo_t *); // gallery window paint function
void menufuncx(GtkWidget *, cchar *menu); // gallery menu buttons function void menufuncx(GtkWidget *, cchar *menu); // gallery menu buttons function
void changefolder(GtkWidget *widget, GdkEventButton *event); // gallery folder change function void changefolder(GtkWidget *widget, GdkEventButton *event); // gallery folder change function
void newtop(GtkWidget *widget, GdkEventButton *event); // gallery change top folder function void newtop(GtkWidget *widget, GdkEventButton *event); // gallery change top folder function
void newalbum(GtkWidget *widget, GdkEventButton *event); // gallery change album function void newalbum(GtkWidget *widget, GdkEventButton *event); // gallery change album function
int mouse_event(GtkWidget *, GdkEvent *, void *); // gallery window mouse event function int mouse_event(GtkWidget *, GdkEvent *, void *); // gallery window mouse event function
void gallery_sort(); // gallery choose sort order and sort
char * gallery_dragfile(); // gallery window file drag function char * gallery_dragfile(); // gallery window file drag function
void gallery_dropfile(int mx, int my, char *file); // gallery window file drop function void gallery_dropfile(int mx, int my, char *file); // gallery window file drop function
int KBaction(cchar *action); // gallery window KB key function int KBaction(cchar *action); // gallery window KB key function
} }
EX int GScount; // gallery_select(), final file count EX int GScount; // gallery_select(), final file count
EX int GSselect; // gallery_select dialog, running count EX int GSselect; // gallery_select dialog, running count
EX char *GSfiles[GSmax]; // gallery_select(), selected files EX char *GSfiles[GSmax]; // gallery_select(), selected files
// GTK etc. parameters // GTK etc. parameters
skipping to change at line 314 skipping to change at line 317
char *key; // key name, e.g. "Shift+U" char *key; // key name, e.g. "Shift+U"
char *menu; // menu name, e.g. "Redo" char *menu; // menu name, e.g. "Redo"
}; };
#define maxkbsu 100 // max. KB shortcuts #define maxkbsu 100 // max. KB shortcuts
EX kbsutab_t kbsutab[maxkbsu]; EX kbsutab_t kbsutab[maxkbsu];
EX int Nkbsu; EX int Nkbsu;
// general parameters // general parameters
EX int Fwsl; // Windows WSL environment
EX int Fdevmenu; // flag, show developer menu EX int Fdevmenu; // flag, show developer menu
EX char desktopname[100]; // locale specific desktop folder EX char desktopname[100]; // locale specific desktop folder
EX char *Prelease; // prior fotoxx version EX char *Prelease; // prior fotoxx version
EX int Ffirsttime; // first time startup EX int Ffirsttime; // first time startup
EX int mwgeom[4]; // main window position and size EX int mwgeom[4]; // main window position and size
EX pid_t fotoxxPID; // my process PID EX pid_t fotoxxPID; // my process PID
EX int NWT; EX int NWT;
// working threads to use for edits // working threads for edit functions
EX int NST; EX int NST;
// server threads for metadata search // metadata server threads
EX int *Nval; // static integer values 0-maximages EX int *Nval; // static integer values 0-maximages
EX char FGWM; // curr. view mode: 'F' 'G' 'W' 'M' EX char FGWM; // curr. view mode: 'F' 'G' 'W' 'M'
EX char PFGWM; // prior view mode EX char PFGWM; // prior view mode
EX int Fdcraw; // flag, dcraw installed EX int Fdcraw; // flag, dcraw installed
EX int Fexiftool; // flag, exiftool installed EX int Fexiftool; // flag, exiftool installed
EX int Frawtherapee; // flag, rawtherapee installed EX int Frawtherapee; // flag, rawtherapee installed
EX int Frawtherapeecli; // flag, " " (command line) installed EX int Frawtherapeecli; // flag, " " (command line) installed
EX int Fdarktable; // flag, darktable installed EX int Fdarktable; // flag, darktable installed
EX int Fdarktablecli; // flag, " " (command line) installed EX int Fdarktablecli; // flag, " " (command line) installed
EX char *rawcommand; // custom RAW loader command
EX int Fheif; // flag, heif-convert installed EX int Fheif; // flag, heif-convert installed
EX int Fjp2; // flag, opj_decompress installed EX int Fjp2; // flag, opj_decompress installed
EX int Fwebp; // flag, dwebp installed EX int Fwebp; // flag, dwebp installed
EX int Fgrowisofs; // flag, growisofs installed EX int Fgrowisofs; // flag, growisofs installed
EX int Fvlc; // flag, vlc installed
EX int Ffmpeg; // flag, ffmpeg installed EX int Ffmpeg; // flag, ffmpeg installed
EX int Faddr2line; // flag, addr2line installed EX int Faddr2line; // flag, addr2line installed
EX int Ftinycomputer; // flag, memory too little for Fotoxx EX int Ftinycomputer; // flag, memory too little for Fotoxx
EX int Fshutdown; // flag, app shutdown underway EX int Fshutdown; // flag, app shutdown underway
EX int Findexlev; // 0/1/2 = none/old/old+new image files EX int Findexlev; // 0/1/2 = none/old/old+new image files
EX int FMindexlev; // Findexlev if start via file manager EX int FMindexlev; // Findexlev if start via file manager
EX char *xmeta_keys[MXmax]; // indexed metadata names (compressed) EX char *xmeta_keys[MXmax]; // indexed metadata names (compressed)
EX int Fkillfunc; // flag, running function should quit EX int Fkillfunc; // flag, running function should quit
EX int Fpaintrequest; // window paint request pending EX int Fpaintrequest; // window paint request pending
EX int Fmetamod; // image metadata unsaved changes EX int Fmetamod; // image metadata unsaved changes
skipping to change at line 379 skipping to change at line 385
EX int Nmisstops; // missing top folders count EX int Nmisstops; // missing top folders count
EX char *blacklist[1000]; // list of blacklisted folders/files EX char *blacklist[1000]; // list of blacklisted folders/files
EX int Nblacklist; // blacklist count EX int Nblacklist; // blacklist count
EX char *thumbfolder; // thumbnails folder EX char *thumbfolder; // thumbnails folder
EX char *initial_file; // initial file on command line EX char *initial_file; // initial file on command line
EX char *curr_file; // current image file EX char *curr_file; // current image file
EX char curr_file_type[8]; // jpg / tif / png / other EX char curr_file_type[8]; // jpg / tif / png / other
EX int curr_file_bpc; // image file bits/color, 8/16 EX int curr_file_bpc; // image file bits/color, 8/16
EX int curr_file_size; // image file size on disk EX int curr_file_size; // image file size on disk
EX int curr_file_posn; // position in current gallery, 0-last EX int curr_file_posn; // position in current gallery, 0-last
EX int last_file_posn; // remember when curr. file deleted
EX char exif_edithist[exif_maxcc]; // EXIF edit history text EX char exif_edithist[exif_maxcc]; // EXIF edit history text
EX int exif_edithist_cc0; // edit history text cc at file open EX int exif_edithist_cc0; // edit history text cc at file open
EX int Fexif_edithist; // edit history loaded for curr. file EX int Fexif_edithist; // edit history loaded for curr. file
EX char *curr_album; // current or last used album EX char *curr_album; // current or last used album
EX char *copymove_loc; // last used copy/move to location EX char *copymove_loc; // last used copy/move to location
EX char *clicked_file; // image file / thumbnail clicked EX char *clicked_file; // image file / thumbnail clicked
EX int clicked_posn; // clicked gallery position (Nth) EX int clicked_posn; // clicked gallery position (Nth)
EX int clicked_width; // clicked thumbnail position EX int clicked_width; // clicked thumbnail position
EX int clicked_height; // (normalized 0-100) EX int clicked_height; // (normalized 0-100)
EX char *imagefiletypes; // supported image types: .jpg .png etc. EX char *imagefiletypes; // supported image types: .jpg .png etc.
skipping to change at line 864 skipping to change at line 869
PXB * PXB_make(int ww, int hh, int nc); // create a PXB pixmap PXB * PXB_make(int ww, int hh, int nc); // create a PXB pixmap
void PXB_free(PXB *&pxb); // free PXB pixmap void PXB_free(PXB *&pxb); // free PXB pixmap
void PXB_clear(PXB *pxb); // clear PXB pixmap to zeros (black) void PXB_clear(PXB *pxb); // clear PXB pixmap to zeros (black)
int PXB_addalpha(PXB *pxb); // add alpha channel to PXB pixmap int PXB_addalpha(PXB *pxb); // add alpha channel to PXB pixmap
int PXB_subalpha(PXB *pxb); // remove alpha channel from PXB pixmap int PXB_subalpha(PXB *pxb); // remove alpha channel from PXB pixmap
PXB * PXB_copy(PXB *pxb); // copy (duplicate) PXB pixmap PXB * PXB_copy(PXB *pxb); // copy (duplicate) PXB pixmap
void PXB_copy_area(PXB *, int, int, int, int, PXB *, int, int); // copy area from one PXB to another void PXB_copy_area(PXB *, int, int, int, int, PXB *, int, int); // copy area from one PXB to another
PXB * PXB_subpxb(PXB *pxb1, int px1, int py1, int ww, int hh); // create new PXB from PXB section PXB * PXB_subpxb(PXB *pxb1, int px1, int py1, int ww, int hh); // create new PXB from PXB section
PXB * PXB_half(PXB *pxb1); // rescale PXB pixmap to 1/2 size PXB * PXB_half(PXB *pxb1); // rescale PXB pixmap to 1/2 size
PXB * PXB_rescale(PXB *pxb, int ww, int hh); // rescale PXB pixmap (ww/hh) PXB * PXB_rescale(PXB *pxb, int ww, int hh); // rescale PXB pixmap (ww/hh)
PXB * PXB_resize(PXB *pxb1, int size); // resize PXB pixmap to max. ww/hh
PXB * PXB_rescale_fast(PXB *pxb1, int ww, int hh); // rescale " " faster, less quality PXB * PXB_rescale_fast(PXB *pxb1, int ww, int hh); // rescale " " faster, less quality
PXB * PXB_resize(PXB *pxb1, int size); // resize PXB pixmap to max. ww/hh
PXB * PXB_resize_fast(PXB *pxb1, int size); // resize PXB pixmap to max. ww/hh PXB * PXB_resize_fast(PXB *pxb1, int size); // resize PXB pixmap to max. ww/hh
PXB * PXB_rotate(PXB *pxb, float angle); // rotate PXB pixmap PXB * PXB_rotate(PXB *pxb, float angle); // rotate PXB pixmap
int vpixel(PXB *pxb, float px, float py, uint8 *vpix); // get PXB virtual pixel at (px,py) int vpixel(PXB *pxb, float px, float py, uint8 *vpix); // get PXB virtual pixel at (px,py)
int vpixel(PXM *pxm, float px, float py, float *vpix); // get PXM virtual pixel at (px,py) int vpixel(PXM *pxm, float px, float py, float *vpix); // get PXM virtual pixel at (px,py)
PXB * PXM_PXB_copy(PXM *pxm); // PXM to pixbuf, same scale PXB * PXM_PXB_copy(PXM *pxm); // PXM to pixbuf, same scale
void PXM_PXB_update(PXM *, PXB *, int px3, int py3, int ww3, int hh3); // update PXB area from PXM, same scale void PXM_PXB_update(PXM *, PXB *, int px3, int py3, int ww3, int hh3); // update PXB area from PXM, same scale
void PXB_PXB_update(PXB *, PXB *, int px3, int py3, int ww3, int hh3); // update PXB area from PXB, any scale void PXB_PXB_update(PXB *, PXB *, int px3, int py3, int ww3, int hh3); // update PXB area from PXB, any scale
skipping to change at line 933 skipping to change at line 938
PXB * RAW_PXB_load(cchar *rawfile, int autobright, int matchthumb); // RAW file to PXB, 8 bpc PXB * RAW_PXB_load(cchar *rawfile, int autobright, int matchthumb); // RAW file to PXB, 8 bpc
PXM * RAW_PXM_load(cchar *rawfile, int autobright, int matchthumb); // RAW file to PXM, 16 bpc PXM * RAW_PXM_load(cchar *rawfile, int autobright, int matchthumb); // RAW file to PXM, 16 bpc
PXB * RAW_PXB_load_dcraw(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc PXB * RAW_PXB_load_dcraw(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc
PXB * RAW_PXB_load_dcraw_half(cchar *rawfile); // RAW file to PXB, 8 bpc, 1/2 size PXB * RAW_PXB_load_dcraw_half(cchar *rawfile); // RAW file to PXB, 8 bpc, 1/2 size
PXM * RAW_PXM_load_dcraw(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc PXM * RAW_PXM_load_dcraw(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc
PXB * RAW_PXB_load_RT(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc PXB * RAW_PXB_load_RT(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc
PXM * RAW_PXM_load_RT(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc PXM * RAW_PXM_load_RT(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc
PXB * RAW_PXB_load_DT(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc PXB * RAW_PXB_load_DT(cchar *rawfile, int autobright); // RAW file to PXB, 8 bpc
PXM * RAW_PXM_load_DT(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc PXM * RAW_PXM_load_DT(cchar *rawfile, int autobright); // RAW file to PXB, 16 bpc
PXB * RAW_PXB_load_custom(cchar *rawfile, int autobright);
// RAW file to PXB, 8 bpc
PXM * RAW_PXM_load_custom(cchar *rawfile, int autobright);
// RAW file to PXB, 16 bpc
PXB * RAW_thumb_pxb(cchar *rawfile); // get PXB for thumbnail creation PXB * RAW_thumb_pxb(cchar *rawfile); // get PXB for thumbnail creation
void pixelvert(uint8 *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2); // convert pixel buffer format void pixelvert(uint8 *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2); // convert pixel buffer format
void pixelvert(uint8 *buff1, uint16 *buff2, int ww, int hh, int nc1, int nc2); // and/or channel count void pixelvert(uint8 *buff1, uint16 *buff2, int ww, int hh, int nc1, int nc2); // and/or channel count
void pixelvert(uint8 *buff1, float *buff2, int ww, int hh, int nc1, int nc2); void pixelvert(uint8 *buff1, float *buff2, int ww, int hh, int nc1, int nc2);
void pixelvert(uint16 *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2); void pixelvert(uint16 *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2);
void pixelvert(uint16 *buff1, uint16 *buff2, int ww, int hh, int nc1, int nc2); void pixelvert(uint16 *buff1, uint16 *buff2, int ww, int hh, int nc1, int nc2);
void pixelvert(uint16 *buff1, float *buff2, int ww, int hh, int nc1, int nc2); void pixelvert(uint16 *buff1, float *buff2, int ww, int hh, int nc1, int nc2);
void pixelvert(float *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2); void pixelvert(float *buff1, uint8 *buff2, int ww, int hh, int nc1, int nc2);
skipping to change at line 1008 skipping to change at line 1015
int dirfile(cchar *file, struct stat *statb = 0); // test file is directory, opt. return stat int dirfile(cchar *file, struct stat *statb = 0); // test file is directory, opt. return stat
int hasperm(cchar *file, cchar rw); // test file exists with 'r'/'w' permission int hasperm(cchar *file, cchar rw); // test file exists with 'r'/'w' permission
int set_permissions(GtkWidget *win, cchar *file, cchar *p1, char *p2); // show and set file permissions int set_permissions(GtkWidget *win, cchar *file, cchar *p1, char *p2); // show and set file permissions
int conv_permissions(cchar *perms, mode_t &mode); // conv. "read+write" etc. to mode_t int conv_permissions(cchar *perms, mode_t &mode); // conv. "read+write" etc. to mode_t
int conv_permissions(mode_t mode, char *perms); // conv. mode_t to "read+write" etc. int conv_permissions(mode_t mode, char *perms); // conv. mode_t to "read+write" etc.
// thumbnail gallery and navigation functions (f.gallery.cc) // thumbnail gallery and navigation functions (f.gallery.cc)
char * gallery(cchar *filez, cchar *action, int Nth); // display image gallery window, navigate char * gallery(cchar *filez, cchar *action, int Nth); // display image gallery window, navigate
void gallery_memory(cchar *action); // save/recall gallery sort and posn. void gallery_memory(cchar *action); // save/recall gallery sort and posn.
void set_gwin_title(); // main window title = gallery name void set_gwin_title(); // main window title = gallery name
char * prev_next_file(int index, int lastver); // get prev/next file with last version option char * prev_next_file(int index, int lastver); // get prev/next file with last version option
char * prev_next_gallery(int index); // get prev/next gallery (physical folder) char * prev_next_gallery(int index); // get prev/next gallery (physical folder)
int file_position(cchar *file, int Nth); // get rel. position of file in gallery int file_position(cchar *file, int Nth); // get rel. position of file in gallery
void m_thumbview(GtkWidget *, cchar *);
// gallery, thumbnails + file data
void m_metaview(GtkWidget *, cchar *);
// gallery, thumbnails + basic metadata
void m_recentfiles(GtkWidget *, cchar *);
// gallery of recently viewed files
void add_recent_file(cchar *file);
// add file to recent file list
void m_newfiles(GtkWidget *, cchar *);
// gallery of newest files
FTYPE image_file_type(cchar *file); // FNF folder IMAGE RAW THUMB OTHER FTYPE image_file_type(cchar *file); // FNF folder IMAGE RAW THUMB OTHER
char * thumb2imagefile(cchar *thumbfile); // get image file for thumbnail file char * thumb2imagefile(cchar *thumbfile); // get image file for thumbnail file
char * image2thumbfile(cchar *imagefile); // get thumbnail file for image file char * image2thumbfile(cchar *imagefile); // get thumbnail file for image file
int thumbfile_OK(cchar *imagefile); // check thumbnail file exists and not stale int thumbfile_OK(cchar *imagefile); // check thumbnail file exists and not stale
int update_thumbfile(cchar *imagefile); // create or refresh thumbnail file int update_thumbfile(cchar *imagefile); // create or refresh thumbnail file
int thumbfile_set_mod_time(cchar *imagefile); // set thumbnail mod time from image file int thumbfile_set_mod_time(cchar *imagefile); // set thumbnail mod time from image file
void delete_thumbfile(cchar *imagefile); // delete thumbnail for file void delete_thumbfile(cchar *imagefile); // delete thumbnail for file
PIXBUF * get_cache_thumb(cchar *imagefile, PXB *thumbpxb); // get thumbnail from cache, add if needed PIXBUF * get_cache_thumb(cchar *imagefile, PXB *thumbpxb); // get thumbnail from cache, add if needed
int check_cache_thumb(cchar *imagefile); // test if thumbnail cached or not int check_cache_thumb(cchar *imagefile); // test if thumbnail cached or not
int replace_cache_thumb(cchar *imagefile, PXB *thumbpxb); // replace cached thumbnail PXB int replace_cache_thumb(cchar *imagefile, PXB *thumbpxb); // replace cached thumbnail PXB
void preload_thumbs_start(); // initz. for preload_thumbs() void preload_thumbs_start(); // initz. for preload_thumbs()
void preload_thumbs(int targetfile); // preload thumbnails into cache void preload_thumbs(int targetfile); // preload thumbnails into cache
void m_thumbframe(GtkWidget *, cchar *);
// set video frame for video thumbnail
void gallery_popimage(); // popup big image of clicked thumbnail void gallery_popimage(); // popup big image of clicked thumbnail
char * gallery_select1(cchar *gfolder); // select one file from gallery window char * gallery_select1(cchar *gfolder); // select one file from gallery window
void gallery_select1_Lclick_func(int Nth); // gallery_select1, thumbnail left-click void gallery_select1_Lclick_func(int Nth); // gallery_select1, thumbnail left-click
void gallery_select_clear(); // clear gallery_select() file list void gallery_select_clear(); // clear gallery_select() file list
int gallery_select(); // select files from gallery window int gallery_select(); // select files from gallery window
void gallery_select_Lclick_func(int Nth); // gallery_select, thumbnail left-click void gallery_select_Lclick_func(int Nth); // gallery_select, thumbnail left-click
void gallery_select_Rclick_func(int Nth); // gallery_select, thumbnail right-click void gallery_select_Rclick_func(int Nth); // gallery_select, thumbnail right-click
void m_select_files(GtkWidget *, cchar *); // files for album/batch/script funcs
void m_thumbview(GtkWidget *, cchar *);
// gallery, thumbnails + file data
void m_metaview(GtkWidget *, cchar *);
// gallery, thumbnails + basic metadata
void m_recentfiles(GtkWidget *, cchar *);
// gallery of recently viewed files
void add_recent_file(cchar *file);
// add file to recent file list
void m_newfiles(GtkWidget *, cchar *);
// gallery of newest files
void m_gallery_sort(GtkWidget *, cchar *);
// sort gallery by file, date, size ...
void m_gallery_screen(GtkWidget *, cchar *);
// screen gallery for new, old, pattern match
void m_source_folder(GtkWidget *, cchar *);
// set gallery from current file folder
void m_allfolders(GtkWidget *, cchar *);
// list folders, click for gallery
void m_select_files(GtkWidget *, cchar *);
// files for album/batch/script funcs
void m_rename_folder(GtkWidget *, cchar *); // rename current folder (file gallery) void m_rename_folder(GtkWidget *, cchar *); // rename current folder (file gallery)
void m_add_subfolder(GtkWidget *, cchar *); // add subfolder to existing file gallery void m_add_subfolder(GtkWidget *, cchar *); // add subfolder to existing file gallery
void m_source_folder(GtkWidget *, cchar *);
// set gallery from current file folder
void m_alldirs(GtkWidget *, cchar *);
// list folders, click for gallery
void m_show_hidden(GtkWidget *, cchar *);
// for KB shortcut "show hidden files"
void m_current_album(GtkWidget *, cchar *);
// for KB shortcut "Current Album"
void m_bookmarks(GtkWidget *, cchar *); // select bookmark, goto gallery posn void m_bookmarks(GtkWidget *, cchar *); // select bookmark, goto gallery posn
void m_edit_bookmarks(GtkWidget *, cchar *); // edit bookmarks (gallery/file position) void m_edit_bookmarks(GtkWidget *, cchar *); // edit bookmarks (gallery/file position)
void edit_bookmarks_Lclick_func(int Nth); // thumbnail click response function void edit_bookmarks_Lclick_func(int Nth); // thumbnail click response function
void m_thumbframe(GtkWidget *, cchar *);
// set video frame for video thumbnail
void m_show_hidden(GtkWidget *, cchar *);
// for KB shortcut "show hidden files"
void m_current_album(GtkWidget *, cchar *);
// for KB shortcut "Current Album"
// albums menu (f.albums.cc) // albums menu (f.albums.cc)
void m_manage_albums(GtkWidget *, cchar *); // create and edit image albums void m_manage_albums(GtkWidget *, cchar *); // create and edit image albums
int album_create_from_gallery(cchar *newalbumfile); // create album from current gallery int album_create_from_gallery(cchar *newalbumfile); // create album from current gallery
void album_show(cchar *albumfile = 0); // set/show current album gallery void album_show(cchar *albumfile = 0); // set/show current album gallery
void album_add_selfiles(int mode); // add selected files to album void album_add_selfiles(int mode); // add selected files to album
void album_add_currfile(int mode); // add current file to album void album_add_currfile(int mode); // add current file to album
void album_add_file(cchar *file, int posn); // add one file to album (drag/drop) void album_add_file(cchar *file, int posn); // add one file to album (drag/drop)
void album_remove_file(int posn); // remove file from album void album_remove_file(int posn); // remove file from album
void album_move_file(int pos1, int pos2); // move file position (drag/drop) void album_move_file(int pos1, int pos2); // move file position (drag/drop)
skipping to change at line 1345 skipping to change at line 1356
void m_run_script(GtkWidget *, cchar *); // run script on current image file void m_run_script(GtkWidget *, cchar *); // run script on current image file
void m_batch_script(GtkWidget *, cchar *); // run script on batch of image files void m_batch_script(GtkWidget *, cchar *); // run script on batch of image files
int batch_sharp_func(PXM *pxm, int amount, int thresh); // callable sharpen func for batch funcs int batch_sharp_func(PXM *pxm, int amount, int thresh); // callable sharpen func for batch funcs
// tools menu functions (f.tools.cc) // tools menu functions (f.tools.cc)
void m_index(GtkWidget *, cchar *); // rebuild image index and thumbnails void m_index(GtkWidget *, cchar *); // rebuild image index and thumbnails
void index_rebuild(int level, int keepopen); // index rebuild function void index_rebuild(int level, int keepopen); // index rebuild function
void m_quick_index(GtkWidget *, cchar *); // quick incremental index, no UI void m_quick_index(GtkWidget *, cchar *); // quick incremental index, no UI
void m_move_fotoxx_home(GtkWidget *, cchar *); // move fotoxx home folder void m_move_fotoxx_home(GtkWidget *, cchar *); // move fotoxx home folder
void m_preferences(GtkWidget *, cchar *); // user preferences and settings void m_settings(GtkWidget *, cchar *); // user preferences and settings
void m_KB_shortcuts(GtkWidget *, cchar *); // edit KB shortcuts, update file void m_KB_shortcuts(GtkWidget *, cchar *); // edit KB shortcuts, update file
void KB_shortcuts_load(); // load KB shortcuts at startup time void KB_shortcuts_load(); // load KB shortcuts at startup time
void KB_shortcuts_merge(); // merge user and package shortcuts void KB_shortcuts_merge(); // merge user and package shortcuts
void m_RGB_dist(GtkWidget *, cchar *); // show brightness distribution graph void m_RGB_dist(GtkWidget *, cchar *); // show brightness distribution graph
void RGB_dist_graph(GtkWidget *drawin, cairo_t *cr, int *); // draw brightness distribution graph void RGB_dist_graph(GtkWidget *drawin, cairo_t *cr, int *); // draw brightness distribution graph
void brightness_scale(GtkWidget *drawarea, cairo_t *cr, int *); // draw black to white horizontal band void brightness_scale(GtkWidget *drawarea, cairo_t *cr, int *); // draw black to white horizontal band
void m_magnify(GtkWidget *, cchar *); // magnify image within a radius of the mouse void m_magnify(GtkWidget *, cchar *); // magnify image within a radius of the mouse
void m_duplicates(GtkWidget *, cchar *); // find duplicate image files void m_duplicates(GtkWidget *, cchar *); // find duplicate image files
void m_measure_image(GtkWidget *, cchar *); // measure distances within an image
void m_show_RGB(GtkWidget *, cchar *); // show RGB values at mouse click void m_show_RGB(GtkWidget *, cchar *); // show RGB values at mouse click
void m_popup_text(GtkWidget *, cchar *); // show popup text for edit widget insertion void m_popup_text(GtkWidget *, cchar *); // show popup text for edit widget insertion
void m_calibrate_printer(GtkWidget *, cchar *); // calibrate printer colors void m_calibrate_printer(GtkWidget *, cchar *); // calibrate printer colors
void print_calibrated(); // print image with adjusted colors void print_calibrated(); // print image with adjusted colors
void m_grid_settings(GtkWidget *, cchar *); // grid lines settings dialog void m_grid_settings(GtkWidget *, cchar *); // grid lines settings dialog
void m_toggle_grid(GtkWidget *, cchar *); // toggle grid lines on and off void m_toggle_grid(GtkWidget *, cchar *); // toggle grid lines on and off
void m_line_color(GtkWidget *, cchar *); // foreground line color (area/mouse/crop...) void m_line_color(GtkWidget *, cchar *); // foreground line color (area/mouse/crop...)
void m_darkbrite(GtkWidget *, cchar *); // highlight the darkest and brightest pixels void m_darkbrite(GtkWidget *, cchar *); // highlight the darkest and brightest pixels
void darkbrite_paint(); // paint function called from Fpaint() void darkbrite_paint(); // paint function called from Fpaint()
void m_monitor_color(GtkWidget *, cchar *); // check monitor brightness and color void m_monitor_color(GtkWidget *, cchar *); // check monitor brightness and color
 End of changes. 22 change blocks. 
36 lines changed or deleted 57 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)