mirror of
https://github.com/scratchfoundation/bgfx.git
synced 2025-02-26 08:33:53 -05:00
Scintilla: Added scroll bar.
This commit is contained in:
parent
4a7d0d1954
commit
d168bd88f6
1 changed files with 38 additions and 7 deletions
|
@ -637,7 +637,9 @@ public:
|
||||||
{
|
{
|
||||||
ImVec2 cursorPos = ImGui::GetCursorPos();
|
ImVec2 cursorPos = ImGui::GetCursorPos();
|
||||||
ImVec2 regionMax = ImGui::GetWindowContentRegionMax();
|
ImVec2 regionMax = ImGui::GetWindowContentRegionMax();
|
||||||
ImVec2 size = ImVec2(regionMax.x - cursorPos.x, regionMax.y - cursorPos.y);
|
ImVec2 size = ImVec2( regionMax.x - cursorPos.x - 32
|
||||||
|
, regionMax.y - cursorPos.y
|
||||||
|
);
|
||||||
|
|
||||||
Resize(0, 0, (int)size.x, (int)size.y);
|
Resize(0, 0, (int)size.x, (int)size.y);
|
||||||
|
|
||||||
|
@ -739,6 +741,10 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32_t lineCount = int32_t(command(SCI_GETLINECOUNT) );
|
||||||
|
int32_t firstVisibleLine = int32_t(command(SCI_GETFIRSTVISIBLELINE) );
|
||||||
|
float fontHeight = ImGui::GetWindowFontSize();
|
||||||
|
|
||||||
if (ImGui::IsMouseClicked(0) )
|
if (ImGui::IsMouseClicked(0) )
|
||||||
{
|
{
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
@ -749,12 +755,36 @@ public:
|
||||||
|
|
||||||
Tick();
|
Tick();
|
||||||
|
|
||||||
Scintilla::AutoSurface surfaceWindow(this);
|
ImGui::BeginGroup();
|
||||||
if (surfaceWindow)
|
ImGui::BeginChild("##editor", ImVec2(size.x, size.y-20) );
|
||||||
{
|
Scintilla::AutoSurface surfaceWindow(this);
|
||||||
Paint(surfaceWindow, GetClientRectangle() );
|
if (surfaceWindow)
|
||||||
surfaceWindow->Release();
|
{
|
||||||
}
|
Paint(surfaceWindow, GetClientRectangle() );
|
||||||
|
surfaceWindow->Release();
|
||||||
|
}
|
||||||
|
ImGui::EndChild();
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
|
||||||
|
ImGui::BeginChild("##scroll");
|
||||||
|
ImGuiListClipper clipper;
|
||||||
|
clipper.Begin(lineCount, fontHeight*2.0f);
|
||||||
|
|
||||||
|
if (m_lastFirstVisibleLine != firstVisibleLine)
|
||||||
|
{
|
||||||
|
m_lastFirstVisibleLine = firstVisibleLine;
|
||||||
|
ImGui::SetScrollY(firstVisibleLine * fontHeight*2.0f);
|
||||||
|
}
|
||||||
|
else if (firstVisibleLine != clipper.DisplayStart)
|
||||||
|
{
|
||||||
|
command(SCI_SETFIRSTVISIBLELINE, clipper.DisplayStart);
|
||||||
|
}
|
||||||
|
|
||||||
|
clipper.End();
|
||||||
|
ImGui::EndChild();
|
||||||
|
|
||||||
|
ImGui::EndGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setStyle(int style, Scintilla::ColourDesired fore, Scintilla::ColourDesired back = UINT32_MAX, int size = -1, const char* face = NULL)
|
void setStyle(int style, Scintilla::ColourDesired fore, Scintilla::ColourDesired back = UINT32_MAX, int size = -1, const char* face = NULL)
|
||||||
|
@ -778,6 +808,7 @@ private:
|
||||||
int m_height;
|
int m_height;
|
||||||
int m_wheelVRotation;
|
int m_wheelVRotation;
|
||||||
int m_wheelHRotation;
|
int m_wheelHRotation;
|
||||||
|
int m_lastFirstVisibleLine;
|
||||||
|
|
||||||
Scintilla::ColourDesired m_searchResultIndication;
|
Scintilla::ColourDesired m_searchResultIndication;
|
||||||
Scintilla::ColourDesired m_filteredSearchResultIndication;
|
Scintilla::ColourDesired m_filteredSearchResultIndication;
|
||||||
|
|
Loading…
Reference in a new issue