nux-1.16.0
Vector3Valuator.h
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 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends