#include "DRW/drwwh.h"
#include "DRW/drwWwinit.h"
#include "DRW/drwWxdata.h"
#include "DRW/drwWopenW.h"
#include "DRW/drwWRedraw.h"
#include "DRW/drwWstate.h"
#include "DRW/drwPollMse.h"
#include "DRW/drwUMouse.h"
#include "DRW/drwWitext.h"


#include "DRW/drwWSlider.h"


void sld_discard_trailingch(char *from, int c);


void drw_u_mouseclick(wimp_w window,
                      wimp_i icon,
                      wimp_mouse_state button,
                      int workx,
                      int worky)

{

wimp_window_state wstate;
double percent;
int a, oa;
char wkbuffer[8];

if (window == (wimp_w) -2)
 {
  if ((wstate.w = pwd->uwd->barwin) != (wimp_w) -1)
   {
    drw_wimp_get_window_state(&wstate);
    if (!drw_wimp_iswindowopen(pwd->uwd->barwin) || wstate.next != (wimp_w) -1)
     drw_wimp_openwindow(pwd->uwd->barwin, 1, (wimp_w) -1);
   }
 }

if (window == pwd->uwd->barwin && icon == (wimp_i) 0)
 drw_wimp_closewindow(pwd->uwd->barwin);

if (window == pwd->uwd->barwin && icon == (wimp_i) 17)
 {
  percent = drw_wimp_getsliderpcent(pwd->uwd->barwin, (wimp_i) 15);
  a = drw_wimp_roundfloat(percent);
  oa = a;
  a++;
  if (a > 100)
   a = 100;
  if (a != oa)
   {
    drw_wimp_putsliderpcent(pwd->uwd->barwin, (wimp_i) 15, a);
    sprintf(wkbuffer, "%-3d", a);
    sld_discard_trailingch(wkbuffer, ' ');
    drw_wimp_puticontext(pwd->uwd->barwin, (wimp_i) 16, wkbuffer);
   }
 }

if (window == pwd->uwd->barwin && icon == (wimp_i) 18)
 {
  percent = drw_wimp_getsliderpcent(pwd->uwd->barwin, (wimp_i) 15);
  a = drw_wimp_roundfloat(percent);
  oa = a;
  a--;
  if (a < 0)
   a = 0;
  if (a != oa)
   {
    drw_wimp_putsliderpcent(pwd->uwd->barwin, (wimp_i) 15, a);
    sprintf(wkbuffer, "%-3d", a);
    sld_discard_trailingch(wkbuffer, ' ');
    drw_wimp_puticontext(pwd->uwd->barwin, (wimp_i) 16, wkbuffer);
   }
 }

}


