nux-1.14.0
|
00001 /* 00002 * Copyright 2010 Inalogic® Inc. 00003 * 00004 * This program is free software: you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License, as 00006 * published by the Free Software Foundation; either version 2.1 or 3.0 00007 * of the License. 00008 * 00009 * This program is distributed in the hope that it will be useful, but 00010 * WITHOUT ANY WARRANTY; without even the implied warranties of 00011 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR 00012 * PURPOSE. See the applicable version of the GNU Lesser General Public 00013 * License for more details. 00014 * 00015 * You should have received a copy of both the GNU Lesser General Public 00016 * License along with this program. If not, see <http://www.gnu.org/licenses/> 00017 * 00018 * Authored by: Jay Taoko <jaytaoko@inalogic.com> 00019 * 00020 */ 00021 00022 00023 #ifndef VALUATOR_H 00024 #define VALUATOR_H 00025 00026 namespace nux 00027 { 00028 00029 class EditTextBox; 00030 00031 class Valuator: public View 00032 { 00033 public: 00034 Valuator (NUX_FILE_LINE_PROTO); 00035 ~Valuator(); 00036 00037 virtual long ProcessEvent (IEvent &ievent, long TraverseInfo, long ProcessEventInfo) = 0; 00038 virtual void Draw (GraphicsEngine &GfxContext, bool force_draw) = 0; 00039 virtual void DrawContent (GraphicsEngine &GfxContext, bool force_draw) = 0; 00040 virtual void PostDraw (GraphicsEngine &GfxContext, bool force_draw) = 0; 00041 00042 // RECEIVERS 00043 void RecvMouseMove (int x, int y, unsigned long button_flags, unsigned long key_flags); 00044 void RecvMouseDown (int x, int y, unsigned long button_flags, unsigned long key_flags); 00045 void RecvDecrement (int x, int y, unsigned long button_flags, unsigned long key_flags); 00046 void TimerSpinUpBtn (void *v); 00047 void TimerSpinDownBtn (void *v); 00048 void RecvMouseDrag (int x, int y, int dx, int dy, unsigned long button_flags, unsigned long key_flags); 00049 void RecvMouseEnter (int x, int y, unsigned long button_flags, unsigned long key_flags); 00050 void RecvMouseLeave (int x, int y, unsigned long button_flags, unsigned long key_flags); 00051 /* 00052 The spinner buttons need to be redrawn when they are released. 00053 Their color may have changed when the mouse down was initiated. 00054 This receiver is going to initiate the redraw of the whole Valuator. 00055 */ 00056 void RecvMouseUp (int x, int y, unsigned long button_flags, unsigned long key_flags); 00057 void RecvStartKeyboardFocus (EditTextBox *textbox); 00058 void RecvEndKeyboardFocus (EditTextBox *textbox); 00059 void RecvEscapeKeyboardFocus (EditTextBox *textbox); 00060 void RecvEditChange (EditTextBox *textbox); 00061 void RecvValidateEntry (EditTextBox *textbox); 00062 00063 virtual void ImplementIncrementBtn() = 0; 00064 virtual void ImplementDecrementBtn() = 0; 00065 virtual void ImplementValidateEntry() = 0; 00066 00067 00068 // SIGNALS 00069 sigc::signal<void> sigClick; 00070 sigc::signal<void> sigIncrement; 00071 sigc::signal<void> sigDecrement; 00072 sigc::signal<void> sigValueChanged; 00073 sigc::signal<void, int> sigIntValueChanged; 00074 00075 protected: 00076 EditTextBox *m_EditLine; 00077 InputArea *m_MouseControlledButton; 00078 int m_Mouse; 00079 00080 }; 00081 00082 } 00083 00084 #endif // VALUATOR_H 00085