85 Commits

Author SHA1 Message Date
Adrien Destugues
0ce264aa3b Fixes a memory leak in dropdown menus. PNG saving is fine, loading gives an error but it seems to be some internal stuff
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@649 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-20 22:57:40 +00:00
Yves Rizoud
714521b5bf Started implementing dropdown lists. Rough but functional, currently used in Save/Load for choosing file format.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@644 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-20 01:56:43 +00:00
Yves Rizoud
761d62f761 Removed some unneeded dependencies to speed up compile.
Code "cleanup": Functions that create a button now return its address.
This helps reduce the number of files that use the globals "Fenetre_Liste_boutons_*"


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@642 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-19 02:10:40 +00:00
Yves Rizoud
f6b184cd9b Fix color remapping problems in wide/double pixels (window background and FG color)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@638 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-17 00:44:47 +00:00
Yves Rizoud
d704c4f425 Implemented last-chance recovery that saves the current and spare page. (issue 97)
Tested OK on Windows when crashing Contour (issue 119)
Doesn't handle frozen states (when killed in task manager), I'll have to look further.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@628 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-13 01:12:52 +00:00
Yves Rizoud
a28deef902 Fixed zoom window bar not draggable (issue 114)
Checked for all other uses of "while (!Get_input())", seems ok.
Palette screen: Copy,Swap,X-Swap now take place when you click button, not release.
In all screens where you could press ` and pick a color (palette, shade...): The action now takes place when you click, not release.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@626 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-11 00:00:17 +00:00
Yves Rizoud
82dc541a3c Menu: Palette size is now free, 1-256 on X and 1-16 on Y (non-powers-of-two are accepted)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@622 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-09 21:44:15 +00:00
Yves Rizoud
bba08c936f Configurable palette size (issue 47)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@618 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-08 23:59:30 +00:00
Yves Rizoud
1f7f1b87ea Fix buttons refresh, wrong in wide and tall pixel modes.
Fix window dragging not showing XOR rectangle (recent)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@616 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-08 18:40:20 +00:00
Yves Rizoud
8aadfe3732 When you use a keyboard shortcut to activate a window button (ex: ESC), it shows it's activated.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@611 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-08 00:11:35 +00:00
Yves Rizoud
ec256da711 Mouse fixes
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@606 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-06 01:22:50 +00:00
Yves Rizoud
708e2adbf8 More stuff for double shortcuts
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@603 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-05 23:14:09 +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
266145cd0a Menus: Implemented 'repeatable buttons' that work like slider arrows.
Used for [+] [-] in Palette and Text, and for the arrow buttons that scroll Sieve pattern.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@598 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-04 20:34:53 +00:00
Yves Rizoud
0cf4597a03 Buttons: Now you can 'cancel' a click by dragging the mouse outside of the button before releasing click, pretty much like a Windows button.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@595 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-04 19:43:15 +00:00
Yves Rizoud
da942a7021 Support for ESC shortcut on GP2X (button X)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@591 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-04 01:27:04 +00:00
Yves Rizoud
5a80cdae44 Fixed the double icons having their diagonal not shaded on selection.
Fixed the Ellipse / Grad ellipse icon graphics (were quite off-centered)
Some tidy-up of input.c


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@584 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-02 23:09:06 +00:00
Yves Rizoud
1150dcea21 Implemented basic joystick control : dir+AB on most platforms, pad+AB on GP2X
Implemented accelerating cursor with joystick / kb cursor
Fixed up the contextual help, somehow

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@583 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-02 18:22:23 +00:00
Yves Rizoud
778d2fccde Added icons for alternative functions (issue 91)
Fixed some input problem I introduced in recent revision


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@580 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-02-01 22:44:05 +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
Yves Rizoud
0b2bbacf37 Small keyboard fix, and re-computed the dependencies.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@578 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-31 15:42:22 +00:00
Adrien Destugues
6dd54a1686 Some fixes to get_input : allows to move windows.
Touche is now resetted to 0 only when a shortcut is processed. So you can let it at the key value for cursor moves, for example. But it does not work, i must have missed something :/


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@577 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-31 11:33:18 +00:00
Adrien Destugues
c018c13352 First "working" version of new get_input... buggy, but i'm working on it
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@556 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-26 11:07:36 +00:00
Adrien Destugues
0c245896c5 Use GIF as the default format, as PKM can't save the whole palette range.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@476 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-12 11:52:01 +00:00
Adrien Destugues
ab5f789fdf Mostly some cleanups.
Also added two experimetal functions, Ouvrir_popup and Fermer_popup, and started to implement a (commented) example popup menu for selecting freehand draw mode.
But it seems there are problem if doing a while(Mouse_K), Mouse_K seems to be reset when the mouse moves, or in some other place. Time to sleep so i'll continue that tomorrow.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@474 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-11 21:59:10 +00:00
Yves Rizoud
0b801a28c8 Fixes a severe memory leak, up to 200Kb every time you closed a window. oops!
Fixes a missing refresh when you initiate window dragging.



git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@469 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2009-01-10 15:41:56 +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
d6ef5ddd95 Added pete's mail to the helpscreen.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@444 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-31 09:18:34 +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
0c8bd5e0d4 Fixes the makefile.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@440 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-29 18:02:04 +00:00
Adrien Destugues
c4102e4eb7 Fixes screen updates problems
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@432 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-27 21:41:30 +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
79aca71830 Fixes issue #78 and some more makefile tuning (ziprelease names the archives according to the platform)
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@427 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-27 15:10:35 +00:00
Franck Charlet
d37b4f44e9 X/Y labels weren't displayed in status when leaving magnify mode.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@415 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-23 21:48:52 +00:00
Franck Charlet
273c1b1bf1 Removed some useless code due to precedent fix.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@414 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-23 20:20:35 +00:00
Franck Charlet
b0e7f6189f Issue 67 should now be entirely fixed (including the coordinates being displayed while hovering the menu).
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@413 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-23 20:18:25 +00:00
Franck Charlet
ad465d6073 X & Y labels disappearing (issue 67) should be fixed.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@412 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-23 19:35:49 +00:00
Yves Rizoud
f65820313f Fixed a bug which attempted to refresh below the screen when menu is hidden
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@409 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-21 18:23:41 +00:00
Adrien Destugues
294ccbd2d3 Allow sliders to scroll more than once when the mouse button is pressed
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@398 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-17 20:00:15 +00:00
Adrien Destugues
90b3f9b1a1 Finished updating the includes for graph.c split. Now we have :
-Graph.c : everything related to drawing.
-Brush.c : everything related to brushes (displaying, erasing, capturing, and effects)
-Windows.c : windows and menu drawing functions

Some functions were also moved to divers.c.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@396 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-16 22:14:08 +00:00
Yves Rizoud
d4dcf44f7c Support for "wide pixel" mode (Each pixel is 2x1). Run the program with "/wide" argument to test.
Now you can draw graphics for Amstrad CPC's "mode 0" :)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@385 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-15 21:00:18 +00:00
Adrien Destugues
d81a4a26f0 Oops ! Much lower cpu use and keyboard is working again.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@384 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-15 19:36:47 +00:00
Adrien Destugues
c72dcd1840 Only displays the coordinates if the mouse moved. Next step is to check the Operations and see wich of them are displaying the coordinates, wich are not, and decide wether we always display them in the main loop (smaller code for operations) or in each atomic action in operation (more code in the atomic actions but allow for displaying anything, like the selected color for the pipette, radius for the circle tool, relative positions for lines and rectangles, and so on. Might be interesting. We may also display the basic corrdinates and let each operation display (or not display) some string in the remaining menubar space.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@383 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-15 16:33:30 +00:00
Adrien Destugues
a5150484e4 Removed useless call to UpdateRect.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@382 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-15 15:53:13 +00:00
Adrien Destugues
87d887e240 One more small speedup. The coordinates were always printed twice in the menubar. Also added a missing refresh when using the pipette and the color replace tools. Now you get a preview of the color under the cursor in the menubar.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@381 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-15 15:17:47 +00:00
Adrien Destugues
6c8bbfbc56 Now idles when there is nothing to do. Much less CPUtime use, but the spray is slowed down. We need to improve the handling of Get_input in Gestion_principale.
Get_input now returns 1 if something happened, and 0 if not. So we can chose what to do depending on that.
We should try not to wait if the operation needs to be asynchronous, but there is no way to know that for now, and it may be quite complex to determine (i think the shade effect can be asynchronous for example, so it'll affect pretty much all operations).

The other solution would be to drop events to react to the more recent ones. It would look smoother but the mouse will do strange things.


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@378 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-14 11:17:15 +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
09ba984aa6 On all screens that display a palette, the grey columns are no longer "dead", you can
click them to pick the color to its right.
Added help text for HSL mode in Palette, and Grad rectangle
Fixed display of colored rectangles in Palette screen (issue 64)
Fixed more missing refreshes in the Palette screen
Fixed wrong shortcuts in Palette screen
Removed an obsolete message ("Sensibilite Souris") and dead code


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@370 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-12-04 21:44:59 +00:00
Yves Rizoud
d71d7d701d Fixed more missing screen refreshes:
- Issue 54: Palette screen, BG color area after picking a BG color by right-click.
- All screens that allow the user to press Tilde to hides the window and pick a color on the image.
- Stencil screen, the selected colors when you're back after picking a color.
- Issue 55: Load/Save, areas with file stats (size, preview) just after changing selection.
- Issue 44: Status bar when emptying it (ex: hovering the status bar or the zoom separator)


git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@357 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2008-11-22 00:56:21 +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