Annotation of researchv10dc/cmd/dag/node_t.c, revision 1.1

1.1     ! root        1: #include "draw_dag.h"
        !             2: #include "dag.h"
        !             3: #include "parsedag.h"
        !             4: #include "defaults.h"
        !             5: 
        !             6: boolean shape_t::is_fixed_aspect_ratio() {
        !             7:        switch(shape_id) {
        !             8:                case Square:
        !             9:                case Circle:
        !            10:                case Doublecircle:
        !            11:                        return true;
        !            12:                default:
        !            13:                        return false;
        !            14:        }
        !            15: }
        !            16: 
        !            17: DAG_node_t::DAG_node_t() : shape(STRING,"Ellipse") {
        !            18:        xsize           = Default_node_xsize;
        !            19:        ysize           = Default_node_ysize;
        !            20:        pointsize       = Default_node_pointsize;
        !            21:        color           = Default_node_color;
        !            22:        name            = "";
        !            23:        label.type      = 0;
        !            24:        sethw();
        !            25: }
        !            26: 
        !            27: void DAG_node_t::setname(char *invalue){
        !            28:        name    =       invalue;
        !            29:        autosize();
        !            30: }
        !            31: 
        !            32: void DAG_node_t::setshape(int intype, char* invalue) {
        !            33:        shape = shape_t(intype,invalue);
        !            34:        autosize();
        !            35: }
        !            36: 
        !            37: void DAG_node_t::setcolor(char *incolor) {
        !            38:        color   =       incolor;
        !            39: }
        !            40: 
        !            41: void DAG_node_t::setlabel(int intype, char* invalue) {
        !            42:        label.type      =       intype;
        !            43:        label.value     =       invalue;
        !            44:        autosize();
        !            45: }
        !            46: 
        !            47: void DAG_node_t::setxsize(int inxsize) {
        !            48:        xsize           =       inxsize;
        !            49:        autosize();
        !            50: }
        !            51: 
        !            52: void DAG_node_t::setysize(int inysize) {
        !            53:        ysize           =       inysize;
        !            54:        autosize();
        !            55: }
        !            56: 
        !            57: void DAG_node_t::setpointsize(int inpointsize) {
        !            58:        pointsize       =       inpointsize;
        !            59:        autosize();
        !            60: }
        !            61: 
        !            62: void DAG_node_t::autosize() {
        !            63:        char *printname;
        !            64:        int spaceneeded = 0;
        !            65:        if (label.type != DESC) {
        !            66:                if (label.type == STRING) printname = label.value;
        !            67:                else printname = name;
        !            68:                if (printname) {
        !            69:                        if (*printname)
        !            70:                                spaceneeded = (int)((2 + strlen(printname)) * pointsize * IPP * Resolution);
        !            71:                        /* would be better if we kept default node size at time of its creation */
        !            72:                        xsize = max(spaceneeded,xsize);
        !            73:                        spaceneeded = (int) (pointsize * IPP * 2 * Resolution);
        !            74:                        ysize = max(spaceneeded,ysize);
        !            75:                }
        !            76:        }
        !            77:        if (shape.is_fixed_aspect_ratio()) ysize = xsize;
        !            78:        sethw();
        !            79: }
        !            80: 
        !            81: void DAG_node_t::sethw() {
        !            82:        if (!User.rotated) {
        !            83:                width = xsize;
        !            84:                height = ysize;
        !            85:        }
        !            86:        else {
        !            87:                width = ysize;
        !            88:                height = xsize;
        !            89:        }
        !            90: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.