mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-24 10:20:55 +02:00
* Patch from Paul Ishenin (max custom cursor size)
git-svn-id: trunk@10676 -
This commit is contained in:
parent
23272ca9b2
commit
932075c34f
@ -45,17 +45,24 @@ function gdk_window_xwindow(win : PGdkDrawable): TXID; cdecl; external gdklib na
|
||||
|
||||
{$endif}
|
||||
|
||||
function gdk_screen_get_default: PGdkScreen; cdecl; external gdklib;
|
||||
|
||||
procedure laz_gdk_gc_set_dashes(gc:PGdkGC; dash_offset:gint;
|
||||
dashlist:Pgint8; n:gint); cdecl; external gdkdll name 'gdk_gc_set_dashes';
|
||||
|
||||
// gtk 2.2
|
||||
// gdk 2.2
|
||||
procedure gdk_display_get_pointer(display : PGdkDisplay; screen :PGdkScreen; x :Pgint; y : Pgint; mask : PGdkModifierType); cdecl; external gdklib;
|
||||
function gdk_display_get_default:PGdkDisplay; cdecl; external gdklib;
|
||||
|
||||
procedure gdk_draw_pixbuf(drawable : PGdkDrawable; gc : PGdkGC; pixbuf : PGdkPixbuf; src_x, src_y, dest_x, dest_y, width, height : gint;
|
||||
dither : TGdkRgbDither; x_dither, y_dither : gint); cdecl; external gdklib;
|
||||
// gtk 2.4
|
||||
function gdk_cursor_new_from_pixbuf(display: PGdkDisplay; pixbuf: PGdkPixbuf; x, y: gint): PGdkCursor; cdecl; external gdklib name 'gdk_cursor_new_from_pixbuf';
|
||||
function gdk_screen_get_default: PGdkScreen; cdecl; external gdklib;
|
||||
|
||||
// gdk 2.4
|
||||
function gdk_cursor_new_from_pixbuf(display: PGdkDisplay; pixbuf: PGdkPixbuf; x, y: gint): PGdkCursor; cdecl; external gdklib name 'gdk_cursor_new_from_pixbuf';
|
||||
function gdk_display_get_default_cursor_size(display: PGdkDisplay): guint; cdecl; external gdklib;
|
||||
procedure gdk_display_get_maximal_cursor_size(display: PGdkDisplay; w, h: pguint); cdecl; external gdklib;
|
||||
|
||||
{ for future use
|
||||
function gdk_display_supports_cursor_alpha(display: PGdkDisplay): gBoolean; cdecl; external gdklib;
|
||||
function gdk_display_supports_cursor_color(display: PGdkDisplay): gBoolean; cdecl; external gdklib;
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,7 @@ var
|
||||
pixmap: PGdkPixmap;
|
||||
bitmap: PGdkBitmap;
|
||||
w, h: integer;
|
||||
max_w, max_h: guint;
|
||||
pixbuf, masked_pixbuf: PGdkPixbuf;
|
||||
begin
|
||||
Result := 0;
|
||||
@ -78,6 +79,16 @@ begin
|
||||
bitmap := PGDIObject(ACursorInfo^.hbmColor)^.GDIBitmapMaskObject;
|
||||
|
||||
gdk_drawable_get_size(pixmap, @w, @h);
|
||||
gdk_display_get_maximal_cursor_size(gdk_display_get_default, @max_w, @max_h);
|
||||
|
||||
if (w > max_w) or (h > max_h) then
|
||||
exit;
|
||||
|
||||
{
|
||||
max_w := gdk_display_get_default_cursor_size(gdk_display_get_default);
|
||||
if (w > max_w) or (h > max_w) then
|
||||
DebugLn(['CreateCursor cursor size:',w,'x',h,' > default size:', max_w]);
|
||||
}
|
||||
|
||||
// create alpha pixbuf
|
||||
pixbuf := gdk_pixbuf_new(GDK_COLORSPACE_RGB, True, 8, w, h);
|
||||
|
Loading…
Reference in New Issue
Block a user