2000-07-08 Iain Holmes * src/layers.c (ie_primitive_draw): Fixed the drawing bug for lines and circles. 2000-07-08 Iain Holmes * configure.in: Corrected the AC_DEFINE usage. 2000-07-07 Iain Holmes * src/gnome-iconedit-component.c (gie_create_view): Made the component more MVC. Editting doesn't crash now. 2000-06-29 Iain Holmes * src/gnome-iconedit-component.c: Bonobo component. Not very advanced. Crashes if you try to edit it, and doesn't merge toolbars. Supports PersistStream and Print. 2000-06-27 Iain Holmes * src/widgets/gtkpalette.c (gtk_palette_recalc): Redraw widget after recalculating the palette. Use art_rgb functions throughout the code. 2000-06-22 Iain Holmes * Everything: Cleaned up code. Removed all warnings. * edit.c (edit_paste_at): Replace slow code with libart routines. (edit_paste_into_cb): Same. (edit_paste_cb): Same. * layers.c (ie_primitive_draw_line): Use sucky incremental algorithm instead of nice midpoint algo. Difference is incremental is easier and actually works. :) * src/widgets/Makefile.am: Remove the files that are obsolete and not used any more. 2000-06-21 Iain Holmes * src/widgets/ie-canvas-layer.c (ie_canvas_layer_render): Speed updates 1 - Use libart functions 2 - Reduce number of times to go round inner loop. If there are 10 pixels to be drawn the same colour, draw all 10 in one go instead of 1 at a time. 3 - Move some simple calculations out of the inner loop, so they aren't recalculated every iteration. 2000-06-20 Iain Holmes * src/grid.c (item_event): Destroy the selection when drawing something new. * src/corba.c (register_oaf): Seperate the server registering process into an OAF and a GOAD version. * configure.in: Check to see if Bonobo is compiled for OAF support. If so use OAF in GNOME-Iconedit instead of GOAD, even if Bonobo is not supported yet. * Check if the art_rgba functions are in libart and if not use the local copy of them instead. * src/iconedit.c (main): Initialise GNOME and OAF if OAF is being used. * src/layers.c (ie_layer_event): Use libart functions to draw rectangles. Straight lines are broken, and circles are unimplemented. 2000-06-14 Iain Holmes * src/layers.c: New file. Layer support for primitive drawing added. When a primitive is selected, the old layer is destroyed, and a new layer is created. All drawing occurs on this layer, and when drawing stops, the layer is blended with the model. 2000-06-12 Iain Holmes * src/app.c (ie_update_statusbar): Works again. 2000-06-05 Iain Holmes * src/widgets/ie-canvas-layer.c (ie_canvas_layer_class_init): Add new argument IECanvasLayer::greyscale. 2000-06-03 Iain Holmes * src/menus.c (do_print): Added printing support. 2000-06-03 Iain Holmes * Major rewrite #1: Now everything works on MVC. 2000-04-19 Iain Holmes * src/app.c (mini_expose): The mini-preview now draws correctly if the image is smaller than 20*20. Removed warnings, and removed some header files. * configure.in: Check for gdk-pixbuf >= 0.7.0 2000-04-18 Jacob Berkman * src/grid.c (grid_new): (grid_set_from_pixbuf): * src/edit.c (edit_cutcopy): * src/app.c (mini_expose): fixes for gdk-pixbuf 0.7.0 2000-03-09 Fatih Demir * gnome-iconedit.desktop : Added the Turkish translation to the gnome-iconedit.desktop file . 2000-02-29 Iain Holmes * src/layers.[ch]: New file to handle multiple layers. * src/menus.c (function_names): Added the new primitive functions to the side toolbar. * src/grid.[ch]: Added a GList to store the multiple layers in. * src/app.c (tip): Added all the status tips for the new functions. 2000-02-25 Iain Holmes * src/menus.c (ie_create_zoom_bar): Set the slider from 0-100 * src/grid.c: Use the gnome_canvas_set_ppu stuff. 2000-02-24 Iain Holmes * src/widgets/ie-canvas-layer.c (ie_canvas_layer_update_cell): Function to redraw only parts of the item, instead of the whole one. * src/grid.c (grid_fill_recursive): Revert to the old method. Seems the new way wouldn't stop, and it ran out of stack space...*shrug* (grid_fill): Free the allocated boolean array...Plug memory leak. * src/edit.c (ie_selection_draw): Selection uses a pretty alpha rect, and redraw the whole canvas (seems to be a bug in the canvas). * src/grid.c (item_event): Make the selection use a pretty alpha rect. * src/menus.c (ie_create_function_bar): Make the side toolbar into a generated one with toggle buttons instead of normal ones. 2000-02-24 Iain Holmes * pixmaps/Makefile.am: Included the two new button pixmaps * pixmaps/gridlines.png pixmaps/cheques.png: New files. 2000-02-23 Iain Holmes * src/(app|grid).c: Finished integration. Everything works like it should now. * src/menus.c: Added a toolbar to toggle the grid and chequerboard and to set the alpha for it as well. Also added a zoom slider to replace the nasty optionmenu. * src/edit.c: Fixed code for the select all to display the pretty alpha coloured selection area. * src/widgets/ie-canvas-layer.c: Added a function to only redraw a cell instead of the whole grid. 2000-02-23 Iain Holmes * src/(app|grid).c: Intergrated the anti-aliased canvas stuff. Not everything is complete, and things will definately crash (like cutting, pasting, clearing, zooming). 2000-02-22 Iain Holmes * src/widgets/ie-canvas-layer.c: Works fine. * src/grid.c: Speed up the filling code and make it use less memory. 2000-02-22 Iain Holmes * src/widgets/ie-canvas-layer.[ch]: Start the rendering code, and add arguments that are needed for it to work well. 2000-02-18 Iain Holmes * src/widgets/ie-canvas-grid.c: Optimisations complete and working. 2000-02-17 Iain Holmes * src/iconedit.c: Added a warning message stating that the gnome-iconedit.gnorba was probably not installed in the correct place. * src/widgets/ie-canvas-grid.c: Started optimising the redraw..slight broken ATM. * src/widgets/ie-canvas-layer.[ch]: Started the drawing layer items. 2000-02-16 Iain Holmes * src/widgets/ie-canvas-(grid|chequer-board).[ch]: Work with canvas zooming functions. Optimised loops as well. 2000-02-15 Jacob Berkman * gnome-iconedit.spec.in: updates for CORBA usage * configure.in: generate gnome-iconedit.spec * Makefile.am: include gnome-iconedit.spec* with tarballs 2000-02-16 Iain Holmes * src/widgets/ie-canvas-chequer-board.c: It works :) Wooohoo * src/widgets/grid-test.c: A test program for the grid and chequerboard. Yey! Everything is good. 2000-02-15 Iain Holmes * src/widgets/ie-canvas-chequer-board.[ch]: Canvas chequerboard item Surprisingly it doesn't work right yet, but it was only an hours hack. * src/widgets/ie-canvas-grid.c: Fixed more. Duh....silly Iain ignored compile errors. 2000-02-14 Iain Holmes * src/widgets/ie-canvas-grid.c: Fixed the ie-canvas-grid to work. Added positioning and rgba fill colour. 2000-02-13 Iain Holmes * configure.in (ALL_LINGUAS): Added tr.po * src/widgets/ie-canvas-grid.c: Creates SVPs and should render them to the buf. 2000-02-11 Iain Holmes * src/io.c (ie_save_xpm_pixbuf): Free all the information stored in the hashtable before the hashtable is destroyed. 2000-02-10 Iain Holmes * src/corba.c (corba_activate_server): Return a value to say if the severs are running. * src/iconedit.c (main): Started the check for if the server is running * src/app.c (ie_app_close): Unref the pixbuf when we are destroying the grid. * src/menus.c (set_filename): Attach filename with _full so we can free it on destruction. 2000-02-09 Iain Holmes * src/menus.c: Changed the brush mode icon to a wallpaper roller type icon. 2000-02-08 Iain Holmes * src/iconedit.c (iconedit_new_app): Correctly attach the filename to the app. * src/corba.c (iconedit_servant_from_iconedit): initiated the Iconedit_class. (create_iconedit_at_size_via_factory): New method to create an iconedit widget at a specified size; * src/iconedit.c (main): Only opens files with the factory. Quits once the file has been loaded, so long as the process isn't the factory. * gnome-iconedit.gnorba: New file. gnorba spec file thing. * idl/Iconedit.idl: CORBA interface definition language file. * src/corba.c: New file. Adds CORBA factory support to start application by remote :). * src/iconedit.c (main): Setup CORBA factory stuff. Basic version needs some fixes. * src/app.c (ie_app_new): Don't show the floating preview until the rest of the app is shown. (ie_app_close): Destroy the floating preview if one exists. 2000-02-06 Iain Holmes * src/io.c (ie_save_png_pixbuf): Moved the progressbar onto it's own window. (ie_save_xpm_pixbuf): Same. (set_XpmImage): Corrected the save routine. * src/app.c (mini_expose): Removed the loops (finally). speed *= lots; :) (ie_app_new): Put preview into a toplevel window if it gets too large for the dock. Enables resizing, and scrolling. * src/menus.c (zoom_changed): Show the zoom level in the statusbar. (zoom_custom): Same. * src/widgets/iestatus.c (put_hint_in_iestatus): Copied code from gnome-libs to put the menu hints into an IEStatus widget. 2000-02-05 Iain Holmes * src/app.c: Use the new IEStatus widget to display information. * src/widgets/iestatus.[ch]: New file. Statusbar widget with multiple status areas. 1st version - really should use gnome_appbar as it's base widget. * src/menus.c (zoom_custom): Fixed custom zooming. * src/widgets/gnome-canvas-grid.c (gnome_canvas_grid_draw): Fixed the chequer-board draw problems when cell_size % 5 != 0; 2000-02-03 Iain Holmes * src/io.c (ie_save_xpm_pixbuf): Reverted the change, as I worked out what was wrong (it was in other code). * src/menus.c: Made the zoom dialog work. 2000-02-02 Dmitry Sivachenko * Added Russian translation. 2000-01-31 Iain Holmes * src/io.c (ie_save_xpm_pixbuf): Made the xpm code use 1 char long ids. ****This is possibly wrong***** 2000-01-29 Iain Holmes * src/menus.c (zoom_custom): Custom zoom dialog. * src/io.c (ie_save_pixbuf): Fixed crashes when saving. * src/grid.c (grid_set): Use the new update_region function to increase speed. Yey :) * src/widgets/gnome-canvas-grid.c: Added a new update_region function that only updates a small region of the item, instead of having it all redrawn. 2000-01-29 Matthias Warkus * configure.in: Added "de" to ALL_LINGUAS. * po/de.po: Added. 2000-01-28 Iain Holmes * src/app.c (mini_expose): Removed the extra loops. 2000-01-27 Iain Holmes * src/grid.c (item_event): Grid changed to use the size argument. * src/widgets/gnome-canvas-grid.[ch]: Added a square_size argument, to set the width of a cell in pixels. * src/menus.c: Added a zoom toolbar. 2000-01-26 Iain Holmes * gnome-iconedit.desktop: Added entry from Kim Seungbaeck and Taegu LUG Korean Translation Team. * src/io.c: Added a patch from Walter Brisken to fix a segfault when saving as PNG. 2000-01-25 Iain Holmes * gnome-iconedit.spec: Added a spec file from Chris Chabot 2000-01-24 Iain Holmes * src/edit.c (edit_paste_at): Added the offset to the width and height when checking which width/height to use. Stops a segfault. 2000-01-23 Iain Holmes * src/menus.c (ie_paint_mode): Turned off dodge and burn paint modes, cos they don't work like proper dodge and burn. * src/app.c (mini_expose): Mini preview displays on a black background. Maybe multicoloured backgrounds? (White, black, grey....?) 2000-01-22 Iain Holmes * src/mode.c (mode_convert_pixel): Added Burn and Dodge paint modes, but I don't think they work correctly. * src/widgets/gtkundobuffer.[ch]: Got the Undo buffer into a workable state. * po/*: Wrote en_GB translation. Actually worked for once. * Set up I18n. * src/edit.c (edit_paste_at): Brush mode works. * src/io.c (ie_save_pixbuf): Add a .png onto the filename if it doesn't have one (and is being saved as a PNG). (ie_save_xpm_pixbuf): XPM saving moves the progressbar. * src/grid.c (mode_convert_pixel): Removed the water colour function, replaced it with a "Paint Mode" toolbar. Current modes Normal, Additive, Subtractive and Alpha. 2000-01-21 Iain Holmes * src/edit.c (edit_paste_into_cb): Paste with "Keep transparency" does alpha compositing. (edit_paste_cb): Same. * src/grid.c (item_event): Added a water colour type function, that works on additive and subtractive colours. * src/io.c (ie_save_xpm_pixbuf): Ripped the xpm saving code out of GIMP, changed it to work on GdkPixbufs. Against all odds - It works! * src/io.c: Split saving code into Xpm and PNG. Works on the filename extension - .xpm is xpm's (obviously) and anything else is a PNG. * src/palette.c (ie_get_palette): Added palette loading from another file. * src/app.c (ie_app_new): If the preview is less than 64*64 create a mini 20*20 preview as well (to show what the icon will look like in the GNOME panel menus). If the preview is greater than 64*64, create a floating preview. (Maybe make it a new toplevel window?) 2000-01-20 Iain Holmes * src/app.c: Made the palette and preview into GnomeDockItems, so they can be totally removed from the app. * src/menus.c: Changed the layout for the function-toolbar. 2000-01-19 Iain Holmes * src/palette.c (palette_from_file): Palette from file shows a requester. * src/app.c (item_removed_cb): Corrected the callback prototype. * src/widgets/gtkbuffer.c (gtk_buffer_item_removed): Make removing an item emit the removed signal, instead of the added signal. * src/edit.c (edit_paste_cb): Keep transparency button works. If alpha == 0, nothing is written in that cell. (edit_paste_into_cb): Same. 2000-01-16 Iain Holmes * src/app.c (tip): Changed the way the tool's status hints are stored, and set. * src/menus.c: Added a brush mode button to the side toolbar, to paste a "brush". * src/pastebuffer.c (paste_buffer_show): Added a "keep transparency" check button for pasting. * src/grid.c (item_event): Selection should display if it goes behind the origin. 2000-01-13 * TODO: Added a list of things that still need to be done before a V1.0 release is made. Long list :) * src/widgets/gnome-canvas-grid.c: Added set and get methods for the new colour arguments. * src/menus.c (new_app_cb): Changed the default size of an icon to 48x48 (to comply with the icon guidelines) and changed the max size of an icon to 1000 (although I will personally install The GIMP for anyone who uses GNOME-Iconedit to edit a 1000*1000 icon). 2000-01-09 * src/grid.c (grid_new): Clear the inital pixbuf. * src/widgets/gnome-canvas-grid.[ch]: Added a checkerboard arg to turn the checkerboard on and off. * src/pastebuffer.c (paste_buffer_show): Stopped using gnome_stock_pixmap_widget as it's not in CVS GNOME anymore. This was the only change needed for GIE to work on both GNOME libs. * src/io.c (ie_save_pixbuf): Added error dialog to inform users of an error while writing the file. 2000-01-08 * src/app.c (ie_app_new): Removed the Palette buttons from the main window, and put them in the palette editor window. * src/palette.c (palette_edit): Put the load & save buttons here, and made the window work like the paste buffer. * src/grid.c (grid_set_from_pixbuf): Correctly make a alphaless buffer into an alpha one. (grid_new): Set the height of the grid to the height of the image, not the width (Doh!). * src/widgets/gnome-canvas-grid.c (gnome_canvas_grid_draw): Make sure the height and width of the redraw area does not go out of the grid. 2000-01-07 * src/grid.c (item_event): Changed the selection colour and cell indicator to white so they can be seen. (item_event): Selection snaps to the grid. * src/edit.c (edit_paste_into_cb): Paste Into only pastes the MIN (selection size, pastebuffer size). * src/app.c (ie_update_statusbar): Statusbar displays co-ordinates and RGBA values when you move over a cell. * src/widgets/gnome-canvas-grid.c (gnome_canvas_grid_draw): Fixed the hideous resizing draw bug, where crap would be drawn at the side after an expand. It's dance time :) (gnome_canvas_grid_draw): Added chequerboard background thing for translucent effects. 2000-01-06 * src/app.c: Alpha now reports in percentage rather than [0-255]. * src/grid.c (item_event): Can remove pixels by clicking and dragging. * src/*.[ch]: Went round tidying it up and removing almost all warnings. * src/app.c (ie_app_new): Put a frame around the alpha slider, to explain what it is. * src/menu.c: Open and Save As requesters the entry box grabs the focus. 2000-01-05 * configure.in: Increased version number to 0.5.5 * src/grid.c (item_event): Connected events to the new grid item. The draw while moving the pointer works now. (item_event): Got selections working without a silly hack. * src/app.c: Added an alpha indicator. Changed all places where draws occur to use this alpha value. * src/widgets/gnome-canvas-grid.c (gnome_canvas_grid_draw): Increased the number of cells to be drawn in a redraw from 2 to 3. Fixed misdraw bug and segfault on scrolling up and down fast. * src/grid.c (grid_new): Started to integrate the new grid item into the main application. 2000-01-04 * src/widgets/gnome-canvas-grid.c (gnome_canvas_grid_draw): Made grid work. :D *Iain does his happy dance* (gnome_canvas_grid_draw): Made grid work better , using virtually no memory at all. Even when the grid is 1,000,000 X 1,000,000 cells wide. 2000-01-03 * src/widgets/gnome-canvas-grid.c: New custom canvas grid object, to replace the old grid. Working at a fixed width, fixed (massive) memory leak (the test program should NOT be using 50Meg), implemented 256 levels of alpha, as opposed to the one bit alpha we had previously. 1999-12-31 * src/widgets/gtkundobuffer.c: Made a undo/redo buffer from generic GtkBuffer. * src/widgets/gtkbuffer.c: Made a more generic buffer object. Implemented GtkPastebuffer as a subclass of GtkBuffer. * src/widgets/gtkpalette.c: Fixed a bug in the parent_class declaration. * src/app.c (ie_set_mini_icon): Set the icon in the task-list applet. * src/io.c: Re-organised the order of the include files, so that png.h doesn't produce any warnings/errors. * src/menus.c: Stopped using the stock "Clear" item as the tooltip description was wrong, and I wanted to have it as Ctrl-K like Emacs. * src/edit.c: "Copy" no longer destroys the selection, "paste" and "paste into" do. * src/app.c: Made clean/dirty functions. Made all references to the grid->dirty bit use them. 1999-12-30 * src/app.c (ie_app_close): Ask if a file should be saved, if it is dirty. * src/edit.c (edit_paste_cb): Paste can now paste into a smaller section. (edit_paste_into_cb): Paste buffer can now be pasted into a selection. * src/app.c (ie_app_close): Added a dirty flag to grid, and changed all functions that would clean or dirty the grid to use this flag. * src/menus.c (revert_cb): Added revert menu item. 1999-12-29 * src/app.c (item_removed_cb): Added control of the toolbar cut/copy paste buttons. * src/menus.c (set_filename): Fixed save as crash that was also crashing whenever a loaded icon window was closed. (open_okay_cb): Made the load file a non-modal dialog. (toplevel): Re-organised menu layout to match GNOME standard. (ie_install_menus_and_toolbar): Moved the Tools onto a new mini toolbar. * src/iconedit.c (main): If files are passed on the command line, load them. 1999-12-28 * configure.in: Added checks for libz, libpng and gdk-pixbuf. * src/app.c (item_removed_cb): Fixed nasty stupid bug. * src/widgets/gtkpastebuffer.[ch]: Added a selection field. * src/pastebuffer.c (paste_buffer_show): Removed the Up and Down arrows. Made the delete button work nicely. * src/edit.c (edit_cutcopy): Removed complicated rowstride calculation as it was a left over from the old RGB days, and RGBA data is always aligned to 4 bytes (I think - It seems to work ok). * src/grid.c (item_event): Selection implemented. Slightly hacky way to get the end of the selection, but it works, so it's fine for the time being. * Added a desktop entry and an icon....the very first icon created with GNOME-IconEdit! Wooooo. * src/edit.c (edit_cutcopy): Moved the functionality from edit_cut_cb into edit_cutcopy, as the copy function was just going to repeat the same code, execpt for the part where the buffer is cleared, so it made sense to make 2 wrapper functions for the code. 1999-12-27 * src/io.c (ie_save_pixbuf): Save icons as png files. * src/pastebuffer.c (make_preview_from_pixbuf): Convert a pixbuf into a GdkPixmap and GdkBitmap for use in the Pastebuffer window. 1999-12-26 * src/grid.c: Split grid functions off from app.c. * src/grid.c: Changed internal representation of icon from RGB + A into a GdkPixbuf (RGBA). * src/edit.c: Changed functions to handle the above change. * src/app.c: Changed functions to handle the above change. 1999-12-25 * src/pastebuffer.c (paste_buffer_show): Built a visual view of the paste buffer object, for editting and re-ordering the contents. * src/edit.c (edit_(cut|paste)_cb): Use paste buffer. * src/iconedit.c (main): Init global paste buffer. * src/widgets/gtkpastebuffer.c: Wrote a PasteBuffer GtkObject to handle a multi-level multi-window paste. 1999-12-24 * src/edit.c (edit_paste_cb): Half implemented paste (to match the half implemented cut :). 1999-12-23 * src/edit.c (edit_clear_cb): Implemented clear menu item. (edit_cut_cb): Half implemented cut. * src/app.c (grid_to_pixbuf): Changed file saving to use Gdk-Pixbuf (not finished).. * src/menus.c: Added Open, Save and Save As buttons to the toolbar. 1999-12-22 * src/menus.c (new_app_cb): Can now set a new size of icon. * Makefile.am: Added a topic.dat file. Blank at the moment, but it surpresses the error on startup. 1999-12-21 * src/palette.c (palette_edit): Basic palette editting dialog. * src/app.c (grid_set_from_pixbuf): Changed file loading routines so that they use Gdk-Pixbuf instead of Gdk-Imlib. (ie_app_set_from_pixbuf): Same. * src/menus.c (open_cb): Same. * src/widgets/gtkpalette.c (gtk_palette_set_colour): Added a function to set a specific colour. * (gtk_palette_recalc): Moved the palette calculation code into this function so it can be used over and over again. Need optimised code to redraw the colour of one item, so that te whole palette doesn't need redrawn when only one is changed. * src/palette.c (palette_load_file): GIMP Palette loading finished. (palette_save_file): GIMP Palette saving finished. * src/app.c: Added the GtkPalette widget and functions to load/save/edit the palette. * src/widgets/gtkpalette.[ch]: Wrote a palette widget that can present the user with multiple colour choices.