Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Namespace Members | Data Fields | Globals

SymbolKeypad.h

Go to the documentation of this file.
00001 // Copyright (C) 2003 Dominic Letourneau
00002 
00003 #ifndef _SYMBOLKEYPAD_H
00004 #define _SYMBOLKEYPAD_H
00005 
00006 #include "Probe.h"
00007 #include <map>
00008 
00009 namespace RobotFlow {
00010 
00011 class SymbolKeypad : public FD::Node {
00012 
00013   //callbacks
00014   friend void keypad_button_pressed(GtkButton  *object, SymbolKeypad* keypad);
00015   friend void keypad_button_released(GtkButton  *button, SymbolKeypad *keypad);
00016   friend gboolean ignore_delete(GtkWidget *widget, GdkEvent *event, SymbolKeypad *keypad);
00017   friend gboolean keypad_event_function  (GtkWidget *window, GdkEvent *event, SymbolKeypad *keypad);
00018   protected:
00019 
00020   //updated the pad
00021   void update_values(int pad_number, bool activate);
00022   //void add_accelerator(char key, GtkWidget *button);
00023   void keyboard_action(unsigned int key);
00024   
00025   //widgets
00026   GtkWidget *window1;
00027   GtkWidget *vbox1;
00028   GtkWidget *table_1;
00029   GtkWidget *button_0;
00030   GtkWidget *button_1;
00031   GtkWidget *button_2;
00032   GtkWidget *button_3;
00033   GtkWidget *button_4;
00034   GtkWidget *button_5;
00035   GtkWidget *button_6;
00036   GtkWidget *button_7;
00037   GtkWidget *button_8;
00038   GtkWidget *button_9;
00039   GtkWidget *button_A;
00040   GtkWidget *button_B;
00041   GtkWidget *button_C;
00042   GtkWidget *button_D;
00043   GtkWidget *button_E;
00044   GtkWidget *button_F;
00045   GtkWidget *button_G;
00046   GtkWidget *button_H;
00047   GtkWidget *button_I;
00048   GtkWidget *button_J;
00049   GtkWidget *button_K;
00050   GtkWidget *button_L;
00051   GtkWidget *button_M;
00052   GtkWidget *button_N;
00053   GtkWidget *button_O;
00054   GtkWidget *button_P;
00055   GtkWidget *button_Q;
00056   GtkWidget *button_R;
00057   GtkWidget *button_S;
00058   GtkWidget *button_T;
00059   GtkWidget *button_U;
00060   GtkWidget *button_V;
00061   GtkWidget *button_W;
00062   GtkWidget *button_X;
00063   GtkWidget *button_Y;
00064   GtkWidget *button_Z;
00065 
00066   //Accelerator
00067   //GtkAccelGroup *accel;
00068 
00069   //internal variables
00070   int selected_column;
00071   int selected_line;
00072   int selected_pad;
00073   char pad_description;
00074   bool active;
00075   int key_stroke;
00076 
00077   //outputs
00078   int keypadID;
00079   int keypadIdID;
00080   int keypadNameID;
00081   int keypadActivatedID;
00082 
00083   //a lookup map with widgets/ids
00084   std::map <GtkWidget*,int> button_map;
00085   std::map <unsigned int,int> key_map;
00086 
00087   public:
00088 
00089    SymbolKeypad(std::string nodeName, FD::ParameterSet params);
00090 
00091    virtual ~SymbolKeypad();
00092 
00093    /**Class specific initialization routine.
00094       Each class will call its subclass initialize() method*/
00095    virtual void initialize();
00096 
00097    /**Class reset routine.
00098       Each class will call its superclass reset() method*/
00099    virtual void reset();
00100 
00101    /**Ask for the node's output which ID (number) is output_id 
00102       and for the 'count' iteration */
00103 
00104    virtual FD::ObjectRef getOutput(int output_id, int count); 
00105 
00106    static const int pad_0_number;
00107    static const int pad_1_number;
00108    static const int pad_2_number;
00109    static const int pad_3_number;
00110    static const int pad_4_number;
00111    static const int pad_5_number;
00112    static const int pad_6_number;
00113    static const int pad_7_number;
00114    static const int pad_8_number;
00115    static const int pad_9_number;
00116    static const int pad_A_number;
00117    static const int pad_B_number;
00118    static const int pad_C_number;
00119    static const int pad_D_number;
00120    static const int pad_E_number;
00121    static const int pad_F_number;
00122    static const int pad_G_number;
00123    static const int pad_H_number;
00124    static const int pad_I_number;
00125    static const int pad_J_number;
00126    static const int pad_K_number;
00127    static const int pad_L_number;
00128    static const int pad_M_number;
00129    static const int pad_N_number;
00130    static const int pad_O_number;
00131    static const int pad_P_number;
00132    static const int pad_Q_number;
00133    static const int pad_R_number;
00134    static const int pad_S_number;
00135    static const int pad_T_number;
00136    static const int pad_U_number;
00137    static const int pad_V_number;
00138    static const int pad_W_number;
00139    static const int pad_X_number;
00140    static const int pad_Y_number;
00141    static const int pad_Z_number;
00142 };
00143 
00144 }//namespace RobotFlow
00145 #endif

Generated on Wed Oct 5 14:36:12 2005 for RobotFlow by  doxygen 1.4.4