Subversion Repositories programming

Rev

Rev 346 | Rev 348 | Go to most recent revision | Details | Compare with Previous | 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
 
344 ira 15
#include <boost/algorithm/string.hpp>
16
 
340 ira 17
#include <vector>
18
#include <string>
19
#include <iostream>
20
#include <sstream>
21
#include <assert.h>
22
 
23
#include "elevator.h"
24
#include "controller.h"
344 ira 25
#include "dispatch_data.h"
340 ira 26
 
27
class Controller;
28
 
29
typedef struct
30
{
31
    Glib::ustring str;
32
    int button_num;
33
    int direction;
34
    Gtk::ToggleButton *theButton;
35
}
36
Button_Data;
37
 
38
class Elevator_Window : public Gtk::Window
39
{
40
    public:
347 ira 41
        Elevator_Window (int numFloors, int numElevators);
340 ira 42
        virtual ~Elevator_Window ();
43
 
44
        void set_controller (Controller *controller);
344 ira 45
        void get_floors_from_user (int elevator_num);
340 ira 46
 
47
        // Helper Functions
48
        void open_elevator_at (int row, int col);
49
        void close_elevator_at (int row, int col);
50
        void unset_up_button (int button_num);
51
        void unset_down_button (int button_num);
52
        void set_label (int label_num, std::string new_text);
53
 
54
    protected:
55
        // Signal Handlers
56
        virtual void on_toggle_button_pressed (Button_Data data);
57
 
58
        // Member Widgets
59
        Gtk::Table m_table;
60
        std::vector<Gtk::ToggleButton*> upbuttons;
61
        std::vector<Gtk::ToggleButton*> downbuttons;
62
        std::vector<Gtk::Image*> images;
63
        std::vector<Gtk::Label*> labels;
64
 
65
        // Member Controller
66
        Controller *controller;
346 ira 67
 
68
        // Member Variables
69
        int numFloors;
70
        int numElevators;
340 ira 71
};
72
 
73
#endif // ELEVATOR_WINDOW_H
74