int set_hslider(int w_handle, long pos, int w_height) { WINDOW_DESCR *wd; wd = get_window_descr(w_handle); if (wd == NULL) { return (-1); } do_hslider(wd, pos, w_height); return (0); }
void w_hslid(int w_handle, int pos) { WINDOW_DESCR *wd; int x, y, w, h; wd = get_window_descr(w_handle); if (wd != NULL) { #ifdef WND_DEBUG wnd_report("wind_get"); #endif wind_get(w_handle, WF_WORKXYWH, &x, &y, &w, &h); do_hslider(wd, ((wd->xsize - w) * pos) / 1000, w); w_redraw_all(w_handle); } }
/* Support paging/column moves */ static void do_arrowed(WORD handle, WORD action) { int hslider; /* Horizontal slider position */ int vslider; /* Vertical slider position */ wind_get(handle, WF_HSLIDE, &hslider, 0, 0, 0); wind_get(handle, WF_VSLIDE, &vslider, 0, 0, 0); switch(action) { case WA_UPPAGE: /* Up a page requested */ { vslider -= PSIZE; if (vslider < 1) vslider = 1; break; } case WA_DNPAGE: /* Down a page requested */ { vslider += PSIZE; if (vslider > 1000) vslider = 1000; break; } case WA_UPLINE: /* Up a line requested */ { vslider -= LSIZE; if (vslider < 1) vslider = 1; break; } case WA_DNLINE: /* Down a line requested */ { vslider += LSIZE; if (vslider > 1000) vslider = 1000; break; } case WA_LFPAGE: /* Left a page requested */ { hslider -= PSIZE; if (hslider < 1) hslider = 1; break; } case WA_RTPAGE: /* Right a page requested */ { hslider += PSIZE; if (hslider > 1000) hslider = 1000; break; } case WA_LFLINE: /* Left a line requested */ { hslider -= LSIZE; if (hslider < 1) hslider = 1; break; } case WA_RTLINE: /* Right a line requested */ { hslider += LSIZE; if (hslider > 1000) hslider = 1000; break; } } do_hslider(handle, hslider); /* Alter horizontal slider */ do_vslider(handle, vslider); /* Alter vertical slider */ }