dslinux/user/pixil/apps/fltk/calc Main.cxx Main.fld Main.h Makefile SciCalc.cxx SciCalc.fld SciCalc.h StaticText.cxx StaticText.fld StaticText.h

amadeus dslinux_amadeus at user.in-berlin.de
Tue Oct 3 13:24:22 CEST 2006


Update of /cvsroot/dslinux/dslinux/user/pixil/apps/fltk/calc
In directory antilope:/tmp/cvs-serv11916/apps/fltk/calc

Added Files:
	Main.cxx Main.fld Main.h Makefile SciCalc.cxx SciCalc.fld 
	SciCalc.h StaticText.cxx StaticText.fld StaticText.h 
Log Message:
adding pristine copy of pixil to HEAD so I can branch from it

--- NEW FILE: StaticText.fld ---
# data file for the Fltk User Interface Designer (fluid)
version 2.00 
header_name {.h} 
code_name {.cxx} 
gridx 5 
gridy 5 
snap 3
decl {\#include <FL/Fl_Widget.H>} {public
} 

decl {\#include <FL/fl_draw.H>} {} 

decl {\#include <stdio.h>} {} 

class StaticText {open : {public Fl_Widget}
} {
  decl {enum {MaxLength = 255};} {}
  decl {char *str;} {}
  Function {StaticText(int xx,int yy,int ww,int hh) : Fl_Widget(xx,yy,ww,hh,0)} {open
  } {
    code {str = 0;} {}
  }
  Function {~StaticText()} {open
  } {
    code {if (str != 0) delete [] str;} {}
  }
  Function {value(char *mstr)} {open
  } {
    code {int i,l;

	for (l=0; l<MaxLength-1;l++)
	{
		if (mstr[l] == 0) break;
	}
	if (str) delete [] str;
	str = 0;
	if (l == 0) return;
	str = new char[l+1];
	for (i=0;i<l;i++) str[i] = mstr[i];
	str[l] = 0;} {}
  }
  Function {draw()} {open private
  } {
    code {int xx,yy,ww,hh;

	draw_box();
	xx = x() + 3;
	yy = y() + 3;
	ww = w() - 6;
	hh = h() - 6;
	fl_clip(xx,yy,ww,hh);
	fl_color(labelcolor());
	fl_font(labelfont(),labelsize());
	if (str != 0)
		fl_draw((const char *)str,xx,yy,ww,hh,align());
	fl_pop_clip();} {selected
    }
  }
} 

--- NEW FILE: Main.cxx ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING  
 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A            
 * PARTICULAR PURPOSE.                                                  
 *                                                                       
 * RESTRICTED RIGHTS LEGEND                                             
 *                                                                     
 * Use, duplication, or disclosure by the government is subject to      
 * restriction as set forth in paragraph (b)(3)(b) of the Rights in     
 * Technical Data and Computer Software clause in DAR 7-104.9(a).       
 *                                                                      
 * See http://embedded.centurysoftware.com/gpl/ for GPL licensing       
 * information.                                                         
 *                                                                      
 * See http://embedded.centurysoftware.com/license.html or              
 * email cetsales at centurysoftware.com for information about the PIXIL   
 * Commercial License Agreement, or if any conditions of this licensing 
 * are not clear to you.                                                
 */


// generated by Fast Light User Interface Designer (fluid) version 2.00

#include "Main.h"

SciCalc *calc;

int
main(int ac, char *av)
{
    calc = new SciCalc(FALSE);

    calc->run();
    delete calc;
}

--- NEW FILE: SciCalc.fld ---
# data file for the Fltk User Interface Designer (fluid)
version 2.00 
header_name {.h} 
code_name {.cxx} 
gridx 1 
gridy 1 
snap 1
decl {\#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
} {
[...963 lines suppressed...]
    code {if (drgmode == 0)
		return (180.0*angle/M_PI);
	else 
	if (drgmode == 2)
		return (100.0*angle/M_PI);
	else
		return (angle);} {}
  }
  Function {memexch()} {open
  } {
    code {double temp;

	temp = mem;
	mem = value[top];
	value[top] = temp;
	set_display(value[top],NORM);
	ready = 1;
	set_memdisp();} {}
  }
} 

--- NEW FILE: StaticText.h ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING  
 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A            
 * PARTICULAR PURPOSE.                                                  
 *                                                                       
 * RESTRICTED RIGHTS LEGEND                                             
 *                                                                     
 * Use, duplication, or disclosure by the government is subject to      
 * restriction as set forth in paragraph (b)(3)(b) of the Rights in     
 * Technical Data and Computer Software clause in DAR 7-104.9(a).       
 *                                                                      
 * See http://embedded.centurysoftware.com/gpl/ for GPL licensing       
 * information.                                                         
 *                                                                      
 * See http://embedded.centurysoftware.com/license.html or              
 * email cetsales at centurysoftware.com for information about the PIXIL   
 * Commercial License Agreement, or if any conditions of this licensing 
 * are not clear to you.                                                
 */


// generated by Fast Light User Interface Designer (fluid) version 2.00

#ifndef StaticText_h
#define StaticText_h
#include <FL/Fl.H>
#include <FL/Fl_Widget.H>

class StaticText:public Fl_Widget
{
    enum
    { MaxLength = 255 };
    char *str;
  public:
      StaticText(int xx, int yy, int ww, int hh);
     ~StaticText();
    void value(char *mstr);
  private:
    void draw();
};
#endif

--- NEW FILE: Main.h ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING  
 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A            
 * PARTICULAR PURPOSE.                                                  
 *                                                                       
 * RESTRICTED RIGHTS LEGEND                                             
 *                                                                     
 * Use, duplication, or disclosure by the government is subject to      
 * restriction as set forth in paragraph (b)(3)(b) of the Rights in     
 * Technical Data and Computer Software clause in DAR 7-104.9(a).       
 *                                                                      
 * See http://embedded.centurysoftware.com/gpl/ for GPL licensing       
 * information.                                                         
 *                                                                      
 * See http://embedded.centurysoftware.com/license.html or              
 * email cetsales at centurysoftware.com for information about the PIXIL   
 * Commercial License Agreement, or if any conditions of this licensing 
 * are not clear to you.                                                
 */


// generated by Fast Light User Interface Designer (fluid) version 2.00

#ifndef Main_h
#define Main_h
#include <FL/Fl.H>
#include "SciCalc.h"
int main(int ac, char *av);
#endif

--- NEW FILE: Makefile ---
# apps/calc/Makefile

TARGET_CXX=calc

SRC=${shell ls *.cxx} 
OBJS=${SRC:.cxx=.o}

LIBS=-lpixil-pim

ifeq ($(CONFIG_PAR),y)
LIBS+=-lpar
endif

ifeq ($(CONFIG_SYNC),y)
LIBS+=-lpixil-sync
endif

LIBS+=-lfltk -lflek

ifeq ($(CONFIG_NANOX),y)
LIBS+=-lnano-X 
endif

ifeq ($(CONFIG_X11),y)
LIBS+=-lX11
endif

ifeq ($(CONFIG_COLOSSEUM),y)
LIBS+=-lipc
endif

include $(BASE_DIR)/Rules.make


--- NEW FILE: Main.fld ---
# data file for the Fltk User Interface Designer (fluid)
version 2.00 
header_name {.h} 
code_name {.cxx} 
gridx 5 
gridy 5 
snap 3
decl {\#include "SciCalc.h"} {public
} 

Function {main(int ac,char *av)} {open selected return_type int
} {
  code {SciCalc *calc = new SciCalc();

	calc->run();
	delete calc;} {}
} 

--- NEW FILE: StaticText.cxx ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING  
 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A            
 * PARTICULAR PURPOSE.                                                  
 *                                                                       
 * RESTRICTED RIGHTS LEGEND                                             
 *                                                                     
 * Use, duplication, or disclosure by the government is subject to      
 * restriction as set forth in paragraph (b)(3)(b) of the Rights in     
 * Technical Data and Computer Software clause in DAR 7-104.9(a).       
 *                                                                      
 * See http://embedded.centurysoftware.com/gpl/ for GPL licensing       
 * information.                                                         
 *                                                                      
 * See http://embedded.centurysoftware.com/license.html or              
 * email cetsales at centurysoftware.com for information about the PIXIL   
 * Commercial License Agreement, or if any conditions of this licensing 
 * are not clear to you.                                                
 */


// generated by Fast Light User Interface Designer (fluid) version 2.00

#include "StaticText.h"
#include <FL/fl_draw.H>
#include <stdio.h>

StaticText::StaticText(int xx, int yy, int ww, int hh):
Fl_Widget(xx, yy, ww, hh, 0)
{
    str = 0;
}

StaticText::~StaticText()
{
    if (str != 0)
	delete[]str;
}

void
StaticText::value(char *mstr)
{
    int i, l;

    for (l = 0; l < MaxLength - 1; l++) {
	if (mstr[l] == 0)
	    break;
    }
    if (str)
	delete[]str;
    str = 0;
    if (l == 0)
	return;
    str = new char[l + 1];
    for (i = 0; i < l; i++)
	str[i] = mstr[i];
    str[l] = 0;
}

void
StaticText::draw()
{
    int xx, yy, ww, hh;

    draw_box();
    xx = x() + 3;
    yy = y() + 3;
    ww = w() - 6;
    hh = h() - 6;
    fl_clip(xx, yy, ww, hh);
    fl_color(labelcolor());
    fl_font(labelfont(), labelsize());
    if (str != 0)
	fl_draw((const char *) str, xx, yy, ww, hh, align());
    fl_pop_clip();
}

--- NEW FILE: SciCalc.cxx ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
[...2376 lines suppressed...]
    if (drgmode == 0)
	return (180.0 * angle / M_PI);
    else if (drgmode == 2)
	return (100.0 * angle / M_PI);
    else
	return (angle);
}

