X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Fdraw_control.cpp;h=ef105e77d433b259ddfe6f4bb11b12d32f554bb9;hb=32637a3bcd6e38425272f901745a76efa301afd5;hp=264165f36d2b537be448417b9059d3c4a774ac1b;hpb=cb37616a62753de8a1b8d28e3c4ec3ad9891de1b;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Server/draw_control.cpp b/Usermode/Applications/axwin4_src/Server/draw_control.cpp index 264165f3..ef105e77 100644 --- a/Usermode/Applications/axwin4_src/Server/draw_control.cpp +++ b/Usermode/Applications/axwin4_src/Server/draw_control.cpp @@ -8,6 +8,9 @@ * Handles drawing of resizable controls defined by a bitmap and four region sizes */ #include +#include +#include +#include // === CODE === namespace AxWin { @@ -21,7 +24,8 @@ CControl::CControl(int EdgeX, int FillX, int InnerX, int EdgeY, int FillY, int I m_inner_y(InnerY), m_data(data) { - + _SysDebug("CControl(X={E:%i,F:%i,I:%i}, Y={E:%i,F:%i,I:%i}, data={Size:%i})", + m_edge_x, m_fill_x, m_inner_x, m_edge_y, m_fill_y, m_inner_y, m_data.size()); } void CControl::Render(CSurface& dest, const CRect& rect) const @@ -45,6 +49,7 @@ void CControl::Render(CSurface& dest, const CRect& rect) const renderLine(dest, y++, scanline, rect, &m_data[(base_ofs+i)*ctrl_width]); base_ofs += m_edge_y; // FillY + assert(m_fill_y > 0 || y == top_fill_end); while( y < top_fill_end ) { for( int i = 0; i < m_fill_y && y < top_fill_end; i ++ ) @@ -77,6 +82,7 @@ void CControl::Render(CSurface& dest, const CRect& rect) const void CControl::renderLine(CSurface& dest, int y, ::std::vector& scanline, const CRect& rect, const uint32_t* ctrl_line) const { + //_SysDebug("renderLine: (y=%i,rect={(%i,%i) %ix%i}", y, rect.m_x, rect.m_y, rect.m_w, rect.m_h); const int left_fill_end = rect.m_w / 2 - m_inner_x; const int right_fill_end = rect.m_w - m_edge_x; @@ -129,6 +135,15 @@ CControl StdButton(2, 1, 0, 2, 1, 0, ::std::vector { 0xC0C0C0, 0xC0C0C0, 0xC0C0C0, 0xC0C0C0, 0xC0C0C0, }); +// Toolbar +CControl StdToolbar(2, 1, 0, 2, 1, 0, ::std::vector { + 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, + 0x000000, 0xA0A0A0, 0x0A0000, 0xA0A0A0, 0x000000, + 0x000000, 0xA0A0A0, 0xFFFFFF, 0xA0A0A0, 0x000000, + 0x000000, 0xA0A0A0, 0x0A0000, 0xA0A0A0, 0x000000, + 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, + }); + // Text Area CControl StdText(2, 1, 0, 2, 1, 0, ::std::vector { 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, @@ -152,8 +167,9 @@ const CControl* CControl::GetByID(uint16_t id) { switch(id) { - case 0x00: return &StdButton; - case 0x01: return &StdText; + case AXWIN4_CTL_BUTTON: return &StdButton; + case AXWIN4_CTL_TOOLBAR: return &StdToolbar; + case AXWIN4_CTL_TEXTBOX: return &StdText; default: return nullptr; } }