PEBL 2.2
Psychology Experiment Building Language - Cross-platform psychological experiment development system
PTextBox.h
Go to the documentation of this file.
1//* -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*- */
3// Name: src/objects/PTextBox.h
4// Purpose: Contains generic specs for non-editable a text box
5// Author: Shane T. Mueller, Ph.D.
6// Copyright: (c) 2003-2026 Shane T. Mueller <smueller@obereed.net>
7// License: GPL 2
8//
9//
10//
11// This file is part of the PEBL project.
12//
13// PEBL is free software; you can redistribute it and/or modify
14// it under the terms of the GNU General Public License as published by
15// the Free Software Foundation; either version 2 of the License, or
16// (at your option) any later version.
17//
18// PEBL is distributed in the hope that it will be useful,
19// but WITHOUT ANY WARRANTY; without even the implied warranty of
20// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21// GNU General Public License for more details.
22//
23// You should have received a copy of the GNU General Public License
24// along with PEBL; if not, write to the Free Software
25// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27#ifndef __PTEXTBOX_H__
28#define __PTEXTBOX_H__
29
30#include "SDL.h" //For Uint16 definitionx
31#include "PTextObject.h"
32//#include "PFont.h" Maybe not needed.
33#include "../utility/rc_ptrs.h"
34#include <string>
35
38
39class PTextBox: virtual public PTextObject
40{
41public:
42 PTextBox();
43 PTextBox(std::string text, int width, int height);
44 PTextBox(PTextBox & textbox);
45 virtual ~PTextBox();
46
47
48 //overloaded generic PObject methods
49 virtual bool SetProperty(std::string, Variant v);
50 virtual Variant GetProperty(std::string)const;
51 virtual ObjectValidationError ValidateProperty(std::string, Variant v)const;
52 virtual ObjectValidationError ValidateProperty(std::string)const;
53
54
55 virtual void SetHeight(int h);
56 virtual void SetWidth(int w);
57
58 virtual void InsertText(const std::string character);
59 virtual void DeleteText(int length);
60
61 virtual void SetEditable(bool val){mEditable = val; mCursorChanged=true;};
62 virtual bool GetEditable(){return mEditable;};
63
64 virtual void SetCursorPosition(unsigned long int pos){mCursorChanged = true; mCursorPos = pos;};
65 virtual unsigned long int GetCursorPosition(){return mCursorPos;};
66
67 virtual long unsigned int IncrementCursor();
68 virtual long unsigned int DecrementCursor();
69
70 virtual void SetLineWrap(bool state);
71 virtual void SetJustify(Variant j);
72
73 virtual void HandleKeyPress(int keycode, int modkeys,Uint16 unicode);
74 virtual void HandleTextInput(std::string text);
75
76
77 virtual bool AtPrintableCharacter(unsigned long int x);
78
79 virtual std::string ObjectName() const;
80
81private:
82
83
84protected:
85
86
87 virtual std::ostream & SendToStream(std::ostream& out) const{return out;};
88
89
90 bool mEditable; //Whether the box is editable.
91 unsigned long int mCursorPos; //The character position of the cursor.
92 bool mCursorChanged; //True if cursor has moved.
93 bool mLineWrap; //Should lines get wrapped, or just truncated?
94 Variant mJustify; //left,right, or center
95
96 // Note: Adaptive textbox properties (ISADAPTIVE, ADAPTIVEMODE, REQUESTEDFONTSIZE)
97 // are stored ONLY in the property system, not as member variables.
98 // This avoids memory management issues and keeps implementation in PEBL code (UI.pbl)
99
100};
101
102
103#endif
104
ObjectValidationError
Definition PEBLObject.h:37
This class is the basic generic text box.
Definition PTextBox.h:40
virtual void HandleTextInput(std::string text)
Definition PTextBox.cpp:414
virtual long unsigned int IncrementCursor()
Definition PTextBox.cpp:295
virtual void InsertText(const std::string character)
Definition PTextBox.cpp:189
virtual std::ostream & SendToStream(std::ostream &out) const
An inheritable printing class used by PEBLObjectBase::operator<<.
Definition PTextBox.h:87
virtual ~PTextBox()
Definition PTextBox.cpp:117
virtual std::string ObjectName() const
Definition PTextBox.cpp:441
virtual void HandleKeyPress(int keycode, int modkeys, Uint16 unicode)
Definition PTextBox.cpp:394
virtual void SetJustify(Variant j)
Definition PTextBox.cpp:386
virtual void SetWidth(int w)
Definition PTextBox.cpp:373
virtual long unsigned int DecrementCursor()
Definition PTextBox.cpp:334
Variant mJustify
Definition PTextBox.h:94
virtual bool AtPrintableCharacter(unsigned long int x)
Definition PTextBox.cpp:424
virtual ObjectValidationError ValidateProperty(std::string, Variant v) const
Definition PTextBox.cpp:160
virtual bool SetProperty(std::string, Variant v)
Definition PTextBox.cpp:124
unsigned long int mCursorPos
Definition PTextBox.h:91
virtual void SetCursorPosition(unsigned long int pos)
Definition PTextBox.h:64
virtual void SetLineWrap(bool state)
Definition PTextBox.cpp:380
virtual void SetEditable(bool val)
Definition PTextBox.h:61
virtual void SetHeight(int h)
Definition PTextBox.cpp:367
virtual bool GetEditable()
Definition PTextBox.h:62
bool mLineWrap
Definition PTextBox.h:93
virtual Variant GetProperty(std::string) const
Definition PTextBox.cpp:154
bool mCursorChanged
Definition PTextBox.h:92
bool mEditable
Definition PTextBox.h:90
virtual unsigned long int GetCursorPosition()
Definition PTextBox.h:65
virtual void DeleteText(int length)
Definition PTextBox.cpp:210
This class simply represent an abstract text-based object.
Definition PTextObject.h:41