IGUIEditBox.h
上传用户:yhq100200
上传日期:2022-01-28
资源大小:829k
文件大小:5k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // Copyright (C) 2002-2008 Nikolaus Gebhardt
  2. // This file is part of the "Irrlicht Engine".
  3. // For conditions of distribution and use, see copyright notice in irrlicht.h
  4. #ifndef __I_GUI_EDIT_BOX_H_INCLUDED__
  5. #define __I_GUI_EDIT_BOX_H_INCLUDED__
  6. #include "IGUIElement.h"
  7. #include "SColor.h"
  8. // >> Add by MadHyde for IME Window start
  9. #include "IrrlichtDevice.h"
  10. // << Add by MadHyde for IME Window end
  11. namespace irr
  12. {
  13. namespace gui
  14. {
  15. class IGUIFont;
  16. //! Single line edit box for editing simple text.
  17. class IGUIEditBox : public IGUIElement
  18. {
  19. public:
  20. //! constructor
  21. IGUIEditBox(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
  22. // >> Modified by MadHyde for IME Window start
  23. : IGUIElement(EGUIET_EDIT_BOX, environment, parent, id, rectangle), dev(NULL) {};
  24. // : IGUIElement(EGUIET_EDIT_BOX, environment, parent, id, rectangle) {}
  25. // << Modified by MadHyde for IME Window end
  26. //! Sets another skin independent font.
  27. /** If this is set to zero, the button uses the font of the skin.
  28. param font: New font to set. */
  29. virtual void setOverrideFont(IGUIFont* font=0) = 0;
  30. //! Sets another color for the text.
  31. /** If set, the edit box does not use the EGDC_BUTTON_TEXT color defined
  32. in the skin, but the set color instead. You don't need to call
  33. IGUIEditBox::enableOverrrideColor(true) after this, this is done
  34. by this function.
  35. If you set a color, and you want the text displayed with the color
  36. of the skin again, call IGUIEditBox::enableOverrideColor(false);
  37. param color: New color of the text. */
  38. virtual void setOverrideColor(video::SColor color) = 0;
  39. //! Sets if the text should use the overide color or the color in the gui skin.
  40. /** param enable: If set to true, the override color, which can be set
  41. with IGUIEditBox::setOverrideColor is used, otherwise the
  42. EGDC_BUTTON_TEXT color of the skin. */
  43. virtual void enableOverrideColor(bool enable) = 0;
  44. //! Turns the border on or off
  45. /** param border: true if you want the border to be drawn, false if not */
  46. virtual void setDrawBorder(bool border) = 0;
  47. //! Sets text justification mode
  48. /** param horizontal: EGUIA_UPPERLEFT for left justified (default),
  49. EGUIA_LOWEERRIGHT for right justified, or EGUIA_CENTER for centered text.
  50. param vertical: EGUIA_UPPERLEFT to align with top edge,
  51. EGUIA_LOWEERRIGHT for bottom edge, or EGUIA_CENTER for centered text (default). */
  52. virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical) = 0;
  53. //! Enables or disables word wrap.
  54. /** param enable: If set to true, words going over one line are
  55. broken to the next line. */
  56. virtual void setWordWrap(bool enable) = 0;
  57. //! Checks if word wrap is enabled
  58. //! return true if word wrap is enabled, false otherwise
  59. virtual bool isWordWrapEnabled() const = 0;
  60. //! Enables or disables newlines.
  61. /** param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired,
  62. instead a newline character will be inserted. */
  63. virtual void setMultiLine(bool enable) = 0;
  64. //! Checks if multi line editing is enabled
  65. //! return true if mult-line is enabled, false otherwise
  66. virtual bool isMultiLineEnabled() const = 0;
  67. //! Enables or disables automatic scrolling with cursor position
  68. //! param enable: If set to true, the text will move around with the cursor position
  69. virtual void setAutoScroll(bool enable) = 0;
  70. //! Checks to see if automatic scrolling is enabled
  71. //! return true if automatic scrolling is enabled, false if not
  72. virtual bool isAutoScrollEnabled() const = 0;
  73. //! Sets whether the edit box is a password box. Setting this to true will
  74. /** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x
  75. param passwordBox: true to enable password, false to disable
  76. param passwordChar: the character that is displayed instead of letters */
  77. virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*') = 0;
  78. //! Returns true if the edit box is currently a password box.
  79. virtual bool isPasswordBox() const = 0;
  80. //! Gets the size area of the text in the edit box
  81. //! return Returns the size in pixels of the text
  82. virtual core::dimension2di getTextDimension() = 0;
  83. //! Sets the maximum amount of characters which may be entered in the box.
  84. /** param max: Maximum amount of characters. If 0, the character amount is
  85. infinity. */
  86. virtual void setMax(u32 max) = 0;
  87. //! Returns maximum amount of characters, previously set by setMax();
  88. virtual u32 getMax() const = 0;
  89. // >> Add by uirou for IME Window start
  90. //virtual void setDevice(irr::CIrrDeviceLinux* device) = 0;
  91. virtual void setDevice(irr::IrrlichtDevice* device) { dev = device; };
  92. protected:
  93. irr::IrrlichtDevice* dev;
  94. // << Add by uirou for IME Window end
  95. };
  96. } // end namespace gui
  97. } // end namespace irr
  98. #endif