Commit Graph

18 Commits

Author SHA1 Message Date
Alexander Larsson
d77144614b Divide size by 2, not multiply.
2000-12-04  Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkfont-fb.c (gdk_text_width): Divide size by 2, not
	multiply.

	* gdk/linux-fb/gdkpango-fb.c:
	Copied some 26.6 scaling macros from pango to clean up the rounding.
	(pango_fb_font_get_glyph_info): Correct sign on x value.

	* gdk/linux-fb/gdkprivate-fb.h:
	Removed unreferenced external functions.

	* modules/linux-fb/Makefile.am: Use ` instead of '.

	* modules/linux-fb/basic.c:
	Remove dead code. In particular the dummy lang engine which broke all
	pango layouts in GtkFB. Don't include tables-big.i anymore.

	* modules/linux-fb/tables-big.i:
	Upgrade to latest version from pango. Left for reference, basic_ranges
	moved to basic.c.
2000-12-04 17:59:43 +00:00
Alexander Larsson
b1b6c9fc7a Set the size of the font from the description. (gdk_text_width): Gross
2000-11-29  Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description):
	Set the size of the font from the description.
	(gdk_text_width): Gross hack that calculates the width
	of text by text_length * size/2. This is necessary because
	GtkLabel does some ugly gtk_string_width call to calculate
	an good size.
	(linux-fb/gdkprivate-fb.h): Removed unused field FT_Face.
2000-11-29 13:49:37 +00:00
Alexander Larsson
7f8a4aa1c3 Fix filled arcs and commit previous stuff which i somehow missed. 2000-11-28 15:38:23 +00:00
Alexander Larsson
26b7063388 Implement configure events and correct enter/leave notification. 2000-11-28 08:44:02 +00:00
Alexander Larsson
1c805555ce Huge GtkFB patch with lots of small bugfixes and initial selections implementation.
2000-11-23  Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkselection-fb.c:
	Initial selection implementation.

	* gtk/gtkselection.c:
	if GDK_WINDOWING_FB defined, include linux-fb/gdkfb.h and look up
	requestor in gtk_selection_request.

	* gdk/linux-fb/gdkfb.h, gdk/linux-fb/gdkglobals-fb.c:
	Added gdk_selection_property atom.

	* gdk/linux-fb/gdkprivate-fb.h:
	Export _gdk_selection_window_destroyed.
	Removed mask_off_x/y from GdkCursorPrivateFB.
	Removed hbearing, added top, left to PangoFBGlyphInfo.

	* gdk/linux-fb/gdkwindow-fb.c (_gdk_windowing_window_destroy):
	Call _gdk_selection_window_destroyed
	(_gdk_windowing_window_init): Don't call gdk_cursor_new() before
	the root window has been created.
	(static_dx_hack, static_dy_hack, compare_draw_rects,
	gdk_fb_window_move_resize): Remove unnecessary sort of rectangles
	in region. They are already sorted. Instead just traverse them in
	reverse if draw_direction < 0.

	* gdk/linux-fb/gdkinput-ps2.c (send_button_event):
	Double-clicks must be sent after the normal button_press.
	(gdk_fb_cursor_unhide): Remove usage of mask_off_x/y. Clean up.

	* gdk/linux-fb/gdkgeometry-fb.c (gdk_window_scroll):
	Pass _gdk_fb_screen_gc instead of NULL.

	* gdk/linux-fb/gdkmain-fb.c (_gdk_windowing_init_check):
	Initialize gdk_selection_property.
	(gdk_event_make): Remove unused code.

	* gdk/linux-fb/gdkcursor-fb.c:
	Make the pixmap for the cursor the same size as the mask. Also remove
	the mask_off_x/y fields in GdkCursorPrivateFB and combine
	_gdk_cursor_new_from_pixmap() and gdk_cursor_new_from_pixmap()
	Now the whole cursor is visible.

	* gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_drawable_3):
	Fix bug where xdest+height instead of ydest+height was used
	to calculate if the source and dest overlapped. This fixes the
	redraw bug when the main window in testgtk was scrolled when
	partially covered by a tall window.
	Copy rectangles in region in order depending on draw_direction.
	Also moved the draw_direction flipping of start_y and end_y into
	the gc functions, as this might not be what all of them want.
	(gdk_fb_draw_lines): Support dashed lines.
	(gdk_fb_draw_glyphs): Clean up glyph placement. Also fix positioning
	so that the text is positioned correctly (was 1 pixel high).

	gdk/linux-fb/gdkgc-fb.c:
	Initialize cap_style to GTK_CAP_BUTT. This fixes a problem where
	all lines were drawn a pixel to short. Also checked the default of
	the rest of the values, and they're the same as X now.

	* gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_glyph_info):
	Clean up pixel positioning of the glyphs. Just use bgy->top and
	bgy->left. Also used PANGO_PIXEL where appropriate and added 0.5
	to all divisions to get correct rounding behaviour.

	* gdk/linux-fb/gdkrender-fb.c (gdk_fb_draw_drawable_generic,
	gdk_fb_draw_drawable_memmove, gdk_fb_draw_drawable_aa_24):
	Moved start_y/end_y flip into draw_drawable implementations.
	Flip also x rendering when draw_direction < 0.
	Remove unneccesary multiply with draw_direction.
2000-11-25 15:44:35 +00:00
Alexander Larsson
5b4c8afa7e i2000-11-22 Alexander Larsson <alexl@redhat.com>
* gdk/gdktypes.h:
	Add new type GdkSpan

	* docs/reference/gdk/gdk-sections.txt,
	docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c,
	gdk/gdkregion.h:
	Implement and document gdk_region_spans_intersect_foreach.

	* gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c:
	Add new file gdkrender-fb.c which contains all core
	rendering code.
	Add gdk_fb_fill_rectangle_generic (old rectangle code) and
	gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32
	(optimized rectangle fillers).

	* gdk/linux-fb/gdkdrawable-fb2.c:
	Move all rendering code to gdkrender-fb.c.
	Change from using GdkRectangles and GdkSegments for spans to GdkSpan.
	Use the new span intersection functions in gdk_fb_fill_spans.
	gdk_fb_draw_rectangle() clips filled rectangles and calls
	gc->fill_rectangle with the result.
	gdk_fb_fill_spans() gets extra argument "sorted".

	* gdk/linux-fb/gdkevents-fb.c:
	Remove unused includes and defines.
	New function gdk_fb_get_time() to get correct time for events.

	* gdk/linux-fb/gdkinput-ps2.c:
	Use gdk method of generating multiple-clicks (gdk_event_button_generate)
	Make sure to set the time of all events.

	* gdk/linux-fb/gdkmain-fb.c:
	Use gdk_fb_get_time ().

	* gdk/linux-fb/gdkprivate-fb.h:
	New virtual GC calls: fill_span & fill_rectangle.
	Export gdk_fb_get_time().
	gdk_fb_fill_spans() gets extra argument "sorted".

	* gdk/linux-fb/mi*.c:
	Use GdkSpan instead of GdkRectangle.
	Pass correct sorted to gdk_fb_fill_spans. (sorted value taken
	from XFree 4 source)
2000-11-22 10:07:34 +00:00
Alexander Larsson
0c4f41198a Fixed some debug macros. 2000-11-15 13:48:13 +00:00
Alexander Larsson
2eb744a3c4 Added virtual functions set_pixel, get_color, fill_span and draw_drawable
2000-11-15  Alexander Larsson  <alla@lysator.liu.se>

	* gdk/linux-fb/gdkprivate-fb.h:
	Added virtual functions set_pixel, get_color,
	fill_span and draw_drawable to the GC.
	Added global _gdk_fb_screen_gc to use instead of
	NULL when drawing to the screen.
	Added _gdk_fb_gc_calc_state() prototype.

	* gdk/linux-fb/gdkgc-fb.c:
	Call _gdk_fb_gc_calc_state() on any gc state change.

	* gdk/linux-fb/gdkglobals-fb.c:
	Add _gdk_fb_screen_gc

	* gdk/linux-fb/gdkdrawable-fb2.c:
	_gdk_fb_gc_calc_state() calculates best functions
	for the GC state and depth.
	Moved bpp specialized code to separate functions.
	Added optimized 24 bpp AA draw_drawable.

	* gdk/linux-fb/gdkevents-fb.c:
	Silence gcc warning.

	* gdk/linux-fb/gdkimage-fb.c:
	Use _gdk_fb_screen_gc

	* gdk/linux-fb/gdkwindow-fb.c:
	Init and use _gdk_fb_screen_gc

	* gdk/linux-fb/mitypes.h:
	Remove unused types.
2000-11-15 12:45:30 +00:00
Alexander Larsson
be698675c7 Cleanup and reindent of GtkFB.
Added some serial mouse support.
Updates to latest Gtk+/pango
2000-11-13 17:40:23 +00:00
Alexander Larsson
8898529c12 Changes to make the new testgtk compile after gtk_menu_append was removed.
2000-11-09  Alexander Larsson  <alexl@redhat.com>

	* demos/testgtk/menus.c:
	Changes to make the new testgtk compile after
	gtk_menu_append was removed.

	* gdk/linux-fb/gdkdrawable-fb2.c
	(gdk_fb_get_depth, gdk_fb_get_visual,
	gdk_drawable_impl_fb_class_init): Implement
	these drawable functions. Now GtkImages work again.

	* gdk/linux-fb/gdkimage-fb.c (_gdk_fb_get_image): Change prototype.

	* gdk/linux-fb/gdkprivate-fb.h (_gdk_fb_get_image): Change prototype.

	* gdk/linux-fb/gdkmain-fb.c (fb_modes_parse_mode,
	gdk_fb_setup_mode_from_name, gdk_fb_set_mode, gdk_fb_display_new);
	Parse /etc/fb.modes, use the environment variables GDK_DISPLAY_MODE,
	GDK_DISPLAY_DEPTH, GDK_DISPLAY_WIDTH, GDK_DISPLAY_HEIGHT.
2000-11-09 12:15:40 +00:00
Alexander Larsson
224f6ec534 use g_object_new() instead of g_type_create_instance() which is a private
2000-11-07  Alexander Larsson  <alla@lysator.liu.se>

	* gdk/linux-fb/gdkcolor-fb.c, gdk/linux-fb/gdkdnd-fb.c,
	gdk/linux-fb/gdkgc-fb.c, gdk/linux-fb/gdkimage-fb.c,
	gdk/linux-fb/gdkpango-fb.c, gdk/linux-fb/gdkpixmap-fb.c,
	gdk/linux-fb/gdkwindow-fb.c:
	use g_object_new() instead of g_type_create_instance() which
	is a private function for fundamental type implementations.

	* gdk/linux-fb/gdkinput-ps2.c:
	Use MEDIUMRAW instead of RAW keycodes. Remove keyboard state-table
	instead just store the current modifier state. Add a (somewhat broken)
	keyboard input parser for XLATE mode too, if we couldn't use MEDIUMRAW.
	Rename exported function gdk_input_ps2_get_mouseinfo to
	gdk_input_get_mouseinfo.

	* gdk/linux-fb/gdkmain-fb.c, gdk/linux-fb/gdkprivate-fb.h,
	gdk/linux-fb/gdkwindow-fb.c:
	gdk_input_ps2_get_mouseinfo was renamed to gdk_input_get_mouseinfo.
2000-11-07 14:18:47 +00:00
Alexander Larsson
214c61d575 Add last argument to t_type_register_static call.
2000-11-02  Alexander Larsson  <alexl@redhat.com>

	* gdk/linux-fb/gdkcolor-fb.c, gdk/linux-fb/gdkdnd-fb.c,
	gdk/linux-fb/gdkgc-fb.c, gdk/linux-fb/gdkpango-fb.c,
	gdk/linux-fb/gdkpixmap-fb.c, gdk/linux-fb/gdkwindow-fb.c:
	Add last argument to t_type_register_static call.

	* gdk/linux-fb/gdkdrawable-fb2.c:
	Add last argument to t_type_register_static call.
	export the get_image drawable virtual function.

	* gdk/linux-fb/gdkimage-fb.c:
	Add last argument to t_type_register_static call.
	rename gtk_image_get to _gdk_fb_get_image and
	export it for use by gdkdrawable-fb2.

	* gdk/linux-fb/gdkprivate-fb.h:
	export _gdk_fb_get_image.

	* gdk/linux-fb/gdkselection-fb.c:
	Add new api call stubs.

	* gtk/Makefile.am:
	Missing ( in linux-fb part.

	* modules/linux-fb/Makefile.am:
	Must link with gdk_pixbuf or get unresolved symbol.
2000-11-02 15:38:04 +00:00
Elliot Lee
0176b387c8 Use G_GNUC_CONST.
Use G_GNUC_CONST.
2000-08-30 00:33:38 +00:00
Elliot Lee
d9e05d7009 We really do need to include gdkfb.h in order to get the GDK_PARENT_ROOT()
* gtk/gtkcolorsel.c: We really do need to include gdkfb.h in order to get the GDK_PARENT_ROOT()
macro to work.
* gtk/gtkmarshal.list: Add NONE:STRING,POINTER
* gdk/gdkwindow.c: Don't send expose events, or invalidate pieces of, windows that aren't shown.
* gdk/linux-fb: Redraw-when-menu-hidden solved, plus a bunch of pointer grab stuff.
2000-07-31 17:18:36 +00:00
Tim Janik
afee2c67c5 applied patch from Andreas Persenius <ndap@swipnet.se> that updates the
Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>

        * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
        updates the license headers to the GNU Lesser General Public License,
        as well as updating the copyright year to 2000.
2000-07-26 11:33:08 +00:00
Elliot Lee
6d7a643f7c (Part 2) Remove gdk_*_lookup() defines, since they are defined by the
(Part 2)
	* gdk/gdkprivate.h: Remove gdk_*_lookup() defines, since they are defined by the
	individual backends already.
	* gdk/gdkregion-generic.h, gdk/gdktypes.h: Put gdkregionbox & gdksegment back together
	again. Yes, there really is a good reason for this, if you are using the gdkregion
	internals, and if you're not, why do you care?
	* gdk/gdkwindow.c: Fix inverted condition
	* gdk/linux-fb: Compiles (for me - it will not work elsewhere most likely).
	* gtk/gtkcolorsel.c, gtk/gtkwindow.c: Add include for linux-fb
	* gtk/gtkrange.c: Redraw trough when moving.
	* gtk/gtktypeutils.c: Fix warning by adding const cast.
	* modules/linux-fb/basic.c: Fix unknown glyph retrieval.
2000-07-24 16:19:00 +00:00
Elliot Lee
dd7510dccb *** empty log message *** 2000-06-20 20:20:38 +00:00
Elliot Lee
c496211676 Put it into CVS.
Put it into CVS.
2000-05-31 21:50:38 +00:00