Location: PHPKode > scripts > Oekaki Applet > oekaki-applet/OekakiApplet.php
<?php
    /* 
     * OekakiApplet
     * Version 1.0 Beta
     * Created by sk89q
     * http://www.therisenrealm.com
     * http://www.keiichianimeforever.com
     *
     * Copyright (c) 2004, sk89q
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions are
     * met:
     *
     * Redistributions of source code must retain the above copyright notice,
     * this list of conditions and the following disclaimer.
     * 
     * Redistributions in binary form must reproduce the above copyright
     * notice, this list of conditions and the following disclaimer in the
     * documentation and/or other materials provided with the distribution.
     * 
     * Neither the name of sk89q nor the names of its contributors may be
     * used to endorse or promote products derived from this software
     * without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    */
    
    class OekakiApplet
    {
        // Important to applet!
        var $applet_id                      = 'oekaki';
        
        // Applet display
        var $applet_width                   = 700;
        var $applet_height                  = 500;
        
        // Image display
        var $canvas_width                   = 300;
        var $canvas_height                  = 300;
        var $animation                      = FALSE;
        
        // Set to URL of image to load image
        var $load_image_url;
        var $load_animation_url;
        
        // Mostly Global
        var $applet_bg_color                = '#AEAED9';
        var $applet_bg_grid_color           = '#A3A3CC';
        var $applet_dialog_bg_color         = '#AEAED9';
        var $applet_dialog_text_color       = '#000000';
        var $applet_dialog_border_color     = '#000000';
        
        // Not so global
        var $applet_dialog_border_hl_color  = '#CCCCCC';
        var $applet_dialog_border_dl_color  = '#666666';
        var $applet_dialog_title_bg_color   = '#6666FF';
        var $applet_dialog_title_hl_color   = '#8888FF';
        var $applet_dialog_title_text_color = '#000000';
        
        // Saving
        var $url_save;
        var $url_finish;
        var $url_target = '_self';
        
        // Format to save
        var $default_format = 'png';
        
        function shipainter( $jar_path, $dir_resource, $pro_version = FALSE, $extra_params = array() )
        {
            $output = '';
            
            $base_params = array(
                                    'dir_resource' => $dir_resource,
                                    'tt.zip' => 'tt_def.zip',
                                    'res.zip' => 'res.zip',
                                    'MAYSCRIPT' => 'true',
                                    'scriptable' => 'true',
                                    'tools' => $pro_version ? 'pro' : '',
                                    'layer_count' => '5',
                                    'undo' => '90',
                                    'undo_in_mg' => '15',
                                    'image_width' => $this->canvas_width,
                                    'image_height' => $this->canvas_height,
                                    'image_canvas' => $this->load_image_url,
                                    'pch_file' => $this->load_animation_url,
                                    'color_bk' => $this->applet_bg_color,
                                    'color_bk2' => $this->applet_bg_grid_color,
                                    'color_text' => $this->applet_dialog_text_color,
                                    'window_color_bk' => $this->applet_dialog_bg_color,
                                    'window_color_text' => $this->applet_dialog_text_color,
                                    'window_color_frame' => $this->applet_dialog_border_color,
                                    'window_color_bar' => $this->applet_dialog_title_bg_color,
                                    'window_color_bar_hl' => $this->applet_dialog_title_hl_color,
                                    'window_color_bar_text' => $this->applet_dialog_title_text_color,
                                    'url_save' => $this->url_save,
                                    'url_exit' => $this->url_finish,
                                    'url_target' => $this->url_target,
                                    'poo' => 'false',
                                    'send_advance' => 'true',
                                    'send_language' => 'utf8',
                                    'send_header' => '',
                                    'send_header_image_type' => 'false',
                                    'thumbnail_type' => $this->animation ? 'animation' : '',
                                    'image_jpeg' => $this->default_format == 'jpg' ? 'true' : 'false',
                                    'image_size' => '92',
                                    'compress_level' => '4',
                                    );
                                    
            $params = array_merge( $base_params, $extra_params );
            
            $output .= '<applet id="' . $this->applet_id . '" code="c.ShiPainter.class" archive="' . $jar_path . '" width="' . $this->applet_width . '" height="' . $this->applet_height . '" mayscript="">';
            foreach( $params as $key => $value )
            {
                $output .= '<param name="' . htmlspecialchars( $key ) . '" value="' . htmlspecialchars( $value ) . '" />' . "\n";
            }
            $output .= '</applet>';
            
            return $output;
        }
        
        function paintbbs( $jar_path, $dir_resource, $extra_params = array() )
        {
            $output = '';
            
            $base_params = array(
                                    'dir_resource' => $dir_resource,
                                    'undo' => '90',
                                    'undo_in_mg' => '15',
                                    'image_width' => $this->canvas_width,
                                    'image_height' => $this->canvas_height,
                                    'image_canvas' => $this->load_animation_url ? $this->load_animation_url : $this->load_image_url,
                                    'color_bk' => $this->applet_bg_color,
                                    'color_bk2' => $this->applet_bg_grid_color,
                                    'color_text' => $this->applet_dialog_text_color,
                                    'window_color_bk' => $this->applet_dialog_bg_color,
                                    'window_color_text' => $this->applet_dialog_text_color,
                                    'window_color_frame' => $this->applet_dialog_border_color,
                                    'window_color_bar' => $this->applet_dialog_title_bg_color,
                                    'window_color_bar_hl' => $this->applet_dialog_title_hl_color,
                                    'window_color_bar_text' => $this->applet_dialog_title_text_color,
                                    'url_save' => $this->url_save,
                                    'url_exit' => $this->url_finish,
                                    'url_target' => $this->url_target,
                                    'poo' => 'false',
                                    'send_advance' => 'true',
                                    'send_language' => 'utf8',
                                    'send_header' => '',
                                    'send_header_image_type' => 'false',
                                    'thumbnail_type' => $this->animation ? 'animation' : '',
                                    'image_jpeg' => $this->default_format == 'jpg' ? 'true' : 'false',
                                    'image_size' => '92',
                                    'compress_level' => '4',
                                    );
                                    
            $params = array_merge( $base_params, $extra_params );
            
            $output .= '<applet id="' . $this->applet_id . '" code="pbbs.PaintBBS.class" archive="' . $jar_path . '" width="' . $this->applet_width . '" height="' . $this->applet_height . '" mayscript="">';
            foreach( $params as $key => $value )
            {
                $output .= '<param name="' . htmlspecialchars( $key ) . '" value="' . htmlspecialchars( $value ) . '" />' . "\n";
            }
            $output .= '</applet>';
            
            return $output;
        }
        
        function oekakibbs( $jar_path, $extra_params = array() )
        {
            $output = '';
            
            $base_params = array(
                                    'readfilepath' => './',
                                    'readpicpath' => './',
                                    'readanmpath' => './',
                                    'picw' => $this->canvas_width,
                                    'pich' => $this->canvas_height,
                                    'readpic' => $this->load_image_url,
                                    'readanm' => $this->load_animation_url,
                                    'backC' => str_replace( '#', '', $this->applet_bg_color ),
                                    'baseC' => str_replace( '#', '', $this->applet_dialog_bg_color ),
                                    'brightC' => str_replace( '#', '', $this->applet_dialog_border_hl_color ),
                                    'darkC' => str_replace( '#', '', $this->applet_dialog_border_dl_color ),
                                    'cgi' => $this->url_save,
                                    'url' => $this->url_finish,
                                    'target' => $this->url_target,
                                    'popup' => '0',
                                    'tooltype' => 'full',
                                    'anime' => $this->animation ? '1' : '0',
                                    'animesimple' => '1',
                                    'tooljpgpng' => '0',
                                    'tooljpg' => '1',
                                    'passwd' => '',
                                    'passwd2' => '',
                                    'mask' => '5',
                                    'toolpaintmode' => '1',
                                    'toolmask' => '1',
                                    'toollayer' => '1',
                                    'toolalpha' => '1',
                                    'toolwidth' => '200',
                                    'catalog' => '0',
                                    'catalogwidth' => '100',
                                    'catalogheight' => '100',
                                    );
                                    
            $params = array_merge( $base_params, $extra_params );
            
            $output .= '<applet id="' . $this->applet_id . '" code="a.p.class" archive="' . $jar_path . '" width="' . $this->applet_width . '" height="' . $this->applet_height . '" mayscript="">';
            foreach( $params as $key => $value )
            {
                $output .= '<param name="' . htmlspecialchars( $key ) . '" value="' . htmlspecialchars( $value ) . '" />' . "\n";
            }
            $output .= '</applet>';
            
            return $output;
        }
    }
?>
Return current item: Oekaki Applet