CEBL  2.1
InterfaceConfigurationWindow.hpp
Go to the documentation of this file.
1 /*
2 * CEBL : CSU EEG Brain-Computer Interface Lab
3 *
4 * Author: Jeshua Bratman - jeshuabratman@gmail.com
5 *
6 * This file is part of CEBL.
7 *
8 * CEBL is free software; you can redistribute it and/or modify it.
9 * We only ask that if you use our code that you cite the source in
10 * your project or publication.
11 *
12 * EEG Group (www.cs.colostate.edu/eeg)
13 * Department of Computer Science
14 * Colorado State University
15 *
16 */
17 
25 #ifndef INTERFACECONFIGURATIONWINDOW_H
26 #define INTERFACECONFIGURATIONWINDOW_H
27 
28 #include <gtk/gtk.h>
29 #include "WidgetUtils.hpp"
30 #include <vector>
31 
32 //forward defs
33 class CEBLViewGTK;
34 class EEGInterface;
35 class WidgetPanel;
36 
43 {
44 private:
45  CEBLViewGTK * view;
46 
47  GtkWidget * window, btn_apply;
48  std::vector<GtkWidget *> class_labels_entries;
49  std::vector<GtkWidget *> open_close_buttons;
50  std::vector<string> class_labels;
51  WidgetPanel *interface_parameters_panel;
52  bool updating_view;
53  bool window_open;
54  bool window_created;
55 
56 
58  void createWindow();
60  void closeWindow();
62  void openWindow();
63 
65  static void CB_openCloseWindow(GtkWidget *widget,gpointer);
67  static gboolean CB_windowDelete(GtkWidget *widget, GdkEvent *event, gpointer data);
69  static void CB_windowClose(GtkWidget *widget,gpointer);
70 
72  void applyConfig();
73 
74 public:
77 
79  GtkWidget * getButton();
80 
82  std::vector<string> getClassLabels();
83 
85  void updateView();
86 };
87 
88 #endif
89