Update gtk131

This commit is contained in:
daleclack 2022-06-23 14:52:39 +08:00
parent 0316078ffc
commit f3dfba5372
3 changed files with 10 additions and 4 deletions

View File

@ -33,6 +33,7 @@ MyWin::MyWin(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glad
ref_builder->get_widget("btnleft", btns[14]); ref_builder->get_widget("btnleft", btns[14]);
ref_builder->get_widget("btnright", btns[15]); ref_builder->get_widget("btnright", btns[15]);
ref_builder->get_widget("btnpoint",btns[16]); ref_builder->get_widget("btnpoint",btns[16]);
ref_builder->get_widget("btndiv100",btns[17]);
ref_builder->get_widget("btnsqrt",btnsqrt); ref_builder->get_widget("btnsqrt",btnsqrt);
ref_builder->get_widget("btnpow",btnpow); ref_builder->get_widget("btnpow",btnpow);
@ -42,7 +43,7 @@ MyWin::MyWin(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &ref_Glad
btnanswer->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnanswer_clicked)); btnanswer->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnanswer_clicked));
btnpow->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnpow_clicked)); btnpow->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnpow_clicked));
btnsqrt->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnsqrt_clicked)); btnsqrt->signal_clicked().connect(sigc::mem_fun(*this,&MyWin::btnsqrt_clicked));
for (int i = 0; i < 16; i++) for (int i = 0; i < 18; i++)
{ {
btns[i]->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &MyWin::btns_clicked), btns[i])); btns[i]->signal_clicked().connect(sigc::bind(sigc::mem_fun(*this, &MyWin::btns_clicked), btns[i]));
} }

View File

@ -19,7 +19,7 @@ private:
// Child widgets // Child widgets
Gtk::Entry *entry_ans; Gtk::Entry *entry_ans;
Gtk::Button *btns[17], *btnback, *btnclear, *btnanswer, Gtk::Button *btns[18], *btnback, *btnclear, *btnanswer,
*btnsqrt, *btnpow; *btnsqrt, *btnpow;
// Signal Handlers // Signal Handlers

View File

@ -11,7 +11,7 @@ void calc_reset(){
} }
double calc_factor_value(const char * factor){ double calc_factor_value(const char * factor){
double result1 = 0.0, result2 = 0.0; double result1 = 0.0, result2 = 0.0, final_result = 0.0;
char c = factor[pos]; char c = factor[pos];
if( c == '('){ // if expression has '(', calculate the expression in the '()' if( c == '('){ // if expression has '(', calculate the expression in the '()'
pos++; // Pass the '(' pos++; // Pass the '('
@ -32,8 +32,13 @@ double calc_factor_value(const char * factor){
c = factor[pos]; c = factor[pos];
} }
} }
final_result = result1 + result2;
if(c == '%'){
final_result /= 100.0; // Pass the '%'
pos++;
}
} }
return result1+result2; return final_result;
} }
double calc_term_value(const char * term){ double calc_term_value(const char * term){