void
SciCalc::memexch()
{
    double temp;

    temp = mem;
    mem = value[top];
    value[top] = temp;
    set_display(value[top], NORM);
    ready = 1;
    set_memdisp();
}

--- NEW FILE: SciCalc.h ---
/*                                                                       
 * Copyright (c) 2003 Century Software, Inc.   All Rights Reserved.     
 *                                                                       
 * This file is part of the PIXIL Operating Environment                 
 *                                                                       
 * The use, copying and distribution of this file is governed by one    
 * of two licenses, the PIXIL Commercial License, or the GNU General    
 * Public License, version 2.                                           
 *                                                                       
 * Licensees holding a valid PIXIL Commercial License may use this file 
 * in accordance with the PIXIL Commercial License Agreement provided   
 * with the Software. Others are governed under the terms of the GNU   
 * General Public License version 2.                                    
 *                                                                       
 * This file may be distributed and/or modified under the terms of the  
 * GNU General Public License version 2 as published by the Free        
 * Software Foundation and appearing in the file LICENSE.GPL included   
 * in the packaging of this file.                                      
 *                                                                       
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING  
 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A            
 * PARTICULAR PURPOSE.                                                  
 *                                                                       
 * RESTRICTED RIGHTS LEGEND                                             
 *                                                                     
 * Use, duplication, or disclosure by the government is subject to      
 * restriction as set forth in paragraph (b)(3)(b) of the Rights in     
 * Technical Data and Computer Software clause in DAR 7-104.9(a).       
 *                                                                      
 * See http://embedded.centurysoftware.com/gpl/ for GPL licensing       
 * information.                                                         
 *                                                                      
 * See http://embedded.centurysoftware.com/license.html or              
 * email cetsales at centurysoftware.com for information about the PIXIL   
 * Commercial License Agreement, or if any conditions of this licensing 
 * are not clear to you.                                                
 */


