70 Commits

Author SHA1 Message Date
Yves Rizoud
2e2cd8073d Safety in Help text
GUI image change: Added more characters in help font.
Shortcuts: Change internal "no key" value from FFFF to 0000


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@608 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-07 01:44:23 +00:00
Yves Rizoud
13aa8e0988 Support for two shortcuts per function
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@602 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-05 22:58:13 +00:00
Yves Rizoud
ca2e12ff00 A million fixes in operations' cursor display. Oh gods I wake up in 4 am.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@600 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-05 01:24:02 +00:00
Yves Rizoud
4349fd71a3 Contour fill (issue 90), 4th mode of continuous drawing.
However, there is a rendering problem from the original polygon tool: the bottom pixels are not drawn.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@581 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-01 23:15:24 +00:00
Adrien Destugues
c0b95295ae Correct handling of multi-button for spray and freehand.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@579 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-01 15:03:16 +00:00
Adrien Destugues
91d4dc20b9 Fixes for compiling under freebsd
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@562 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-28 22:12:28 +00:00
Yves Rizoud
e302f2d26a gfx2.dat is now replaced by an editable "skin" file: 'gfx2gui.gif', and a reference INI file: 'gfx2def.ini'.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@557 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-27 00:10:02 +00:00
Franck Charlet
7c4d2675ad - Modified mountlist.c to operate on MacOSX.
- Also fixed a bug in init.c: !strcmp(Liste_points_montage->me_mountdir,"/") && !strcmp(Liste_points_montage->me_mountdir,"/home") should have been
strcmp(Liste_points_montage->me_mountdir,"/") && strcmp(Liste_points_montage->me_mountdir,"/home")
since root & home are already added before (strcmp returns 0 if strings match).

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@473 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-11 03:26:03 +00:00
Pete Gordon
d287384d93 - Fixed the Amiga volumes stuff in init.c, although i think it should be
removed again since it is impossible to differentiate between volumes
  using only a single character.

- Made the OS4 "show drives" code work on all amiga platforms (hopefully)



