home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / tsw / TSW_3.4.0.exe / Apache2 / perl / Styles.pm < prev    next >
Encoding:
Text File  |  2002-12-05  |  3.2 KB  |  132 lines

  1.  
  2. require 5;
  3. use strict;
  4. package Tk::Pod::Styles;
  5.  
  6. sub init_styles {
  7.   my $w = shift;
  8.   $w->set_base_font_size($w->standard_font_size);
  9. }
  10.  
  11. sub standard_font_size {
  12.   my $w = shift;
  13.   my $std_font = $w->optionGet('font', 'Font');
  14.   my $std_font_size;
  15.   if (!defined $std_font || $std_font eq '') {
  16.     my $l = $w->Label;
  17.     $std_font = $l->cget(-font);
  18.     $std_font_size = $l->fontActual($std_font, '-size');
  19.     $l->destroy;
  20.   } else {
  21.     $std_font_size = $w->fontActual($std_font, '-size');
  22.   }
  23.   $std_font_size;
  24. }
  25.  
  26. sub adjust_font_size {
  27.   my($w, $new_size) = @_;
  28.   my $delta = $new_size - $w->base_font_size;
  29.   $w->set_base_font_size($new_size);
  30.  
  31.   for my $tag ($w->tagNames) {
  32.     my $f = $w->tagCget($tag, '-font');
  33.     if ($f) {
  34.       my %f = $w->fontActual($f);
  35.       $f{-size} += $delta;
  36.       my $new_f = $w->fontCreate(%f);
  37.       $w->tagConfigure($tag, -font => $new_f);
  38.     }
  39.   }
  40. }
  41.  
  42. sub set_base_font_size { $_[0]{'style'}{'base_font_size'} = $_[1] }
  43.  
  44. sub base_font_size { return $_[0]{'style'}{'base_font_size'} ||= 10 }
  45.  
  46. sub style_over_bullet {
  47.   $_[0]->{'style'}{'over_bullet'} ||=
  48.     [ 'indent' => $_[1]->attr('indent') || 4, @{ $_[0]->style_Para } ]
  49. }
  50. sub style_over_number {
  51.   $_[0]->{'style'}{'over_number'} ||=
  52.     [ 'indent' => $_[1]->attr('indent') || 4, @{ $_[0]->style_Para } ]
  53. }
  54. sub style_over_text   {
  55.   $_[0]->{'style'}{'over_text'} ||=
  56.     [ 'indent' => $_[1]->attr('indent') || 4, @{ $_[0]->style_Para } ]
  57. }
  58.  
  59. sub style_item_text   {
  60.   $_[0]->{'style'}{'item_text'} ||=
  61.     [ 'indent' => -1, @{ $_[0]->style_Para } ]  # for back-denting
  62. }
  63. sub style_item_bullet   {
  64.   $_[0]->{'style'}{'item_bullet'} ||=
  65.     [ 'indent' => -1, @{ $_[0]->style_Para } ]  # for back-denting
  66. }
  67. sub style_item_number   {
  68.   $_[0]->{'style'}{'item_number'} ||=
  69.     [ 'indent' => -1, @{ $_[0]->style_Para } ]  # for back-denting
  70. }
  71.  
  72. sub style_Para {
  73.   $_[0]->{'style'}{'Para'} ||=
  74.     [ 'family' => 'times', 'size' => $_[0]->base_font_size ]
  75. }
  76.  
  77. sub style_Verbatim {
  78.   $_[0]->{'style'}{'Verbatim'} ||=
  79.     [ 'family' => 'courier',
  80.       'size' => $_[0]->base_font_size,
  81.       'wrap' => 'none',
  82.     ]
  83. }
  84.  
  85. sub style_head1 {
  86.   $_[0]->{'style'}{'head1'} ||=
  87.     [ 'family' => 'helvetica', 'size' => int(1 + 1.75 * $_[0]->base_font_size),
  88.       'underline' => 'true',
  89.     ]
  90. }
  91. sub style_head2 {
  92.   $_[0]->{'style'}{'head2'} ||=
  93.     [ 'family' => 'helvetica', 'size' => int(1 + 1.50 * $_[0]->base_font_size),
  94.       'underline' => 'true',
  95.     ]
  96. }
  97. sub style_head3 {
  98.   $_[0]->{'style'}{'head3'} ||=
  99.     [ 'family' => 'helvetica', 'size' => int(1 + 1.25 * $_[0]->base_font_size),
  100.       'underline' => 'true',
  101.     ]
  102. }
  103. sub style_head4 {
  104.   $_[0]->{'style'}{'head4'} ||=
  105.     [ 'family' => 'helvetica', 'size' => int(1 + 1.10 * $_[0]->base_font_size),
  106.       'underline' => 'true',
  107.     ]
  108. }
  109.  
  110. # ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  111.  
  112. sub style_C {
  113.   $_[0]->{'style'}{'C'} ||=  [ 'family' => 'courier',  ]  }
  114.  
  115. sub style_B {
  116.   $_[0]->{'style'}{'B'} ||=  [ 'weight' => 'bold',     ]  }
  117.  
  118. sub style_I {
  119.   $_[0]->{'style'}{'I'} ||=  [ 'slant' => 'italic'  ,  ]  }
  120.  
  121. sub style_F {
  122.   $_[0]->{'style'}{'F'} ||=  [ 'slant' => 'italic'  ,  ]  }
  123.  
  124. #sub style_S {
  125. #  $_[0]->{'style'}{'C'} ||=  [ 'wrap' => 'none' ]        }
  126.  
  127. # ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  128. 1;
  129. __END__
  130.  
  131.  
  132.