2006-04-19 Øyvind Kolås Canvas cleanup (further refactoring pending). Merging in refactoring of code from GEGL usage of horizon. Tiles are now using normal gobject reference counting for reading. For writing the tiles are tile_lock/tile_unlock -ed. This locking/unlocking behavior also includes the needed handling of COW. With this behavior it is possible to use a canvas without any caching of tiles enabled and still get expected behavior. * src/brush.c: (tile_stamp), (tile_clone_stamp), (canvas_stamp), (canvas_clone_stamp): * src/canvas/canvas.c: (cache_init), (cache_destroy), (canvas_has_tile_in_memory), (canvas_prefetch), (dirty_init), (dirty_destroy), (empty_init), (empty_destroy), (fetcher_init), (fetcher_destroy), (make_id), (prepare_storage), (canvas_set_path), (canvas_get_path), (fetcher_get_tile), (undo_init), (undo_destroy), (canvas_finalize), (canvas_class_init), (canvas_init), (canvas_set_undo_stack), (canvas_get_undo_stack), (canvas_add_dirty), (canvas_flush_dirty), (canvas_is_dirty), (canvas_idle), (canvas_store_tile), (cacher_get_tile), (canvas_get_tile), (canvas_update_zoom): * src/canvas/canvas.h: * src/canvas/canvas_rect.c: (canvas_rect_import_buf), (canvas_rect_export_buf): * src/canvas/png_util.c: (canvas_import_png), (canvas_export_png), (canvas_import_jpg): * src/canvas/scale.c: (scale): * src/canvas/tile.c: (tile_init), (tile_lock), (tile_unlock), (tile_cpy), (build_paths): * src/canvas/tile.h: * src/canvas/tile_cache.c: (tile_cache_has_tile), (tile_cache_get_tile): * src/canvas/tile_cache.h: * src/canvas/undo.c: (undo_stack_undo), (undo_stack_redo), (undo_stack_add_tile): 2006-04-01 Øyvind Kolås * src/canvas/canvas.c: off by one error, added room for terminating \0 in hex digit lookup array. 2006-03-15 Øyvind Kolås Added file import/export progress reporting. * src/Makefile: removed arm specific flags. * src/horizon.[ch]: (get_global_horizon), (main): make it possible to query the global horizon object through methods. (nasty). (horizon_status): trigger a refresh action automatically. * src/canvas/png_util.c: (canvas_import_png), (canvas_export_png), (canvas_import_jpg): Added ui progress reporting. 2006-03-15 Øyvind Kolås * debian/changelog: increased version number. 2006-03-15 Øyvind Kolås * src/actions.c: (action_welcome): Updated welcome text to include information about import tool. 2006-03-15 Øyvind Kolås * src/config.h: Chaned ZOOM_MIN. * src/tools/tool_nav.c: (tool_nav_zoom_slider), (update_zoom_slider): Make better use of the zoom range. 2006-03-15 Øyvind Kolås * src/config.h: Increased size of canvas cache to 11mb. 2006-03-15 Øyvind Kolås * src/tools/tool_paint.[ch]: (set_pick_mode), (tool_paint_fill_tool_specific_settings_box), (change_mode): replaced pick/paint switching button with a single toggle button. 2006-03-15 Øyvind Kolås Made the size of the dirty tile array tracking dynamically reallocte itself to handle peak load (importing huge images). * src/canvas/canvas.[ch]: (canvas_finalize), (canvas_init), (canvas_add_dirty), (canvas_flush_dirty), (canvas_is_dirty), (canvas_update_zoom): 2006-03-15 Øyvind Kolås * src/canvas/canvas.h: replaced 2d dirty array with 1d array. * src/canvas/canvas.c: (canvas_add_dirty), (contains), (canvas_update_zoom): 2006-03-14 Øyvind Kolås * src/Makefile: link with -ljpeg. * src/canvas/png_util.[ch]: (canvas_import_jpg), (horizon_query_jpg): added jpeg importer that works similarly to the png one. * src/tools/tool_file.c: (tool_file_do_import), (tool_file_select_file_for_import), (fill_file_list), (tool_file_export_mode), (tool_file_import_mode), (create_import_box), (create_export_box), (tool_file_fill_tool_specific_settings_box): Improved GUI. Added jpeg handling. 2006-03-14 Øyvind Kolås * src/canvas/png_util.c: (canvas_import_png), (canvas_export_png), (horizon_query_png): Made the canvas import/export functions process a single scanline at the time to make sure memory use doesn't get out of hand. 2006-03-13 Øyvind Kolås Added import mode to file tool. * src/tools/tool_export.[ch]: removed * src/tools/tool_file.[ch]: and readded together with crude import functionality here. * src/tools/tool_library.c: (create_tools), (tools_destroy): * src/canvas/png_util.[ch]: (horizon_query_png): added method to query size/validity of a png file. * TODO: updated 2006-03-13 Øyvind Kolås * src/canvas/tile.c: (tile_cpy): logic order shuffling. 2006-03-13 Øyvind Kolås * src/canvas/tile.c: (tile_finalize), (tile_dup), (tile_unclone), (tile_cpy): Added utility methods for uncloning tiles,. made tile_cpy use clones. * src/canvas/undo.c: (undo_stack_add_tile): removed prepare write before tile_cpy (the functionality for that is internalized now.) 2006-03-13 Øyvind Kolås Added Copy on Write semantics to tiles. * src/canvas/canvas.c: (canvas_init), (canvas_get_tile_id): * src/canvas/canvas.h: Have a static "blank-tile" for the canvas that is cloned for the abyss. * src/canvas/tile.h: added tile_dup, and doubly linked circular list of clones. * src/canvas/tile.c: (tile_finalize), (tile_init), (tile_new_from_data), (tile_dup), (tile_prepare_write), (tile_cpy), (tile_swp): * src/brush.c: (tile_stamp), (tile_clone_stamp): Fixed order of operations to handle COW. * src/canvas/scale.c: (scale): Fixed order of operations to handle COW. 2006-03-10 Øyvind Kolås * src/canvas/canvas_rect.c: (finalize), (set_property), (canvas_rect_new), (canvas_rect_export_buf): remove reference couting of canvas refered to in rects, it only leads to problems. 2006-03-10 Øyvind Kolås * src/canvas/canvas_rect.c: (finalize), (set_property), (canvas_rect_new): do proper reference handling of canvas property. 2006-03-10 Øyvind Kolås * src/tools/tool.c: (tool_selected), (tool_deselected): removed debug printfs. 2006-03-10 Øyvind Kolås Made allocations avoid storing modified tiles to disk if it lived in the cache for the duration of its active time. * src/canvas/allocator.c: (finalize): * src/canvas/canvas.c: (canvas_has_tile_in_memory), (canvas_prefetch): * src/canvas/canvas.h: * src/canvas/tile.c: (tile_void): * src/canvas/tile.h: 2006-03-10 Øyvind Kolås s/allocation_get_foo (bar)/CANVAS_RECT (bar)->foo/ * src/canvas/allocator.c: (canvas_alloc): * src/canvas/allocator.h: * src/toolkit/brush_preview.c: (render), (brush_preview_new): * src/toolkit/label.c: (label_render): * src/toolkit/slider.c: (render), (slider_new): * src/tools/tool_paint.c: (palette_render), (palette_handler), (restore_palette): 2006-03-10 Øyvind Kolås * src/canvas/canvas.h: removed deprecated function declarations. 2006-03-09 Øyvind Kolås * src/canvas/allocator.c: (finalize): Added FIXME comment, release the tile associated with the region as well to avoid polluting swap. * src/canvas/allocator.h: the allocator type was by accident just a rect. 2006-03-08 Øyvind Kolås * src/link.c: (op_scale): swapped width and height to be correct. 2006-03-08 Øyvind Kolås Moved the buffer export/import methods from Canvas to CanvasRect, changed all places in the code where the methods was used. * src/canvas/canvas.c: (canvas_fill_rect): * src/canvas/canvas.h: * src/canvas/canvas_rect.c: (canvas_rect_new), (canvas_rect_import_buf), (canvas_rect_export_buf): * src/canvas/canvas_rect.h: * src/canvas/png_util.c: (canvas_export_png), (canvas_import_png): * src/link.c: (op_scale): * src/tools/tool_paint.c: (render_palette): 2006-03-08 Øyvind Kolås * src/horizon.c: (horizon_main): Ignore key events during middle mouse button dragging. 2006-03-08 Øyvind Kolås * src/horizon.c: (main): reverted accidental inclusion of unfinished code. 2006-03-08 Øyvind Kolås * src/toolkit/box.c: (box_set_ratio), (box_set_child): made box_recalc_sizes happen automatically on changes to structure affecting layout. The rest of the changes removes now unneeded calls to box_recalc_sizes. * src/actions.c: (action_toggle_fullscreen): * src/horizon.c: (main), (horizon_status), (create_ui), (horizon_show_prefs): * src/tools/tool_library.c: (tool_library_set_tool): 2006-03-08 Øyvind Kolås * src/canvas/canvas_rect.[ch]: Added new class that describes a rectangular subregion of a canvas. (set_property), (canvas_rect_class_init), (canvas_rect_init), (canvas_rect_new): * src/canvas/allocator.[ch]: modified to be a subtype of CanvasRect, still maintaing convenience accessors for now. 2006-03-07 Øyvind Kolås * src/actions.c: (action_welcome), (action_splash): use new path_stroke method instead of modifying the paint tool. 2006-03-07 Øyvind Kolås * src/toolkit/view.c: removed unused macros. 2006-03-07 Øyvind Kolås * src/tools/tool.[ch]: split out embedded brush capable tool into * src/tools/tool_with_brush.[ch]: this subclass. * src/tools/tool_library.h, src/tools/tool_clone.h, src/tools/tool_paint.h: Tracking above changes. 2006-03-07 Øyvind Kolås * src/vectors/path.[ch]: (path_add), (path_destroy), (path_stroke_tool), (path_tool), (path_set_line_width), (path_set_rgba), (path_set_hardness), (path_stroke): Added internal paint tool, with controllable brush settings. * src/toolkit/label.c: (label_render): Reenabled text rendering using the paths default paint tool. 2006-03-07 Øyvind Kolås Integrated the toolsetting with the tools instance structure. * src/toolkit/label.c: (label_render): temporarily disabled text rendering. * src/toolkit/easel.c: (easel_event): * src/tools/tool.c: (tool_with_brush_init), (tool_with_brush_get_toolsetting), (tool_with_brush_destroy), (tool_setting_get_color_sliders): * src/tools/tool.h: * src/tools/tool_clone.c: (tool_clone_start), (tool_clone_continue), (tool_clone_fill_tool_specific_settings_box), (tool_clone_new): * src/tools/tool_erase.c: (tool_erase_fill_tool_specific_settings_box), (tool_erase_new): * src/tools/tool_paint.c: (palette_handler), (tool_paint_start), (tool_paint_continue), (tool_paint_fill_tool_specific_settings_box), (tool_pick_start), (tool_paint_new): 2006-03-07 Øyvind Kolås Renamed methods path_stroke, to path_stroke_tool. * src/actions.c: (action_splash): * src/toolkit/brush_preview.c: (render): * src/toolkit/label.c: (label_render): * src/vectors/path.c: (path_stroke_tool): * src/vectors/path.h: 2006-03-04 Øyvind Kolås * debian/changelog: incremented version. 2006-03-04 Øyvind Kolås * src/toolkit/label.c: (label_render): Made selected label stick out more. 2006-03-04 Øyvind Kolås Correcting bugs in previous commit. * src/canvas/tile.c: (tile_finalize): free memory consumed by tile data. * src/canvas/tile_cache.c: (tile_cache_wash): flip check. 2006-03-04 Øyvind Kolås * src/canvas/tile.h: methods refering to revision replaced with a methods to prepare writing to a tile, and a method to ask a tile if it is serialized to disk. * src/canvas/tile.c: (tile_finalize), (tile_new), (tile_prepare_write), (tile_is_stored), (tile_load): The rest: updated API and fixed lurking undo bugs in most tile modificating code paths. * src/canvas/canvas.c: (canvas_write_buf): * src/canvas/scale.c: (scale): * src/canvas/tile_cache.c: (tile_cache_wash): * src/canvas/types.h: * src/canvas/undo.c: (undo_stack_undo), (undo_stack_redo), (undo_stack_add_tile): * src/brush.c: (tile_stamp), (tile_clone_stamp), (canvas_stamp), (canvas_clone_stamp): 2006-03-04 Øyvind Kolås * src/canvas/tile.c: (tile_set_x), (tile_set_y), (tile_set_canvas): 2006-03-03 Øyvind Kolås Code that should be split out is moved towards bottom of files. * src/canvas/canvas.c: (canvas_update_zoom), (canvas_has_tile), (canvas_prefetch), (canvas_pick): * src/canvas/canvas.h: 2006-03-03 Øyvind Kolås * TODO: updated. 2006-03-03 Øyvind Kolås * TODO: Added new file. 2006-03-03 Øyvind Kolås Loosened up coupling between undo stack and canvas, an undo stack can now handle multiple canvases. * src/canvas/undo.c: (undo_stack_undo), (undo_stack_redo), (undo_stack_add_tile), (undo_stack_freeze), (undo_stack_thaw): * src/canvas/undo.h: added freeze and thaw methods to undo_stack. * src/actions.c: (action_undo), (action_redo), (action_welcome): Use undo stack of horizon-> directly. * src/canvas/canvas.h: Removed undo/redo undo_enable and disable methods. * src/canvas/canvas.c: (canvas_finalize), (canvas_init), (canvas_set_undo_stack), (canvas_get_undo_stack), (canvas_add_dirty), (make_id): * src/horizon.h: Added undo_stack to horizon state. * src/horizon.c: (horizon_new), (horizon_destroy): 2006-03-03 Øyvind Kolås * src/canvas/tile_cache.h: moved include of canvas.h * src/canvas/tile_cache.c: here. 2006-03-03 Øyvind Kolås * debian/changelog: changed version to 0.34 * src/horizon.h: Added prefs box to horizon struct. * src/horizon.c: (horizon_new), (horizon_idle), (horizon_main), (create_setting), (update_prefs), (set_prefs), (horizon_show_prefs): Added slighly hacking preferences ui. * src/tools/tool_nav.c: (change_mode), (tool_nav_new): Invoke preferences ui when return is pressed in navigation mode. * src/toolkit/brush_preview.c: (render): Moved color to top of preview 2006-03-02 Øyvind Kolås * src/canvas/tile_cache.c: (tile_cache_insert): removed debug fprintf. 2006-03-02 Øyvind Kolås * src/canvas/tile_cache.h: Added accessors for cache size and washing threshold. Removed unneeded direct reference to canvas. * src/canvas/tile_cache.c: (tile_cache_finalize), (tile_cache_init), (tile_cache_new), (tile_cache_set_size), (tile_cache_get_size), (tile_cache_set_wash_percentage), (tile_cache_get_wash_percentage), (tile_cache_wash), (tile_cache_insert): * src/canvas/canvas.c: (canvas_init), (canvas_store_tile): Set size ans wash thresholds for tile cache, follow changes in tile_cache API. 2006-03-02 Øyvind Kolås * src/toolkit/slider.c: bail out if no value changed function is set. 2006-02-28 Øyvind Kolås Added a navigator in the available empty space in all tools where there was room. * src/tools/tool_clone.c: (tool_clone_fill_tool_specific_settings_box): * src/tools/tool_erase.c: (tool_erase_fill_tool_specific_settings_box): * src/tools/tool_export.c: (tool_export_fill_tool_specific_settings_box): * src/tools/tool_link.c: (tool_link_fill_tool_specific_settings_box): 2006-02-28 Øyvind Kolås * src/Makefile: turned off debug symbols in compile changed from -O2 to -O3 * src/config.h: set system cache: 2mb (old 3mb) set canvas_cache: 10mb (old 11mb) set wash percentage 30% (old 15%) set undo mb 8mb (old 4mb)(not using RAM anymore) set minimal zoom level to 0.0175 (1.75%) due to earlier increase in blit quality. added TILE_IO_SLOW_SAVE_DELAY and TILE_IO_SLOW_LOAD_DELAY to config.h to easier tune IO bottleneck simulation. * src/canvas/tile.c: (tile_save), (tile_load): use TILE_IO_SLOW_FOO_DELAYs 2006-02-28 Øyvind Kolås Made undo system use less RAM. * src/canvas/tile.h: added tile_cpy, removed tile_dup. * src/canvas/tile.c: (tile_cpy): function to copy the contents from one tile to another. (tile_swp): removed swapping of all but image data. (tile_dup): removed. * src/canvas/undo.c: (undo_tile_destroy), (undo_stack_new), (undo_stack_undo), (undo_stack_redo), (undo_stack_add_tile): do not store undo information permanently in RAM. 2006-02-27 Øyvind Kolås Preparations to integrate undo system with the user canvas' tile cache. * src/canvas/undo.c: (undo_tile_new), (undo_tile_destroy), (undo_item_destroy), (undo_stack_undo), (undo_stack_redo), (compare), (undo_stack_add_tile): 2006-02-27 Øyvind Kolås * src/canvas/map.h: changed some adresses and documentation about usage of horizons canvas. * src/canvas/allocator.c: (canvas_alloc): moved safety offset from map to here. * src/canvas/canvas.c: (canvas_has_tile), (canvas_get_tile), (canvas_update_zoom): follow changes in map.h (canvas_undo), (canvas_redo): disable undo system during undo/redo itself. 2006-02-27 Øyvind Kolås * src/toolkit/widget.c: (widget_init): changed default colors to a darker scheme. * src/toolkit/label.c: (label_render): use color information from widget. 2006-02-27 Øyvind Kolås * src/tools/tool.c: (tool_setting_slider_handler), (tool_setting_get_color_sliders): removed setting of secondary color. * src/tools/tool_clone.c: (tool_clone_start), (tool_clone_continue), (tool_clone_set_clone_mode), (tool_clone_set_aim_mode), (tool_clone_set_button_states), (tool_clone_fill_tool_specific_settings_box), (tool_clone_aim_process_coordinate), (tool_clone_set_mode), (tool_clone_get_mode), (change_mode), (tool_clone_new): * src/tools/tool_clone.h: refactored to use label widget. 2006-02-27 Øyvind Kolås Added new class widget. Made slider and label derive from this class. * src/toolkit/widget.[ch]: (widget_init), (widget_new), (widget_set_primary_color), (widget_set_secondary_color), (widget_set_background_color): * src/toolkit/label.c: (label_new): * src/toolkit/slider.c: (render), (slider_new), (slider_get_value): * src/toolkit/slider.h: 2006-02-27 Øyvind Kolås * src/toolkit/slider.c: (render), (slider_new), (slider_set_primary_color), (slider_set_secondary_color), (slider_set_background_color): Code clarification. 2006-02-27 Øyvind Kolås * debian/changelog: updated version to 0.33 2006-02-27 Øyvind Kolås * src/actions.c: (action_welcome): made gap between title and text smaller. 2006-02-27 Øyvind Kolås * src/config.h: traded som speed for quality in drawing of canvas. 2006-02-27 Øyvind Kolås * src/canvas/canvas.c: (prepare_storage): removed full tile storage tree creation. * src/canvas/png_util.c: (horizon_save_png): removed warning when unable to save file. * src/canvas/tile.c: (build_paths), (tile_save): build paths for tile storage on demand if they do not already exist. 2006-02-27 Øyvind Kolås reviewed by: * debian/changelog: * src/tools/tool_export.c: (tool_export_export): * src/tools/tool_link.c: (tool_link_set_state_link): 2006-02-27 Øyvind Kolås * debian/changelog: incremented version to 0.31 * src/actions.c: (action_welcome): update user guide. 2006-02-27 Øyvind Kolås * src/tools/tool_clone.c: (tool_clone_fill_tool_specific_settings_box): UI refinements. 2006-02-27 Øyvind Kolås * src/actions.c: (action_welcome): updated user guide. 2006-02-27 Øyvind Kolås UI layout improvements. * src/tools/tool_erase.c: (tool_erase_fill_tool_specific_settings_box): * src/tools/tool_link.c: (tool_link_fill_tool_specific_settings_box): 2006-02-27 Øyvind Kolås * src/tools/tool_export.c: (tool_export_export), (tool_export_fill_tool_specific_settings_box): Use the status line to show where path of saved file. 2006-02-27 Øyvind Kolås * src/toolkit/label.c: (label_new): Make initial labels be empty. 2006-02-27 Øyvind Kolås * src/horizon.[ch]: (horizon_status), (status_idle), (create_ui), (horizon_new), (horizon_idle): Added status message line at top. 2006-02-27 Øyvind Kolås * src/tools/tool.[ch]: (tool_set_horizon): added horizon member, and associated setter function. * src/tools/tool_library.[ch]: (tool_library_create_tool_uis): set horizon variable when feeding tools with initial state. 2006-02-27 Øyvind Kolås * debian/changelog: incremented version. 2006-02-27 Øyvind Kolås * src/tools/tool_export.c: (change_mode), (tool_export_new): added mode_change binding for initiating export. 2006-02-27 Øyvind Kolås * src/tools/tool_erase.c: (tool_erase_new): remove mode_change virtual function added by paint tool (which erase tool derives from) 2006-02-27 Øyvind Kolås * src/tools/tool_link.c: (change_mode), (tool_link_new): added action invoked mode changing to link tool. 2006-02-27 Øyvind Kolås * src/tools/tool_clone.c: (change_mode), (tool_clone_new): added virtual function to make use of mode change action. 2006-02-27 Øyvind Kolås * src/tools/tool_paint.c: (change_mode), (tool_paint_new): made mode_change flip between color picking and painting. * src/tools/tool.h: added virtual function change_mode. * src/actions.c: (action_change_mode): use above mentioned virtual function. * src/horizon.c: (horizon_main): removed outdated comment containing keybindings. 2006-02-26 Øyvind Kolås Got rid of TOOL_* enum, currently replaced with a string loopup on the short_name of tools. * src/actions.c: (action_select_tool_nav), (action_splash): * src/horizon.c: (horizon_idle), (horizon_main): * src/toolkit/label.c: (render_text_button): * src/tools/tool_library.c: (tool_library_create_tool_uis), (tool_library_get_tool_box), (lookup_tool), (create_tools), (tools_destroy), (tool_library_set_tool): * src/tools/tool_library.h: * src/vectors/path.c: (path_stroke): 2006-02-26 Øyvind Kolås * src/tools/tool.h: added toolbox_label member. * src/tools/tool.c: (tool_set_toolbox_label), (tool_get_toolbox_label): added accessor methods. * src/tools/tool_library.c: removed static toolbox array. (tool_library_get_tool_box), (tool_library_set_tool): store toolbox labels in each tool. 2006-02-26 Øyvind Kolås Made tools reference a current easel instead of a current view. * src/horizon.c: (create_ui): * src/link.c: (links_get): * src/toolkit/easel.c: (easel_event): * src/tools/tool.c: (tool_set_easel): * src/tools/tool.h: * src/tools/tool_export.c: (update_src_rect), (tool_export_reset), (coordinate_continue), (deselected): * src/tools/tool_library.c: (tool_library_create_tool_uis): * src/tools/tool_library.h: * src/tools/tool_link.c: (update_dst_rect), (update_src_rect), (tool_link_set_state_dst), (tool_link_set_state_src), (tool_link_set_state_link), (tool_link_set_state_delete), (tool_link_start), (tool_link_continue), (tool_link_flush), (deselect): * src/tools/tool_nav.c: (tool_nav_start), (tool_nav_continue), (tool_nav_zoom_slider), (update_zoom_slider), (tool_nav_fill_tool_specific_settings_box): * src/tools/tool_paint.c: (tool_pick_continue): 2006-02-26 Øyvind Kolås Removed color picker tool and integrated the functionality into the ui of the paint tool. * src/tools/tool_pick.[ch]: removed * src/tools/tool_library.[ch]: (create_tools), (tools_destroy): removed color picker tool, and changed tool order. * src/actions.c: (action_return): removed toggling between pick tool and paint tool * src/horizon.c: (create_ui): changed ratio of toolbox and tool options. * src/tools/tool.[ch]: moved the palette renderer to the paint tool. * src/tools/tool_paint.c: (render_palette), (palette_render), (palette_handler), (palette_box_new), (tool_paint_start), (ui_update_mode), (set_pick_mode), (set_paint_mode), (restore_palette), (tool_paint_fill_tool_specific_settings_box), (tool_pick_start), (tool_pick_continue), (tool_paint_process_coordinate), (tool_paint_new): * src/tools/tool_nav.c: changed position of slider and thumbnail. 2006-02-26 Øyvind Kolås * src/toolkit/box.c: (vbox_new), (hbox_new): deal properly with hboxes and vboxes with only one element. 2006-02-26 Øyvind Kolås * src/toolkit/box.h: added box_set_ratios, which can specify the relative sizes of elements of a hbox/vbox. * src/toolkit/box.c: (box_set_ratios_even): renamed internal method. (box_set_ratios): added. (vbox_new), (hbox_new): use box_set_ratios_even. 2006-02-26 Øyvind Kolås * src/toolkit/box.c: (box_set_ratios), (vbox_new), (hbox_new): moved division ratio recalculations into a common function. 2006-02-26 Øyvind Kolås * src/horizon.c: (horizon_main): Added middlemouse dragging of canvas. 2006-02-26 Øyvind Kolås * src/tools/tool_nav.c: (tool_nav_fill_tool_specific_settings_box): Made zoom slider smaller. 2006-02-25 Øyvind Kolås * src/tools/tool.h: removed unneeded box/view confusion. * src/tools/tool.c: (tool_setting_new), (tool_setting_get_color_palette), (render_palette): cleaned up according to header cleanup. 2006-02-25 Øyvind Kolås * src/tools/tool_clone.h, src/tools/tool_erase.h, src/tools/tool_link.h, src/tools/tool_nav.h, src/tools/tool_paint.h, src/tools/tool_pick.h: header cleanup. 2006-02-25 Øyvind Kolås * src/toolkit/slider.[ch]: (render), (event), (slider_set_value_changed_function), (slider_new), (slider_set_background_color): Made the API for slider more coherent with rest of toolkit api. Only pass the canvas to the constructor, simplified properties, only horizontal slider for now. Inversion of value not supported. (do it from calling code instead) Draw the slider using fill rect functions in canvas. * src/tools/tool.c: (tool_setting_get_brush_sliders), (tool_setting_get_color_sliders): Fixed for above changes. * src/tools/tool_nav.c: (tool_nav_zoom_slider), (update_zoom_slider), (tool_nav_fill_tool_specific_settings_box): Fixed for above changes. 2006-02-25 Øyvind Kolås * src/toolkit/navigator.[ch]: (event), (render), (navigator_new), (navigator_set_easel), (navigator_set_zoom): Moved code from nav tool into seperate widget. * src/tools/tool_nav.h: made the struct private. * src/tools/tool_nav.c: (update_zoom_slider), (tool_nav_fill_tool_specific_settings_box): Use the navigator widget, (and a nasty hack to force recalculation of the zoom slider) 2006-02-25 Øyvind Kolås * src/toolkit/brush_preview.[ch]: (brush_preview_event), (render), (brush_preview_set_tool_setting), (brush_preview_new): Moved BrushPreview into seperate widget. * src/tools/tool.[ch]: (tool_setting_new), (tool_setting_get_color_sliders_view), (tool_setting_get_brush_preview), (tool_setting_changed), (tool_setting_get_color_sliders): Use BrushPreview widget. * src/toolkit/easel.[ch]: corrected copyright statement. 2006-02-25 Øyvind Kolås * src/toolkit/view.[ch]: Moved view_canvas_event into seperate widget called Easel. * src/toolkit/easel.[ch]: (easel_event), (easel_new): New widget that handles interaction of tools with canvas. * src/toolkit/easel.h: * src/horizon.[ch]: (create_ui): Use easel widget for main view. * src/actions.c: (action_zoom_in), (action_zoom_out), (action_pan_left), (action_pan_right), (action_pan_up), (action_pan_down), (action_undo), (action_redo), (action_save_position), (action_restore_position), (action_initial_teleport): Changed actions interacting with easel. 2006-02-25 Øyvind Kolås * src/tools/tool.c: (tool_setting_get_brush_preview), (tool_setting_changed): use box_set_dirty instead of view_set_dirty. 2006-02-25 Øyvind Kolås * src/toolkit/view.c: (pre_zoom), (post_zoom), (view_set_rect_visible), (view_set_rect_x), (view_set_rect_y), (view_set_rect_width), (view_set_rect_height), (view_set_rect_border_px), (view_set_rect_color), (view_set_rect_border_color), (view_set_rect_surround_color): access member variables directly instead of through function calls. 2006-02-24 Øyvind Kolås * src/actions.c, src/brush.h, src/horizon.c, src/horizon.h, src/teleport.c, src/teleport.h, src/toolkit/box.c, src/toolkit/box.h, src/toolkit/label.c, src/toolkit/slider.c, src/toolkit/view.c, src/toolkit/view.h, src/tools/tool.c, src/tools/tool.h, src/tools/tool_clone.c, src/tools/tool_clone.h, src/tools/tool_export.c, src/tools/tool_library.c, src/tools/tool_library.h, src/tools/tool_link.c, src/tools/tool_nav.c, src/tools/tool_nav.h, src/tools/tool_pick.c: %s/VIEWPORT/VIEW/g %s/Viewport/View/g %s/viewport/view/ 2006-02-24 Øyvind Kolås * src/toolkit/view.[ch]: copied from viewport.[ch] * src/toolkit/viewport.[ch]: removed. 2006-02-24 Øyvind Kolås * src/toolkit/box.h: removed parent member. * src/toolkit/box.c: (box_set_child): do not set parent. 2006-02-24 Øyvind Kolås * src/toolkit/box.[ch]: (box_init), (box_render_internal), (box_event): * src/toolkit/viewport.[ch]: Moved rendering and event funcs. (test_event), (viewport_init), (viewport_set_event), (viewport_set_render), (viewport_canvas_event): To the viewport, since containers don't need any of them. * src/toolkit/label.c: (label_render), (label_event), (label_new): * src/toolkit/slider.c: (slider_render), (slider_event), (slider_new): Changed widgets to register render and event with viewport. Changed rest of code to still compile. * src/horizon.c: (create_ui): * src/tools/tool.c: (tool_setting_get_brush_preview), (tool_setting_changed), (tool_setting_get_color_palette), (tool_setting_preview_brush), (palette_handler): * src/tools/tool.h: * src/tools/tool_clone.c: (tool_clone_set_clone_mode), (tool_clone_set_aim_mode), (tool_clone_fill_tool_specific_settings_box): * src/tools/tool_nav.c: (tool_nav_thumbnail_handler), (tool_nav_thumbnail_render), (tool_nav_fill_tool_specific_settings_box): 2006-02-24 Øyvind Kolås * src/toolkit/slider.[ch]: (slider_new): Made slider_new return a Slider* Cleanups of duplicate viewports/boxes in tools. * src/tools/tool.c: (tool_setting_get_brush_sliders), (tool_setting_get_color_sliders): * src/tools/tool.h: * src/tools/tool_clone.c: (tool_clone_set_button_states), (tool_clone_fill_tool_specific_settings_box): * src/tools/tool_clone.h: * src/tools/tool_link.c: (tool_link_fill_tool_specific_settings_box): * src/tools/tool_link.h: * src/tools/tool_nav.c: (update_zoom_slider), (tool_nav_fill_tool_specific_settings_box): * src/tools/tool_nav.h: 2006-02-24 Øyvind Kolås * src/horizon.h: removed horizon->viewport since the object is also stored in horizon->main_view. For the rest: %s/horizon->viewport/horizon->main_view/ * src/actions.c: (action_zoom_in), (action_zoom_out), (action_pan_left), (action_pan_right), (action_pan_up), (action_pan_down), (action_undo), (action_redo), (action_save_position), (action_restore_position), (action_initial_teleport): * src/horizon.c: (create_ui), (horizon_idle): * src/teleport.c: (horizon_teleport): 2006-02-24 Øyvind Kolås * src/toolkit/box.h: added box type viewport. Removed setters/getters for viewport on box, removed box_lookat. * src/toolkit/viewport.[ch]: Made the viewport class a subclass of Box (viewport_init), (viewport_new), (viewports_clear_dirty), (pre_zoom), (post_zoom), (viewport_set_center_x), (viewport_get_center_x), (viewport_get_center_y), (viewport_set_center_y), (viewport_lookat), (viewport_refresh), (viewport_canvas_event): * src/toolkit/label.c: (label_render), (label_new): Made label a subclass of viewport. * src/toolkit/slider.c: (slider_clear_background), (slider_clear_old), (slider_render), (slider_new): Made slider a subclass of viewport. The rest of the files need further cleanup, for now they have been modified just to make them compile correctly. * src/actions.c: (action_pan_left), (action_pan_right), (action_pan_up), (action_pan_down): * src/horizon.c: (create_ui), (horizon_idle): * src/horizon.h: * src/toolkit/box.c: (box_destroy), (box_recalc_sizes), (box_render_internal), (box_set_dirty): * src/tools/tool.c: (tool_setting_get_brush_preview), (tool_setting_get_color_palette), (tool_setting_preview_brush): * src/tools/tool_clone.c: (tool_clone_set_button_states), (tool_clone_fill_tool_specific_settings_box): * src/tools/tool_export.c: (tool_export_reset): * src/tools/tool_link.c: (tool_link_set_state_src), (tool_link_flush): * src/tools/tool_nav.c: (tool_nav_start), (tool_nav_thumbnail_handler), (tool_nav_thumbnail_render), (tool_nav_fill_tool_specific_settings_box): 2006-02-24 Øyvind Kolås * src/toolkit/box.[ch]: (box_resolve): made internal (box_event): changed to accepter normalized 16.16 coordinates. * src/horizon.c: (horizon_main): adapt to change of box_event semantics. 2006-02-24 Øyvind Kolås * src/toolkit/box.c: (box_render_internal), (box_render), (box_event), (box_resolve): removed unneeded width and height parameters from box_render_internal, box_event and box_resolve. * src/horizon.c: (horizon_main): 2006-02-24 Øyvind Kolås * src/toolkit/box.h: added new container a bin, having only a single child. * src/toolkit/box.c: (bin_new), (box_set_child), (box_get_child): added new child a bin. * src/horizon.c: (create_ui): use bin for tool_options. * src/tools/tool_library.c: (tool_library_set_tool): use bin bin for tool options. 2006-02-24 Øyvind Kolås * src/canvas/tile.c: include unistd.h for slow tile io emulation. 2006-02-23 Øyvind Kolås * src/horizon.c: (main): tuned malloc to make sure the allocations for each tiles buffer are possible to return to the system. 2006-02-23 Øyvind Kolås Removed in-code references to the 800x480 resolution, as well as initial support for interactive window resizing. * src/horizon.c: (horizon_new): (create_ui): do not use defined screen size constants. (handle_configure), (horizon_main): added handling of Configure events. * src/horizon.h: added screen_width and screen_height members. * src/toolkit/viewport.c: (viewports_flush), (dim_tile): use pitch when calculating blit adresses for rectangle overlays. * src/actions.c: (action_toggle_fullscreen): stop using defined screen size constants. * src/tools/tool_library.c: (tool_library_set_tool): stop using defined screen size constants. 2006-02-23 Øyvind Kolås * src/actions.c: (action_initial_teleport): moved here from horizon.c , (action_quit): changes in horizon struct. * src/horizon.c: (main), (create_ui), (horizon_new), (horizon_destroy), (horizon_idle), (horizon_main): made Horizon more of a true object, simplyfying main. * src/horizon.h: 2006-02-23 Øyvind Kolås Introducing a Horizon object to get rid of globals. * src/actions.c: (action_refresh), (action_toggle_fullscreen), (action_zoom_in), (action_zoom_out), (action_pan_left), (action_pan_right), (action_pan_up), (action_pan_down), (action_undo), (action_redo), (action_select_tool_nav), (action_save_position), (action_restore_position), (action_quit), (action_return), (action_splash), (action_welcome), (action): all actions now take Horizon * argument instead of void. * src/actions.h: * src/horizon.c: (create_ui), (horizon_new), (horizon_destroy), (main), (idle), (eventloop): * src/horizon.h: * src/teleport.c: (horizon_teleport): * src/teleport.h: * src/tools/tool_library.c: (tool_library_set_horizon), (tool_library_set_tool): * src/tools/tool_library.h: * src/tools/tool_export.c: (selected), (deselected), (tool_export_new): renamed to avoid conflict with select in system headers. 2006-02-23 Øyvind Kolås * src/horizon.c: (main): initialize stylus with screen size. 2006-02-23 Øyvind Kolås * src/stylus.h: added stylus_set_screen_size function. * src/stylus.c: (stylus_set_screen_size), (stylus_init), (stylus_set_calibration), (stylus_process_event), (stylus_process_xmotion): make use of dynamic screen size instead of constants. 2006-02-23 Øyvind Kolås * src/tools/tool_library.h: reverted to old tool order. 2006-02-23 Øyvind Kolås * src/config.h: revert accidental change of width/height. 2006-02-22 Øyvind Kolås * src/toolkit/box.[ch]: (test_event), (box_init), (box_new), (box_destroy), (box_split), (box_recalc_sizes), (box_render_internal), (box_set_event), (box_set_render), (box_event), (box_resolve), (hsplit_new), (vsplit_new), (vbox_new), (hbox_new), (grid_new), (box_lookat), (box_set_child), (box_get_child), (box_set_dirty), (box_set_id), (box_id_internal), (box_id): Rewrote the box class which is the base of the splitting box toolkit. * src/toolkit/label.c: (label_new): * src/toolkit/slider.c: (slider_new): The rest of the changes are the minimal set of changes needed for current functionality to be maintained with new toolkit code. * src/horizon.c: (create_ui), (main): * src/tools/tool.c: (tool_get_settings_box), (tool_setting_get_brush_preview), (tool_setting_get_brush_sliders), (tool_setting_get_color_palette), (tool_setting_get_color_sliders): * src/tools/tool.h: * src/tools/tool_clone.c: (tool_clone_fill_tool_specific_settings_box): * src/tools/tool_erase.c: (tool_erase_fill_tool_specific_settings_box): * src/tools/tool_export.c: (tool_export_fill_tool_specific_settings_box): * src/tools/tool_library.c: (tool_library_get_tool_box), (set_current_tool), (create_tools), (tools_destroy), (tool_library_set_tool): * src/tools/tool_library.h: * src/tools/tool_link.c: (tool_link_fill_tool_specific_settings_box): * src/tools/tool_nav.c: (tool_nav_fill_tool_specific_settings_box): * src/tools/tool_paint.c: (tool_paint_fill_tool_specific_settings_box): * src/tools/tool_pick.c: (tool_pick_fill_tool_specific_settings_box): 2006-02-22 Øyvind Kolås * src/toolkit/box.c: (box_recalc_sizes), (box_render_internal), (box_render): * src/toolkit/box.h: Made the external box_render function not take geometry arguments. * src/actions.c: (action_refresh), * src/horizon.c: (eventloop), * src/teleport.c: (viewport_teleport): changed accordingly. 2006-02-22 Øyvind Kolås * src/tools/tool_paint.c: (tool_paint_continue), (tool_paint_flush): Code style changes. 2006-02-22 Øyvind Kolås * src/horizon.c: (eventloop): bound mousewheel scrolling to zoom in/out. 2006-02-21 Øyvind Kolås Made screen resolution compile time changeble. * src/config.h: added SCREEN_WIDTH and SCREEN_HEIGHT. For the rest of the changed files, use SCREEN_WIDTH and SCREEN_HEIGHT instead of numeric constants. * src/actions.c: (action_refresh), (action_toggle_fullscreen): * src/horizon.c: (main), (eventloop): * src/stylus.c: (stylus_set_calibration), (stylus_process_event), (stylus_process_xmotion): * src/teleport.c: (viewport_teleport): * src/toolkit/blit.c: (tile_blit_native), (tile_blit_decimate): * src/toolkit/viewport.c: (viewports_flush): * src/tools/tool_library.c: (tool_library_set_tool): 2006-02-21 Øyvind Kolås * src/actions.c: (action_toggle_fullscreen): Added an action to hide/unhide the toolbox, bound to the fullscreen hardware button. 2006-02-20 Øyvind Kolås * src/actions.c: (action_welcome): fix typo in Cody Russells name. 2006-02-20 Øyvind Kolås * src/canvas/canvas.c: (make_id), (prepare_storage), (canvas_write_buf): increased the number of directories to 4096, do not check the existence of all the balancing directories but just the toplevel canvas dir. 2006-02-20 Øyvind Kolås * src/horizon.c: (main): made a seperate horizon_path distinct from canvas path. * src/actions.c: (action_save_position), (action_restore_position): use the global horizon_path symbol instead of canvas_get_path(); * src/canvas/canvas.c: (canvas_init), (make_id), (prepare_storage), (canvas_set_path): store tiles in a tree, effectivly binning the files into 256 categories, should improve seek time to find a tile. 2006-02-20 Øyvind Kolås * src/canvas/undo.c: (undo_stack_add_tile): trim undo stack earlier to avoid adding to freed undo items. 2006-02-20 Øyvind Kolås * src/canvas/tile.c: (tile_save): made it possible to disable tile saving from config.h (workaround for hushing up valgrind). 2006-02-20 Øyvind Kolås * src/tools/tool_nav.c: (tool_nav_start), (tool_nav_process_coordinate): disable teleport, avoid jumping back to start of link. 2006-02-19 Øyvind Kolås * src/link.[ch]: (links_delete): new function. * src/tools/tool_link.[ch]: (tool_link_set_state_delete), (tool_link_start), (tool_link_continue), (tool_link_flush), (tool_link_fill_tool_specific_settings_box): Added delete button, GUI is not intuitive at the moment, but the functionality for hyperlinks is there now. 2006-02-19 Øyvind Kolås * src/tools/tool_link.h: Added modes for source rectangle setting. * src/tools/tool_link.c: (tool_link_start), (tool_link_continue), (tool_link_process_coordinate): Make lock source rect modification mode. 2006-02-19 Cody Russell * src/canvas/tile_cache.[ch]: TileCache is now based upon GObject. 2006-02-19 Øyvind Kolås * src/tools/tool_link.c: (tool_link_continue): more consistent user interaction for placing aspect constrained rectangle. 2006-02-19 Øyvind Kolås * AUTHORS, * src/actions.c: (action_welcome): added Cody Russel. 2006-02-19 Øyvind Kolås * src/tools/tool_link.c: (update_src_rect), (tool_link_continue): Initial aspect constrainining of source rect, user interaction with geometry is still flaky. 2006-02-19 Øyvind Kolås * src/tools/tool_link.c: (tool_link_set_state_link): Make the source rect be properly reset when a link is created. 2006-02-19 Cody Russell * src/horizon.c, src/canvas/canvas.[ch], src/canvas/types.h, src/canvas/tile_cache.h: Canvas is now based upon GObject. 2006-02-19 Øyvind Kolås * src/canvas/canvas.c: (canvas_get_tile): transfer ownership for system cache as well. * src/canvas/undo.c: (undo_stack_add_tile): set stored_rev=rev for undo til to avoid it being saved to disk when the undo tile is destructed. 2006-02-19 Cody Russell * src/canvas/types.h: Added. * src/brush.c, src/horizon.c, src/canvas/canvas.[ch], src/canvas/tile.[ch], src/canvas/undo.c, src/canvas/tile_cache.c: Tile is now based upon GObject. Refcounting fixes are included in this. 2006-02-19 Øyvind Kolås * src/stylus.c: only use timer.[ch] for Xsp which doesn't include timing information in the event structure, some reindentation. 2006-02-19 Øyvind Kolås * src/link.[ch]: (op_scale), (link_redraw), (links_destroy): added the guts of a simple nearest neighbour scaling routine for link thumbnail. * src/tools/tool_link.c: (tool_link_set_state_link): only draw the added link. * src/horizon.c: (main): do not redraw all link thumbnails upon load. 2006-02-17 Øyvind Kolås * src/horizon.c: (main): fix bug in preparation of links file path. 2006-02-17 Øyvind Kolås * src/canvas/canvas.[ch]: (canvas_destroy): moved link storage away from canvas object. * src/link.[ch]: (links_get), (link_redraw), (links_redraw), (links_add), (links_load), (links_save), (while): added static GSlist for link storage. The rest modified to accomodate new function names, and calling convention. * src/horizon.c: (main): * src/tools/tool_library.c: (create_tools), (tools_destroy): * src/tools/tool_library.h: * src/tools/tool_link.c: (tool_link_set_state_link): * src/tools/tool_nav.c: (tool_nav_start): 2006-02-17 Øyvind Kolås * src/brush.h: reindentation 2006-02-16 Øyvind Kolås * debian/changelog: released 0.27 * src/actions.c: (action_welcome): added message about delay. * src/brush.h: removed old cruft. 2006-02-16 Øyvind Kolås * src/canvas/canvas.h: added canvas_prefetch as a public method. * src/canvas/canvas.c: (canvas_prefetch): made public, modified to only load a single tile per iteration. * src/horizon.c: (idle): added a new global idle function that handles prefetching logic, it also calls canvas_idle for the washing of dirty tiles, (eventloop): use idle() instead of canvas_dile() directly. * src/Makefile: linking rule fixup. 2006-02-16 Øyvind Kolås * src/Makefile: only add toplevel dir as include dir. * src/actions.c, src/brush.h, src/canvas/canvas.c, src/canvas/canvas.h, src/config.h, src/horizon.c, src/teleport.h, src/toolkit/blit.c, src/toolkit/blit.h, src/toolkit/box.h, src/toolkit/label.c, src/toolkit/label.h, src/toolkit/slider.c, src/toolkit/slider.h, src/toolkit/viewport.c, src/toolkit/viewport.h, src/tools/tool.c, src/tools/tool.h, src/tools/tool_clone.c, src/tools/tool_clone.h, src/tools/tool_erase.c, src/tools/tool_export.c, src/tools/tool_export.h, src/tools/tool_library.c, src/tools/tool_link.c, src/tools/tool_link.h, src/tools/tool_nav.c, src/tools/tool_nav.h, src/tools/tool_paint.c, src/tools/tool_pick.c, src/vectors/path.c, src/vectors/path.h: use include paths relative to source root. 2006-02-16 Øyvind Kolås Further mass subsitutions as a consequence of file renames. * src/actions.c: (action_select_tool_nav), (action_splash), (w): * src/canvas/canvas.c: (canvas_idle): * src/canvas/png_util.h: * src/horizon.c: (main): * src/toolkit/blit.h: * src/toolkit/label.c: (render_text_button): * src/tools/tool_library.c: (create_tools), (tools_destroy): * src/tools/tool_library.h: * src/tools/tool_nav.c: (tool_nav_start), (tool_nav_continue), (tool_nav_process_coordinate), (tool_nav_flush), (tool_nav_zoom_slider), (tool_nav_thumbnail_handler), (update_zoom_slider), (tool_nav_thumbnail_render), (tool_nav_fill_tool_specific_settings_box), (tool_nav_new), (tool_nav_destroy): * src/tools/tool_nav.h: * src/vectors/font.c: (block_width), (font_ascii_path), (wordlength), (font_path), (font_new), (font_destroy), (font_set_size), (font_get_size): * src/vectors/font.h: 2006-02-16 Øyvind Kolås * src/Makefile: modified to take subdirectories into acccount. * src/actions.c, src/canvas/png_util.c, src/canvas/tile.c, src/toolkit/label.c, src/toolkit/viewport.c, src/tools/tool_clone.c, src/tools/tool_export.c, src/tools/tool_library.c, src/tools/tool_link.c, src/tools/tool_nav.c, src/vectors/font.c: Use new names of renamed header files. 2006-02-16 Øyvind Kolås Created directories canvas, toolkit, tools and vectors, reorganized source to reflect this. * src/canvas/allocator.c: moved from src/allocator.c * src/canvas/allocator.h: moved from src/allocator.h * src/canvas/canvas.c: moved from src/canvas.c * src/canvas/canvas.h: moved from src/canvas.h * src/canvas/scale.c: moved from src/scale.c * src/canvas/scale.h: moved from src/scale.h * src/canvas/map.h: moved from src/map.h * src/canvas/tile.c: moved from src/tile.c * src/canvas/tile.h: moved from src/tile.h * src/canvas/tile_cache.c: moved from src/tile_cache.c * src/canvas/tile_cache.h: moved from src/tile_cache.h * src/canvas/png_util.c: moved from src/png.c * src/canvas/png_util.h: moved from src/png.h * src/canvas/undo.c: moved from src/undo.c * src/canvas/undo.h: moved from src/undo.h * src/toolkit/box.c: moved from src/box.c * src/toolkit/box.h: moved from src/box.h * src/toolkit/slider.c: moved from src/slider.c * src/toolkit/slider.h: moved from src/slider.h * src/toolkit/label.c: moved from src/label.c * src/toolkit/label.h: moved from src/label.h * src/toolkit/blit.c: moved from src/tile_blit.c * src/toolkit/blit.h: moved from src/tile_blit.h * src/toolkit/viewport.c: moved from src/viewport.c * src/toolkit/viewport.h: moved from src/viewport.h * src/tools/tool.c: moved from src/tool.c * src/tools/tool.h: moved from src/tool.h * src/tools/tool_clone.c: moved from src/tool_clone.c * src/tools/tool_clone.h: moved from src/tool_clone.h * src/tools/tool_erase.c: moved from src/tool_erase.c * src/tools/tool_erase.h: moved from src/tool_erase.h * src/tools/tool_export.c: moved from src/tool_export.c * src/tools/tool_export.h: moved from src/tool_export.h * src/tools/tool_library.c: moved from src/tool_library.c * src/tools/tool_library.h: moved from src/tool_library.h * src/tools/tool_link.c: moved from src/tool_link.c * src/tools/tool_link.h: moved from src/tool_link.h * src/tools/tool_paint.c: moved from src/tool_paint.c * src/tools/tool_paint.h: moved from src/tool_paint.h * src/tools/tool_nav.c: moved from src/tool_pan.c * src/tools/tool_nav.h: moved from src/tool_pan.h * src/tools/tool_pick.c: moved from src/tool_pick.c * src/tools/tool_pick.h: moved from src/tool_pick.h * src/vectors/path.c: moved from src/path.c * src/vectors/path.h: moved from src/path.h * src/vectors/glyphs.c: moved from src/hershey_glyphs.c * src/vectors/font.c: moved from src/hershey.c * src/vectors/font.h: moved from src/hershey.h 2006-02-16 Øyvind Kolås * src/task.c: removed. 2006-02-16 Øyvind Kolås * src/canvas.[ch]: (canvas_add_dirty), (canvas_new), (canvas_undo_enable), (canvas_undo_disable): Added ability to turn off undo. * src/actions.c: (action_welcome): turn off undo during rendering of documentation. (this fixes a segfault bug that is probably due to stuffing the undo system with too many tiles, not quite certain.) 2006-02-15 Øyvind Kolås Released 0.26 * devbian/changelog: changed version. 2006-02-15 Øyvind Kolås * src/tool.c: (tool_setting_changed), (tool_setting_slider_handler), (tool_setting_get_color_sliders): made the brush parameter sliders nonlinear to better cover useful ranges. 2006-02-15 Øyvind Kolås * src/tool_pan.c: (tool_pan_thumbnail_handler): Made calculations more accurate and thus panning smoother. 2006-02-15 Øyvind Kolås * src/tool_export.c: (tool_export_reset), (tool_export_export): Avoid double saves. 2006-02-15 Øyvind Kolås * src/tool_pan.c: (tool_pan_flush), (tool_pan_thumbnail_handler), (tool_pan_thumbnail_render): Made interaction with scaled down view more similar to usage of pan tool in the main view. New scaled down view attempts to be at scale 1:10 as long as the settings of the tileserver match it. 2006-02-15 Øyvind Kolås * debian/changelog: Released 0.25 * src/config.h: removed version string for now, it's not used in code. 2006-02-15 Øyvind Kolås * src/Makefile: made cleantest remove the dir as well (to test welcome message). * src/actions.c: (action_refresh), (w_move_to), (w), (action_welcome): Made a "typewriter" function for writing the introduction text. * src/box.c: (box_render): bail out if passed a NULL box. * src/horizon.c: (create_ui), (main), (eventloop): draw welcome message during ui creation if requested, thus showing something to the user as early as possible. 2006-02-14 Øyvind Kolås Released ver 0.24 * debian/changelog: version change * src/config.h: version chamge, random memory usgae tuneups. * src/tool_pan.c: (tool_pan_thumbnail_handler): changed no jump timeout to 3seconds, interaction with thumbnails needs to be redone. 2006-02-14 Øyvind Kolås * src/horizon.c: (main): show a welcome message when running horizon for the first time. * src/actions.c: (action_splash), (action_welcome): added welcome message. * src/hershey.c: (hershey_path): use 1.5*line_spacing for newlines (and 1.0 for autobroken lines). 2006-02-14 Øyvind Kolås * src/map.h: reverted to 21bit tile indexing for now. * src/canvas.c: (canvas_add_dirty): hook dirtiness of tiles in user region up with undo system. * src/undo.c: (undo_stack_add_tile): logic for exclusion moved to canvas_add_dirty() * src/brush.c: (canvas_stamp), (canvas_clone_stamp): removed unneeded references to undo system. * src/allocator.c: (canvas_alloc): modified to handle tile coordinates correctly. 2006-02-14 Øyvind Kolås * src/actions.h: accidentaly left out in an earlier commit. 2006-02-14 Øyvind Kolås * src/actions.c: (action_splash): added. 2006-02-14 Øyvind Kolås * src/label.[ch]: (render_text_button), (label_render), (label_new), (label_set_active), (label_set_font_size): Made it possible to specify the font size for a label. * src/tool_clone.c: (tool_clone_fill_tool_specific_settings_box): improved consistency in ui. * src/tool_export.c: (update_src_rect), (get_export_path2), (get_export_path), (tool_export_export), (tool_export_fill_tool_specific_settings_box): improved user feedback. * src/tool_library.[ch]: (create_tools), (tools_destroy): temporarily disabled link tool. 2006-02-14 Øyvind Kolås * src/actions.c: (action): give a warning upon unknown actions. * src/horizon.c: (main): action("restore_position") 2006-02-14 Øyvind Kolås Set some more reasonable default brushes for tools. (clone tool seems to have aquired a non integer SPP offset bug. * src/tool_clone.c: (tool_clone_new): * src/tool_erase.c: (tool_erase_new): * src/tool_library.c: (create_tools): * src/tool_paint.c: (tool_paint_new): 2006-02-14 Øyvind Kolås * src/label.c: (render_text_button): fixed line width for font stroking. * src/tool_library.h: set the active tool upon toolbox creation. 2006-02-14 Øyvind Kolås Harmonized radius sizes, changed default brush. * src/tool.c: (tool_setting_new): Changed default brush. * src/brush.c: (tile_stamp), (canvas_stamp), (canvas_clone_stamp): * src/path.c: (point_dist), (path_stroke): * src/tool_clone.c: (tool_clone_continue): * src/tool_erase.c: (tool_clone_continue): * src/tool_paint.c: (point_dist), (tool_paint_continue): * src/config.h: made MAX_RADIUS include SPP. 2006-02-14 Øyvind Kolås * src/actions.c: (action_undo), (action_redo): Added redo action. 2006-02-14 Øyvind Kolås * src/horizon.c: (main), (eventloop): disabled splash, renamed variables for clarity. 2006-02-14 Øyvind Kolås * src/actions.c: added 'q' binding for Quitting. * src/horizon.c: (create_ui): use viewport_canvas_event, (eventloop): fixed bug walking off key NULL sentinell. * src/viewport.[ch]:(viewport_canvas_event): moved here from horizon.c 2006-02-13 Øyvind Kolås * src/actions.c (NEW): moved user bindable events into a seperate file, also contains a table for keybindings, and a triggering function that accepts the actions name a string. * src/horizon.c: (main), (eventloop): changed accordingly. 2006-02-13 Øyvind Kolås * src/label.[ch]: new widget, a text label, that can be inactive(default) or active. And have a callbackfunction. * src/tool.c: (tool_init), (tool_select), (tool_deselect): * src/tool.h: * src/tool_export.c: (tool_export_export), (tool_export_fill_tool_specific_settings_box): Use label for the button. * src/tool_library.c: (tool_library_create_tool_box), (create_tools), (tools_destroy), (tool_library_set_tool), (tool_select_tool_handler): Use labels for the toolbox icons. * src/tool_library.h: made tool_select_tool_handler private. * src/tool_link.c: (tool_link_fill_tool_specific_settings_box): use labels for the states. * src/tool_link.h: removed deprecated fields. 2006-02-13 Øyvind Kolås * src/horizon.c: (cb_zoom_out): removed debug printf. 2006-02-13 Øyvind Kolås * src/box.c: (box_recalc_sizes), (box_render): made subidivsion always add up to parents extents. 2006-02-13 Øyvind Kolås * src/tool_export.c: Added export tool. * src/tool_library.[ch]: (create_tools), (tools_destroy): initialize and use export tool. 2006-02-13 Øyvind Kolås * src/tool_link.c: (deselect), (tool_link_new): remove rect overlay from viewport when linktool is deselected. 2006-02-13 Øyvind Kolås * src/tool_link.c: (tool_link_continue): Use the 1/3 center of rectangle for moving and the rest of the rectangle for resizing. 2006-02-13 Øyvind Kolås * src/tool.[ch]: (tool_selected), (tool_deselected), (tool_init), (tool_select), (tool_deselect): Added virtual method that are invoked upon selection/deselection of a tool. 2006-02-13 Øyvind Kolås * src/tool_link.c: made state_label static. 2006-02-11 Øyvind Kolås * debian/changelog: updated version to 0.23 * src/config.h: updated version to 0.23 2006-02-10 Øyvind Kolås * src/horizon.c: (eventloop): revert accidental deprecation of zoom buttons. 2006-02-10 Øyvind Kolås Reenabled prefetcher for pan tool. And made canvas_idle be called when there is no user events. * src/canvas.[ch]: (canvas_has_tile), (prefetch), (main_view_refresh), (canvas_idle): Made canvas_idle (and prefetcher) return whether work was performed or not. * src/horizon.c: (cb_zoom_out), (eventloop): * src/tile_cache.[ch]: (tile_cache_wash): return a boolean value on whether any processing was done or not. * src/config.h: increased detail level slightly. * src/tile.c: include config.h to handle treatment of bottlenecking properly. 2006-02-10 Øyvind Kolås * src/canvas.c: (canvas_new), (canvas_get_tile): Made the system cache work again after the coordinate system changes. 2006-02-10 Øyvind Kolås * src/tool.c: (render_text_button): made the fonts of labels readable again after subpixel and radius changes. 2006-02-10 Øyvind Kolås Removed most floating point operations. * src/path.c: (isqrt), (point_dist), (path_stroke): * src/tile_blit.c: (tile_blit_decimate): * src/tool_paint.c: (isqrt), (point_dist), (tool_paint_continue): 2006-02-09 Øyvind Kolås WARNING: the zoomed tiles of horizon becomes incompatible with this change, the highest level data is still available, touching the graphics slighly witha tiny brush,. with a low alpha setting will recalculate correct zoomed versions of the graphics. * src/map.h: Changed meaning of bits in coordinates. * src/config.h: include map.h to get SPP calculated from bit usage definitions. 2006-02-09 Øyvind Kolås * src/brush.c: (brush_line): removed. 2006-02-09 Øyvind Kolås * src/tool.[ch]: removed _ToolSetting->first; * src/tool_clone.h: added ->start_stroke; * src/tool_clone.c: (tool_clone_start), (tool_clone_continue): use the added start_stroke option in the tool. * src/tool_paint.c: (tool_paint_start), (tool_paint_continue): use the new stroke state information to check if we're just starting a line. 2006-02-09 Øyvind Kolås * src/tool_paint.h: Added stroking state information. * src/tool_paint.c: (tool_paint_start), (lerp), (point_dist), (tool_paint_continue): Code duplication from path.c to enable proper spacing when stroking. 2006-02-09 Øyvind Kolås * src/canvas.c: (canvas_fill_rect): properly calculate 0..255 values from 16.16 2006-02-09 Øyvind Kolås * src/tool.c: secondary color was set on the wrong object. 2006-02-09 Øyvind Kolås * src/brush.c: Reverted patch "2006-02-07 Eero Tanskanen " it accesses out of bounds memory. 2006-02-09 Øyvind Kolås * README: removed deprecated information. 2006-02-09 Øyvind Kolås * src/config.h: added (commented out) defines to simulate slow IO and to log tile IO operations to stderr. * src/tile.h: made the tile_inc_rev macro a function. * src/tile.c: (tile_inc_rev): automatically call canvas_add_dirty (), (tile_save), (tile_load): added debug code. * src/brush.c: (canvas_stamp), (canvas_clone_stamp), * src/canvas.c: (canvas_idle), (canvas_write_buf), * src/undo.c: (undo_stack_undo), (undo_stack_redo), * src/scale.c: (scale): removed calls to canvas_add_dirty() 2006-02-09 Øyvind Kolås * src/canvas.c: (canvas_new), (canvas_idle), (canvas_destroy), (canvas_get_tile), (canvas_update_zoom): Added a seperate cache for the system (ui) region of the canvas. * src/config.h: Added a configuration option for size of system cache. * src/tile_cache.c: (tile_cache_destroy): Changed debug wording. 2006-02-08 Øyvind Kolås Released arm-deb snapshot ver 0.22: Change summary: * fixed ui glitches (sliders are in a sane starting state now) ----- * debian/changelog: * src/config.h: Changed version strings. 2006-02-08 Øyvind Kolås * src/tool_clone.c: (tool_clone_process_coordinate), (tool_clone_aim_process_coordinate): Remove subpixel precision from given coordinates. 2006-02-08 Øyvind Kolås * src/tool_pan.c: (update_zoom_slider): removed debugging printf. 2006-02-08 Øyvind Kolås * src/horizon.c: (main): set the pan tool as the active tool after teleporting. * src/tool_pan.c: (update_zoom_slider): new utility function, (tool_pan_thumbnail_render): call update_zoom_slider(), (tool_pan_fill_tool_specific_settings_box): call update_zoom_slider() 2006-02-08 Øyvind Kolås * src/tool.h: Added canvas field. * src/tool.c: (tool_set_viewport): set canvas field when the active viewport changes. Changed the below to use tool->canvas. * src/tool_clone.c: (tool_clone_start), (tool_clone_continue), (tool_clone_set_button_states), (tool_clone_fill_tool_specific_settings_box): * src/tool_erase.c: (tool_erase_fill_tool_specific_settings_box), * src/tool_link.c: (tool_link_continue), (tool_link_set_button_states), (tool_link_fill_tool_specific_settings_box): * src/tool_paint.c: (tool_paint_start), (tool_paint_continue), (tool_paint_fill_tool_specific_settings_box): * src/tool_pan.c: (tool_pan_start), (tool_pan_continue), (tool_pan_fill_tool_specific_settings_box): * src/tool_pick.c: (tool_pick_start), (tool_pick_continue), (tool_pick_fill_tool_specific_settings_box): 2006-02-08 Øyvind Kolås * src/horizon.c: (main_view_event): transform coordinates to canvas coordinates in px with subpixel precision. * src/tool_clone.c: (tool_clone_start), (tool_clone_continue), (tool_clone_aim_process_coordinate): * src/tool_link.c: (tool_link_set_state_dst), (tool_link_set_state_pan), (tool_link_set_state_src), (tool_link_set_state_link), (tool_link_start), (tool_link_continue): * src/tool_paint.c: (tool_paint_start), (tool_paint_continue), (tool_paint_fill_tool_specific_settings_box): * src/tool_pan.c: (tool_pan_start), (tool_pan_continue), (tool_pan_flush): * src/tool_pick.c: (tool_pick_start), (tool_pick_continue): Changed coordinate handling to match new state. 2006-02-08 Øyvind Kolås * src/tool_library.c: (create_tools), * src/tool_pan.c: (tool_pan_new), * src/tool_pan.h: The Panning tool doesn't need a ToolSetting. 2006-02-08 Øyvind Kolås * src/canvas.[ch]:(canvas_outline_box): added (canvas_draw_links): added. (canvas_add_link): added. (canvas_load_links): use canvas_add_link. * src/tool_pan.c: (tool_pan_start), (tool_pan_continue), (tool_pan_process_coordinate): Made pan tool link aware. (tool_pan_fill_tool_specific_settings_box): removed spacing in ui. (tool_pan_new): made short name "Nav" instead of "Pan". * src/tool_link.[ch]: new files, a tool to create links. 2006-02-07 Eero Tanskanen * src/brush.c: (tile_stamp): Optimized tile stamp. Now only goes trough pixels that the brush touches. 2006-02-06 Øyvind Kolås * src/viewport.c: (viewport_refresh): minor fixes, screen to screen blitting still causes tearing. 2006-02-06 Øyvind Kolås * src/tool.c: (tool_setting_get_brush_sliders), (tool_setting_get_color_sliders): force initial update. (tool_setting_changed): removed dead code. * src/tool_erase.c: (tool_erase_fill_tool_specific_settings_box): layout touchup. * src/tool_paint.c: (tool_paint_continue), (tool_paint_process_coordinate): indentation. * src/tool_pick.c: (tool_pick_continue), (tool_pick_process_coordinate): indentation (tool_pick_fill_tool_specific_settings_box): layout touchup. * src/tool_pick.h: indentation fix. * src/slider.c: (slider_new) set initial box to be dirty. 2006-02-06 Øyvind Kolås * src/tool.c: cast to gpointer instead of gint when comparing pointers. 2006-02-06 Øyvind Kolås * src/Makefile: do not generate dependencies for *.h files. 2006-02-06 Øyvind Kolås Released arm-deb snapshot ver 0.21: Change summary: * new clone tool * replaced PNG ui skin, with vector fonts * improved painting accuracy 2006-02-06 Øyvind Kolås * data/ui.png: removed * debian/rules: removed reference to ui.png 2006-02-05 Øyvind Kolås * src/Makefile: Added autogeneration of a .depend file. * src/.cvsignore: Added .depend 2006-02-06 Øyvind Kolås * src/config.h: Added MIN_SPACING of 0.5px * src/path.c: (path_stroke): obey MIN_SPACING 2006-02-05 Øyvind Kolås * src/config.h: Tuned max_radius. * src/horizon.c: (main_view_event): made the code to scale the brush in proportion to zoom level integer overflow tolerant. * src/tool.c: (render_text_button): Improved look of active/unactive states. 2006-02-02 Øyvind Kolås * src/hershey.c: (block_width), (hershey_ascii_path), (hershey_set_size): Take SPP into account. * src/path.c: (path_add), (path_stroke): operate directly on px*SPP values. * src/horizon.c: (splash): take SPP into account. * src/tool.c: (render_text_button), (tool_setting_preview_brush): take SPP into account, 2006-02-02 Eero Tanskanen * src/brush.c: (tile_stamp), (canvas_stamp): Properly works with sub-pixel rendering. * src/horizon.c: (splash): Splash rendering brush radius adjustment. * src/path.c: (path_stroke): bezier interpolation uses sub-pixel precision. * src/tool.c: (tool_setting_new), (tool_setting_get_brush_preview_viewport), (tool_setting_get_color_palette_viewport), (tool_setting_preview_brush), (palette_handler): Uses system area allocator. (tool_setting_slider_handler), (tool_setting_changed): radius is linked with SPP now. * src/tool.h: * src/tool_paint.c: (tool_paint_start), (tool_paint_continue): Now properly paints with sub-pixel precision. 2006-02-02 Øyvind Kolås * src/tool_pick.c: (tool_pick_process_coordinate): 2006-02-02 Øyvind Kolås * src/allocator.[ch]: (canvas_alloc), (allocation_get_x), (allocation_get_y), (allocation_get_width), (allocation_get_height): renamed to canvas_alloc, made structure opaque, addes accessors. * src/box.[ch]: (test_event), (box_init), (box_destroy), (box_split), (box_recalc_sizes), (box_set_viewport), (box_get_child), (box_is_leaf), (box_render), (box_set_event), (box_event), (box_id), (box_lookat), (box_set_child), (box_replace), (box_set_dirty), (box_get_id), (box_set_id): started restructuring of box. * src/map.h: removed coordinates for ui elements. * src/config.h: made TILE_SIZE depend on bits in map.h * src/horizon.c: (main_view_event), (create_ui), (main), (eventloop): * src/tool.c: (render_text_button): added convenience function. * src/slider.c, * src/slider.h, * src/tool.h, * src/tool_clone.c, * src/tool_clone.h, * src/tool_erase.c, * src/tool_library.c, * src/tool_pan.c: Changed to reflect changes. 2006-02-01 Eero Tanskanen * src/brush.c: (tile_stamp): Made code a bit simpler. (tile_clone_stamp), (canvas_clone_stamp): Clone code. * src/brush.h: Clone code. * src/horizon.c: (create_ui), (main), (eventloop): Tugged more tool code to tool_library.c * src/png.c: (horizon_load_png): Supports loading images without alpha channel now. * src/slider.c: (slider_new): Uses system tile allocator. * src/tool.c: (tool_init), (tool_set_toolbox_button), (tool_select), (tool_deselect), (tool_setting_new), (tool_setting_slider_handler): Now creates buttons with tool labels on them. Also uses system tile allocator. * src/tool.h: * src/tool_library.c: (tool_library_create_tool_uis), (tool_library_create_tool_box), (create_tools), (tools_destroy), (tool_library_set_tool), (tool_select_tool_handler): Moved more generic tool handling code here. Added clone tool. * src/tool_library.h: * src/tool_paint.c: (tool_paint_fill_tool_specific_settings_box), (tool_paint_new): Added short tool name. * src/tool_erase.c: (tool_erase_new): Added short tool name. * src/tool_pan.c: (tool_pan_new): Added short tool name. * src/tool_pick.c: (tool_pick_new): Added short tool name. * src/tool_clone.[ch]: Added. * src/allocator.[ch]: Added. Dynamically allocates system tiles. Is dumb. (renamed from system_tile_allocator.[ch] during commit /pippin) 2006-02-01 Øyvind Kolås * src/canvas.[ch]: (canvas_fill_rect): added convenience function. * src/tool.c: (tool_setting_preview_brush): use canvas_fill_rect * src/config.h: updated version string to 0.20 2006-02-01 Øyvind Kolås * src/font.[ch]: removed * src/hershey_glyphs.c: hershey vector stroke font. (new files) * src/hershey.[ch]: font handling. (new file) * src/horizon.c: (main), (splash): Draw some sample text at origo upon startup. 2006-01-31 Øyvind Kolås * src/config.h: added DO_TELEPORT configuration option, default to not doing the teleport. * src/horizon.c: surrounded teleport by ifdef. 2006-01-31 Øyvind Kolås * src/Makefile: added cleantest target which wipes the stored data in /tmp/horizon before doing a test run. * src/canvas.c: removed dead debug code in blank_tile. * src/canvas.h: moved location of tile.h outside canvas to avoid erronous header include loop 2006-01-31 Øyvind Kolås * src/path.[ch]: cleaned up and documented path object. * src/tool.c: use path properly. 2006-01-31 Øyvind Kolås * src/config.h: added #define BEZIER_SEGMENTS 42 * src/path.c: staticification of internal methods. 2006-01-31 Øyvind Kolås Added cairo like path construction API. * src/brush.[ch]: (brush_line): removed, deprecated by: * src/path.[ch]: a stroke able path drawing primitive. * src/tool.c: (tool_setting_preview_brush): use path * src/tool.h: removed gray color. 2006-01-24 Øyvind Kolås * debian/changelog: updated version to 0.20 * src/canvas.c: made prefetcher fetch a bit seldomer. 2006-01-24 Øyvind Kolås * src/horizon.c: (cb_pan_left), (cb_pan_right), (cb_pan_up), (cb_pan_down), (eventloop): * src/viewport.c: (viewport_render_sdl): introduced MIN_TILE_SCALE. * src/canvas.c: (prefetch), (main_view_refresh), (canvas_idle), (canvas_update_zoom): added prefetch handling. 2006-01-24 Øyvind Kolås * src/tool_pan.c: (tool_pan_flush), (tool_pan_zoom_slider), (tool_pan_thumbnail_handler), (tool_pan_thumbnail_render), (tool_pan_fill_tool_specific_settings_box): changed zoom. 2006-01-24 Øyvind Kolås * src/tool_erase.c: (tool_erase_fill_tool_specific_settings_box): changed ui to fit (a bit intrusive changes). 2006-01-24 Øyvind Kolås * src/brush.c: (canvas_stamp): set a maximum paint radius. * src/config.h: 2006-01-24 Øyvind Kolås * src/tile_cache.c: (tile_cache_destroy), (tile_cache_get_tile): optimized cache handling (reimplementing special cased glib slist). 2006-01-24 Øyvind Kolås * src/tile_blit.c: (tile_blit): force more frequent usage of tile_blit 2006-01-20 Øyvind Kolås * src/canvas.[ch]: (canvas_store_tile) removed unneeded arguments. * src/tile.c: (tile_unref) * src/tile_cache.c: (tile_cache_wash) 2006-01-20 Øyvind Kolås Moved caching logic to seperate files. * src/canvas.c: (canvas_new), (canvas_idle), (canvas_destroy), (canvas_get_tile): * src/tile_cache.[ch]: (tile_cache_new), (tile_cache_destroy), (tile_cache_wash), (compare), (tile_cache_get_tile), (tile_cache_insert): 2006-01-20 Øyvind Kolås * src/Makefile: changed parameters passed in test target 2006-01-19 Øyvind Kolås * debian/changelog: Version bumped to 0.19 2006-01-18 Øyvind Kolås Added link class, and loading/saving of spatial links to the canvas. UI integration and teleporting will be the next stage. * src/link.[ch]: new class to contain information about spatial hyperlinks. * src/canvas.[ch]: (canvas_destroy), (canvas_load_links), (canvas_save_links), (canvas_get_link): Implemented loading and saving of links. * src/horizon.c: (main): make canvas load/save links (should be moved into a function to initialize the canvas). 2006-01-18 Øyvind Kolås * src/viewport.c: (pre_zoom), (post_zoom): Fixed width/height mixup. 2006-01-17 Øyvind Kolås * src/viewport.c: (viewport_refresh): Do a full repaint if the viewport is dirty. 2006-01-16 Øyvind Kolås * src/tool_pan.c: (tool_pan_thumbnail_render): indicate active box by using the box overlay. * src/viewport.[ch]: (viewport_get_box): added method. 2006-01-16 Øyvind Kolås * src/viewport.[ch]: (viewport_new), (viewport_destroy), (dim_tile), (viewport_render_sdl), (viewport_is_dirty), (viewport_add_rect), (viewport_set_rect_visible), (viewport_set_rect_x), (viewport_set_rect_y), (viewport_set_rect_width), (viewport_set_rect_height), (viewport_set_rect_border_px), (viewport_set_rect_color), (viewport_set_rect_border_color), (viewport_set_rect_surround_color): Added an overlay rectangle to the viewport, to be used for hyperlinking, export/import functionality as well as copying of regions within the canvas. 2006-01-15 Øyvind Kolås * src/png.c: (horizon_save_png): set compression level of saved pngs to 1, hoping to improve user perceived speed. * src/tile.c: (tile_save): removed g_printf * src/box.c: (handle_pressure): return FALSE in default handler. * src/brush.c: (tile_stamp): corrected limit value of opacity to 65536. 2006-01-15 Øyvind Kolås * src/canvas.[ch]: (canvas_cache_debug), (canvas_cache_wash), (canvas_idle), (canvas_destroy), (canvas_store_tile), (canvas_update_zoom): Added canvas_idle function that implements a cache washing scheme saving a single tile to disk if there is a dirty tile in the 20% least recently used tiles Also added some more cache instrumentation. * src/config.h: added CANVAS_CACHE_WASH_PERCENTAGE 20 * src/horizon.c: (main): improved skin loading logic, (eventloop): make use of canvas_idle, 2006-01-13 Øyvind Kolås * debian/changelog: bump version to 0.17 * src/horizon.c: (eventloop): handle expose events 2006-01-13 Eero Tanskanen * src/brush.c: (tile_stamp): Further optimization. * src/tile_blit.c: (tile_blit_decimate): Fixed rounding errors. * src/tool_pan.c: (tool_pan_zoom_slider): Locks now to 4x,2x,1x zoom. 2006-01-13 Øyvind Kolås * src/config.h: added ZOOM_MAX and ZOOM_MIN * src/horizon.c, (cb_zoom_in), (cb_zoom_out) * src/tool_pan.c: (tool_pan_zoom_slider): use ZOOM_MAX and ZOOM_MIN 2006-01-13 Øyvind Kolås * debian/changelog: * src/canvas.c: (canvas_update_zoom): * src/config.h: * src/horizon.c: (cb_zoom_in), (cb_zoom_out): * src/png.c: (horizon_save_png): 2006-01-13 Øyvind Kolås * src/canvas.c: (canvas_update_zoom): reduce amount of tiles needed,. by a factor 4 in the best case scenario. 2006-01-13 Øyvind Kolås * src/scale.c: (downscale), (scale): Rewrote to make it easier not referencing unneeded tiles. 2006-01-13 Øyvind Kolås * debian/changelog: bumped version to 0.16 2006-01-12 Eero Tanskanen * src/tile_blit.c: (tile_blit_native), (tile_blit_decimate), (tile_blit_interpolate), (tile_blit): Optimized tile_blitting. tile_blit_interpolate now uses tile_blit_decimate's code. 2006-01-12 Eero Tanskanen * src/brush.c: (tile_stamp): Optimized a bit. (canvas_stamp): Made a bit cleaner. 2006-01-12 Eero Tanskanen * src/tile_blit.c: (tile_blit_native), (tile_blit_decimate), (tile_blit_interpolate), (tile_blit): Optimized tile_blitting. tile_blit_interpolate now uses tile_blit_decimate's code. 2006-01-12 Øyvind Kolås * src/slider.c: (slider_render): * debian/changelog: bumped version to 0.15 2006-01-12 Øyvind Kolås * src/brush.c: (brush_line): Improved line. * src/tool.c: (tool_setting_preview_brush): Improved brush preview. * src/Makefile: Revert mistake in previous commit. 2006-01-12 Øyvind Kolås * src/brush.c: (brush_line): * src/tool.c: (tool_setting_preview_brush): * src/Makefile: (oops -O3) 2006-01-12 Øyvind Kolås * debian/changelog: version 0.14 2006-01-12 Øyvind Kolås * src/box.c: (box_replace_child): set dirty ,(box_replace): use box_replace_child ,(box_set_dirty): make recursive * src/config.h: set max opacity back to 65536*1.0 * src/slider.c: (slider_render): clear background on each redraw. * src/tool.c: (tool_setting_slider_handler), (tool_setting_changed): set sliders for tool. (tool_setting_get_brush_sliders): (tool_setting_get_color_sliders): 2006-01-11 Eero Tanskanen * src/slider.c: (slider_clear_background), (slider_clear_old), (slider_render), (slider_handler), (slider_new), (slider_get_orientation), (slider_set_primary_color), (slider_set_secondary_color), (slider_set_background_color): Slider rendering changes. Still a bit buggy, but fixing would require some box_size_changed -virtual func. * src/slider.h: Added some defines for everyone's fun & profit. * src/tool.c: (tool_setting_slider_handler), (tool_setting_get_color_sliders): Color sliders have been made more informative. 2006-01-11 Øyvind Kolås * src/tool.c: (render_palette): removed unneded canvas_read_buf. 2006-01-11 Øyvind Kolås * data/ui.png: Reduced size of skin, to shorten startup time. * src/slider.c: temporary fix for rendering of sliders,. stamp a big white circle when erasing. 2006-01-11 Øyvind Kolås * src/tool_pan.c: (tool_pan_flush), (tool_pan_thumbnail_handler), (tool_pan_fill_tool_specific_settings_box), (tool_pan_new): * src/tool_pan.h: Make pan tool teleport, and abstain from teleporting multiple times until the location has settled. 2006-01-11 Øyvind Kolås * src/slider.c: (slider_new): Fix bit operation done on orientation check. 2006-01-10 Øyvind Kolås * src/brush.c: better handling of small brush sizes. * src/tool_paint.c: make stroke seperation delay larger (was 10ms). * src/box.c: bail out if the inside of a box was not hit by stylus. * src/horizon.c: set the ratio in the toolbox to make tool icons <=64x64px, set window tile to "horizon". * src/tool.[ch]: render a slightly better palette using a linear buffer. 2006-01-10 Øyvind Kolås * debian/changelog: * src/tool_pan.c: (tool_pan_start): Do not color pick with the pan tool. 2006-01-10 Øyvind Kolås * src/tool_pan.c: (tool_pan_thumbnail_handler), (tool_pan_fill_tool_specific_settings_box): Teleport to pressed location. 2006-01-10 Øyvind Kolås * src/slider.c: (slider_clear_old), (slider_render): Take subpixel positioning into account for centering. * src/tool_pan.c: (tool_pan_fill_tool_specific_settings_box): Make better use of current real estate, horizon slider. 2006-01-10 Øyvind Kolås * src/viewport.[ch]: (viewport_new): removed unused width/height arguments. * src/box.c: (box_lookat): * src/horizon.c: (eventloop): * src/tool.c: (tool_setting_get_brush_preview_viewport), (tool_setting_get_color_palette_viewport): * src/tool_pan.c: (tool_pan_fill_tool_specific_settings_box): 2006-01-10 Øyvind Kolås * src/undo.c: (undo_stack_add_tile): Do not stor non user tiles in undo. 2006-01-10 Øyvind Kolås * src/box.c: (box_init), (box_render), (box_set_handler), (box_set_render), (box_handle_pressure), (box_replace), (box_set_dirty): Maybe dirtyness really belongs with the box. * src/box.h: * src/horizon.c: (main): * src/slider.c: (slider_render), (slider_handler), (slider_new), (slider_set_value), (slider_set_orientation): * src/tool.c: (tool_setting_get_brush_preview_viewport), (tool_setting_get_brush_preview), (tool_setting_slider_handler), (tool_setting_changed), (tool_setting_preview_brush): Make slider only redraw when it is supposed to. * src/tool.h: * src/tool_pan.c: (tool_pan_zoom_slider), (tool_pan_thumbnail_render), (tool_pan_fill_tool_specific_settings_box): Link thumbnail to main view in render handler. * src/viewport.c: (viewport_refresh): 2006-01-09 Øyvind Kolås * AUTHORS: Added Eeero Tanskanen. 2006-01-09 Eero Tanskanen * src/box.c: (box_init), (box_new): Divided so that classes can be derived more easily fro Box. (box_recalc_sizes): Marks viewport as dirty now. (box_replace_child), (box_replace) * src/box.h: Moved Box struct to .h so it can be used in derived classes (like slider). * src/config.h: * src/horizon.c: (canvas_handler), (toolbox_set), (create_ui), (main), (eventloop), (tool_select_tool_handler): New ways to handle tools changed a lot of code here. Some of code moved to tool_*.c * src/map.h: * src/tool.c: (tool_set_viewport), (tool_init), (tool_new), (tool_destroy), (tool_process_coordinate), (tool_flush), (tool_reset), (tool_set_toolbox_button), (tool_select), (tool_deselect), (tool_get_settings_box), (tool_with_brush_init), (tool_with_brush_set_toolsetting), (tool_with_brush_get_toolsetting), (tool_with_brush_destroy), (tool_setting_new), (tool_setting_ref), (tool_setting_unref), (tool_setting_get_brush_preview_viewport), (tool_setting_get_brush_sliders_viewport), (tool_setting_get_color_palette_viewport), (tool_setting_get_color_sliders_viewport), (tool_setting_get_brush_preview), (tool_setting_slider_handler), (tool_setting_get_brush_sliders), (tool_setting_get_color_palette), (tool_setting_get_color_sliders), (tool_setting_changed), (tool_setting_preview_brush), (render_palette), (palette_handler): Tools a LOT more abstract now. Now they don't neccessary share settings and each tool has it's own tool settings. All tool specific code moved to tool_*.c * src/tool.h: * src/viewport.c: (viewport_new), (viewport_set_box), (viewport_refresh), (viewport_set_dirty): Added ability for viewport to be dirty. * src/viewport.h: * src/tool_library.c: Stores all the instances of tools. * src/tool_library.h: * src/tool_pan.c: Now shows thumbnail view and has zoom slider. * src/tool_pan.h: * src/tool_paint.c: * src/tool_paint.h: * src/tool_pick.c: Now has color picker sliders. * src/tool_pick.h: * src/tool_erase.c: Now has separate settings from paint-tool. * src/tool_erase.h: * src/brush.c: Painting specific functions moved here. Future of this file's existance uncertain. * src/brush.h: * src/slider.c: Derived from Box (also works as one). * src/slider.h: 2006-01-09 Øyvind Kolås * debian/changelog: new revision 0.12 * src/teleport.[ch]: new files, with teleporting functionality. * src/box.c: (box_render): * src/box.h: * src/canvas.c: (canvas_store_tile): store system area as well (ui _was_ disappearing) * src/horizon.c: (cb_zoom_in), (cb_zoom_out), (create_ui), (save_position), (restore_position), (main), (eventloop): * src/viewport.c: (viewports_flush), (viewport_set_y), (pre_zoom), (post_zoom), (viewport_set_center_x), (viewport_get_center_x), (viewport_get_center_y), (viewport_set_center_y), (viewport_set_center_scale), (viewport_refresh): Fixed refresh problems as well as added center based accesor functions (beware, order does matter when setting, set x and y after scale when using center. * src/viewport.h: * src/config.h: tuning of defaults: Also: stripped away passing of SDL_Surface *screen, use SDL_GetVideoSurface() instead. 2006-01-08 Øyvind Kolås * src/config.h: * src/horizon.c: (cb_zoom_in), (save_position), (restore_position), (main): 2006-01-08 Øyvind Kolås * src/box.c: (box_set_viewport), (box_lookat): Tighter coupling with viewport * src/box.h: Include shuffle * src/config.h: Moved zoomfactor to config file, and set a larger step. * src/horizon.c: (cb_zoom_out): new max zoom out level. (main) do not export a "random region" when quitting. * src/viewport.h: added viewport_set_box() method * src/viewport.c: reenabled screen to screen blits. 2006-01-08 Øyvind Kolås Note: this change might only apply at exit, revert or do it differently if ui pixmaps starts disappearing. * src/canvas.c: (coord_is_user), (canvas_store_tile): Only store user tiles when exiting. * src/tile.c: (tile_save): added debug printf when saving tiles. 2006-01-04 Øyvind Kolås * debian/changelog: new version 0.11 * src/horizon.c: (cb_zoom_out): set limit at where the current subdivision level doesn't work anymore. 2006-01-04 Øyvind Kolås Made viewport adapt to new mimapping that is available, faster more extreme zoom arrives. * src/canvas.c: (canvas_destroy), (canvas_get_tile), (blank_tile): * src/config.h: * src/horizon.c: (cb_zoom_out), (main), (eventloop): * src/map.h: * src/scale.c: (scale): * src/undo.c: (undo_stack_undo), (undo_stack_redo): * src/viewport.c: (viewport_refresh_sdl): 2006-01-04 Øyvind Kolås Added automatic mipmap updates upon dirying the canvas. (currently 4 levels). * src/canvas.c: (contains), (canvas_is_dirty), (canvas_write_buf), (canvas_update_zoom): * src/canvas.h: * src/config.h: * src/horizon.c: (main), (eventloop): * src/map.h: * src/viewport.c: (old_viewport_refresh_sdl), (viewport_refresh_sdl): 2006-01-03 Øyvind Kolås Version 0.10 Improved default tool states, made horizon start in windowed mode, with cursor and opening the specified path as the horizon. (makes horizon also work well on a PC,. and allows browsing the horizon on the mmc from a host computer. * README: Added information about commandline parameters. * src/Makefile: removed dependency on Xsp * src/canvas.c: (canvas_add_dirty), (canvas_is_dirty), (make_id), (canvas_save), (blank_tile): cleanups, made blank tile be white. (canvas_write_buf), (canvas_read_buf): new functions for importing/exporting linear buffers from canvas. (canvas_region_aquire), (canvas_region_release): stubs for new functions. * src/canvas.h: Stubs for new methods. * src/config.h: removed USE_FULLSCREEN reduced CANVAS_CACHE to 15mb, added MAX_RADIUS * src/horizon.c: (slider_set), (sliders_update_brush), (sliders_update_color), (palette_handler), (radius_handler), (opacity_handler), (hardness_handler), (toolbox_set), (cb_set_tool_paint), (cb_set_tool_pick), (cb_set_tool_pan), (cb_set_tool_erase), (create_ui), (main), (eventloop): Ui stabilization, needs to be redone when the internal toolkit works OK. * src/map.h: Added plans for coordinate system. Added some macros for extracting different information from coordinate system. * src/stylus.c: (stylus_set_calibration): commented out #define USE_XSP * src/tile.c: (tile_save), (tile_load): better error handling use png.h. * src/tool.c: (canvas_stamp), (brush_line), (preview_brush), (preview_brush_pick), (preview_brush_pan), (preview_brush_erase), (tool_new), (tool_paint), (tool_pan_start), (tool_pan), (tool_pick_start), (tool_pick), (tool_process_coordinate), (tool_flush): Make default behavior of tools better. * src/tool.h: * src/viewport.c: (viewport_get_offset_x), (viewport_get_offset_y), (viewport_refresh_sdl): Improved redraw handling. 2006-01-02 Øyvind Kolås New release 0.9,. not commited to CVS yet due to connectivity problems. 2006-01-01 Øyvind Kolås * src/box.c: stylus grab. 2005-12-31 Øyvind Kolås * src/Makefile: added ui. 2005-12-31 Øyvind Kolås * src/stylus.c: commented out #define USE_XSP * src/Makefile: removed -lxsp 2005-12-30 Øyvind Kolås * src/tool.c: make pick tool also simultanously work as a pan tool. 2005-12-30 Øyvind Kolås * debian/changelog, * src/config.h: new version 0.8 2005-12-30 Øyvind Kolås * debian/changelog, * src/config.h: new version 0.7 * src/canvas.c: (canvas_write_buf): dirty tiles. * src/horizon.c: (main): use ui data from /media/mmc1/horizon/ui.png * src/map.h: new locations that place ui things away from default view. * src/tile.c: (tile_save), (tile_load): use png convenience functions. * src/png.[ch]: new file with canvas_import_png, canvas_export_png and the png reading/writing stubs. 2005-12-30 Øyvind Kolås * src/canvas.[ch]: (canvas_read_buf) and (canvas_write_buf): functions to exchange data between linear buffers and the canvas. 2005-12-30 Øyvind Kolås * src/tile_blit.[ch]: Added copyright information. 2005-12-30 Øyvind Kolås * src/tile.[ch]: moved blitting into ... * src/tile_blit.[ch]: ... new files. * src/canvas.c, * src/viewport.c: Changed accordingly. 2005-12-30 Øyvind Kolås * src/tile.[ch]: removed #if 0'd out blit revision code. 2005-12-30 Øyvind Kolås * src/Makefile: Turned on optimizations (-O2) * src/box.c: (box_render): only recurse if dimension of childbox > 0 * src/horizon.c: (eventloop): Use viewports_flush. * src/tile.c: remove FIXME * src/tool.c: (tool_paint_flush), (tool_pan): Set parameters on the view. Instead of using removed pan - method of viewports. * src/viewport.h, * src/viewport.c: (viewports_flush:), (viewport_refresh_sdl): Keep track of dirtied region in viewport wide static data. 2005-12-30 Øyvind Kolås * src/horizon.c: Make affected radius similar to radius used in brush preview. 2005-12-30 Øyvind Kolås * src/horizon.c: (cb_zoom_in), (cb_zoom_out): snap zoom back to 100% if nearby. 2005-12-30 Øyvind Kolås * src/box.c: (box_render): Do not fill boxes. * src/canvas.[ch]: (canvas_add_dirty), (canvas_flush_dirty), (canvas_is_dirty), (canvas_new), (canvas_save): Implemented a list of dirties tiles. * src/tool.c: (canvas_stamp): Tell canvas to add a tile to it's dirtylist. * src/viewport.c: viewport_new), (viewport_refresh_sdl): Use dirtyness information from canvas when possible. * src/undo.c: dirty canvas upong undo/redo. 2005-12-30 Øyvind Kolås * src/map.h: new file, containing element coordinates. * src/config.h: remove SYS_X and SYS_Y * src/horizon.c: (trigger_render_colors), (palette_handler), (radius_handler), (opacity_handler), (hardness_handler), (toolbox_set), (create_ui): use constants from map.h For now the ui elements are taken from around the origin, this will change (as might the starting location). 2005-12-30 Øyvind Kolås * .cvsignore, * src/.cvsignore, * debian/.cvsignore: added CVS ignore files. 2005-12-30 Øyvind Kolås * src/horizon.c: (main): Do not do own calibration. * src/config.h: removed CALIBRATION_FILE define. * src/stylus.c: (stylus_set_calibration): decode pointercal * src/stylus.h: hard deprecation of calibration string getter. * src/stylus-calibrate.[ch]: removed, since horizon now can decode /etc/pointercal 2005-12-30 Øyvind Kolås * src/config.h: * src/horizon.c: (main): * src/stylus.c: (stylus_set_calibration): * src/stylus.h: 2005-12-29 Øyvind Kolås * src/stylus.c: (stylus_process_xmotion): fixed error in wrap coordinates to window. 2005-12-29 Øyvind Kolås * src/stylus.c: flush command to make sure the tablet is in a sane state. * src/horizon.c: argc>1 => windowed mode 2005-12-29 Øyvind Kolås * src/horizon.c.swp: accidently imported file, removed. * .exrc: accidently imported file, removed. 2005-12-29 Øyvind Kolås * src/canvas.[ch]: made canvas_pick_use guint pointerss. 2005-12-29 Øyvind Kolås Initial public source release, "Horizon 0.6 - infinite investigations". A scribble, paint and notes visual information storage and manipulation enviroment. Features: - Zoom and pan in unbounded canvas, opaque and translucent paint. - Multistep undo. - Soft and hard brush. - Data storage on mmc card, multiple mmc cards = multiple canvases. 2005-12-27 Øyvind Kolås Revision handling for blitted tiles removed, a temporary performance regression, screen to screen blitting temporarily not used. 2005-12-27 Øyvind Kolås Added GPL copyright information to files.