Subversion Repositories programming

Rev

Rev 344 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
340 ira 1
 
2
#ifndef ELEVATOR_WINDOW_H
3
#define ELEVATOR_WINDOW_H
4
 
5
#include <gtkmm/button.h>
6
#include <gtkmm/window.h>
7
#include <gtkmm/togglebutton.h>
8
#include <gtkmm/table.h>
9
#include <gtkmm/label.h>
10
#include <gtkmm/image.h>
11
#include <gtkmm/stock.h>
12
#include <gtkmm/dialog.h>
13
#include <gtkmm/entry.h>
14
 
15
#include <vector>
16
#include <string>
17
#include <iostream>
18
#include <sstream>
19
#include <assert.h>
20
 
21
#include "elevator.h"
22
#include "controller.h"
23
 
24
class Controller;
25
 
26
typedef struct
27
{
28
    Glib::ustring str;
29
    int button_num;
30
    int direction;
31
    Gtk::ToggleButton *theButton;
32
}
33
Button_Data;
34
 
35
class Elevator_Window : public Gtk::Window
36
{
37
    public:
38
        Elevator_Window ();
39
        virtual ~Elevator_Window ();
40
 
41
        void set_controller (Controller *controller);
42
        /*std::string*/void get_floors_from_user (int elevator_num);
43
 
44
        // Helper Functions
45
        void open_elevator_at (int row, int col);
46
        void close_elevator_at (int row, int col);
47
        void unset_up_button (int button_num);
48
        void unset_down_button (int button_num);
49
        void set_label (int label_num, std::string new_text);
50
 
51
    protected:
52
        // Signal Handlers
53
        virtual void on_toggle_button_pressed (Button_Data data);
54
 
55
        // Member Widgets
56
        Gtk::Table m_table;
57
        std::vector<Gtk::ToggleButton*> upbuttons;
58
        std::vector<Gtk::ToggleButton*> downbuttons;
59
        std::vector<Gtk::Image*> images;
60
        std::vector<Gtk::Label*> labels;
61
 
62
        // Member Controller
63
        Controller *controller;
64
};
65
 
66
#endif // ELEVATOR_WINDOW_H
67