mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
CtrlCore: Fixed DHCtrl related Refresh issue, CtrlLib: Fixed margin issue in RichTextView
git-svn-id: svn://ultimatepp.org/upp/trunk@12429 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
963810235e
commit
d87f3accaa
8 changed files with 13 additions and 35 deletions
|
|
@ -594,7 +594,6 @@ Ctrl::Ctrl() {
|
||||||
popupgrab = false;
|
popupgrab = false;
|
||||||
fullrefresh = false;
|
fullrefresh = false;
|
||||||
akv = false;
|
akv = false;
|
||||||
hasdhctrl = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KillTimeCallbacks(void *id, void *idlim);
|
void KillTimeCallbacks(void *id, void *idlim);
|
||||||
|
|
|
||||||
|
|
@ -4,22 +4,8 @@ namespace Upp {
|
||||||
|
|
||||||
#define LLOG(x) // DLOG(x)
|
#define LLOG(x) // DLOG(x)
|
||||||
|
|
||||||
bool Ctrl::HasDHCtrl() const
|
bool Ctrl::IsDHCtrl() const {
|
||||||
{
|
return dynamic_cast<const DHCtrl *>(this);
|
||||||
GuiLock __;
|
|
||||||
if(dynamic_cast<const DHCtrl *>(this))
|
|
||||||
return true;
|
|
||||||
for(Ctrl *q = GetFirstChild(); q; q = q->next)
|
|
||||||
if(q->HasDHCtrl())
|
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ctrl::SyncDHCtrl()
|
|
||||||
{
|
|
||||||
GuiLock __;
|
|
||||||
Ctrl *p = GetTopCtrl();
|
|
||||||
p->hasdhctrl = p->HasDHCtrl();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ctrl::AddChild(Ctrl *q, Ctrl *p)
|
void Ctrl::AddChild(Ctrl *q, Ctrl *p)
|
||||||
|
|
@ -68,8 +54,6 @@ void Ctrl::AddChild(Ctrl *q, Ctrl *p)
|
||||||
q->ParentChange();
|
q->ParentChange();
|
||||||
if(updaterect && GetTopCtrl()->IsOpen())
|
if(updaterect && GetTopCtrl()->IsOpen())
|
||||||
q->StateH(OPEN);
|
q->StateH(OPEN);
|
||||||
if(dynamic_cast<DHCtrl *>(q))
|
|
||||||
SyncDHCtrl();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ctrl::AddChild(Ctrl *child)
|
void Ctrl::AddChild(Ctrl *child)
|
||||||
|
|
@ -100,8 +84,6 @@ void Ctrl::RemoveChild0(Ctrl *q)
|
||||||
if(q->next)
|
if(q->next)
|
||||||
q->next->prev = q->prev;
|
q->next->prev = q->prev;
|
||||||
q->next = q->prev = NULL;
|
q->next = q->prev = NULL;
|
||||||
if(dynamic_cast<DHCtrl *>(q))
|
|
||||||
SyncDHCtrl();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ctrl::RemoveChild(Ctrl *q)
|
void Ctrl::RemoveChild(Ctrl *q)
|
||||||
|
|
|
||||||
|
|
@ -507,7 +507,6 @@ private:
|
||||||
bool popup:1;
|
bool popup:1;
|
||||||
bool popupgrab:1;
|
bool popupgrab:1;
|
||||||
byte backpaint:2;//2
|
byte backpaint:2;//2
|
||||||
bool hasdhctrl:1;
|
|
||||||
|
|
||||||
bool akv:1;
|
bool akv:1;
|
||||||
bool destroying:1;
|
bool destroying:1;
|
||||||
|
|
@ -635,8 +634,6 @@ private:
|
||||||
void UpdateArea(SystemDraw& draw, const Rect& clip);
|
void UpdateArea(SystemDraw& draw, const Rect& clip);
|
||||||
Ctrl *GetTopRect(Rect& r, bool inframe, bool clip = true);
|
Ctrl *GetTopRect(Rect& r, bool inframe, bool clip = true);
|
||||||
void DoSync(Ctrl *q, Rect r, bool inframe);
|
void DoSync(Ctrl *q, Rect r, bool inframe);
|
||||||
bool HasDHCtrl() const;
|
|
||||||
void SyncDHCtrl();
|
|
||||||
void SetInfoPart(int i, const char *txt);
|
void SetInfoPart(int i, const char *txt);
|
||||||
String GetInfoPart(int i) const;
|
String GetInfoPart(int i) const;
|
||||||
|
|
||||||
|
|
@ -726,6 +723,8 @@ private:
|
||||||
|
|
||||||
static void InstallPanicBox();
|
static void InstallPanicBox();
|
||||||
|
|
||||||
|
bool IsDHCtrl() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void DoRemove();
|
void DoRemove();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ void Ctrl::RefreshFrame(const Rect& r) {
|
||||||
LLOG("RefreshRect " << Name() << ' ' << r);
|
LLOG("RefreshRect " << Name() << ' ' << r);
|
||||||
if(GuiPlatformRefreshFrameSpecial(r))
|
if(GuiPlatformRefreshFrameSpecial(r))
|
||||||
return;
|
return;
|
||||||
if(!top && !hasdhctrl) {
|
if(!top && !IsDHCtrl()) {
|
||||||
if(InFrame())
|
if(InFrame())
|
||||||
parent->RefreshFrame(r + GetRect().TopLeft());
|
parent->RefreshFrame(r + GetRect().TopLeft());
|
||||||
else
|
else
|
||||||
|
|
@ -168,7 +168,7 @@ void Ctrl::ScrollView(const Rect& _r, int dx, int dy)
|
||||||
#else
|
#else
|
||||||
if(IsFullRefresh() || !IsVisible())
|
if(IsFullRefresh() || !IsVisible())
|
||||||
return;
|
return;
|
||||||
if(hasdhctrl) {
|
if(IsDHCtrl()) {
|
||||||
Refresh(_r);
|
Refresh(_r);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -603,7 +603,7 @@ void Ctrl::UpdateArea0(SystemDraw& draw, const Rect& clip, int backpaint)
|
||||||
LLOG("========== END (TARGET IS BACKBUFFER)");
|
LLOG("========== END (TARGET IS BACKBUFFER)");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(backpaint == FULLBACKPAINT || globalbackpaint/* && !hasdhctrl && !dynamic_cast<DHCtrl *>(this)*/) {
|
if(backpaint == FULLBACKPAINT || globalbackpaint) {
|
||||||
ShowRepaintRect(draw, clip, LtRed());
|
ShowRepaintRect(draw, clip, LtRed());
|
||||||
BackDraw bw;
|
BackDraw bw;
|
||||||
bw.Create(draw, clip.GetSize());
|
bw.Create(draw, clip.GetSize());
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,7 @@ void Ctrl::SetPos0(LogPos p, bool _inframe)
|
||||||
{
|
{
|
||||||
GuiLock __;
|
GuiLock __;
|
||||||
if(p == pos && inframe == _inframe) return;
|
if(p == pos && inframe == _inframe) return;
|
||||||
if(parent && !hasdhctrl) {
|
if(parent && !IsDHCtrl()) {
|
||||||
if(!globalbackbuffer) {
|
if(!globalbackbuffer) {
|
||||||
Rect from = GetRect().Size();
|
Rect from = GetRect().Size();
|
||||||
Top *top = GetTopRect(from, true)->top;
|
Top *top = GetTopRect(from, true)->top;
|
||||||
|
|
|
||||||
|
|
@ -161,9 +161,7 @@ void TopWindow::SyncCaption()
|
||||||
else style = exstyle = 0;
|
else style = exstyle = 0;
|
||||||
style &= ~(WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_POPUP|WS_DLGFRAME);
|
style &= ~(WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_SYSMENU|WS_POPUP|WS_DLGFRAME);
|
||||||
exstyle &= ~(WS_EX_TOOLWINDOW|WS_EX_DLGMODALFRAME);
|
exstyle &= ~(WS_EX_TOOLWINDOW|WS_EX_DLGMODALFRAME);
|
||||||
style |= WS_CAPTION;
|
style |= WS_CAPTION|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;
|
||||||
if(hasdhctrl)
|
|
||||||
style |= WS_CLIPSIBLINGS|WS_CLIPCHILDREN;
|
|
||||||
if(minimizebox && !GetOwner())
|
if(minimizebox && !GetOwner())
|
||||||
style |= WS_MINIMIZEBOX;
|
style |= WS_MINIMIZEBOX;
|
||||||
if(maximizebox)
|
if(maximizebox)
|
||||||
|
|
|
||||||
|
|
@ -171,8 +171,8 @@ void RichTextView::RefreshRange(int a, int b)
|
||||||
int h = min(max(a, b) + 1, GetLength());
|
int h = min(max(a, b) + 1, GetLength());
|
||||||
if(l == h)
|
if(l == h)
|
||||||
return;
|
return;
|
||||||
Rect r1 = text.GetCaret(l, GetPage());
|
Rect r1 = text.GetCaret(l, GetPage()) + margin.TopLeft();
|
||||||
Rect r2 = text.GetCaret(h, GetPage());
|
Rect r2 = text.GetCaret(h, GetPage()) + margin.TopLeft();
|
||||||
Zoom zoom = GetZoom();
|
Zoom zoom = GetZoom();
|
||||||
Refresh(Rect(0, zoom * (r1.top - sb), GetSize().cx, zoom * (r2.bottom - sb + zoom.d - 1)));
|
Refresh(Rect(0, zoom * (r1.top - sb), GetSize().cx, zoom * (r2.bottom - sb + zoom.d - 1)));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ DirDiffDlg::DirDiffDlg()
|
||||||
clearFind.RightPosZ(1, 16).VSizePosZ(1, 1);
|
clearFind.RightPosZ(1, 16).VSizePosZ(1, 1);
|
||||||
find.AddChild(&clearFind);
|
find.AddChild(&clearFind);
|
||||||
|
|
||||||
files_pane.Add(info.SetAlign(ALIGN_RIGHT).TopPos(3 * cy + 3 * div, bcy).RightPos(1, 70));
|
files_pane.Add(info.SetAlign(ALIGN_RIGHT).TopPos(3 * cy + 3 * div, bcy).RightPos(1, Zx(70)));
|
||||||
files_pane.Add(compare.TopPos(2 * cy + 2 * div, bcy).RightPos(0, bcx));
|
files_pane.Add(compare.TopPos(2 * cy + 2 * div, bcy).RightPos(0, bcx));
|
||||||
files_pane.Add(files.VSizePos(3 * cy + bcy + 4 * div, 22).HSizePos());
|
files_pane.Add(files.VSizePos(3 * cy + bcy + 4 * div, 22).HSizePos());
|
||||||
files_pane.Add(find.HSizePosZ(4, 4).BottomPosZ(4, 19));
|
files_pane.Add(find.HSizePosZ(4, 4).BottomPosZ(4, 19));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue