nux-1.16.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 VECTOR3VALUATOR_H 00024 #define VECTOR3VALUATOR_H 00025 00026 namespace nux 00027 { 00028 00029 class EditTextBox; 00030 00031 class Vector3Valuator: public View 00032 { 00033 public: 00034 Vector3Valuator (NUX_FILE_LINE_PROTO); 00035 ~Vector3Valuator(); 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 Vector3Valuator. 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 RecvValidateEntryX (EditTextBox *textbox); 00062 void RecvValidateEntryY (EditTextBox *textbox); 00063 void RecvValidateEntryZ (EditTextBox *textbox); 00064 00065 virtual void ImplementIncrementX() = 0; 00066 virtual void ImplementDecrementX() = 0; 00067 virtual void ImplementIncrementY() = 0; 00068 virtual void ImplementDecrementY() = 0; 00069 virtual void ImplementIncrementZ() = 0; 00070 virtual void ImplementDecrementZ() = 0; 00071 virtual void ImplementValidateEntryX() = 0; 00072 virtual void ImplementValidateEntryY() = 0; 00073 virtual void ImplementValidateEntryZ() = 0; 00074 00075 00076 // SIGNALS 00077 sigc::signal<void> sigClick; 00078 sigc::signal<void> sigIncrement; 00079 sigc::signal<void> sigDecrement; 00080 sigc::signal<void> sigValueChanged; 00081 sigc::signal<void, int> sigIntValueChanged; 00082 00083 protected: 00084 EditTextBox *m_XEdit; 00085 EditTextBox *m_YEdit; 00086 EditTextBox *m_ZEdit; 00087 InputArea *m_MouseControlledButton; 00088 int m_Mouse; 00089 00090 }; 00091 00092 } 00093 00094 #endif // VECTOR3VALUATOR_H 00095