// generated by Fast Light User Interface Designer (fluid) version 2.00

#ifndef SciCalc_h
#define SciCalc_h
#include <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Check_Button.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Menu_Bar.H>
#include <FL/Fl_Menu_Item.H>
#include <FL/Fl_Scroll.H>

#include <FL/Flv_Table_Child.H>
#include <FL/Fl_Editor.H>
#include <FL/Fl_Input.H>
#include <FL/Fl_Output.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Editor.H>



//#include <FL/Fl_Group.H>
//#include <FL/n_x.h>

#include <nxapp.h>
#include <nxwindow.h>
#include <nxdb.h>
#include <catlist.h>

#include "StaticText.h"

#define FL_BUTT_GEO(COL,ROW)	GetButtonPosX(COL),GetButtonPosY(ROW),GetButtonWidth(),GetButtonHeight()


class SciCalc:public Fl_Double_Window, public NxApp
{


    NxApp *thisnxapp;
    Fl_Double_Window *main_window;

    Fl_Double_Window *status_window;
    Fl_Double_Window *sci_view_window;
    Fl_Double_Window *simple_view_window;

    Fl_Double_Window *num_mode_window;
    Fl_Group *out_data_group;
    Fl_Button *to_sci_mode;
    Fl_Button *to_simple_mode;

