⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scicalc.fld

📁 PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
💻 FLD
📖 第 1 页 / 共 2 页
字号:
# data file for the Fltk User Interface Designer (fluid)version 2.00 header_name {.h} code_name {.cxx} gridx 1 gridy 1 snap 1decl {\#include "StaticText.h"} {public} decl {\#include <stdio.h>} {} decl {\#include <string.h>} {selected} decl {\#include "math.h"} {} Function {gammaln(double xx)} {open private return_type double} {  code {int j;double x,y,tmp,ser;static double cof[6] = {76.18009172947146,						-86.50532032941677,						24.01409824083091,						-1.231739572450155,						0.1208650973866179e-2,						-0.5395239384953e-5};		y = x = xx;	tmp = x + 5.5;	tmp -= (x+0.5)*log(tmp);	ser = 1.000000000190015;	for (j=0;j<6;j++) ser += cof[j]/++y;	return -tmp+log(2.5066282746310005*ser/x);} {}} Function {truncf(double x)} {private return_type double} {  code {if (x < 0.0)		x = -floor(-x);	else		x = floor(x);	return x;} {}} class SciCalc {open} {  decl {enum {MaxNumBrkts=10};} {}  decl {enum Operator {PLUS,MINUS,MULT,DIV,POW,INVPOW,EVAL};} {}  decl {enum mode {NONE=0,DOT=-1,NORM=-2,EXP=-3};} {}  declblock {/* members */} {after {/********/}  } {    decl {double value[4*(MaxNumBrkts+1)];    /* The values on the stack */} {}    decl {int priority[6];   /* the priorities of each operator */} {}    decl {int oper[3*(MaxNumBrkts+1)];        /* the operators between them */} {}    decl {int top;                            /* the top of the stack */} {}    decl {int startbrkt[(MaxNumBrkts+1)];     /* the positions of the left brackets */} {}    decl {int currentbrkt;                    /* bracketing we are in */} {}    decl {double mem;             /* The memory value */} {}    decl {int ready;              /* Whether last number is ready.                           if "ready" is set, then typing another number                           overwrites the current number. */} {}    decl {int dot;                /* Whether the dot has been typed */} {}    decl {double diver;           /* The divider when behind the dot */} {}    decl {int behind;             /* Number of digits behind dot */} {}    decl {int inv;                /* Whether inverse key is depressed */} {}    decl {int emode;              /* Whether we are entering the exponent */} {}    decl {int exponent;           /* the exponent value whilst entering exponent */} {}    decl {double mantissa;        /* the mantissa value whilst entering exponent */} {}    decl {int base;               /* the base we are working in (2,8,10 or 16) */} {}    decl {int drgmode;            /* whether we are in deg, rad or grad mode */} {}  }  Function {SciCalc()} {open  } {    Fl_Window win {      label flCalc open      private xywh {573 273 181 262} box UP_BOX visible    } {      Fl_Box leddisplay {        callback {o->value("0 ");}        private xywh {5 3 172 24} align 24 labelfont 1 labelsize 16 labelcolor 59 color 207 box DOWN_BOX        class StaticText      }      Fl_Box box_DEGRAD {        callback {o->value(" ");}        private xywh {24 27 35 15} align 16 labelsize 9 labelcolor 0 box ENGRAVED_BOX        class StaticText      }      Fl_Box box_bracket {        private xywh {59 27 65 15} align 16 labelsize 9 labelcolor 0 box ENGRAVED_BOX        class StaticText      }      Fl_Box box_M {        callback {o->value("M");}        private xywh {124 27 35 15} align 16 labelsize 9 labelcolor 0 box ENGRAVED_BOX        class StaticText      }      Fl_Group {} {open        private xywh {46 44 93 22} color 46 box ENGRAVED_FRAME      } {        Fl_Button radio_2 {          label 2          callback {change_base(2);}          private xywh {49 48 20 15} type Radio labelsize 10 labelcolor 1 color 49        }        Fl_Button radio_8 {          label 8          callback {change_base(8);}          private xywh {70 48 21 15} type Radio labelsize 10 labelcolor 1 color 49        }        Fl_Button radio_10 {          label 10          callback {change_base(10);}          private xywh {92 48 21 15} type Radio labelsize 10 labelcolor 1 color 49 value 1        }        Fl_Button radio_16 {          label 16          callback {change_base(16);}          private xywh {114 48 21 15} type Radio labelsize 10 labelcolor 1 color 49        }      }      Fl_Group {} {open        private xywh {3 163 107 94} color 43 box ENGRAVED_BOX      } {        Fl_Button but_7 {          label 7          callback {handle_number(7);}          private xywh {6 167 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x37        }        Fl_Button but_8 {          label 8          callback {handle_number(8);}          private xywh {41 167 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x38        }        Fl_Button but_9 {          label 9          callback {handle_number(9);}          private xywh {75 167 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x39        }        Fl_Button but_4 {          label 4          callback {handle_number(4);}          private xywh {6 189 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x34        }        Fl_Button but_5 {          label 5          callback {handle_number(5);}          private xywh {41 189 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x35        }        Fl_Button but_6 {          label 6          callback {handle_number(6);}          private xywh {75 189 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x36        }        Fl_Button but_1 {          label 1          callback {handle_number(1);}          private xywh {6 211 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x31        }        Fl_Button but_2 {          label 2          callback {handle_number(2);}          private xywh {41 211 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x32        }        Fl_Button but_3 {          label 3          callback {handle_number(3);}          private xywh {75 211 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x33        }        Fl_Button but_0 {          label 0          callback {handle_number(0);}          private xywh {6 233 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x30        }        Fl_Button but_dot {          label {.}          callback {handle_number(DOT);}          private xywh {41 233 32 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x2e        }        Fl_Button but_sign {          label {+/-}          callback {if (! emode){	value[top] = -value[top];	set_display(value[top],NORM);}else {	exponent = -exponent;	value[top] = mantissa*pow(10.0, (double)exponent);	set_display(mantissa,EXP);}}          xywh {75 233 32 20} labelfont 1 labelsize 16 box UP_BOX        }      }      Fl_Button but_C {        label C        callback {init_value(top); set_display(0.0,NORM);}        private xywh {112 167 31 20} labelfont 1 labelsize 16 box UP_BOX      }      Fl_Button but_AC {        label AC        callback {init_value(0);set_display(0.0,NORM);currentbrkt = 0;box_bracket->value("");box_bracket->redraw();}        private xywh {146 167 30 20} labelfont 1 labelsize 16 box UP_BOX      }      Fl_Button but_X {        label x        callback {handle_operator(MULT);}        private xywh {112 189 31 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x2a      }      Fl_Button but_div {        label {/}        callback {handle_operator(DIV);}        private xywh {146 189 30 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x2f      }      Fl_Button but_plus {        label {+}        callback {handle_operator(PLUS);}        private xywh {112 211 31 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x2b      }      Fl_Button but_minus {        label {-}        callback {handle_operator(MINUS);}        private xywh {146 211 30 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x2d      }      Fl_Button but_pi {        label {e/p}        callback {exponent_pi();}        private xywh {112 233 31 20} labelfont 12 labelsize 17 box UP_BOX      }      Fl_Button but_eval {        label {=}        callback {handle_operator(EVAL);}        private xywh {146 233 30 20} labelfont 1 labelsize 16 box UP_BOX shortcut 0x3d      }      Fl_Button but_sqrt {        label sqrt        callback {if (base > 10) handle_number(10.0); 	else	if (! inv) 	{		value[top] = sqrt(value[top]);		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = pow(value[top], 2.0);		set_display(value[top],NORM);		ready = 1;	}}        private xywh {6 70 32 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_pow {        label {x^y}        callback {if (base > 10)		handle_number(11.0);	else		handle_operator(check_inv->value()?INVPOW:POW);}        private xywh {41 70 32 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_sin {        label sin        callback {if (base > 10) handle_number(12.0); else	if (! inv) 	{		value[top] = sin(to_drg(value[top]));		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = from_drg(asin(value[top]));		set_display(value[top],NORM);		ready = 1;	}}        private xywh {76 70 31 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_cos {        label cos        callback {if (base > 10) handle_number(13.0);else	if (! inv) 	{		value[top] = cos(to_drg(value[top]));		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = from_drg(acos(value[top]));		set_display(value[top],NORM);		ready = 1;	}}        private xywh {110 70 31 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_tan {        label tan        callback {if (base > 10) handle_number(14.0);	else	if (! inv)	{		value[top] = tan(to_drg(value[top]));		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = from_drg(atan(value[top]));		set_display(value[top],NORM);		ready = 1;	}}        private xywh {144 70 30 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_log {        label log        callback {if (base > 10) handle_number(15.0);else	if (! inv)	{		value[top] = log10(value[top]);		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = pow(10.0, value[top]);		set_display(value[top],NORM);		ready = 1;	}}        private xywh {6 93 32 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_ln {        label ln        callback {if (! inv)	{		value[top] = log(value[top]);		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = exp(value[top]);		set_display(value[top],NORM);		ready = 1;	}}        private xywh {41 93 32 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_int {        label int        callback {if (! inv)	{		value[top] = truncf(value[top]);		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = value[top] - truncf(value[top]);		set_display(value[top],NORM);		ready = 1;	}}        private xywh {76 93 31 21} labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_dr {        label {d->r}        callback {if (! inv) 	{		value[top] = M_PI*value[top]/180.0;		set_display(value[top],NORM);		ready = 1;	}	else	{		value[top] = 180.0*value[top]/M_PI;		set_display(value[top],NORM);		ready = 1;	}}        private xywh {110 93 31 21} labelfont 0 labelsize 10 labelcolor 4      }      Fl_Button but_drg {        label {d-r-g}        callback {drgmode++;	drgmode %= 3;	set_drgdisp();}        private xywh {144 93 30 21} labelfont 0 labelsize 9 labelcolor 0      }      Fl_Button but_leftbr {        label {[}        callback {add_left_bracket();}        private xywh {6 116 32 21} labelfont 0 labelsize 11 labelcolor 0 shortcut 0x28      }      Fl_Button but_rightbr {        label {]}        callback {add_right_bracket();}        private xywh {41 116 32 21} labelfont 0 labelsize 11 labelcolor 0 shortcut 0x29      }      Fl_Button but_exch {        label exch        callback {exchange();}        private xywh {76 116 31 21} labelfont 0 labelsize 11 labelcolor 0      }      Fl_Button but_invx {        label {1/x}        callback {value[top] = 1.0/value[top];	set_display(value[top],NORM);	ready = 1;}        private xywh {110 116 31 21} labelfont 0 labelsize 11 labelcolor 0      }      Fl_Button but_fact {        label {x!}        callback {factorial();}        private xywh {144 116 30 21} labelfont 0 labelsize 11 labelcolor 0      }      Fl_Button but_Mplus {        label {M+}        callback {if (! inv) mem += value[top]; else mem -= value[top];	set_display(value[top],NORM);	ready = 1;	set_memdisp();}        private xywh {6 139 32 21} labelfont 0 labelsize 12 labelcolor 4 color 93      }      Fl_Button but_Mmult {        label {M*}        callback {if (! inv) mem *= value[top]; else mem /= value[top];	set_display(value[top],NORM);	ready = 1;	set_memdisp();}        private xywh {41 139 32 21} labelfont 0 labelsize 12 labelcolor 4 color 93      }      Fl_Button but_Mclear {        label MC        callback {if (! inv)	{		mem = 0.0;		set_display(value[top],NORM);		ready = 1;		set_memdisp();	}	else		memexch();}        private xywh {76 139 31 21} labelfont 0 labelsize 12 labelcolor 4 color 93      }      Fl_Button but_Mst {        label Mst        callback {mem = value[top];	set_display(value[top],NORM);	ready = 1;	set_memdisp();}        private xywh {110 139 31 21} labelfont 0 labelsize 12 labelcolor 0 color 93      }      Fl_Button but_Mrc {        label Mrc        callback {value[top] = mem;	set_display(value[top],NORM);	ready = 1;}        private xywh {144 139 30 21} labelfont 0 labelsize 12 labelcolor 0 color 93      }      Fl_Button check_inv {        label inv        callback {if (inv) 	{		inv = 0;		setnormlabels();	}	else	{		inv = 1;		setinvlabels();	}}        private xywh {6 44 32 21} type Toggle labelfont 0 labelsize 11 labelcolor 4      }      Fl_Button but_quit {        label Exit        callback {win->hide();delete win;}        private xywh {145 44 29 21} labeltype ENGRAVED_LABEL labelfont 0 labelsize 12 labelcolor 33 color 15      }    }    code {init_value(0);	drgmode = 1;	base = 10;	currentbrkt = 0;	startbrkt[0] = 0;	set_memdisp();	set_brktdisp();	radio_10->value(1);	set_drgdisp();	set_display(0.0,NONE);} {}  }  Function {~SciCalc()} {} {}  Function {run(int px=-1,int py=-1)} {open  } {    code {win->show();Fl::run();} {}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -