X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbctextbox.h;h=e461767eafd76bbe90e2c93677605ec8eb29ee11;hb=b55798fc64eee00c6fab3b4763e791befb7275f9;hp=a3db2b69189dc4014376b54404fa6215daadef55;hpb=63ced327c156ea7fe4448a18b0b1b0f2571dce7e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bctextbox.h b/cinelerra-5.1/guicast/bctextbox.h index a3db2b69..e461767e 100644 --- a/cinelerra-5.1/guicast/bctextbox.h +++ b/cinelerra-5.1/guicast/bctextbox.h @@ -23,6 +23,8 @@ #define BCTEXTBOX_H #include "bclistbox.h" +#include "bcmenuitem.h" +#include "bcpopupmenu.h" #include "bcsubwindow.h" #include "bctumble.h" #include "fonts.h" @@ -39,7 +41,7 @@ class BC_TextBoxSuggestions; class BC_ScrollTextBoxXScroll; class BC_ScrollTextBoxYScroll; class BC_ScrollTextBoxText; - +class BC_TextMenu; class BC_TextBox : public BC_SubWindow { @@ -101,6 +103,7 @@ public: 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(); @@ -117,6 +120,10 @@ public: 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); @@ -156,6 +163,7 @@ public: 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(); @@ -218,6 +226,7 @@ private: ArrayList *suggestions; BC_TextBoxSuggestions *suggestions_popup; int suggestion_column; + int selection_active; }; @@ -461,4 +470,40 @@ public: }; +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