#define BCTEXTBOX_H
#include "bclistbox.h"
+#include "bcmenuitem.h"
+#include "bcpopupmenu.h"
#include "bcsubwindow.h"
#include "bctumble.h"
#include "fonts.h"
class BC_ScrollTextBoxXScroll;
class BC_ScrollTextBoxYScroll;
class BC_ScrollTextBoxText;
-
+class BC_TextMenu;
class BC_TextBox : public BC_SubWindow
{
int button_release_event();
int repeat_event(int64_t repeat_id);
int keypress_event();
+ int selection_clear_event();
int activate();
int deactivate();
const char* get_text();
int reposition_window(int x, int y, int w = -1, int rows = -1);
int uses_text();
+ int cut(int do_update);
+ int copy(int do_update);
+ int paste(int do_update);
+
static int calculate_h(BC_WindowBase *gui, int font, int has_border, int rows);
static int calculate_row_h(int rows, BC_WindowBase *parent_window, int has_border = 1, int font = MEDIUMFONT);
static int pixels_to_rows(BC_WindowBase *window, int font, int pixels);
BC_ScrollTextBoxYScroll *yscroll;
private:
int reset_parameters(int rows, int has_border, int font, int size);
+ BC_TextMenu *menu;
void draw(int flush);
void draw_border();
void draw_cursor();
ArrayList<BC_ListBoxItem*> *suggestions;
BC_TextBoxSuggestions *suggestions_popup;
int suggestion_column;
+ int selection_active;
};
{
public:
BC_TumbleTextBoxText(BC_TumbleTextBox *popup, int64_t default_value, int x, int y);
- BC_TumbleTextBoxText(BC_TumbleTextBox *popup, float default_value, int x, int y);
+ BC_TumbleTextBoxText(BC_TumbleTextBox *popup, float default_value, int x, int y, int precision);
virtual ~BC_TumbleTextBoxText();
int handle_event();
int button_press_event();
};
+class BC_TextMenu : public BC_PopupMenu
+{
+public:
+ BC_TextMenu(BC_TextBox *textbox);
+ ~BC_TextMenu();
+
+ void create_objects();
+
+ BC_TextBox *textbox;
+};
+
+class BC_TextMenuCut : public BC_MenuItem
+{
+public:
+ BC_TextMenuCut(BC_TextMenu *menu);
+ int handle_event();
+ BC_TextMenu *menu;
+};
+
+class BC_TextMenuCopy : public BC_MenuItem
+{
+public:
+ BC_TextMenuCopy(BC_TextMenu *menu);
+ int handle_event();
+ BC_TextMenu *menu;
+};
+
+class BC_TextMenuPaste : public BC_MenuItem
+{
+public:
+ BC_TextMenuPaste(BC_TextMenu *menu);
+ int handle_event();
+ BC_TextMenu *menu;
+};
+
+
#endif