mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-12 09:48:30 +12:00
Add all the files
This commit is contained in:
parent
e3db07a16a
commit
d60742f52b
1445 changed files with 430238 additions and 0 deletions
79
src/gui/components/TextList.h
Normal file
79
src/gui/components/TextList.h
Normal file
|
@ -0,0 +1,79 @@
|
|||
#pragma once
|
||||
|
||||
#include <wx/wx.h>
|
||||
|
||||
#include <unordered_map>
|
||||
#include <sstream>
|
||||
|
||||
#define COLOR_BLACK 0xFF000000
|
||||
#define COLOR_GREY 0xFFA0A0A0
|
||||
#define COLOR_LIGHT_GREY 0xFFE0E0E0
|
||||
#define COLOR_WHITE 0xFFFFFFFF
|
||||
#define COLOR_RED 0xFF0000FF
|
||||
|
||||
|
||||
class TextList : public wxControl, public wxScrollHelper
|
||||
{
|
||||
public:
|
||||
virtual ~TextList();
|
||||
TextList(wxWindow* parent, wxWindowID id,
|
||||
const wxPoint& pos = wxDefaultPosition,
|
||||
const wxSize& size = wxDefaultSize, long style = 0);
|
||||
|
||||
void RefreshControl(const wxRect* update_region = nullptr);
|
||||
void RefreshLine(uint32 line);
|
||||
|
||||
wxSize DoGetVirtualSize() const override;
|
||||
void DoSetSize(int x, int y, int width, int height, int sizeFlags) override;
|
||||
void SetScrollPos(int orient, int pos, bool refresh) override;
|
||||
void DrawLineBackground(wxDC& dc, uint32 line, const wxColour& colour, uint32 lines = 1) const;
|
||||
void DrawLineBackground(wxDC& dc, const wxPoint& position, const wxColour& colour, uint32 lines = 1) const;
|
||||
|
||||
bool SetElementCount(size_t element_count);
|
||||
uint32 GetElementCount() const;
|
||||
bool IsKeyDown(sint32 keycode);
|
||||
|
||||
protected:
|
||||
void WriteText(wxDC& dc, const wxString& text, wxPoint& position) const;
|
||||
void WriteText(wxDC& dc, const wxString& text, wxPoint& position, const wxColour& color) const;
|
||||
void NextLine(wxPoint& position, const wxPoint* start_position = nullptr) const;
|
||||
|
||||
virtual void OnDraw(wxDC& dc, sint32 start, sint32 count, const wxPoint& start_position) {};
|
||||
virtual void OnMouseMove(const wxPoint& position, uint32 line) {}
|
||||
virtual void OnKeyPressed(sint32 key_code, const wxPoint& position) {}
|
||||
virtual void OnMouseDown();
|
||||
virtual void OnMouseUp();
|
||||
virtual void OnMouseDClick(const wxPoint& position, uint32 line) {}
|
||||
virtual void OnContextMenu(const wxPoint& position, uint32 line) {}
|
||||
virtual bool OnShowTooltip(const wxPoint& position, uint32 line);
|
||||
void OnEraseBackground(wxEraseEvent&) {}
|
||||
|
||||
sint32 m_line_height;
|
||||
sint32 m_char_width;
|
||||
size_t m_elements_visible = 0;
|
||||
size_t m_element_count = 0;
|
||||
bool m_scrolled_to_end = true;
|
||||
|
||||
std::wstringstream m_selected_text;
|
||||
bool m_mouse_down = false;
|
||||
wxRect m_selection;
|
||||
wxPanel* m_tooltip_window;
|
||||
|
||||
private:
|
||||
void OnPaintEvent(wxPaintEvent& event);
|
||||
void OnMouseMoveEvent(wxMouseEvent& event);
|
||||
void OnKeyDownEvent(wxKeyEvent& event);
|
||||
void OnKeyUpEvent(wxKeyEvent& event);
|
||||
void OnMouseDownEvent(wxMouseEvent& event);
|
||||
void OnMouseUpEvent(wxMouseEvent& event);
|
||||
void OnMouseDClickEvent(wxMouseEvent& event);
|
||||
void OnContextMenu(wxContextMenuEvent& event);
|
||||
void OnTooltipTimer(wxTimerEvent& event);
|
||||
|
||||
std::unordered_map<sint32, bool> m_key_states;
|
||||
|
||||
wxFont m_font;
|
||||
|
||||
wxTimer* m_tooltip_timer;
|
||||
wxPoint m_mouse_position;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue