ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/lib/Gtk2/CV.pm
Revision: 1.30
Committed: Sat Oct 28 01:26:09 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.29: +2 -0 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 package Gtk2::CV;
2    
3 root 1.20 use Gtk2;
4     use Glib;
5 root 1.1
6 root 1.20 use IO::AIO;
7 root 1.3
8 root 1.20 BEGIN {
9     use XSLoader;
10 root 1.1
11 root 1.26 $VERSION = '1.3';
12 root 1.13
13 root 1.20 XSLoader::load "Gtk2::CV", $VERSION;
14     }
15 root 1.14
16 root 1.17 my $aio_source;
17    
18 root 1.30 IO::AIO::min_parallel 32;
19    
20 root 1.28 # we use a low priority watcher to give GUI interactions as high a priority
21 root 1.19 # as possible.
22 root 1.17 sub enable_aio {
23     $aio_source ||=
24     add_watch Glib::IO IO::AIO::poll_fileno,
25 root 1.28 in => sub {
26 root 1.29 eval { IO::AIO::poll_some 64 };
27 root 1.28 warn $@ if $q;#d#
28     1
29     },
30     undef,
31     &Glib::G_PRIORITY_LOW;
32 root 1.17 }
33    
34     sub disable_aio {
35 root 1.18 remove Glib::Source $aio_source if $aio_source;
36 root 1.17 undef $aio_source;
37     }
38    
39     enable_aio;
40 root 1.2
41 root 1.9 sub find_rcfile($) {
42 root 1.2 my $path;
43    
44     for (@INC) {
45 root 1.4 $path = "$_/Gtk2/CV/$_[0]";
46     return $path if -r $path;
47 root 1.2 }
48    
49 root 1.4 die "FATAL: can't find required file $_[0]\n";
50     }
51    
52 root 1.9 sub require_image($) {
53 root 1.4 new_from_file Gtk2::Gdk::Pixbuf find_rcfile "images/$_[0]";
54 root 1.2 }
55    
56 root 1.20 sub dealpha_compose($) {
57     return $_[0] unless $_[0]->get_has_alpha;
58    
59     Gtk2::CV::dealpha_expose $_[0]->composite_color_simple (
60     $_[0]->get_width, $_[0]->get_height,
61 root 1.22 'nearest', 255, 16, 0xffc0c0c0, 0xff606060,
62 root 1.20 )
63     }
64    
65     # TODO: make preferences
66     sub dealpha($) {
67     &dealpha_compose
68     }
69    
70 root 1.1 1;
71