I am interrested in this topic. Here is the function I have built for
the magnifier. I got this code googling, but it doesn't work =(

Maybe with help of more people we can make a function that works.

procedure TMainWindow.Cursor(boolNewState: Boolean);
var
 cursorbits: array[0..31] of char;
 cursormask: array[0..31] of char;
{$IFDEF UNIX}
 {$IFDEF LCLQt}
 {$ENDIF}
 {$IFDEF LCLGtk2}
 source, mask: PGdkBitmap;
 cursor: PGdkCursor;
 fg, bg: TGdkColor;
 {$ENDIF}
{$ENDIF}
begin
{$IFDEF Win32}
 Windows.ShowCursor(boolNewState);
{$ENDIF}
{$IFDEF UNIX}
 {$IFDEF LCLQt}
 {$ENDIF}
 {$IFDEF LCLGtk2}
   FillChar(cursorbits, SizeOf(cursorbits), #0);
   FillChar(cursormask, SizeOf(cursormask), #0);

   FillChar(fg, SizeOf(fg), #0);
   FillChar(bg, SizeOf(bg), #0);

   source := gdk_bitmap_create_from_data (nil, cursorbits, 16, 16);
   mask := gdk_bitmap_create_from_data (nil, cursormask, 16, 16);
   cursor := gdk_cursor_new_from_pixmap (source, mask, @fg, @bg, 8, 8);
   gdk_pixmap_unref (source);
   gdk_pixmap_unref (mask);

   gdk_window_set_cursor(PGtkWidget(Self.Handle).window, cursor);
 {$ENDIF}
{$ENDIF}
end;


--
Felipe Monteiro de Carvalho

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to