    bool SciMode;
    int old_w;
    int old_h;
    int tmp_x;
    int tmp_y;
    int tmp_w;
    int tmp_h;

    bool ButtonGeometryValid;
    int button_h;
    int button_w;
    int button_win_x;
    int button_win_y;
    int button_win_w;
    int button_win_h;
    int button_win_row;
    int button_win_col;

    enum
    { MaxNumBrkts = 10 };
    enum Operator
    { PLUS, MINUS, MULT, DIV, POW, INVPOW, EVAL };
    enum mode
    { NONE = 0, DOT = -1, NORM = -2, EXP = -3 };
    double value[4 * (MaxNumBrkts + 1)]; /* The values on the stack */ ;
    int priority[6]; /* the priorities of each operator */ ;
    int oper[3 * (MaxNumBrkts + 1)]; /* the operators between them */ ;
    int top; /* the top of the stack */ ;
    int startbrkt[(MaxNumBrkts + 1)];
    /* the positions of the left brackets */ ;
    int currentbrkt; /* bracketing we are in */ ;
    double mem; /* The memory value */ ;
    int ready;			/* Whether last number is ready.
				   if "ready" is set, then typing another number
				   overwrites the current number. */ ;
    int dot; /* Whether the dot has been typed */ ;
    double diver; /* The divider when behind the dot */ ;
    int behind; /* Number of digits behind dot */ ;
    int inv; /* Whether inverse key is depressed */ ;
    int emode; /* Whether we are entering the exponent */ ;
    int exponent; /* the exponent value whilst entering exponent */ ;
    double mantissa; /* the mantissa value whilst entering exponent */ ;
    int base; /* the base we are working in (2,8,10 or 16) */ ;
    int drgmode; /* whether we are in deg, rad or grad mode */ ;
  public:
      SciCalc(bool);
//      virtual ~SciCalc();
  private:
      Fl_Double_Window * win;
    StaticText *leddisplay;
    inline void cb_leddisplay_i(StaticText *, void *);
    static void cb_leddisplay(StaticText *, void *);
    StaticText *box_DEGRAD;
    inline void cb_box_DEGRAD_i(StaticText *, void *);
    static void cb_box_DEGRAD(StaticText *, void *);
    StaticText *box_bracket;
    StaticText *box_M;
    inline void cb_box_M_i(StaticText *, void *);
    static void cb_box_M(StaticText *, void *);
    Fl_Button *radio_2;
    inline void cb_radio_2_i(Fl_Button *, void *);
    static void cb_radio_2(Fl_Button *, void *);
    Fl_Button *radio_8;
    inline void cb_radio_8_i(Fl_Button *, void *);
    static void cb_radio_8(Fl_Button *, void *);
    Fl_Button *radio_10;
    inline void cb_radio_10_i(Fl_Button *, void *);
    static void cb_radio_10(Fl_Button *, void *);
    Fl_Button *radio_16;
    inline void cb_radio_16_i(Fl_Button *, void *);
    static void cb_radio_16(Fl_Button *, void *);
    Fl_Button *but_7;
    inline void cb_but_7_i(Fl_Button *, void *);
    static void cb_but_7(Fl_Button *, void *);
    Fl_Button *but_8;
    inline void cb_but_8_i(Fl_Button *, void *);
    static void cb_but_8(Fl_Button *, void *);
    Fl_Button *but_9;
    inline void cb_but_9_i(Fl_Button *, void *);
    static void cb_but_9(Fl_Button *, void *);
    Fl_Button *but_4;
    inline void cb_but_4_i(Fl_Button *, void *);
    static void cb_but_4(Fl_Button *, void *);
    Fl_Button *but_5;
    inline void cb_but_5_i(Fl_Button *, void *);
    static void cb_but_5(Fl_Button *, void *);
    Fl_Button *but_6;
    inline void cb_but_6_i(Fl_Button *, void *);
    static void cb_but_6(Fl_Button *, void *);
    Fl_Button *but_1;
    inline void cb_but_1_i(Fl_Button *, void *);
    static void cb_but_1(Fl_Button *, void *);
    Fl_Button *but_2;
    inline void cb_but_2_i(Fl_Button *, void *);
    static void cb_but_2(Fl_Button *, void *);
    Fl_Button *but_3;
    inline void cb_but_3_i(Fl_Button *, void *);
    static void cb_but_3(Fl_Button *, void *);
    Fl_Button *but_0;
    inline void cb_but_0_i(Fl_Button *, void *);
    static void cb_but_0(Fl_Button *, void *);
    Fl_Button *but_dot;
    inline void cb_but_dot_i(Fl_Button *, void *);
    static void cb_but_dot(Fl_Button *, void *);
  public:
      Fl_Button * but_sign;
  private:
      inline void cb_but_sign_i(Fl_Button *, void *);
    static void cb_but_sign(Fl_Button *, void *);
    Fl_Button *but_C;
    inline void cb_but_C_i(Fl_Button *, void *);
    static void cb_but_C(Fl_Button *, void *);
    Fl_Button *but_AC;
    inline void cb_but_AC_i(Fl_Button *, void *);
    static void cb_but_AC(Fl_Button *, void *);
    Fl_Button *but_X;
    inline void cb_but_X_i(Fl_Button *, void *);
    static void cb_but_X(Fl_Button *, void *);
    Fl_Button *but_div;
    inline void cb_but_div_i(Fl_Button *, void *);
    static void cb_but_div(Fl_Button *, void *);
    Fl_Button *but_plus;
    inline void cb_but_plus_i(Fl_Button *, void *);
    static void cb_but_plus(Fl_Button *, void *);
    Fl_Button *but_minus;
    inline void cb_but_minus_i(Fl_Button *, void *);
    static void cb_but_minus(Fl_Button *, void *);
    Fl_Button *but_pi;
    inline void cb_but_pi_i(Fl_Button *, void *);
    static void cb_but_pi(Fl_Button *, void *);
    Fl_Button *but_eval;
    inline void cb_but_eval_i(Fl_Button *, void *);
    static void cb_but_eval(Fl_Button *, void *);
    Fl_Button *but_sqrt;
    inline void cb_but_sqrt_i(Fl_Button *, void *);
    static void cb_but_sqrt(Fl_Button *, void *);
    Fl_Button *but_pow;
    inline void cb_but_pow_i(Fl_Button *, void *);
    static void cb_but_pow(Fl_Button *, void *);
    Fl_Button *but_sin;
    inline void cb_but_sin_i(Fl_Button *, void *);
    static void cb_but_sin(Fl_Button *, void *);
    Fl_Button *but_cos;
    inline void cb_but_cos_i(Fl_Button *, void *);
    static void cb_but_cos(Fl_Button *, void *);
    Fl_Button *but_tan;
    inline void cb_but_tan_i(Fl_Button *, void *);
    static void cb_but_tan(Fl_Button *, void *);
    Fl_Button *but_log;
    inline void cb_but_log_i(Fl_Button *, void *);
    static void cb_but_log(Fl_Button *, void *);
    Fl_Button *but_ln;
    inline void cb_but_ln_i(Fl_Button *, void *);
    static void cb_but_ln(Fl_Button *, void *);
    Fl_Button *but_int;
    inline void cb_but_int_i(Fl_Button *, void *);
    static void cb_but_int(Fl_Button *, void *);
    Fl_Button *but_dr;
    inline void cb_but_dr_i(Fl_Button *, void *);
    static void cb_but_dr(Fl_Button *, void *);
    Fl_Button *but_drg;
    inline void cb_but_drg_i(Fl_Button *, void *);
    static void cb_but_drg(Fl_Button *, void *);
    Fl_Button *but_leftbr;
    inline void cb_but_leftbr_i(Fl_Button *, void *);
    static void cb_but_leftbr(Fl_Button *, void *);
    Fl_Button *but_rightbr;
    inline void cb_but_rightbr_i(Fl_Button *, void *);
    static void cb_but_rightbr(Fl_Button *, void *);
    Fl_Button *but_exch;
    inline void cb_but_exch_i(Fl_Button *, void *);
    static void cb_but_exch(Fl_Button *, void *);
    Fl_Button *but_invx;
    inline void cb_but_invx_i(Fl_Button *, void *);
    static void cb_but_invx(Fl_Button *, void *);
    Fl_Button *but_fact;
    inline void cb_but_fact_i(Fl_Button *, void *);
    static void cb_but_fact(Fl_Button *, void *);
    Fl_Button *but_Mplus;
    inline void cb_but_Mplus_i(Fl_Button *, void *);
    static void cb_but_Mplus(Fl_Button *, void *);
    Fl_Button *but_Mmult;
    inline void cb_but_Mmult_i(Fl_Button *, void *);
    static void cb_but_Mmult(Fl_Button *, void *);
    Fl_Button *but_Mclear;
    inline void cb_but_Mclear_i(Fl_Button *, void *);
    static void cb_but_Mclear(Fl_Button *, void *);
    Fl_Button *but_Mst;
    inline void cb_but_Mst_i(Fl_Button *, void *);
    static void cb_but_Mst(Fl_Button *, void *);
    Fl_Button *but_Mrc;
    inline void cb_but_Mrc_i(Fl_Button *, void *);
    static void cb_but_Mrc(Fl_Button *, void *);
    Fl_Button *check_inv;
    inline void cb_check_inv_i(Fl_Button *, void *);
    static void cb_check_inv(Fl_Button *, void *);
    Fl_Button *but_quit;
    inline void cb_but_quit_i(Fl_Button *, void *);
    static void cb_but_quit(Fl_Button *, void *);
  public:
    // ~SciCalc();
    void run(int px = -1, int py = -1);
  private:
    void handle_number(double numb);
    void handle_operator(Operator op);
    void change_base(int newbase);
    void set_display(double val, mode behind);
    void set_memdisp();
    void set_drgdisp();
    void set_brktdisp();
    void add_left_bracket();
    void add_right_bracket();
  public:
    void factorial();
    void exchange();
    void exponent_pi();
    void calc(int i);
  private:
    void init_value(int lev);
    void cvttobase(double num, int base, mode behind, char *str);
    void setnormlabels();
    void setinvlabels();
    void mem_exchange();
    double to_drg(double angle);
    double from_drg(double angle);
  public:
    void memexch();
  private:			// New members
    void ButtonGeometryInvalidate()
    {
	ButtonGeometryValid = FALSE;
    }
    void SetButtonWindowGeometry(int, int, int, int, int, int);

    int GetButtonPosX(int);
    int GetButtonPosY(int);
    int GetButtonWidth();
    int GetButtonHeight();
    inline void cb_to_sci_mode_i(Fl_Button *, void *);
    static void cb_to_sci_mode(Fl_Button *, void *);
    inline void cb_to_simple_mode_i(Fl_Button *, void *);
    static void cb_to_simple_mode(Fl_Button *, void *);
  public:
    virtual void resize_notify(int, int, int, int);
    void do_resize(int, int);
};
#endif




More information about the dslinux-commit mailing list