00001 /* 00002 ClanGUI, copyrights by various people. Have a look in the CREDITS file. 00003 00004 This sourcecode is distributed using the Library GNU Public Licence, 00005 version 2 or (at your option) any later version. Please read LICENSE 00006 for details. 00007 */ 00008 00009 #ifndef header_guimanager_generic 00010 #define header_guimanager_generic 00011 00012 #include "API/GUI/gui_manager.h" 00013 00014 class CL_InputDevice; 00015 class CL_Key; 00016 00017 class CL_GUIManager_Generic 00018 { 00019 // Construction: 00020 public: 00021 CL_GUIManager_Generic(CL_GUIManager *owner, CL_Component *parent = NULL); 00022 00023 ~CL_GUIManager_Generic(); 00024 00025 // Attributes: 00026 public: 00027 CL_Component *get_focus(); 00028 00029 // Operations: 00030 public: 00031 void set_focus(CL_Component *component); 00032 00033 void run(); 00034 00035 void show(); 00036 00037 void enable_input(); 00038 00039 void disable_input(); 00040 00041 void gui_capture_mouse(CL_Component *component); 00042 00043 void gui_release_mouse(); 00044 00045 void quit(); 00046 00047 // Implementation: 00048 private: 00049 void on_button_press(CL_InputDevice *, const CL_Key&); 00050 void on_button_release(CL_InputDevice *, const CL_Key&); 00051 void on_mouse_move(CL_InputDevice *, int, int); 00052 00053 CL_Slot slot_button_press; 00054 CL_Slot slot_button_release; 00055 CL_Slot slot_mouse_move; 00056 00057 volatile bool quit_run; 00058 CL_GUIManager *owner; 00059 CL_GUIManager *parent; 00060 bool input_enabled; 00061 00062 CL_Component *comp_focus; 00063 CL_Component *comp_capture_mouse; 00064 CL_Component *comp_mouse_over; 00065 }; 00066 00067 #endif
1.2.6 written by Dimitri van Heesch,
© 1997-2001