GTK+/Kalkulator 0.0.1 - gui.hpp

#include "kalkulator.cpp"

class GUIKalkulator: public Kalkulator
{
  private:
    GtkWidget *mainwindow;
    GtkWidget *vbox;
    GtkWidget *table;
    GtkWidget *entry;
    GtkWidget *button1;
    GtkWidget *button2;
    GtkWidget *button3;
    GtkWidget *button4;
    GtkWidget *button5;
    GtkWidget *button6;
    GtkWidget *button7;
    GtkWidget *button8;
    GtkWidget *button9;
    GtkWidget *button0;
    GtkWidget *buttoncomma;
    GtkWidget *buttonback;
    GtkWidget *buttonclear;
    GtkWidget *buttonadd;
    GtkWidget *buttonsub;
    GtkWidget *buttonmulti;
    GtkWidget *buttondiv;
    GtkWidget *buttonresult;
    GtkWidget *buttonsigned;
    GtkWidget *buttonaddmem;
    GtkWidget *comboreadmem;
    guint combocount;
    GtkWidget *buttonclearmem;
    GtkWidget *menubar;
    GtkWidget *vbox_menu;
    GtkWidget *menuitem_bar_kalkulator;
    GtkWidget *menuitem_bar_about;
    GtkWidget *menu_kalkulator;
    GtkWidget *menu_help;
    GtkWidget *menuitem_close;
    GtkWidget *menuitem_help;
    GtkWidget *dialog;
    PangoFontDescription *pangofont;
    // funkcje zwrotne
    static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data);
    static void destroy(GtkWidget *widget, gpointer data);
    static void btn_1_clicked(GtkWidget *widget, gpointer data);
    static void btn_2_clicked(GtkWidget *widget, gpointer data);
    static void btn_3_clicked(GtkWidget *widget, gpointer data);
    static void btn_4_clicked(GtkWidget *widget, gpointer data);
    static void btn_5_clicked(GtkWidget *widget, gpointer data);
    static void btn_6_clicked(GtkWidget *widget, gpointer data);
    static void btn_7_clicked(GtkWidget *widget, gpointer data);
    static void btn_8_clicked(GtkWidget *widget, gpointer data);
    static void btn_9_clicked(GtkWidget *widget, gpointer data);
    static void btn_0_clicked(GtkWidget *widget, gpointer data);
    static void btn_comma_clicked(GtkWidget *widget, gpointer data);
    static void btn_back_clicked(GtkWidget *widget, gpointer data);
    static void btn_clear_clicked(GtkWidget *widget, gpointer data);
    static void btn_add_clicked(GtkWidget *widget, gpointer data);
    static void btn_sub_clicked(GtkWidget *widget, gpointer data);
    static void btn_multi_clicked(GtkWidget *widget, gpointer data);
    static void btn_div_clicked(GtkWidget *widget, gpointer data);
    static void btn_result_clicked(GtkWidget *widget, gpointer data);
    static void btn_signed_clicked(GtkWidget *widget, gpointer data);
    static void btn_addmem_clicked(GtkWidget *widget, gpointer data);
    static void btn_readmem_clicked(GtkWidget *widget, gpointer data);
    static void btn_clearmem_clicked(GtkWidget *widget, gpointer data);
    static void menu_item_close(GtkMenuItem *menuitem, gpointer data);
    static void menu_item_help(GtkMenuItem *menuitem, gpointer data);
    static gboolean mainwindow_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data);
    // obsłuwa wszystkich przycisków numerycznych: 1,2,3,4,5,6,7,8,9,0
    void _numeric_btn_clicked_event(btn_id button, GUIKalkulator* gui_kalkulator);
    // obsługa wszytskich przycisków działń: +,-,*,/
    void _calculate_btn_clicked_event(operation_id operation);
    
  public:
    GUIKalkulator();
    ~GUIKalkulator();
    void init(int, char**);
    void build();
    void run();
};