Home modules.gotpike.org
Username: Password: [Create Account]
[Forgot Password?]

Modules

ADT
Database
GTK2
GUI
IP
PiJAX
Public
Sql
Stdio
Subversion
System
Tools
Xosd
lua
v4l2
wx

Recent Changes

Public.Parser.XML2 1.50
Public.ZeroMQ 1.1
Public.Template.Mustache 1.0
Public.Protocols.XMPP 1.4
Sql.Provider.jdbc 1.0

Popular Downloads

Public.Parser.JSON2 1.0
Public.Parser.JSON 0.2
GTK2 2.23
Public.Web.FCGI 1.8
Public.Parser.XML2 1.48


Module Information
GTK2
Viewing contents of GTK2-2.7/dump_cursors.pike

object da, fn, gc, ia, w;
string prefix;

#define GRAB(i) Image.PNM.decode(ia->grab(w,4,4+(i*80),60,60)->get_pnm())

void grab_2( int x )
{
  call_out( grab, 0.001, x+2 );

  object l = Image.Layer( GRAB(0), GRAB(1)->invert() );
  l = l->autocrop();
  
  mkdir("cursors");
  Stdio.File( prefix+x+".gif", "wct")->
    write(Image.GIF.encode_trans( l->image(),l->alpha() ) );


  Stdio.File( prefix+x+"_red.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.red),
                                  l->alpha() ) );

  Stdio.File( prefix+x+"_green.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.green),
                                  l->alpha() ) );

  Stdio.File( prefix+x+"_blue.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.blue),
                                  l->alpha() ) );


  Stdio.File( prefix+x+"_red_inv.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.red)
                                  ->change_color(Image.Color.white,
                                                 Image.Color.black),
                                  l->alpha() ) );

  Stdio.File( prefix+x+"_green_inv.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.green)
                                  ->change_color(Image.Color.white,
                                                 Image.Color.black),
                                  l->alpha() ) );

  Stdio.File( prefix+x+"_blue_inv.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->change_color(Image.Color.black,
                                                           Image.Color.blue)
                                  ->change_color(Image.Color.white,
                                                 Image.Color.black),
                                  l->alpha() ) );

  Stdio.File( prefix+x+"_inv.gif", "wct")->
    write(Image.GIF.encode_trans( l->image()->invert(),l->alpha() ) );

}

void grab( int x )
{
  if( x > 152 ) _exit(0);
  if(!file_stat( prefix+x+".gif" ) )
  {
    if(!da)
    {
      GTK.setup_gtk();
      w = GTK.Window( GTK.WindowToplevel );
      w->add( da = GTK.DrawingArea( ) );
      da->set_usize( 200,400 );
      da->show();
      w->show_now();
      GTK.flush();
      fn = GDK.Font( "cursor" );
      gc = GDK.GC( da );
      ia = GDK.Image( );
      da->set_app_paintable( 1 );
      da->set_background( GDK.Color( @(array)Image.Color.white ) );
    }
    da->clear();
    da->draw_text( gc, fn, 30,30, sprintf("%c", x ) );
    da->draw_text( gc, fn, 30,80+30, sprintf("%c", x+1 ) );
    call_out( grab_2, 0.01, x );
  } else
     grab( x+2 );
}

int main(int c, array argv)
{
  prefix = argv[1];
  grab(0);
  return -1;
}


gotpike.org | Copyright © 2004 - 2019 | Pike is a trademark of Department of Computer and Information Science, Linköping University