update syncscrollers.patch to changed render.c
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
--- server/render.c
|
--- server/render.c-ok 2007-04-28 23:54:21.000000000 +0200
|
||||||
+++ server/render.c
|
+++ server/render.c 2007-04-28 23:51:33.000000000 +0200
|
||||||
@@ -176,6 +176,7 @@
|
@@ -170,6 +170,7 @@
|
||||||
int length, speed;
|
int vis_width = right - left; /* width of visible frame area */
|
||||||
int str_length = BUFSIZE-1;
|
int vis_height = bottom - top; /* height of visible frame area */
|
||||||
int reset = 1;
|
int /*fx = 0,*/ fy = 0; /* Scrolling offset for the frame... */
|
||||||
+ int max_scroller_len = 0;
|
+ int max_scroller_len = 0;
|
||||||
|
|
||||||
debug(RPT_DEBUG, "%s(list=%p, fscroll='%c', left=%d, top=%d, "
|
debug(RPT_DEBUG, "%s(list=%p, fscroll='%c', left=%d, top=%d, "
|
||||||
"right=%d, bottom=%d, fwid=%d, fhgt=%d, fspeed=%d, timer=%d)",
|
"right=%d, bottom=%d, fwid=%d, fhgt=%d, fspeed=%d, timer=%ld)",
|
||||||
@@ -202,6 +203,27 @@
|
@@ -196,6 +197,27 @@
|
||||||
/* TODO: Frames don't scroll horizontally yet! */
|
/* TODO: Frames don't scroll horizontally yet! */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
+ case WID_SCROLLER:
|
+ case WID_SCROLLER:
|
||||||
+ /* length is really direction(!) */
|
+ /* length is really direction(!) */
|
||||||
+ if (w->length == 'h') {
|
+ if (w->length == 'h') {
|
||||||
+ length = strlen(w->text) + 1;
|
+ int length = strlen(w->text) + 1;
|
||||||
+ if (max_scroller_len < length)
|
+ if (max_scroller_len < length)
|
||||||
+ max_scroller_len = length;
|
+ max_scroller_len = length;
|
||||||
+ }
|
+ }
|
||||||
@@ -36,23 +36,24 @@
|
|||||||
/* reset widget list */
|
/* reset widget list */
|
||||||
LL_Rewind(list);
|
LL_Rewind(list);
|
||||||
|
|
||||||
@@ -341,13 +363,9 @@
|
@@ -331,14 +353,10 @@
|
||||||
/* it fits within the box, just render it */
|
|
||||||
drivers_string(w->left, w->top, w->text);
|
drivers_string(w->left, w->top, w->text);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
- int necessaryTimeUnits = 0;
|
- int necessaryTimeUnits = 0;
|
||||||
-
|
-
|
||||||
if (w->speed > 0) {
|
if (w->speed > 0) {
|
||||||
- necessaryTimeUnits = length * w->speed;
|
- necessaryTimeUnits = length * w->speed;
|
||||||
offset = (timer % (length * w->speed)) / w->speed;
|
offset = (timer % (length * w->speed)) / w->speed;
|
||||||
} else if (w->speed < 0) {
|
}
|
||||||
|
else if (w->speed < 0) {
|
||||||
- necessaryTimeUnits = length / (w->speed * -1);
|
- necessaryTimeUnits = length / (w->speed * -1);
|
||||||
offset = (timer % (length / (w->speed * -1))) * w->speed * -1;
|
offset = (timer % (length / (w->speed * -1))) * w->speed * -1;
|
||||||
} else {
|
}
|
||||||
offset = 0;
|
else {
|
||||||
@@ -378,28 +396,39 @@
|
@@ -372,32 +390,43 @@
|
||||||
drivers_string(w->left, w->top, w->text);
|
}
|
||||||
} else {
|
else {
|
||||||
int effLength = length - screen_width;
|
int effLength = length - screen_width;
|
||||||
- int necessaryTimeUnits = 0;
|
- int necessaryTimeUnits = 0;
|
||||||
+ int maxeffLength = max_scroller_len - screen_width;
|
+ int maxeffLength = max_scroller_len - screen_width;
|
||||||
@@ -62,64 +63,69 @@
|
|||||||
- necessaryTimeUnits = effLength * w->speed;
|
- necessaryTimeUnits = effLength * w->speed;
|
||||||
- if (((timer / (effLength * w->speed)) % 2) == 0) {
|
- if (((timer / (effLength * w->speed)) % 2) == 0) {
|
||||||
+ if (((timer / (maxeffLength * w->speed)) % 2) == 0) {
|
+ if (((timer / (maxeffLength * w->speed)) % 2) == 0) {
|
||||||
/*wiggle one way*/
|
/* wiggle one way */
|
||||||
- offset = (timer % (effLength * w->speed))
|
- offset = (timer % (effLength * w->speed))
|
||||||
+ offset = (timer % (maxeffLength * w->speed))
|
+ offset = (timer % (maxeffLength * w->speed))
|
||||||
/ w->speed;
|
/ w->speed;
|
||||||
+ if (offset >= effLength)
|
+ if (offset >= effLength)
|
||||||
+ offset = effLength - 1;
|
+ offset = effLength - 1;
|
||||||
} else {
|
|
||||||
/*wiggle the other*/
|
|
||||||
- offset = (((timer % (effLength * w->speed))
|
|
||||||
- - (effLength * w->speed) + 1)
|
|
||||||
+ offset = (((timer % (maxeffLength * w->speed))
|
|
||||||
+ - (maxeffLength * w->speed) + 1)
|
|
||||||
/ w->speed) * -1;
|
|
||||||
+ if (offset <= waitlen)
|
|
||||||
+ offset = 0;
|
|
||||||
+ else
|
|
||||||
+ offset -= waitlen;
|
|
||||||
}
|
}
|
||||||
} else if (w->speed < 0) {
|
else {
|
||||||
|
/* wiggle the other */
|
||||||
|
- offset = (((timer % (effLength * w->speed))
|
||||||
|
- - (effLength * w->speed) + 1)
|
||||||
|
+ offset = (((timer % (maxeffLength * w->speed))
|
||||||
|
+ - (maxeffLength * w->speed) + 1)
|
||||||
|
/ w->speed) * -1;
|
||||||
|
+ if (offset <= waitlen)
|
||||||
|
+ offset = 0;
|
||||||
|
+ else
|
||||||
|
+ offset -= waitlen;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (w->speed < 0) {
|
||||||
- necessaryTimeUnits = effLength / (w->speed * -1);
|
- necessaryTimeUnits = effLength / (w->speed * -1);
|
||||||
- if (((timer / (effLength / (w->speed * -1))) % 2) == 0) {
|
- if (((timer / (effLength / (w->speed * -1))) % 2) == 0) {
|
||||||
- offset = (timer % (effLength / (w->speed * -1)))
|
- offset = (timer % (effLength / (w->speed * -1)))
|
||||||
+ if (((timer / (maxeffLength / (w->speed * -1))) % 2) == 0) {
|
+ if (((timer / (maxeffLength / (w->speed * -1))) % 2) == 0) {
|
||||||
+ offset = (timer % (maxeffLength / (w->speed * -1)))
|
+ offset = (timer % (maxeffLength / (w->speed * -1)))
|
||||||
* w->speed * -1;
|
* w->speed * -1;
|
||||||
+ if (offset >= effLength)
|
+ if (offset >= effLength)
|
||||||
+ offset = effLength - 1;
|
+ offset = effLength - 1;
|
||||||
} else {
|
|
||||||
- offset = (((timer % (effLength / (w->speed * -1)))
|
|
||||||
- * w->speed * -1) - effLength + 1) * -1;
|
|
||||||
+ offset = (((timer % (maxeffLength / (w->speed * -1)))
|
|
||||||
+ * w->speed * -1) - maxeffLength + 1) * -1;
|
|
||||||
+ if (offset <= waitlen)
|
|
||||||
+ offset = 0;
|
|
||||||
+ else
|
|
||||||
+ offset -= waitlen;
|
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
offset = 0;
|
- offset = (((timer % (effLength / (w->speed * -1)))
|
||||||
@@ -438,13 +467,11 @@
|
+ offset = (((timer % (maxeffLength / (w->speed * -1)))
|
||||||
drivers_string (w->left, w->top + i, str);
|
* w->speed * -1)
|
||||||
}
|
- - effLength + 1) * -1;
|
||||||
} else {
|
+ - maxeffLength + 1) * -1;
|
||||||
- int necessaryTimeUnits = 0;
|
+ if (offset <= waitlen)
|
||||||
int effLines = lines_required - available_lines + 1;
|
+ offset = 0;
|
||||||
int begin = 0;
|
+ else
|
||||||
|
+ offset -= waitlen;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
@@ -439,14 +468,12 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
- int necessaryTimeUnits = 0;
|
||||||
|
int effLines = lines_required - available_lines + 1;
|
||||||
|
int begin = 0;
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
/*debug(RPT_DEBUG, "length: %d sw: %d lines req: %d avail lines: %d effLines: %d ",length,screen_width,lines_required,available_lines,effLines);*/
|
/*debug(RPT_DEBUG, "length: %d sw: %d lines req: %d avail lines: %d effLines: %d ",length,screen_width,lines_required,available_lines,effLines);*/
|
||||||
if (w->speed > 0) {
|
if (w->speed > 0) {
|
||||||
- necessaryTimeUnits = effLines * w->speed;
|
- necessaryTimeUnits = effLines * w->speed;
|
||||||
if (((timer / (effLines * w->speed)) % 2) == 0) {
|
if (((timer / (effLines * w->speed)) % 2) == 0) {
|
||||||
/*debug(RPT_DEBUG, "up ");*/
|
/*debug(RPT_DEBUG, "up ");*/
|
||||||
begin = (timer % (effLines * w->speed))
|
begin = (timer % (effLines * w->speed))
|
||||||
@@ -456,7 +483,6 @@
|
@@ -460,7 +487,6 @@
|
||||||
* -1;
|
}
|
||||||
}
|
}
|
||||||
} else if (w->speed < 0) {
|
else if (w->speed < 0) {
|
||||||
- necessaryTimeUnits = effLines / (w->speed * -1);
|
- necessaryTimeUnits = effLines / (w->speed * -1);
|
||||||
if (((timer / (effLines / (w->speed * -1))) % 2) == 0) {
|
if (((timer / (effLines / (w->speed * -1))) % 2) == 0) {
|
||||||
begin = (timer % (effLines / (w->speed * -1)))
|
begin = (timer % (effLines / (w->speed * -1)))
|
||||||
* w->speed * -1;
|
* w->speed * -1;
|
||||||
|
|||||||
+1
-1
@@ -435,7 +435,7 @@ render_frame(LinkedList *list,
|
|||||||
for (i = 0; i < lines_required; i++) {
|
for (i = 0; i < lines_required; i++) {
|
||||||
strncpy(str, &((w->text)[i * screen_width]), screen_width);
|
strncpy(str, &((w->text)[i * screen_width]), screen_width);
|
||||||
str[screen_width] = '\0';
|
str[screen_width] = '\0';
|
||||||
drivers_string (w->left, w->top + i, str);
|
drivers_string(w->left, w->top + i, str);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user