git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@468 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-08 13:57:25 +00:00
Adrien Destugues
154f5e824a Fixes all the tabulation problems.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@465 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-05 22:55:30 +00:00
Adrien Destugues
132eabcde5 Some work on a port for the gp2x. Runs up to the splashscreen, but as there is no mouse i have to make the program usable with a joystick.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@462 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-05 21:12:46 +00:00
Yves Rizoud
c130a327d1 Complements of r458 for windows build
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@461 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-05 19:35:27 +00:00
Adrien Destugues
9cb5818bec List volumes on amiga platforms. warning, untested code !
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@460 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-05 16:14:39 +00:00
Adrien Destugues
2c8fe249e6 Adds a listing of all the mountpoints under linux. I used a piece of code from gnulib, but i'm not sure it's a very good idea. It works for me and should be easy to adapt for many other platforms. This may need some tweaking to work also under beos and skyos (and possibly other unix-like), but if not done, the function will be compiled empty and will not harm anyone.
Also, cleans some warnings that occurs with -pedantic -c99 options to gcc, and some little things pointed by splint.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@458 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-05 15:26:59 +00:00
Adrien Destugues
5971f4c9e3 MorphOS port, and some tweaks to the config tool to make it look a little bit less ugly. We should probably use a better color palette for it anyways.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@456 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-04 20:41:22 +00:00
Adrien Destugues
95c69faec1 Hopefully fixed all the problems related to the coord display in the status bar.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@441 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-29 18:22:06 +00:00
Adrien Destugues
a27ef05989 Fixes missing display of X: Y: in toolbar when closing a window
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@431 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-27 21:27:19 +00:00
Adrien Destugues
e2fe9dcd79 Added some pathes for AROS operating system. We need someone to test it out now :)
Also, there is a realpath implementation there wich may be useful for BeOS too


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@421 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-27 11:43:03 +00:00
Adrien Destugues
c55c27bd85 Fixed the two little issues in button handling.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@417 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-24 15:42:10 +00:00
Adrien Destugues
c004c90d90 Splitted graph.c in multiple files. Compiles but there is a lot of warnings about declarations. I'm cleaning it up but i wanted to commit that before starting to get conflicts
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@395 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-16 22:02:22 +00:00
Yves Rizoud
d2300cc2c1 Support for "tall pixel" mode (Each pixel is 1x2). Run the program with "/tall" argument to test.
The following tools don't take the ratio into account;
Circle,
Grad rectangle,
Brush rotation,
Resizable brushes (diamond, squares, circles...)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@376 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-13 16:20:37 +00:00
Yves Rizoud
14accb544b Palette now uses RGB components in the full 0-255 range instead of 0-63.
All palette functions can be used in HSL color space too (multi-select, etc).
Fixed some more missing refreshes in Palette screen.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@368 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-03 01:03:32 +00:00
Yves Rizoud
ff27c5dcf9 BIG change in directory handling:
- Unix users can "make install" and "make uninstall" (as root).
- Installation creates shortcuts "grafx2" and "gfx2cfg" in /usr/local/bin
- Installation puts data files (icon GIFs, gfx2.dat,..) and the actual binaries in /usr/local/share/grafx2
- At runtime, the programs search and create configuration files (gfx2.cfg and gfx2.ini) in ~/.grafx2
(But if there are some present in program's own directory, they override)
- Uninstall removes programs and data, but leaves all users' configurations.

Win32: User's config directory is %APPDATA%\GrafX2
Win98: %APPDATA% is not set by default, so the program falls back to executable's directory.

Tested on Debian Linux
Partially tested on Win XP (early version)
Tested on Win98


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@365 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-28 23:50:28 +00:00
Yves Rizoud
c4f6cf7762 Changed a lot of platform-specific code to "simplify" it:
A Unix-like system is now considered the default.
The number of platform-specific blocks is down to:
   win32: 13, watcomc: 3, linux: 4, macosx: 16, amigaos4: 8, beos/haiku: 1
Removed linux.c, implemented the relevant functions for all platforms.
(win32) In Stats screen, included free memory report
(macosx) Conversion_ANSI: Fixed the __macosx__ with wrong case from my former 'fix', sorry.
(macosx) readline.c : Removed a manual "Update_necessaire=1", because normally
all calls to UpdateRect() will set this flag already. Don't hesitate to call 
Flush_Update() anywhere where it's lacking, but you shouldn't put it inside a  #ifdef __macosx__
(win32) Packaging: 'make ziprelease' now includes libpng13.dll and zlib1.dll
(win32) Hacked something to resolve naming conflict of MOD_SHIFT constants with windows.h
(all) Resolution: Fixed the black space that appeared between button and label,
the memory overwrite also caused resolutions above number 2 to disappear from list.
 
Tested fine on Linux (without TTF) and Windows


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@345 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-15 16:25:37 +00:00
Adrien Destugues
b511ceafdb Slightly modified the operation hadling of the gradiation rectangle to avoid erasing the rectangle footprint while drawing the vector.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@344 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-15 15:53:42 +00:00
Adrien Destugues
d5143b5f82 Implemented font listing under linux in a quite hacky way. The directory list returned by XGetFontPath is not really usable, there are some path with appended :unscaled for non-ttf fonts, so i needed to add some null-pointer check to for_each_file after the opendir to avoid a crash. I think most of my ttf fonts gets listed, but at a quick glance i find some duplicates and the list is not alphabetically sorted. That would be a great improvement (sort and remove duplicates).
Also renamed Mask to Mask_table because XLib.h already defines some var called Mask.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@337 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-13 20:20:47 +00:00
Adrien Destugues
3422eeff46 Patch from begasus to allow building under haiku and beos. The program is crashing when you launch it (segmentation violation).
I'm not sure the way to get the program directory we use is ok for beos, but the official way of doing that is using C++ code.
Maybe it's time to switch to some more unix way to store the config files...

This should also fix watcom build (very untested as i'm using mingw to cross compile windows builds now)
Also added begasus to the credits screen.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@325 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-05 18:59:55 +00:00
Yves Rizoud
b49fde7015 OS4, OSX: Centralized the part which determined which directory contains the program's files.
Owners of these platforms, please check if I did it ok. It should crash spectacularly on program init or shutdown if I messed up.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@312 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-27 18:27:05 +00:00
Yves Rizoud
cf54d4a460 Load/Save: "Select Drive" button. Allows a way for the AmigaOS4 version to display the list of drives / volume names.
Peter, you can plug in Lire_liste_des_lecteurs(void) to enumerate the drives.

Additionally, if you want to display drive icons as well, you have a spot in
Rechercher_drives(void) :
For each drive, call Ajouter_lecteur(car, icon, string);
* car is the displayed character
* string is the drive name "df0:", "mypictures:" etc. (string will be copied)
* icon is one of :
    LECTEUR_FLOPPY_3_5
    LECTEUR_FLOPPY_5_25
    LECTEUR_HDD
    LECTEUR_CDROM
    LECTEUR_NETWORK


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@309 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-25 18:20:31 +00:00
Yves Rizoud
45f1dfeb7b TEXT Tool, first work-in-progress commit.
Truetype only, compile with "make NOTTF=1" if you don't want to bother with it.
Only TTF is done, aliased (ok) and non-aliased (backgound color is
currently stuck to color index 0)
The Clear button doesn't update the window.
Only one font (certified to be public domain).
Preview not done.
Font selector not done.
SFont support not done.
Limit 30 characters.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@305 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-23 22:13:53 +00:00
Adrien Destugues
dc9e10c054 Started work on the gradiation rectangle.
The handling in the operation engine should work pretty well. I would like to do some changes, however (displaying the bottomright of the rectangle, and use XOR for the vector, for example)
Now, i have to do the real thing, the gradiation calculation and drawing. But let's see that tomorrow...


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@299 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-21 19:57:25 +00:00
Yves Rizoud
b488ec9272 Fixed stricter compilation warnings, deleted unused asm code
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@288 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-18 19:23:35 +00:00
Yves Rizoud
9a759615ae Cleaned up some DOS leftovers.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@282 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-17 21:30:38 +00:00
Franck Charlet
6a778031fe Handling for these formats were broken due to endianness problems on PPC: pkm img bmp gif
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@268 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-16 00:29:04 +00:00
Adrien Destugues
584c4696c1 Mac os X port. Compiles and runs slowly
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@256 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-14 20:42:05 +00:00
Adrien Destugues
ff9fc1633b AmigaOS 4 port from xeron.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@253 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-14 19:45:39 +00:00
Adrien Destugues
0bbed15383 Removed the useless "squares table" wich only worked for resolutions <= 1024 px.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@245 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-13 19:38:58 +00:00
Yves Rizoud
f293fd4694 Default config is set when gfx2.cfg is missing or corrupt
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@231 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-12 01:23:13 +00:00
Yves Rizoud
5fd1e42ea0 Copyright notices in source files
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@217 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-08 19:40:47 +00:00
Yves Rizoud
e3bce08464 graphic modes are sorted
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@201 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-05 14:39:25 +00:00
Yves Rizoud
75c772a724 (linux) Fixed signedness issue that caused previous change to behave strangely.
Unsupported modes are no longer listed.
(linux) Fixed a "harmless" signedness warning in LBM loader
Will sort modes tomorrow, with a qsort.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@200 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-05 02:47:28 +00:00
Yves Rizoud
40fe3ccf09 SDL Graphics mode detection and checking if valid, CFG saves only configuration for valid modes where the user set <3 | Imperfect | Unsupported.
Modes are not sorted yet (cosmetic)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@199 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-05 02:10:53 +00:00
Yves Rizoud
0705aae104 Fixed an incompatibilty with gfx2.cfg from DOS version.
Fixed the invalid shades in the current version of gfx2.cfg : Somehow it was filled with multiple occurences of color 0(black), with a step of 0.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@198 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-04 23:47:53 +00:00
Yves Rizoud
dd984538bf Removed some old DOS code, unified (for gcc) the handling of file paths.
Probably fixed some linux issues there.
Fixed the filename search by typing in Save/load.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@196 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-04 21:56:02 +00:00
Yves Rizoud
7ba9a726dc Implemented window sizing (and re-sizing) by draggin window edges.
Unfinished, more work needed in:
* command-line arguments (grafx2 myimage.pcx -width 640 -height 480)
* querying SDL for best modes
* detecting bad modes and recovering (though shift+return restores to window)
* saving settings in gfx2.ini.
Also, now the window's close button triggers Quit. Both events (quit, resize)
are only taken into account when all menus are closed.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@188 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-10-03 01:06:42 +00:00
Yves Rizoud
7bf71cd7b0 More work on endianness. Grid settings are now saved and reloaded.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@187 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-09-30 19:24:49 +00:00
Adrien Destugues
92c4340dbd Video modes can now be windowed or fullscreen. Quite hacky, however. We would need a way to :
-Easily change the number of video modes in the list (i'd like to use my 1440x900 screen at full resoluution !)
-Maybe add a resizeable window mode, but that would require more work, so i'd like to keep that for 2.0 .

In the meantime, i've made the list symetric, ie, mode are loaded from the cfg file and when the list is processed, each mode is copied to a fullscreen equivalent. Note this way of doing things will prevent the config file to save the selected video mode properly, so the program will switch to the default 800x600 windowed. When you load an image, Grafx2 will switch back to windowed mode when selecting the appropriate resolution for that image.

The NB_MODES_VIDEO constant is also only the HALF of the actually available video modes


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@183 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-09-30 15:12:40 +00:00
Yves Rizoud
acfe5836ce Grafx2 can now read and convert gfx2.cfg from the original DOS (96.5%) format.
Older .cfg files in svn were saved incorrectly: the wrong size of chunk #5
(0x0101 instead of 0xE1) made it impossible to re-read the file in gfxcfg.

gfxcfg can read and save gfx2.cfg. Upward compatibility is provided:
- If new chunk types are added to the format, it only needs a re-compile. Older
files can be read and saved.
- If new keyboard shortcuts are added (134 currently), the older files can be
read and the default shortcut will be used for missing keys.

Fixed many endianness cases, hopefully
Fixed LBM loading : bug in ASM->C conversion of Couleur_ILBM_line()
Broke PCX loading : argh!


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@176 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-09-29 23:15:08 +00:00
Yves Rizoud
11a4a488a6 Changed all the remaining OEM characters in the source code into Windows-1252.
Except in aide.c, because the strings are printed with an OEM font.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@175 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-09-27 22:11:17 +00:00
Yves Rizoud
48fca5ceb3 When gfx2.ini is missing, default values are now taken from gfx2.dat.
Removed a custom toupper() function.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@174 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-09-27 20:17:00 +00:00