[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-kimageshop
Subject:    Krita source reorganization
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2005-09-28 11:03:57
Message-ID: 200509281304.05386.boud () valdyas ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


I've touched on this topic before, but now I've also done a little work: make 
a table of everything in sdk, core and ui and determine what should go where.

Basically, I propose four shared libraries:

libkritasdk
libkritaui
libkrita
libkritapart

The sdk and ui library can be used by plugins: they contain interfaces a 
plugin should implement, and interfaces for classes the krita application and 
image handling library provides. Libkrita should be(come) a reusable library 
for handling layered raster images. Libkritapart is the koffice application 
and includes the canvas and event handling.

This is just a re-ordering of header files. When implementing this proposal we 
will have to create more header files with just abstract classes and more 
kis_xxx_impl classes.

What's important here is: have I misplaced something, and what needs to be 
added.

I want to hide the various registry classes behind one registry that uses a 
resource type as an extra parameter (but how do I create a global static that 
everyone can access, or rather, where do I do that? In the sdk I guess), and 
a factory to make it possible to create paint devices and layers and so on, 
also in an extensible fashion. I'm wondering whether it would be desirable to 
make it possible for plugins to create new paint device types.

Here's the redistribution of our core and ui classes:

sdk (helper classes)
	sdk/kis_id.h
	sdk/kis_global.h
	sdk/kis_composite_op.h
	core/kis_rect.h
	core/kis_cursor.h
	core/kis_integer_maths.h
	core/kis_vec.h
	core/kis_point.h
	core/kis_shared_ptr_vector.h
	core/kis_matrix.h
	core/kis_boundary.h
	core/kis_config.h
	core/kis_types.h
	core/kis_registry.h (new)

sdk/core
	image/ (implemented by libkrita)
		sdk/kis_paint_device_factory.h
		sdk/kis_channelinfo.h
		sdk/kis_paint_device.h
		core/kis_color.h
		core/kis_fill_painter.h
		core/kis_convolution_painter.h
		core/kis_gradient_painter.h
		core/kis_painter.h
		core/kis_layer.h
		core/kis_histogram.h
		core/kis_histogram_producer.h
		core/kis_pixel.h
		core/kis_image.h
		core/kis_iterators_pixel.h
		core/kis_selection.h
		core/resources/kis_palette.h
		core/resources/kis_profile.h
		core/resources/kis_resource.h
		core/resources/kis_gradient.h
		core/resources/kis_resourceserver.h
		core/resources/kis_brush.h
		core/resources/kis_pattern.h
		ui/kis_resource_mediator.h
		core/kis_selected_transaction.h

	ui/ (implemented by kritapart)
		sdk/kis_canvas_subject.h
		sdk/kis_canvas_controller.h
		sdk/kis_undo_adapter.h
		ui/kis_progress_display_interface.h


sdk/plugins (interface implemented by plugins and base classes extended by 
plugins)
	/api
		core/tool/kis_tool.h
		core/kis_filter.h
		core/paintop/kis_paintop.h
		sdk/kis_colorspace.h
		sdk/kis_canvas_observer.h
	/bases
		core/color_strategy/kis_f32_base_colorspace.h
		core/color_strategy/kis_f16half_base_colorspace.h
		core/color_strategy/kis_abstract_colorspace.h
		core/color_strategy/kis_u16_base_colorspace.h
		core/color_strategy/kis_u8_base_colorspace.h
		core/tool/kis_tool_shape.h
		core/tool/kis_tool_paint.h
		core/tool/kis_tool_freehand.h
		core/tool/kis_tool_non_paint.h


libkritaui (widgets that are useful only within Krita)
	ui/kis_color_cup.h
	ui/kis_multi_bool_filter_widget.h
	sdk/kis_filter_config_widget.h
	ui/kis_previewdialog.h
	ui/kis_multi_integer_filter_widget.h
	ui/kis_cmb_composite.h
	ui/kis_progress_subject.h
	ui/kis_cmb_idlist.h
	ui/kis_previewview.h
	ui/kis_selection_options.h
	ui/kis_iconwidget.h
	ui/kis_matrix_widget.ui.h
	ui/kis_multi_double_filter_widget.h
	ui/kis_paintop_box.h


libkritapart (the gui (a koffice part) with all dialogs. Contains 
implementations also of sdk/core/ui)
	core/kis_factory.h
	ui/kis_dlg_progress.h
	ui/kis_dlg_preferences.h
	ui/kis_pattern_chooser.h
	ui/kis_dlg_transform.h
	ui/kis_dlg_image_properties.h
	ui/kis_gradient_chooser.h
	ui/kis_dlg_layer_properties.h
	ui/kis_dlg_new_layer.h
	ui/kis_dlg_create_img.h
	ui/kis_brush_chooser.h
	ui/kis_label_zoom.h
	core/kis_event.h
	core/kis_double_click_event.h
	core/kis_button_press_event.h
	core/kis_button_release_event.h
	core/kis_button_event.h
	core/kis_move_event.h
	kis_canvas.h
	kis_doc.h
	kis_view.h
	ui/kis_label_progress.h
	core/kis_aboutdata.h
	ui/kis_label_cursor_pos.h
	ui/kis_autobrush.h
	ui/kis_autogradient.h
	ui/kis_itemchooser.h
	core/kis_tool_manager.h
	core/kis_selection_manager.h
	core/kis_filter_manager.h
	core/kis_part_layer.h
	core/kis_command.h
	core/kis_clipboard.h

	
libkrita (the layered raster image manipulation library, should be reusable, 
          contains also implentations of sdk/core/image)

	core/color_strategy/kis_basic_histogram_producers.h
	core/color_strategy/tests/kis_color_conversions_tester.h
	core/color_strategy/kis_xyz_colorspace.h
	core/color_strategy/kis_color_conversions.h
	core/color_strategy/kis_alpha_colorspace.h
	core/resources/kis_imagepipe_brush.h
	core/resources/kis_autogradient_resource.h
	core/resources/kis_autobrush_resource.h
	core/resources/kis_alpha_mask.h
	core/tests/kis_image_tester.h
	core/tests/kis_integer_maths_tester.h
	core/tiles/kis_tileddatamanager.h
	core/tiles/kis_datamanager.h
	core/tiles/kis_tilemanager.h
	core/tiles/tests/kis_tiled_data_tester.h
	core/tiles/kis_tile.h
	core/tiles/kis_tilediterator.h
	core/tiles/kis_memento.h
	core/tiles/kis_iterator.h
	core/tiles/kis_tile_global.h
	core/kis_paint_device_impl.h
	core/tool/kis_tool_factory.h
	core/tool/kis_tool_dummy.h
	core/tool/kis_tool_controller.h
	core/kis_transform_visitor.h
	core/kis_scale_visitor.h
	core/kis_background.h	
	core/visitors/kis_merge.h
	core/visitors/kis_flatten.h
	core/kis_iteratorpixeltrait.h
	core/kis_rotate_visitor.h
	core/kis_nameserver.h
	core/kis_paint_device_visitor.h
	core/kis_iterator_proxy.h
	core/kis_transaction.h
	core/kis_filter_strategy.h
	core/strategy/kis_strategy_move.h
	core/kis_annotation.h
	core/paintop/kis_paintop_registry.h
	core/kis_filter_registry.h
	core/color_strategy/kis_colorspace_factory_registry.h
	core/tool/kis_tool_registry.h
	sdk/kis_generic_registry.h 

kofficeui (widgets useful for all of koffice)
	ui/kis_histogram_view.h
	ui/kis_double_widget.h
	ui/kis_hsv_widget.h
	ui/kis_layerbox.h
	ui/kis_rgb_widget.h
	ui/kis_dlg_apply_profile.h
	ui/kis_controlframe.h
	ui/kis_palette_widget.h
	ui/kis_ruler.h
	ui/kis_icon_item.h
	ui/kis_birdeye_box.h
	ui/kis_guide.h
	ui/kcurve.h
	ui/kis_gradient_slider_widget.h
	ui/kis_gray_widget.h
	ui/kis_colorwheel.h
	ui/kobirdeyepanel.h
	ui/kis_previewwidget.h

-- 
Boudewijn Rempt 
http://www.valdyas.org/fading/index.cgi

[Attachment #5 (application/pgp-signature)]

_______________________________________________
kimageshop mailing list
kimageshop@kde.org
https://mail.kde.org/mailman/listinfo/kimageshop


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic