ソースを参照

SimpleGui: scrollbar handle size memorization

Arthur Yefimov 1 年間 前
コミット
12308d423e
2 ファイル変更5 行追加4 行削除
  1. 3 3
      Programs/Examples/MapEditor.Mod
  2. 2 1
      Programs/Examples/SimpleGui.Mod

+ 3 - 3
Programs/Examples/MapEditor.Mod

@@ -142,8 +142,8 @@ BEGIN
   S.SetOnMouseMove(btnMove, BtnMoveOnMouseMove);
   S.SetOnMouseMove(btnMove, BtnMoveOnMouseMove);
 
 
   sbxMap := S.NewScrollBox(pnlMap, 4, 104, 300, 200);
   sbxMap := S.NewScrollBox(pnlMap, 4, 104, 300, 200);
-  S.ScrollBoxSetNoBg(sbxMap, TRUE);
-  S.ScrollBoxSetInnerSize(sbxMap, 4096, 4096);
+  S.ScrollBoxSetNoBg(sbxMap, ~TRUE);
+  S.ScrollBoxSetInnerSize(sbxMap, 700, 800);
   G.MakeCol(color, 0, 90, 255);
   G.MakeCol(color, 0, 90, 255);
   S.SetBgColor(sbxMap, color);
   S.SetBgColor(sbxMap, color);
   btnFile := S.NewButton(sbxMap, 20, 40, 80, 24, 'Файл');
   btnFile := S.NewButton(sbxMap, 20, 40, 80, 24, 'Файл');
@@ -154,7 +154,7 @@ BEGIN
   S.SetOnPaint(custom, CustomOnPaint);
   S.SetOnPaint(custom, CustomOnPaint);
   S.SetOnMouseMove(custom, CustomOnMouseMove);
   S.SetOnMouseMove(custom, CustomOnMouseMove);
 
 
-  cnvSign := S.NewCanvas(sbxMap, 170, 40, 50, 50);
+  cnvSign := S.NewCanvas(sbxMap, 210, 80, 150, 250);
   S.SetOnMouseMove(cnvSign, CnvSignOnMouseMove);
   S.SetOnMouseMove(cnvSign, CnvSignOnMouseMove);
 
 
   moving := FALSE
   moving := FALSE

+ 2 - 1
Programs/Examples/SimpleGui.Mod

@@ -708,10 +708,11 @@ BEGIN
   c.btnSize := bs;
   c.btnSize := bs;
   maxHs := c.w - bs * 2 + 4;
   maxHs := c.w - bs * 2 + 4;
   IF hs > maxHs THEN hs := maxHs END;
   IF hs > maxHs THEN hs := maxHs END;
+  c.handleSize := hs;
   range := c.max - c.min;
   range := c.max - c.min;
   pos := c.value;
   pos := c.value;
   IF pos < c.min THEN pos := c.min ELSIF pos > c.max THEN pos := c.max END;
   IF pos < c.min THEN pos := c.min ELSIF pos > c.max THEN pos := c.max END;
-  c.handlePos := bs - 2 + ((maxHs - hs) * pos + range DIV 2) DIV range;
+  c.handlePos := bs - 2 + (pos * (maxHs - hs) + range DIV 2) DIV range;
 
 
   DrawButtonBox(x, y, bs, c.h, c.bgColor,
   DrawButtonBox(x, y, bs, c.h, c.bgColor,
       c.parent.bgColor, c.btnPressed = 1, FALSE);
       c.parent.bgColor, c.btnPressed = 1, FALSE);